MỤC ĐÍCH Giới thi u cho sinh viên v ệ ề các tính năng của các tiện ích sao lưu thông thường và th c hi n mự ệ ộ ốt s thử nghiệm cơ bản để xác định tác động của việc xác minh, nén và mã
Trang 1KHOA AN TOÀN THÔNG TIN
LINUX/UNIX
BÁO CÁO BÀI TẬP
H và tên sinh viên: ọ
Vũ Tuấn Hùng
Mã s sinh viên: ố B21DCAT097
H và tên gi ng viên: ọ ả
TS Đinh Trường Duy
Hà Nội 11/2023
Trang 2BÀI T P LAB TH C HÀNH Ậ Ự
Sao lưu dữ liệu
1 MỤC ĐÍCH
Giới thi u cho sinh viên v ệ ề các tính năng của các tiện ích sao lưu thông thường và th c hi n mự ệ ộ ốt s thử nghiệm cơ bản để xác định tác động của việc xác minh, nén và mã hóa lên việc sao lưu Các thủ tục này gi ả định rằng sinh viên có truy c p vào m t b ng tính ậ ộ ả đi kèm để hỗ trợ phân tích
B ng tính này s làm n i b t các ô cả ẽ ổ ậ ần nh p liậ ệu
2 N I DUNG TH C HÀNH Ộ Ự
Chu n b lab: ẩ ị
- Khởi động bài lab: labtainer backups2
S d ng "ử ụ sudo su" bây gi ờ để nâng cao đặc quyền của bạn
Các nhi m v : ệ ụ
Nhi m v 1: Tìm hi u TAR ệ ụ ể
M t trong nhộ ững tiện ích dòng l nh Unix ph ệ ổ biến để tạo bản sao lưu là lệnh tar tar vi t t t c a tape archive, là m t bi u hi n v ế ắ ủ ộ ể ệ ề tuổi đờ ủa nó i c (khi còn băng đĩa là lựa chọn sao lưu duy nhất) Phương pháp sao lưu ban đầu là sao chép các t p vào mệ ột băng đĩa sao lưu sao cho dễ đọc lại từ phương tiện nếu dữ liệu cần được sao chép ho c khôi phặ ục ở ột nơi khác m
Trang 3VŨ TUẤN HÙNG B21DCAT097 2
Nhưng tar có thể được sử dụng để làm nhiều hơn chỉ sao chép vào băng, như bạn có thể thấy t g n 150 tùy ch n có th ừ ầ ọ ể được cung c p trên dòng ấ lệnh Chỉ có m t s ít trong s ộ ố ố những ng d ng tiứ ụ ềm năng của nó sẽ được
sử d ng trong bài t p này ụ ậ
Việc s dử ụng cơ bản đầu tiên c a l nh tar là t o mủ ệ ạ ột tệp lưu trữ, thường được gọi là tarball Tarball tương tự như các tệp zip, đã trở nên ph ổ biến trên Microsoft Windows Tuy nhiên, t p zip và tarball khác nhau ít nh t hai ệ ấ điểm: 1) chúng s dử ụng định dạng t p khác nhau; và 2) zip nén tệ ệp lưu trữ trong khi tar mặc định không nén
Trong bài t p này, b n s ậ ạ ẽ không sao lưu hệ thống tệp gốc Thay vào đó, bạn
sẽ làm việc với một hệ thống tệp riêng được gắn kết vào /lab_mnt và chứa
m t b n sao cộ ả ủa thư mục /usr/bin
1 Xác định lượng d u c ữ liệ ần được sao lưu
Như được hiển th ị bên dưới, s dử ụng l nh du (vi t t t c a disk usage - s ệ ế ắ ủ ử dụng đĩa) để xác định tổng lượng d u có ữ liệ trong cây thư mục /lab_mnt Tùy ch n "-ọ s" có nghĩa là tóm tắt, và tùy chọn 'b' có nghĩa là trả về kích thước dưới d ng byte ạ
du -sb /lab_mnt
2 S d ng lử ụ ệnh tar để sao lưu dữ liệu
Thực thi lệnh sau để ạo một tarball t t t ừ ất cả các tệp và thư mục trong hệ thống tệp được g n k t vào /lab_mnt Lắ ế ệnh được gi i thích trong hình sau ả
đó
cd /lab_mnt
tar -cvf /tmp/lab_mnt.tar *
Trang 43 Li t kê m t s siêu d u cho tarball b n v a tệ ộ ố ữ liệ ạ ừ ạo:
ll /tmp/lab_mnt.tar
4 Xem n i dung cộ ủa tarball
Để xem r ng tarball chằ ứa nhiều hơn chỉ nội dung của các t p, làm theo các ệ bước sau để liệt kê nội dung của tarball:
tar -tvf /tmp/lab_mnt.tar
Trang 5VŨ TUẤN HÙNG B21DCAT097 4
Trong l nh trên, tùy chệ ọn 't' có nghĩa là liệt kê, 'v' vẫn có nghĩa là chi tiết,
và 'f' vẫn có nghĩa là tệp Tổng cộng, lệnh có nghĩa là "liệt kê nội dung của tarball /tmp/lab_mnt.tar trong một cách chi ti t" ế
Đầu ra cho thấy r ng ngoài d u tằ ữ liệ ệp, tarball cũng chứa các siêu d ữ liệu cần thiết để khôi ph c t p v ụ ệ ề trạng thái trước đó
5 Xác minh tarball
M t nhi m v rộ ệ ụ ất, r t quan tr ng sau khi t o mấ ọ ạ ột bản sao lưu là xác minh rằng sao lưu là tốt, đặc biệt khi sử d ng m t s ụ ộ ố loại phương tiện "không đáng tin cậy", chẳng hạn như băng đĩa hoặc đĩa quang Lệnh tar đi kèm với hai tùy chọn để xác minh một tarball, làm cho tar đọc mỗi tệp t tarball và ừ sau đó so sánh nó với tệp gốc trên đĩa Để kiểm tra một trong những tính năng xác minh này, trước tiên làm như sau để tạo một thay đổi cho siêu d ữ liệu của một t p hi n có: ệ ệ
touch usr/bin/base64
Bây gi ờ chạ ệy l nh tar v i tùy chớ ọn xác minh, như dưới đây (trong đó '-d' có nghĩa là sự khác bi t): ệ
Trang 6tar -df /tmp/lab_mnt.tar
B n có th ạ ể thấ ằy r ng lệnh đã làm nổi bật sự thay đổi trong m-time Lưu ý rằng tùy ch n khác bi t này có th ọ ệ ể được sử d ng b t k ụ ấ ỳ lúc nào trong tương lai để so sánh n i dung trong mộ ột tarball v i tr ng thái hiớ ạ ện có c a các tủ ệp trên đĩa
6 Xóa các t p khệ ỏ i bộ nh ớ
Thực thi lệnh sau để thông báo cho kernel xóa b t k tấ ỳ ệp được lưu trong bộ nhớ RAM để có th có th i gian l p l i, nh t quán [N u chúng ta muể ờ ặ ạ ấ ế ốn đo hiệu su t, chúng ta muấ ốn đảm b o r ng mả ằ ỗi l n g i tar ph i th c hi n cùng ầ ọ ả ự ệ
một lượng công vi c.] ệ
sync; sysctl -w vm.drop_caches=2
7 T o l i tarball ạ ạ
L n này, b n s b ầ ạ ẽ ỏ qua đầu ra chi ti t và s d ng lế ử ụ ệnh thời gian để đo thời gian hoàn thành:
time tar -cf /tmp/lab_mnt.tar *
8 D n dọ ẹp
Xóa tarball và làm s ch b ạ ộ nhớ đệm:
rm /tmp/lab_mnt.tar
sync; sysctl -w vm.drop_caches=2
Trang 7VŨ TUẤN HÙNG B21DCAT097 6
Nhi m v 2: Tìm hi u dump ệ ụ ể
M t tiộ ện ích sao lưu Unix phổ ến khác đượ bi c gọi là dump Khi sao lưu một phân vùng đĩa hoàn chỉnh, dump cung c p h ấ ỗ trợ cho các mức sao lưu khác nhau, cho phép người dùng quyết định li u có muệ ốn sao lưu đầy đủ tất c các t p tin hay ch các tả ệ ỉ ệp tin đã thay đổi kể từ một thời điểm trong quá kh , ch ng hứ ẳ ạn như tất cả các tệp tin đã thay đổi kể từ sao lưu đầy đủ cuối cùng Khi ch ỉ chọn m t phộ ần c a mủ ột phân vùng đĩa, lựa chọn duy nhất mà dump cung c p cho b n là mấ ạ ột bản sao lưu đầy đủ
1 S dử ụng dump để sao lưu dữ liệu
L n này, s dầ ử ụng dump để sao lưu hệ thống tệp tin được gắn k t trên ế /lab_mnt, như dưới đây Tệp kết quả được gọi là t p dump ["-ệ 0" bên dưới (số không) có nghĩa là sao lưu đầy đủ.]
time dump - -f /tmp/lab_mnt.dump /lab_mnt 0
Trang 82 Xóa b ộ nhớ đệm:
sync; sysctl -w vm.drop_caches=2
3 Sao lưu dữ liệu lên m t máy ch ộ ủ lưu trữ từ xa
Chúng ta s s dẽ ử ụng ssh để gửi kết qu c a lả ủ ệnh dump đến một máy ch t ủ ừ
xa có tên "archive"
Xác nh n r ng b n có th k t nậ ằ ạ ể ế ối được với máy ch ủ lưu trữ:
ssh student@archive
Khi được yêu c u ti p t c k t n i b i ssh, gõ "yes" ầ ế ụ ế ố ở
Giả s bử ạn đã kế ối được với máy ch t n ủ lưu trữ, thoát kh i phiên ssh cỏ ủa bạn:
exit
Đưa lệnh dump qua ssh đến máy ch ủ lưu trữ ừ t xa:
time (dump -0 -f - /lab_mnt | ssh student@archive "cat > lab_mnt.dump")
Trang 9VŨ TUẤN HÙNG B21DCAT097 8
Nhi m v 3: Dump và ki m tra ệ ụ ể
Một bướ ấc r t quan trọng trong quy trình sao lưu là xác minh rằng sao lưu
đã thành công và t t Ph n này s ố ầ ẽ xem xét tác động của việc xác minh đối với một sao lưu Lệnh dump không th ể được s dử ụng để xác minh m t tộ ệp dump, thay vào đó, bạn phải sử dụng l nh restore b sung v i tùy ch n "-ệ ổ ớ ọ C" (đại diện cho ki m tra) ể
1 Xóa m t tộ ệp đã đượ sao lưu trước đó: c
rm /lab_mnt/usr/bin/cheese
2 Xác minh sao lưu cục bộ bằng lệnh restore sau đây:
time restore -Cf /tmp/lab_mnt.dump -D /lab_mnt
Trang 103 Xác minh sao lưu từ xa bằng l ệnh restore sau đây:
time (ssh student@archive "cat lab_mnt.dump" | restore -C D -/lab_mnt -f -)
4 Khôi ph c lụ ại tệp từ tệp dump sau khi đã chuyển đến thư mục của hệ thống t ệp:
cd /lab_mnt
restore - -f /tmp/lab_mnt.dump i
Điều này sẽ đưa bạn vào một phiên tương tác vớ ệnh restore, như bại l n có thể thấ ừ ờy t l i nh c "restore>" T i l i nh c, nh p lắ ạ ờ ắ ậ ệnh sau để thêm tệp chúng ta c n ph c h i vào danh sách các t p cầ ụ ồ ệ ần ph c h i [Nụ ồ ếu chúng ta muốn ph c h i nhi u t p, chúng ta s ụ ồ ề ệ ẽ tiếp t c thêm chúng theo cùng mụ ột cách.]
add usr/bin/cheese
Tiếp theo, nh p lậ ệnh để sao chép từ tệp dump vào v ị trí ban đầu của nó: extract
Trang 11VŨ TUẤN HÙNG B21DCAT097 10
Khi yêu c u s ầ ố thứ ự t tập tin, nh p 1 ậ
Khi yêu c u bầ ạn có mu n thi t l p ch s h u/ch , nh p n ố ế ậ ủ ở ữ ế độ ậ
Nhập quit thoát kh i shell restore để ỏ
Xác minh r ng tằ ệp đã được khôi phục:
ll usr/bin/cheese
5 Xóa b ộ nhớ cache:
sync; sysctl -w vm.drop_caches=2
Nhi m v 4: Dump và Nén ệ ụ
Phần này sẽ xem xét tác động của nén đối với một sao lưu Lưu ý rằng một thí nghi m khoa hệ ọc hơn cũng sẽ xem xét tác động đối v i các lo i d ớ ạ ữ liệu khác nhau được sao lưu Ví dụ, nếu bạn đang sao lưu nhiề ệp đã đượu t c nén trước đó (như tệp video hoặc nhạc), thì có th m t th i gian cho mể ấ ờ ột công việc mang l i ít l i ích ạ ợ
1 Làm theo các bước sau để đo thời gian mất để tạo và nén t p dump ệ (trong đó tùy chọn 'z' chỉ ra nén)
cd /lab_mnt
time dump -0 -z -f /tmp/lab_mnt.dump.z usr/bin
Trang 12VŨ TUẤN HÙNG B21DCAT097 1
2 Xóa t p dump và xóa b ệ ộ nhớ cache:
rm /tmp/lab_mnt.dump.z
sync; sysctl -w vm.drop_caches=2
Nhi m v 5: Dump và Mã hóa ệ ụ
Phần này sẽ xem xét tác động của mã hóa đố ới quy trình sao lưu Không i v
có tùy chọn mã hóa riêng bi t v i l nh dump, vì v y b n s c n sệ ớ ệ ậ ạ ẽ ầ ử dụng
m t ti n ích mã hóa riêng bi t Trong th nghi m này, b n s s d ng l nh ộ ệ ệ ử ệ ạ ẽ ử ụ ệ openssl
Trang 13VŨ TUẤN HÙNG B21DCAT097 12
1 Mã hóa t p dump b ng lệ ằ ệnh dài dưới đây [Khóa mã hóa được cung cấp
trên dòng l nh là "hi".] ệ
time (openssl enc -aes-256-cbc -k hi -in /tmp/lab_mnt.dump >
/tmp/lab_mnt.dump.aes256)
2 D n dọ ẹp để chu n b cho ph n ti p theo: ẩ ị ầ ế
rm /tmp/lab_mnt.dump
rm /tmp/lab_mnt.dump.aes256
sync; sysctl -w vm.drop_caches=2
Nhi m v 5: Dump v i t t c ệ ụ ớ ấ ả
Trong ph n này, b n s xem xét ầ ạ ẽ hiệu su t c a vi c s dấ ủ ệ ử ụng dump để tạo tệp sao lưu, nén nó, xác minh nó, và sau đó mã hóa nó Lưu ý rằng việc nén trước khi mã hóa là quan tr ng; n u th c hiọ ế ự ện theo cách ngược lại, nén thực
tế có th ể làm tăng kích thước tệp
1 T o l i và nén t p dump: ạ ạ ệ
cd /lab_mnt
time dump -0 -z -f /tmp/lab_mnt.dump usr/bin
Trang 14VŨ TUẤN HÙNG B21DCAT097 1
2 Xác minh tệp dump đã nén:
time restore -Cf /tmp/lab_mnt.dump
3 Mã hóa tệp dump đã nén:
time (openssl enc -aes-256-cbc -k hi -in /tmp/lab_mnt.dump > /tmp/lab_mnt.dump.aes256)
Trang 15VŨ TUẤN HÙNG B21DCAT097 14
K t thúc bài lab: ế
- Trên terminal đầu tiên s d ng câu lử ụ ệnh sau để ế k t thúc bài lab: stoplab
- Khi bài lab k t thúc, m t tế ộ ệp zip lưu kết quả được tạo và lưu vào một vị trí được hiển thị bên dưới lệnh stoplab