Thursday, June 12, 2014

Linux Security Hardening - Phần 1



     Các phiên bản của Linux luôn được nhắc tới với việc an toàn hơn Windows. Tuy nhiên có nhiều tính năng về bảo mật không được kích hoạt mặc định khi mới cài. Trong loạt bài này mình sẽ trình bày về một số chính sách nên được thiết lập để đảm bảo tính an toàn cho hệ thống Linux. 
     *** Bài viết được đưa ra với tinh thần học hỏi là chính, rất mong nhận được những góp ý từ các bạn.  ***

1.      Các vấn đề chung   

  •  Mã hóa dữ liệu truyền trên mạng. Mã hòa thông tin xác thực người dùng (như password) là điều tối quan trọng.
  • Cài đặt và chạy ít nhất các phần mềm có thể để giảm thiểu các lỗ hổng từ các phần mềm này.
  • Sử dụng phần mềm hoặc công cụ tăng cường tính an ninh cho hệ thống (như SELinux, Iptables). 
  •  Chạy mỗi dịch vụ mạng độc lập nếu có thể. Nhằm giảm thiểu tối đa các nguy cơ khi một dịch vụ bị lộ lọt gây ảnh hưởng tới các dịch vụ khác. 
  •  Chính sách với tài khoản người dùng: thiết lập một chính sách mật khẩu tốt và ép buộc phải sử dụng. Xóa các tài khoản không sử dụng. 
  •  Review log hệ thống và ứng dụng định kỳ. Gửi log tới một server độc lập khác để ngăn ngừa các nguy cơ bị chỉnh sửa hoặc xóa log. 
  •  Không bao giờ đăng nhập với tài khoản root, trừ khi thật sự cần thiết. Để quản trị hệ thống thì chỉ nên sử udnjg sudo để thực thi các lệnh với quyền root khi cần. Những account có thể sử dụng sudo được định nghĩa trong /etc/sudoers, chỉnh sửa với lệnh visudo. Mặc định, log được ghi trong /var/log/secure.
 2.      Physical security
  
Thiết lập mật khẩu cho BIOS và không cho phép boot từ ổ CD/DVD, floppies, và các thiết bị ngoại vi khác.

Tiếp theo thiếp lập mật khẩu cho Grub. Sinh password sử dụng câu lệnh sau: 
     /sbin/grub-md5-crypt 


Sau đó thêm dòng sau vào /etc/grub.conf: 
     Password –md5 passwordhash 

Để ngăn chặn người dùng truy cập vào single user mode hoặc that đổi thiết lập khi boot
  
3.      Disk partitions và mounting

Trong quá trình khởi tạo cài đặt chắc chắn rằng filesystem mà người dùng có thể ghi được mount với các phân vùng riêng rẽ: /home, /tmp, /var/tmp, /var, /usr.

Trong quá trình cài đặt hệ thống, tùy chọn thay đổi mount trong /etc/fstab để giới hạn người dùng được phép truy cập vào filesystems. Mặc định tùy chọn này là rw, suid, dev, exec, auto, nouser, async. Sử dụng noexec đề ngăn ngừa thực thi các binaries trong file hệ thống (Tuy nhiên các script vẫn có thể thực thi). Sử dụng nosuid sẽ ngăn chặn thiết lập bit suid. Tùy chọn nodev ngăn chặn việc sử dụng device file trong filesystem.

Ví dụ: thiết lập giới hạn quyền người dùng trong /dev/sda5 (ftp server root directory)

                   /dev/sda5  /ftpdata          ext3    defaults,nosuid,nodev,noexec 

4.      Cấu hình và sử dụng SELinux
Mặc định chính sách SELinux được gọi là targeted, được đưa ra để bảo vệ tránh các mối nguy hại hoặc các cấu hình dịch vụ trong hệ thống chưa chuẩn. Chính sách này không gây trở ngại đối với hoạt động bình thường của hệ điều hành. Chắc chắn rằng file /etc/selinux/config đã gồm các thiết lập sau: 
           SELINUX=enforcing

SELINUXTYPE=targeted

5.      Giữ cho các phần mềm và kernel được cập nhật thường xuyên

Theo mặc định thì phiên bản của dịch vụ yum-updatesd hoạt động không thực sự ổn định. Do vậy, giải pháp tốt nhất là nên sử dụng cron job để cập nhập. Đầu tiên, disable service như sau:

       /sbin/chkconfig yum-updatesd off

Tiếp theo tạo file update.cron, để nó được thực thi, có thể đưa vào /etc/cron.daily hoặc /etc/cron.weekly. Nội dung như sau:

    #!bin/sh

    /usr/bin/yum –R 120 –e 0 –d –y update yum

    /usr/bin.yum –R 10 –e 0 –d 0 –y update
(còn nữa)
-- Jukai Helios --

No comments:

Post a Comment