Đồ án Cơ chế bảo vệ an toàn dữ liệu trên hệ điều hành Linux

MỤC LỤC

MỤC LỤC 1

DANH MỤC HÌNH VẼ 4

DANH MỤC CÁC BẢNG 5

LỜI MỞ ĐẦU 6

CHƯƠNG I: TỔNG QUAN HỆ ĐIỀU HÀNH LINUX 8

1.1. Về lịch sử 8

1.2. Những ưu điểm kỹ thuật nổi bật của Linux 9

1.3. Một vài nhược điểm của Linux 11

1.4. Một số tập lệnh cơ bản trong linux 13

CHƯƠNG II: CÁCH THỨC TỔ CHỨC, CƠ CHẾ BẢO VỆ DỮ LIỆU TRONG LINUX 15

2.1. Sơ bộ kiến trúc nội tại của hệ thống file 15

2.2. Ý nghĩa các thư mục hệ thống trong Linux 20

2.3. Linux và các tệp tin quản lý 22

2.4. Ý nghĩa các tệp tin con trong etc và một số thư mục 24

2.5. Hệ thống ghi nhật ký, cơ chế journaling file system (JFS), journaling block device (JBD). 32

2.5.1. Lịch sử hệ thống file nhật ký của Linux 33

2.5.2. Cơ chế JFS (journaling file system) 34

2.5.3. Cơ chế JBD (journaling block device) 35

2.6. Kiểu hệ thống file trợ giúp bằng cơ chế journaling file system 37

2.6.1. Hệ thống file Reiserfs 38

2.6.2. Hệ thống file XFS 38

2.6.3. Hệ thống File JFS 39

2.6.4. Ext3 39

CHƯƠNG III: CƠ CHẾ QUẢN LÝ TÀI NGUYÊN PHÂN QUYỀN 41

3.1. Quyền truy nhập thư mục và file 41

3.2. Chế độ truy cập 44

3.2.1. Cách xác lập tương đối 46

3.2.2. Cách xác lập tuyệt đối 47

3.3. Một số lệnh thay đổi chế độ truy cập 49

3.3.1. Thay đổi quyền sở hữu file với lệnh chown 49

3.3.2. Thay đổi quyền sở hữu nhóm với lệnh chgrp 50

3.3.3. Thay đổi quyền truy cập file với lệnh chmod 50

CHƯƠNG IV: BẢO MẬT TRÊN LINUX 52

4.1. Xác định và ngắt các dịch vụ không cần thiết 52

4.1.1. Tìm kiếm các dịch vụ đang sử dụng 52

4.1.2. Quyết định ngắt các dịch vụ nào 52

4.2. An toàn cho các giao dịch trên mạng 54

4.3. Nguyên tắc bảo vệ hệ thống mạng 55

4.3.1. Hoạch định hệ thống bảo vệ mạng 55

4.3.2. Mô hình bảo mật 56

4.3.3. Nâng cao mức độ bảo mật 56

4.4. Kiến trúc bảo mật của hệ thống mạng 57

4.4.1. Sự an toàn vật lý. 59

4.4.2. An toàn hệ thống. 59

4.4.3. An toàn mạng 60

4.4.4. Các ứng dụng an toàn. 60

4.4.5. Chu vi an toàn. 61

4.4.6. Firewall mạng 62

4.5. Bảo mật Linux Server 62

4.5.1. Không cho phép sử dụng tài khoản root từ console 62

4.5.2. Xoá bớt tài khoản và nhóm đặc biệt 63

4.5.3. Tắt các dịch vụ không sử dụng 63

4.5.4. Không cho “SU” (Substitute) lên root 63

4.5.5. Che dấu file mật khẩu 63

4.5.6. Luôn nâng cấp cho nhân (kernel) Linux 63

4.5.7. Tự động thoát khỏi Shell 64

4.5.8. Không cho phép truy nhập file kịch bản khởi động của Linux 64

4.5.9. Giới hạn việc tự ý ghi nhận thông tin từ shell 64

4.5.10. Tắt các tiến trình SUID/SGID 65

4.6. Linux Firewall và hệ thống phòng chống, kiểm tra hệ thống 65

4.6.1. Dùng công cụ dò tìm để khảo sát hệ thống 67

4.6.2. Phát hiện sự xâm nhập qua mạng 68

4.6.3. Kiểm tra khả năng bị xâm phạm 69

4.6.4. Đối phó khi hệ thống bị tấn công 70

4.6.5. Thiết lập tường lửa Iptables cho Linux 71

4.7. Các phần mềm bảo mật 73

4.7.1. Linux sXid 73

4.7.2. Linux Logcheck 73

4.7.3. Linux PortSentry 74

4.7.4. Linux OpenSSH Clien/Server 74

4.7.5. Linux Tripwire 2.2.1 76

KẾT LUẬN 77

TÀI LIỆU THAM KHẢO 79

DANH MỤC KÝ TỰ VIẾT TẮT 80

 

 

doc86 trang | Chia sẻ: netpro | Lượt xem: 7007 | Lượt tải: 1download
Bạn đang xem trước 20 trang tài liệu Đồ án Cơ chế bảo vệ an toàn dữ liệu trên hệ điều hành Linux, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
rạng thái của nó. Khi một giao dịch được uỷ nhiệm, nó sẽ tuân theo vòng đời trạng thái sau. - Hoạt động: giao dịch hiện tại đang làm việc và có thể chấp nhận các handles mới. Trong hệ thống chỉ có một giao dịch có trạng thái đang hoạt động. - Bị khoá: Giao dịch không chấp nhận bất kỳ một handles mới nào nhưng các handles đang tồn tại sẽ không được thực hiện. Một khi tất cả các handles đang tồn tại được thực hiện, giao dịch sẽ chuyển sang trạng thái kế tiếp. - Trung hoà: Tất cả các handles trong giao dịch được thực hiện. Giao dịch đang ghi lại chính nó vào journal. - Ủy nhiệm: Toàn bộ nhật ký giao dịch sẽ được ghi vào journal. Giao dịch đang ghi lại một sự ngăn chặn được ủy nhiệm sẽ chỉ ra rằng nhật ký phiên giao dịch trong journal là hoàn tất. - Kết thúc: Giao dịch được ghi lại hoàn toàn cho journal. Nó phải duy trì cho tới khi các ngăn chặn được cập nhật vào vị trí thật trên đĩa. Ủy nhiệm giao dịch và kiểm tra điểm Một phiên giao dịch đang hoạt động sẽ được ghi lại vào vùng journal sau một giai đoạn nào đó. Do đó, giao dịch hoặc có thể trong bộ nhớ đang họat động trên đĩa. Việc làm trung hoà một giao dịch cho journal và đánh dấu một giao dịch cụ thể khi chúng hoàn thành là một tiến trình được gọi là uỷ nhiệm giao dịch. Journal có một vùng được giới hạn dưới sự kiểm soát và nó cần sử dụng lại vùng này. Cũng như đối với một giao dịch được ủy nhiệm, sẽ có những ngăn chặn của nó được ghi lại trên đĩa, chúng sẽ không tiếp tục phải giữ trong journal. Sau đó, kiểm tra điểm (Checkpointing) là một tiến trình của sự trung hoà khi phiên giao dịch kết thúc và sẽ lấy lại khoảng trống tương ứng trong journal. Triển khai Lớp JBD thực hiện ghi nhật ký của dữ liệu meta, dữ liệu mà đơn giản chỉ được ghi vào đĩa mà không được ghi nhật ký. Nhưng điều này sẽ không làm dừng các ứng dụng khi ghi nhật ký dữ liệu, do đó, nó có thể được thể hiện trong JBD như là dữ liệu meta của chính nó. Hình 2. 4: Cơ chế JBD trong hình ảnh Linux kernel phiên bản 2.6.0 2.6. Kiểu hệ thống file trợ giúp bằng cơ chế journaling file system Với sự hình thành và phát triển của hệ điều hành Linux, có rất nhiều cách trong việc chọn lựa các hệ thống file (file system) cho từng loại ứng dụng. Các hệ thống file tiên tiến được sử dụng trong Linux như Ext3, Reiserfs, XFS, và JFS có tính tin cậy cao và có khả năng ghi nhớ quá trình thao tác trên dữ liệu (journaling). 2.6.1. Hệ thống file Reiserfs Ý tưởng của việc xây dựng hệ thống file Reiserfs xuất phát từ yêu cầu tối ưu việc lưu trữ các file nhỏ và tăng tốc độ truy cập đến các file này. Reiserfs sử dụng phương pháp “B * Trees” phát triển lên từ “B + Trees” để tổ chức dữ liệu, theo đó một thư mục có thể chứa đến 100.000 thư mục con và đặc biệt là có thể cấp phát động Inode: mỗi đối tượng chứa trong hệ thống file được đánh dấu bằng một chỉ số duy nhất; các hệ thống file khác thực hiện cấp phát Inode tĩnh. Ngoài ra, Reiserfs cũng không cấp phát cố định dung lượng theo các khối 1KB hoặc 4KB như các hệ thống file khác thường làm mà sẽ cấp chính xác kích thước khối lưu trữ cần thiết; nhờ vậy tối ưu được dung lượng khi lưu trữ các file có kích thước nhỏ. Tóm lại, chọn Reiserfs để lưu trữ và truy cập các file nhỏ là tối ưu, với tốc độ truy cập file tăng từ 8-15 lần và dung lượng tiết kiệm được khoảng trên 5% so với hệ thống ext2 với các loại file có kích thước dưới 1 KB. Reiserfs hỗ trợ thực hiện journaling trên chỉ mục dữ liệu (journaling of meta-data only). Muốn sử dụng Reiserfs trên Linux ta phải đưa các module này vào kernel và dùng các công cụ Reiserfs để định dạng partition. Ví dụ sau đây thực hiện chuyển đổi partition hda6 sang hệ thống file Reiserfs. /sbin/mkreiserfs/dev/hda6 mount/dev/hda6/squidcache–treiserfs. Thực tế, việc áp dụng hệ thống file Reiserfs trên squid proxy server chạy trên Linux làm cho việc truy cập internet được cải thiện đáng kể do squid truy cập các files nhỏ (*.html, *.gif, *.class...) trong cache với tốc độ cao. 2.6.2. Hệ thống file XFS Được phát triển bởi công ty Silicon Graphic từ năm 1990 để khắc phục hạn chế của các hệ thống file hiện hành về kích thước và số lượng partition, thư mục và file. Ngày nay XFS đã sẵn sàng để sử dụng trong Linux với các tính năng vụ cùng mạnh mẽ và ứng dụng trong các hệ thống có tính chuyên nghiệp cao XFS là hệ thống file 64 bit, nó có thể quản lý được file có kích thước là 264 - 1 byte = 9 Exabyte (do sử dụng số nguyên có dấu nên 1 bit dùng để biểu thị dấu), có kèm theo công cụ Volume Manager cho phép quản lý lên tới 128 Volume, mỗi Volume có thể được ghép lên tới 100 partition đĩa cứng vật lý, hỗ trợ chức năng journaling đối với dữ liệu. Một đặc tính quan trọng của XFS đó là khả năng bảo đảm tốc độ truy cập dữ liệu cho các ứng dụng (Guaranteed Rate I/O), cho phép các ứng dụng duy trì được tốc độ truy xuất dữ liệu trên đĩa, rất quan trọng đối với các hệ thống phân phối dịch vụ video có độ phân giải cao hoặc các ứng dụng xử lý thông tin về tính đòi hỏi duy trì ổn định tốc độ thao tác dữ liệu. Kernel Linux 2.4.17 trở lên hỗ trợ rất tốt đối với hệ thống file này, để sử dụng cần phải patch lại kernel với các module của XFS. 2.6.3. Hệ thống File JFS Được phát triển bởi IBM, JFS là hệ thống file 64 bit, xây dựng cho các internet file server với đặc điểm thời gian khởi động máy nhanh, dung lượng chứa dữ liệu cao. JFS hỗ trợ journaling cho dữ liệu, dựa trên phương pháp thường được sử dụng trong hệ cơ sở dữ liệu, ghi lại quá trình thao tác thay đổi file (transaction). Trong trường hợp có sự cố xảy ra thì hệ thống chỉ cần cho khôi phục lại transaction trước đó mà không cần phải đọc lại hết journal log, giúp cho quá trình phục hồi được nhanh hơn. JFS hỗ trợ tính năng Logical Volumes cho phép nối các partition vật lý thành các partition logic với dung lượng cao. Ngoài ra nó còn cho phép người dùng tuỳ biến cấp phát các khối từ 512, 1.024, 2.048 và 4.096 byte cho lưu trữ dữ liệu trên đĩa. Để sử dụng JFS trên Linux ta cũng phải patch lại kernel và cài thêm các công cụ JFS để định dạng đĩa. 2.6.4. Ext3 (Ext3 = Ext2 + journaling file system ) Được xây dựng dựa trên cơ sở của hệ thống file chuẩn ext2 mà Linux đang sử dụng, ext3 đưa vào thêm chức năng mới vô cùng quan trọng, journaling file system, giúp thao tác dữ liệu an toàn hơn. Ext3 còn sử dụng cơ chế JBD (Journaling Block Device) để bảo vệ thông tin thao tác trên dữ liệu và được đánh giá là tin cậy hơn so với các hệ thống chỉ thực hiện journaling trên mục dữ liệu (journaling of meta-data only) như Reiserfs, XFS hay JFS. Với cách bảo vệ hai lần như vậy thì hiệu suất ghi dữ liệu có phần chậm hơn ext2, nhưng trong một vài trường hợp, nhờ thông tin trong journal log mà đầu từ, ổ cứng di chuyển hợp lý hơn, nên tốc độ thao tác dữ liệu nhanh hơn. Đối với những ứng dụng ưu tiên cho độ tin cậy của dữ liệu hơn là tốc độ ghi đơn thuần thì ext3 là lựa chọn thích hợp. Ngoài ra, ext3 còn cho phép cải thiện tốc độ thao tác trên dữ liệu bằng cách thiết lập thông số cho hệ thống chỉ thực hiện journaling đối với thao tác trên dữ liệu (mode: data=writeback và data=ordered). Với mode data=writeback, quá trình khởi động nhanh, dữ liệu được ghi vào đĩa ngay sau khi đã ghi xong thông tin trong journal log (write back), với mode này đôi khi cũng xảy ra tình trạng dữ liệu bị hư nếu sự cố xảy ra ngay sau khi ghi journal log mà chưa kịp ghi vào đĩa, nhưng bù lại tốc độ thao tác file nhanh hơn trong một vài trường hợp. Với chế độ data = ordered, dữ liệu được ghi lên đĩa trước rồi mới đến journal log, cho phép luôn luôn bảo đảm tính toàn vẹn của dữ liệu trong mọi tình huống và đây cũng chính là chế độ mặc định của ext3. Với chế độ data=journal thì việc bảo vệ được thực hiện trên cả hai: dữ liệu và journal log; thông tin được ghi chi tiết và nhiều hơn giúp cải thiện tốc độ truy cập dữ liệu nhờ tối ưu hóa việc di chuyển của đầu từ, hoạt hoạt động rất tốt với kiểu dữ liệu là database hoặc dữ liệu dùng chung trên mạng (NFS). Tuy nhiên do phải đọc lại nhiều loại thông tin trên journal log nên thời gian khởi động lại máy hơi chậm hơn so với hai chế độ trên một chút. Vì bản chất cấu trúc của ext3 được xây dựng hoàn toàn dựa trên cơ sở của ext2 nên ta có thể chuyển đổi dễ dàng các dữ liệu đang tồn tại trên các hệ thống ext2 sang ext3 mà dữ liệu không hề bị ảnh hưởng và thực hiện tương đối dễ dàng, đơn giản. Với kernel Linux từ 2.4.15 trở lên thì ext3 đã có sẵn mà không cần phải phải đưa thêm vào các bản vá (patch) như các phiên bản cũ. Hiện tại hãng Linux RedHat đã đưa sẵn module ext3 vào kernel 2.4.7-10 trong bản RedHat 7.2. CHƯƠNG III: CƠ CHẾ QUẢN LÝ TÀI NGUYÊN PHÂN QUYỀN 3.1. Quyền truy nhập thư mục và file Mỗi file và thư mục trong Linux đều có một chủ sở hữu và một nhóm sở hữu, cũng như một tập hợp các quyền truy nhập. Cho phép thay đổi các quyền truy nhập và quyền sở hữu file và thư mục nhằm cung cấp truy nhập nhiều hơn hay ít hơn. Tính chất kiểm soát truy cập hệ thống file Linux được thực hiện bằng cách sử dụng bộ dữ liệu, được bảo tồn riêng cho từng file này là dữ liệu chung gọi các chế độ truy cập, hoặc gọi là các mod của file. Các chế độ là một phần của file, giữ lại những thông tin trong các hệ thống file đó. Một file của chế độ kiểm soát truy cập có ba lớp: Users : những người dùng sở hữu file Group : những nhóm sở hữu file Other : tất cả những người dùng trên hệ thống. Thông tin về một file có dạng sau (được hiện ra theo lệnh hiện danh sách file ls -l): Hình 3. 1: Diễn tả cơ chế phân quyền của một file Trong đó, dãy 10 ký tự đầu tiên mô tả kiểu file và quyền truy nhập đối với file đó. Theo mặc định, người dùng tạo một file chính là người chủ (sở hữu) của file đó và là người có quyền sở hữu nó. Người chủ của file có đặc quyền thay đổi quyền truy nhập hay quyền sở hữu đối với file đó. Tất nhiên, một khi đó chuyển quyền sở hữu của mình cho người dùng khác thì người chủ cũ không được phép chuyển quyền sở hữu và quyền truy nhập được nữa. Tập hợp một chuỗi có 10 ký tự đó giới thiệu trên đây được chia ra làm 4 phần: kiểu file, các quyền truy nhập đến file của chủ sở hữu, của nhóm sở hữu và người dùng khác. Có một số kiểu file trong Linux. Ký tự đầu tiên trong tập hợp 10 ký tự mô tả kiểu file và quyền truy nhập sẽ cho biết file thuộc kiểu nào (chữ cái đó được gọi là chữ cái biểu diễn). Bảng dưới đây sẽ liệt kê các kiểu file, thư mục trong Linux: Chữ cái biểu diễn Kiểu file, thư mục d Thư mục (directory) b File kiểu khối (block-type special file) c File kiểu ký tự (character-type special file) l Liên kết tượng trưng (symbolic link) p File đường ống (pipe) s Socket - File bình thường (regular file) Bảng 3: Các kiểu thư mục trong Linux 9 ký tự tiếp theo trong chuỗi là quyền truy nhập được chia ra làm 3 nhóm tương ứng với quyền truy nhập của người sử hữu, nhóm sở hữu và người dùng khác. Hình 3. 2: 10 ký tự đầu tiên trong dãy Để hiểu được chính xác quyền truy nhập có ý nghĩa như thế nào đối với hệ thống máy tính phải chú ý, Linux luôn coi mọi thứ là file. Nếu cài đặt một ứng dụng, nó cũng sẽ được xem như mọi chương trình khác, trừ một điều, hệ thống nhận biết rằng một ứng dụng là một chương trình khả thi, tức là nó có thể chạy được. Một bức thư gửi là một dạng file văn bản bình thường, nhưng nếu thông báo cho hệ thống biết đó là một chương trình khả thi, hệ thống sẽ cố để chạy chương trình (và tất nhiên là lỗi). Có ba loại quyền truy nhập chính đối với thư mục/file, đó là: đọc (read - r), ghi (write - w) và thực hiện (execute - x). Quyền đọc cho phép người dùng có thể xem nội dung của file với rất nhiều chương trình khác nhau, nhưng họ sẽ không thể thay đổi, sửa chữa hoặc xóa bất kỳ thông tin nào trong đó. Tuy nhiên, họ có thể sao chép file đó thành file của họ và sửa chữa file bản sao. Quyền ghi là quyền truy nhập tiếp theo. Người sử dụng với quyền ghi khi truy nhập vào file có thể thêm thông tin vào file. Nếu có quyền ghi và quyền đọc đối với một file, có thể soạn thảo lại file đó - quyền đọc cho phép xem nội dung, và quyền ghi cho phép thay đổi nội dung file. Nếu chỉ có quyền ghi, sẽ thêm được thông tin vào file, nhưng lại không thể xem được nội dung của file. Loại quyền truy nhập thứ ba là quyền thực hiện, quyền này cho phép người dùng có thể chạy được file, nếu đó là một chương trình khả thi. Quyền thực hiện độc lập với các quyền truy nhập khác, vì thế hoàn toàn có thể có một chương trình với quyền đọc và quyền thực hiện, nhưng không có quyền ghi. Cũng có trường hợp một chương trình chỉ có quyền thực hiện, có nghĩa là người dùng có thể chạy ứng dụng, nhưng không thể xem được cách nó làm việc hay sao chép nó. Như các chế độ, người sử dụng và quyền sở hữu tài sản của nhóm là một phần của Inode, và cả hai được chỉ định khi nào một file được tạo ra. Thông thường, chủ sở hữu là người tạo ra file này. Các file của nhóm này thường được thiết lập để tạo sự mặc định của nhóm. Nhóm có quyền sở hữu cho biết quyền cho các nhóm thành viên. Những người khác sử dụng là những người không phải là thành viên của các file của nhóm và không phải là file của người được trao quyền. Đối với mỗi một lớp trong 3 lớp của người sử dụng, các chế độ truy cập xác định ba loại quyền khác nhau áp dụng cho các file và thư mục. Quyền Kí hiệu Quyền với file Quyền với thư mục Đọc R Kiểm tra nội dung của file Danh sách nội dung thư mục Ghi w Ghi hoặc thay đổi file Tạo, xóa file trong thư mục Thực thi X Chạy file trong chương trình Truy cập vào thư mục Bảng 4: Các quyền được liệt kê trong bảng 3.2. Chế độ truy cập Ba quyền đọc, ghi, thực thi cho phép áp dụng cho ba lớp khác nhau của người sử dụng: người sử dụng, nhóm, và khác. Đọc, viết, và thực thi sự cho phép được hiển thị trong hình: Hình 3. 3: Chế độ truy cập bit SUID: Là thuộc tính cho các file thực thi duy nhất và không có hiệu lực trên các thư mục. SGID: Thuộc tính hoạt động theo cùng một cách như SUID cho các file thực thi, quá trình cài đặt nhóm chủ sở hữu vào file của nhóm. Ssticky: Tại một thời gian, những bit, áp dụng cho các chương trình thực thi, cờ hệ thống, để giữ một hình ảnh của chương trình trong bộ nhớ sau khi hoàn tất chương trình đang chạy Hình 3. 4: Giới thiệu cách ký hiệu của các quyền truy nhập Tuy nhiên, đối với thư mục thì chỉ có ba loại ký hiệu của các quyền truy nhập là: ---, r- x và rwx, vì nội dung của thư mục là danh sách của các file và các thư mục con có bên trong thư mục đó. Quyền đọc một thư mục là được xem nội dung của thư mục đó và quyền thực hiện đối với một thư mục là quyền tìm được file và thư mục con có trong thư mục. VD: đây là một thư mục và quyền truy nhập. Hình 3. 5: Giải thích quyền truy nhập chi tiết trong 1 thư mục Sự hạn chế trường hợp về quyền truy nhập thư mục được giải thích. Giả sử chỉ có quyền đọc trên thư mục, khi đó sẽ xem được có những file hay thư mục nào trong thư mục nhưng lại không thể xem cụ thể nội dung của một file hay thư mục có trên thư mục đó vì không tìm được nó. Hoặc giả sử có quyền thực hiện - quyền này sẽ cho phép tìm được file có trên thư mục - nhưng lại không có quyền đọc đối với một thư mục, vậy thì khó có thể để biết được trong thư mục có những file nào. 3.2.1. Cách xác lập tương đối Cách xác lập tương đối là dễ nhớ theo ý nghĩa của nội dung các mod và chỉ những thay đổi thực sự mới được biểu diễn trong lệnh. Hình sau đây sẽ mô tả: Hình 3. 6: Các chữ cái biểu diễn mod theo cách xác lập tương đối Có thể kết hợp các mục từ hộp thứ nhất và hộp thứ ba với một mục từ hộp thứ hai để tạo ra một mod. Ví dụ, nếu muốn thêm quyền ghi đối với file test cho tất cả người dùng trong nhóm sở hữu, hãy chọn g cho nhóm sở hữu, + cho thêm quyền truy nhập, và w cho quyền ghi. Lúc đó lệnh chmod sẽ có dạng sau: chmod g+w test 3.2.2. Cách xác lập tuyệt đối Đối với người dùng hiểu sơ bộ về biểu diễn số trong hệ cơ số 8 thì cách xác lập tuyệt đối lại được ưa chuộng hơn. Biểu diễn quyền truy nhập file thông qua dãy gồm 9 vị trí dưới dạng rwxrwxrwx, trong đó từng cụm 3 vị trí theo thứ tự tương ứng với: chủ sở hữu, nhóm sở hữu và người dùng khác. Thuộc tính quyền truy nhập của một file có thể biểu diễn thành 9 bít nhị phân trong đó bít có giá trị 1 thì quyền đó được xác định, ngược lại thì quyền đó bị tháo bỏ. Như vậy, chủ sở hữu tương ứng với 3 bít đầu tiên, nhóm sỡ hữu tương ứng với 3 bít giữa, người dùng khác tương ứng với 3 bít cuối. Mỗi cụm 3 bít như vậy cho một chữ số hệ 8 (nhận giá trị từ 0 đến 7) và thuộc tính quyền truy nhập tương ứng với 3 chữ số hệ 8. Ví dụ, cặp 3 số hệ 8 là 755 tương ứng với dòng 9 bít 111101101 với 111 cho chủ sở hữu, 101 cho nhóm sở hữu, 101 cho người dùng khác. Lệnh :# chmod 753 memo1 Đặt thuộc tính quyền truy nhập đối với file memo1 là rwxr-xr-x. Để dễ xác lập 3 chữ số. Hình 3. 7: Hệ 8 áp dụng cách tính Hình 3. 8: Chế độ chi tiết bit của Mod Thiết lập Truy cập Modes - Khi tạo nhiều file có cùng một thuộc tính thì quyền được gán cho các file là mặc định. - Umask thiết lập một môi trường mà trong đó tác động đến quyền kiểm soát các file mới tạo. Giải thích umask như sau. Giá trị mask (mặt nạ) được thiết lập từ umask khi mask được thiết lập thì thông số này tác động đến quyền truy cập mặc định của file thư mục. - Khi được cung cấp với một số nguyên, umask đặt giá trị cho hệ vỏ gọi là giá trị mask. - Quyền truy cập cho phép = “quyền truy cập mặc định” and (not (Umask)). Dạng thức Áp dụng với file Áp dụng với thư mục Kí hiệu Rw-rw-rw rwxrwxrwx Nhị phân 110110110 111111111 Hệ 8 6 6 6 7 7 7 Bảng 5: Chế độ truy cập ban đầu (mặc định) 3.3. Một số lệnh thay đổi chế độ truy cập 3.3.1. Thay đổi quyền sở hữu file với lệnh chown Để thay đổi quyền sở hữu đối với một file, hãy sử dụng lệnh chown với có pháp như sau: chown [tuy chon] [chon][nhom] Lệnh này cho phép thay chủ sở hữu file. Nếu chỉ có tham số về chủ, thì người dùng ch sẽ có quyền sở hữu file và nhóm sở hữu không thay đổi. Nếu theo sau tên người chủ là dấu "." và tên của một nhóm thì nhóm đó sẽ nhóm sở hữu file. Nếu chỉ có dấu "." và nhóm mà không có tên người chủ thì chỉ có quyền sở hữu nhóm của file thay đổi, lúc này, lệnh chown có tác dụng giống như lệnh chgrp. Các tùy chọn của lệnh chown: -c, --changes : hiển thị dòng thông báo chỉ với các file mà lệnh làm thay đổi sở hữu (số thông báo hiện ra có thể ít hơn trường hợp -v, -verbosr). -f, --silent, --quiet : bỏ qua hầu hết các thông báo lỗi. -R, --recursive : thực hiện đổi quyền sở hữu đối với thư mục và file theo đệ quy. -v, --verbose : hiển thị dòng thông báo với mọi file liên quan mà chown tác động tới (có hoặc không thay đổi sở hữu). --help : đưa ra trang trợ giúp và thoát. Ví dụ: Thư mục LinuxVN.com có thông tin về các quyền truy nhập như sau: drwxr-xr-x 12 thu root 4096 Oct 23 2000 LinuxVN.com Người sở hữu hiện tại thư mục LinuxVN.com là người dùng thu. Để người dùng lan là chủ sở hữu thư mục trên, gõ lệnh: # chown lan LinuxVN.com Khi đó, nếu dùng lệnh ls thì thông tin về thư mục LinuxVN.com sẽ có dạng: drwxr-xr-x 12 lan root 4096 Oct 23 2000 LinuxVN.com Với người sở hữu thư mục bây giờ là người dùng lan. Khi chuyển quyền sở hữu file cho một người khác, người chủ cũ mất quyền sở hữu file đó. 3.3.2. Thay đổi quyền sở hữu nhóm với lệnh chgrp Các file (và người dùng) cũng thuộc vào các nhóm, đây là phương thức truy nhập file thuận tiện cho nhiều người dùng nhưng không phải tất cả người dùng trên hệ thống. Khi đăng nhập, mặc định sẽ là thành viên của một nhóm được root thiết lập tạo tài khoản người dùng. Cho phép một người dùng thuộc nhiều nhóm khác nhau, nhưng mỗi lần đăng nhập chỉ là thành viên của một nhóm. Để thay đổi quyền sở hữu nhóm đối với một hoặc nhiều file, hãy sử dụng lệnh chgrp với có pháp như sau: chgrp [tùy-chọn] {nhóm|--reference=nhómR} Lệnh này cho phép thay thuộc tính nhóm sở hữu của file theo tên nhóm được chỉ ra trực tiếp theo tham số nhóm hoặc gián tiếp qua thuộc tính nhóm của file có tên là nhómR. Các tùy chọn của lệnh là (một số tương tự như ở lệnh chown): -c, --changes : hiển thị dòng thông báo chỉ với các file mà lệnh làm thay đổi sở hữu (số thông báo hiện ra có thể ít hơn trường hợp -v, -verbosr). -f, --silent, --quiet : bỏ qua hầu hết các thông báo lỗi. -R, --recursive : thực hiện đổi quyền sở hữu đối với thư mục và file theo đệ quy. -v, --verbose : hiển thị dòng thông báo với mọi file liên quan mà chgrp tác động tới (có hoặc không thay đổi sở hữu). --help : hiển thị trang trợ giúp và thoát. Tham số --reference=nhómR cho thấy cách gián tiếp thay nhóm chủ của file theo nhóm chủ của một file khác (tên là nhómR) là cách thức được ưa chuộng hơn. Tham số này là xung khắc với tham số nhóm của lệnh. 3.3.3. Thay đổi quyền truy cập file với lệnh chmod Chế độ truy cập có thể được thay đổi với chmod lệnh, tương đương chế độ truy cập tượng trưng hoặc truy cập vào chế độ kỹ thuật chi tiết. Hình 3. 9: Ký tự đặc biệt đối với lệnh chmod Cú pháp lệnh chmod có ba dạng: chmod [tùy-chọn] chmod [tùy-chọn] chmod [tùy-chọn] --reference=nhómR Lệnh chmod cho phép xác lập quyền truy nhập theo kiểu (mode) trên file. Dạng đầu tiên là dạng xác lập tương đối, dạng thứ hai là dạng xác lập tuyệt đối và dạng cuối cùng là dạng gián tiếp chỉ dẫn theo quyền truy nhập của file nhómR. Các tùy chọn của lệnh chmod được liệt kê như dưới đây và có ý nghĩa tương tự các tuỳ chọn tương ứng của các lệnh chown, chgrp: -c, --changes -f, --silent, --quiet -v, --verbose -R, --recursive --help và tham số --reference=RFILE cũng ý nghĩa gián tiếp như trong lệnh chgrp. CHƯƠNG IV: BẢO MẬT TRÊN LINUX 4.1. Xác định và ngắt các dịch vụ không cần thiết Mặc dù các mã cài đặt mặc định từ đĩa CD phân phối Linux khiến cho việc cài đặt Linux dễ dàng hơn, nhưng chúng cũng thêm một số lượng lớn các dịch vụ vào hệ thống, khi chưa sử dụng dịch vụ này hoặc trường hợp xấu nhất là rời các cổng để mở cho các cuộc tấn công từ bên ngoài. Càng chạy nhiều dịch vụ thì càng nhiều cổng cho những kẻ xâm nhập. Vì thế để bảo vệ hệ thống, tốt nhất là tắt các dịch vụ không cần thiết. 4.1.1. Tìm kiếm các dịch vụ đang sử dụng Trước tiên cần quyết định những dịch vụ nào không cần thiết, những dịch vụ nào đang được dùng. Để thực hiện điều này, chạy netstart. Đầu tiên mở một cửa sổ cuối và sử dụng lệnh su để chuyển tới root. Rồi nhập lệnh #netstart –tap > listening.services,#netstart-tap >list, theo sau bởi lệnh #less listening.services Ở redhat cũng có thể dùng #chkconfig --list Những lệnh này sẽ hiển thị một danh sách tất cả các dịch vụ hiện đang chạy với trạng thái LISTEN. Đồng thời cũng liệt kê PID của các dịch vụ và tên của chương trình bắt đầu các dịch vụ. . Nếu không thể xác định một dịch vụ được liệt kê, có lẽ không cần nó. Nếu dịch vụ này không hiển nhiên từ đầu, sử dụng lệnh ps, find, grep hoặc locate để tìm thêm nhiều thông tin về các chương trình hay các PID đặc biệt. Đồng thời cũng kiểm tra /etc/services cho một số tên dịch vụ hay số cổng. Các dịch vụ hệ thống được bắt đầu bởi mã init được tìm thấy tại /etc/init.d/ (hay tại một số phân phối, kể cả Red Hat trong /etc/rc.d/init.d/). Sử dụng ls trên thư mục này để đưa một danh sách các mã. 4.1.2. Quyết định ngắt các dịch vụ nào Khi lập kế hoạch sử dụng hệ thống Linux như một máy để bàn độc lập với truy nhập vào Internet, đầu tiên cần phải kiểm tra liệu có bất kỳ dịch vụ nào được liệt kê trong bảng đang hoạt động không. Dịch vụ Giới thiệu NFS (Network File System) và các dịch vụ liên quan: nfsd, lockd, mountd, statd, portmapper... NFS là dịch vụ UNIX chuẩn để chia sẻ các file thông qua mạng. Chỉ nên được sử dụng để chia sẻ các file thông qua mạng LAN, không nên qua Internet. Không nên bật hệ thống NFS trên hệ thống độc lập. r* services: rsh, rlogin, rexec, rcp… Sẽ được liệt kê trong các đầu ra netstat mà không cần r (rlogin sẽ được liệt kê là login). Nếu cần thiết, sử dụng ssh thay thế. Máy chủ telnet Sử dụng sshd thay thế. Máy chủ ftp  Chỉ sử dụng với các máy chủ ftp chuyên dụng có thể được kiểm tra và bảo mật. Đối với các file trao đổi khác, sử dụng scp hoặc http. BIND (named), gói DNS Server Dịch vụ này được yêu cầu cho các hoạt động hệ thống như là tên các máy chủ cho miền. Chúng nên được hạn chế hay đặt trong tường lửa khi sử dụng qua Internet. Nhân tố chuyển thư: sendmail, exim, postfix, qmail Những dịch vụ này là không cần thiết cho các máy tính độc lập mà sẽ sử dụng một dịch vụ ISP’s POP nhận trực tiếp thư từ các máy chủ Internet trên mạng LAN, chỉ cho phép các dịch vụ này sau tường lửa, truy nhập các chính sách đúng chỗ. Bảng 6: Các dịch vụ tiêu biểu không nên cho phép hoạt động trên Internet Ghi chú trong bảng thật sự là rlogin, rsh và cần phải được ngắt. Chẳng hạn, netstat thông báo rằng các dịch vụ login và shell đang chạy. Telnet và ftp được liệt kê như những máy chủ chấp nhận các kết nối đầu vào tới máy. Bởi vì đây là một hệ thống tách rời, cần phải tắt các dịch vụ này. Luôn luôn sử dụng máy khách ftp hay telnet khi cần tải fi

Các file đính kèm theo tài liệu này:

  • docCơ chế bảo vệ an toàn dữ liệu trên hệ điều hành Linux.doc