Mẹo giữ server Ubuntu Linux của bạn an toàn
lượt xem 5
download
Mẹo giữ server Ubuntu Linux của bạn an toàn .Khi là quản trị viên hệ thống, một trong những nhiệm vụ trọng yếu của bạn là xử lý các vấn đề bảo mật server. Nếu server của bạn được kết nối Internet, bạn nên đặt nó trong vùng xung đột. Nếu đó chỉ là một server nội bộ, bạn vẫn cần xử lý (có thể là một cách ngẫu nhiên) những đối tượng nguy hiểm, các nhân viên chống đối hay gã kế toán nào đó muốn đọc trộm e-mail bí mật của sếp. Thông thường Ubuntu Server rất an toàn. Ubuntu...
Bình luận(0) Đăng nhập để gửi bình luận!
Nội dung Text: Mẹo giữ server Ubuntu Linux của bạn an toàn
- Mẹo giữ server Ubuntu Linux của bạn an toàn
- Khi là quản trị viên hệ thống, một trong những nhiệm vụ trọng yếu của bạn là xử lý các vấn đề bảo mật server. Nếu server của bạn được kết nối Internet, bạn nên đặt nó trong vùng xung đột. Nếu đó chỉ là một server nội bộ, bạn vẫn cần xử lý (có thể là một cách ngẫu nhiên) những đối tượng nguy hiểm, các nhân viên chống đối hay gã kế toán nào đó muốn đọc trộm e-mail bí mật của sếp. Thông thường Ubuntu Server rất an toàn. Ubuntu Server Team - nhóm sản xuất các phiên bản update bảo mật văn phòng - đã thực hiện lần lột xác thành công nhất trong lịch sử ngành công nghiệp bảo mật với Ubuntu Server. Ubuntu không được gắn với chính sách cổng mở. Có nghĩa là sau khi bạn cài đặt, để chế dộ desktop hay server cho Ubuntu xong, mặc định sẽ không có chương trình ứng dụng nào chấp nhận kết nối đến internet. Giống như Ubuntu desktop, Ubuntu Server sử dụng cơ chế sudo trong quản trị hệ thống, tránh sử dụng tài khoản gốc. Các bản update bảo mật còn được bảo hành ít nhất 18 tháng sau khi phát hành (một số bản lên đến 5 năm như Dapper) và hoàn toàn miễn phí.
- Trong phần này chúng tôi muốn bàn về vấn đề bảo mật file hệ thống, các giới hạn nguồn hệ thống, xử lý các bản ghi và an ninh mạng. Nhưng bảo mật trong Linux là một đề tài khó và rộng lớn nên chúng tôi chỉ xin cung cấp cho các bạn một số cách giải quyết xung đột cơ bản. Để trở thành một quản trị viên tốt, bạn nên quan tâm tới vấn đề này và học hỏi thêm từ các nguồn khác mà chúng tôi sẽ cung cấp trong bài. Quản trị tài khoản người dùng Nhiều khía cạnh quản trị người dùng của hệ thống Linux được thực hiện nhất quán trên các phân phối của nó. Trước đây, hãng Debian cung cấp một số tiện ích như mã lệnh useadd, giúp bạn quản trị dễ dàng hơn. Sau này Ubuntu kế thừa đầy đủ mô hình quản trị người dùng của Debian. Chúng ta sẽ không đi sâu vào chi tiết của Debian mặc dầu nó được coi là mô hình chuẩn trong quản trị người dùng. Các bạn muốn tìm hiểu thêm có thể tham khảo tại website của O’Reilly. Vấn đề chúng ta quan tâm ở đây là sự khác biệt của Ubuntu với mô hình chuẩn: sudo.
- Ubuntu không cho phép đặt mặc định root, administrator, account. Nó có cách xử lý lợi ích bảo mật khá hay và một số phương án giảm cấp đáng kinh ngạc. Đó là văn bản hoá tất cả trong các trang chính của file gốc sudo_root. Trong quá trình cài đặt, bạn thêm vào người dùng nào thì mặc định người dùng đó sẽ được đặt trong nhóm admin và có thể dùng sudo để thực hiện các nhiệm vụ quản trị hệ thống. Sau khi thêm tên người dùng mới vào hệ thống, bạn có thể đưa họ vào nhóm admin bằng câu lệnh: $ sudo adduser username admin Nếu muốn loại một người nào ra khỏi nhóm admin, đơn giản bạn chỉ cần đặt lệnh deluser thay thế adduser. Một điều bạn nên chú ý là sudo không chỉ cung cấp quyền truy cập thư mục gốc. Nó còn có thể điều khiển các quyền nhỏ bên trong, chẳng hạn như việc ra lệnh: “chỉ cho phép người dùng này thực thi 3 câu lệnh với các đặc quyền của superuser”
- Tài liệu mô tả các quyền này nằm trong trang “sudoers” nhưng nó khá khó hiểu. Bạn chỉ cảm thấy rõ ràng hơn đôi chút khi đọc đến phần ví dụ của nó, tài liệu này cung cấp hầu hết các tình huống bạn cần dùng đến sudo. Khi đã thực sự hiểu, đơn giản bạn chỉ cần chạy câu lệnh: $ visudo Ở đây bạn phải cẩn thận. Cơ sở dữ liệu sudoers, nằm trong “/etc/sudoers” không mở được bằng một trình soạn thảo. Bởi vì một trình soạn thảo không thể kiểm tra được cú pháp. Nếu bạn làm rối cơ sở dữ liệu sudoers, có thể bạn sẽ phải tự mình tra tìm dữ liệu mà không thể trở thành người quản trị được. Bảo mật hệ thống file Mô hình bảo mật file được chuẩn hoá trong hầu hết các hệ thống tựa Unix và được gọi là mô hình POSIX. Mô hình này có 3 quyền truy cập file và thư mục mở rộng cho: người sở hữu, nhóm và các đối tượng khác. Tất cả đều
- được thực hiện giống nhau tại bất kỳ phân phối Linux nào. Đó là lý do vì sao chúng ta không tập trung phân tích kỹ vấn đề này. Các bạn có thể tham khảo thêm tại các trang “chmod” và “chown” trong phần trợ giúp của Linux hoặc trên Internet. Bây giờ chúng ta sẽ tập trung vào việc phân vùng bảo mật thông qua các tuỳ chọn lắp ghép, một vấn đề quan trọng cần chú ý khi xử lý bảo mật hệ thống. Việc phân vùng sẽ có tác động mạnh nếu được dùng thích hợp. Khi giải thích cách thức phân vùng hệ thống chúng tôi đã nhấn mạnh ưu điểm của Linux trong việc cung cấp các thư mục “/home”, “/tmp”, “/var” cho các phân vùng riêng. Các thư mục này đề cập đến cách dùng các tuỳ chọn đặc biệt khi ghép các phần vùng vào hệ thống file. Nhiều tuỳ chọn lắp ghép là kiểu hệ thống file phụ thuộc. Nhưng những tuỳ chọn chúng ta xét đến không phải loại này. Chúng ta có một số tuỳ chọn sau: nodev: Một hệ thống file lắp ghép với tuỳ chọn nodev sẽ không cho phép sử dụng hay tạo các file “device” đặc biệt. Chẳng có lý do tốt đẹp nào khi cho phép hệ thống file biên dịch các ổ đặc biệt block, character vì như thế tức là
- cho phép chúng tạo ra các nguy hiểm bảo mật tiềm ẩn. nosuid Các file trong Unix nói chung và trong Linux nói riêng đều có thể được đánh dấu bằng cờ để cho phép một người nào đó thực thi file bằng quyền của người khác hay nhóm khác, thông thường là của người quản trị hệ thống. Cờ này được gọi là setuid (suid) hay cờ nhị phân setgid bit. Nó cũng cho phép thực thi file bên ngoài thư mục chứa các mã nhị phân hệ thống không cần thiết, làm giảm độ an toàn. Nếu một người dùng được quyền sử dụng thì anh ta có thể tạo hoặc lấy một cờ nhị phân suid theo cách chọn riêng. Sau đó có thể sử dụng hệ thống một cách hiệu quả. noexec: nếu một hệ thống file được đánh dấu cờ là noexec, người dùng sẽ không thể chạy bất kỳ chương trình thực thi nào nằm trong nó. noatime cờ này nói rằng hệ thống file không giữ bản ghi lần truy cập cuối cùng của các file. Nếu sử dụng một cách bừa bãi có thể khiến giảm an toàn hệ thống. Vì nó giới hạn thông tin ghi sự cố bảo mật. Cờ này cũng cung cấp các lợi ích thực thi cho bất kỳ kiểu dùng nào. Bạn nên dùng trên các phân vùng, nơi bảo mật cân bằng với tốc độ.
- Quyết định sử dụng tuỳ chọn lắp ghép nào trong phân vùng nào là một kỹ thuật cao. Bạn sẽ thường xuyên phải phát triển các tham chiếu khi trở nên quen thuộc hơn với cơ chế quản trị. Dưới đây là kiểu lựa chọn cơ bản các bạn có thể tham khảo. Tất nhiên các bạn có thể lựa chọn kiểu khác, nhưng nên bắt đầu bằng kiểu cơ bản này: • /home-nosuid, nodev • /tmp-noatime, noexec, nodev, nosuid • /var-noexec, nodev, nosuid Giới hạn nguồn hệ thống Mặc định Linux sẽ không sử dụng bất kỳ giới hạn nguồn nào trong các tiến trình của người dùng. Điều này có nghĩa là bất kỳ người dùng nào đều được tự do lấp đầy bộ nhớ làm việc trên máy, hoặc sinh ra các tiến trình lặp vô hạn, trả lại hệ thống không dùng được trong vài giây. Giải pháp khắc phục là thiết lập một số giới hạn nguồn bằng cách chỉnh sửa file “/etc/security/limits.conf”: $ sudoedit /etc/security/limits.conf
- Các thiết lập đều được giải thích trong các comment bên trong file. Các bạn nên dùng ít nhất là giới hạn “nproc” hoặc cũng có thể là “as/data/_memlock/rss”. Mẹo nhỏ: một ví dụ giới hạn nguồn real-life Chúng tôi mới chỉ giới thiệu sơ lược về các giới hạn như thế nào trên các server sản xuất. Dưới đây là cấu hình server đăng nhập chung của Bộ môn khoa học máy tính, trường đại học Harvard, Hoa Kỳ: as 2097152 ___________________ data 131072 ___________________ memlock 131072 ___________________ rss 1013352 ___________________
- hard nproc 128 Các giới hạn này quy định người dùng có thể sử dụng 128 tiến trình, với không gian địa chỉ lớn nhất là 2GB, kích thước dữ liệu nhỏ nhất và địa chỉ được khoá trong bộ nhớ là 128MB, giới hạn kích thước tập hợp lưu trú lớn nhất là 1GB. Các file bản ghi hệ thống Khi là một quản trị viên hệ thống, các file bản ghi log là một trong số những người bạn tốt nhất của bạn. Nếu bạn theo dõi các file này một cách thưòng xuyên, cẩn thận, bạn sẽ phát hiện được lỗi sai trong hệ thống ngay khi nó vừa xuất hiện. Do đó bạn có thể giải quyết được hầu hết mọi vấn đề trước khi chúng kịp phát sinh. Đáng tiếc, khả năng quan tâm tới các file log này ngày càng giảm. Vì thế các quản trị viên thường chỉ sử dụng phần mềm thực hiện tiến trình log, cảnh báo họ một số sự kiện nào đó, hoặc ghi các tuỳ chọn riêng của họ theo một số
- ngôn ngữ như Perl và Python. Các bản ghi log thường nằm trong thư mục “/var/log”. Sau khi server của bạn chạy được một lúc, bạn sẽ thấy có rất nhiều phiên bản file log cũ đang tăng lên trong thư mục này. Nhiều trong số chúng được nén trong chương trình nén gzip (với đuôi mở rộng là “.gz”). Dưới đây là một số file log cần chú ý: /var/log/syslog – file log hệ thống thông thường /var/log/auth.log – các file log thẩm định hệt thống /var/log/mail.log -- các file log thư hệ thốngsystem /var/log/messages – các tin nhắn log thông thường /var/log/dmesg – tin nhắn bộ đệm chuông ở nhân kernel, thông thường từ khi khởi động hệ thống. Hộp công cụ Toolbox Log Khi xem lại các file log, có một vài công cụ lựa chọn mà bạn phải sử dụng thuần thục. Phần cuối của các tiện ích được in ra đặt mặc định là mười dòng
- cuối cùng của file, đây là tùy chọn gọn nhỏ cho biết thông tin về lần cuối cùng truy cập vào file log. $ tail /var/log/syslog Với tham số -f, phần đuôi được đưa vào theo mẫu dưới, nó sẽ mở các file và thể hiện sự thay đổi trên màn hình cho bạn biết. Các file z.grep, zcat, zless cũng hoạt động giống như các file tương ứng không có chữ “z” ở đầu. Các file này là kiểu file nén của gzip. Ví dụ, để lấy ra danh sách các dòng trong tất cả file log nén có từ “warthog” bạn chỉ cần cung cấp câu lệnh sau: $ zgrep -i warthog /var/log/*.gz Hộp công cụ Toolbox của bạn xử lý các log phát triển theo kinh nghiệm và dựa trên các tham chiếu của bạn nhưng bạn nên tìm kiếm trong apt-cache các file log trước.
- Một chút về bảo mật mạng Quản trị bảo mật mạng là một thành phần khác, được hệ điều hành cung cấp theo mảng khá rộng. Giữa Ubuntun và các mô hình phân phối khác của Linux không có sự khác nhau nhiều lắm. Câu lệnh iptables là phần mặt trước tới các bảng tường lửa rất mạnh của Linux. Thật không may, thao tác xử lý với iptables có thể khó hơn nhiều nhất là khi bạn đang cố gắng thiết lập các chính sách firewall tổng hợp. Câu lệnh dưới đây xoá tất cả các gói dữ liệu đến từ một tên miền xấu: $ sudo iptables -A INPUT -s www.slashdot.org -j DROP Các tài liệu hướng dẫn, các cách thức thực hiện và các bài báo về iptables có trên Internet với số lượng lớn và hệ thống trang chính cung cấp thông tin chi tiết về các tuỳ chọn thích hợp. Bạn nên bỏ ra một chút thời gian học về iptables vì nó sẽ cho phép bạn cài đặt chế độ bảo mật an toàn trên bất kỳ cơ chế Linux nào và sẽ dễ dàng hơn khi học về các hệ thống tường lửa OS khác.
- Những điểm cần chú ý cuối cùng về bảo mật Trong bài này chúng ta mới chỉ lướt qua các vấn đề bề mặt của bảo mật hệ thống. Mặc dù chúng tôi đã cố gắng cung cấp cho các bạn các gợi ý hay về điểm bắt đầu và nơi có thể học hỏi thêm. Nhưng thật sự là không có một hệ thống bảo mật hoàn hảo nào cả. Bảo mật không có nghĩa là xoá bỏ được hoàn toàn các vi phạm, mà chỉ là làm cho chúng trở nên khó bị khai thác, khó bị tấn công. Định nghĩa này có thể bị thay đổi dễ dàng. Bởi nó còn phụ thuộc vào kẻ tấn công. Nếu kẻ tấn công là một đứa trẻ bụi đời, sống trong tầng hầm, nhai bánh pizza lạnh thì nó có thể chán nản, dễ dàng bỏ cuộc nếu hàng rào an ninh của bạn quá an toàn. Nhưng nếu bạn đang giữ các thông tin bí mật đắt giá thì cho dù hệ thống bảo mật có an toàn đến đâu vẫn có thể bị phá vào một ngày nào đó. Bởi hoạt động phá hoại lúc này xuất phát từ quan điểm giá cả, lợi nhuận của kẻ tấn công. Bảo mật cũng khá rõ ràng, vì nó được phát triển như là một khái niệm trong khoa học máy tính. Muốn bảo mật thật tốt đòi hỏi phải thực sự hiểu sâu về các hoạt động bên trong hệ thống máy tính. Tuy nhiên cũng sẽ chẳng có cải tiến đáng kể nào nếu bạn hiểu sâu về nó mà không biết bắt đầu từ đâu. Các
- bạn có thể bắt đầu ngay từ hôm nay, theo những tham khảo ở trên, và dùng nó để nâng cao kiến thức bảo mật sau này của bạn.
CÓ THỂ BẠN MUỐN DOWNLOAD
Chịu trách nhiệm nội dung:
Nguyễn Công Hà - Giám đốc Công ty TNHH TÀI LIỆU TRỰC TUYẾN VI NA
LIÊN HỆ
Địa chỉ: P402, 54A Nơ Trang Long, Phường 14, Q.Bình Thạnh, TP.HCM
Hotline: 093 303 0098
Email: support@tailieu.vn