20 cách giúp tăng cường bảo mật cho Linux server – Phần 3


Chúng ta sẽ tiếp tục cùng tìm hiểu thêm 5 cách  trong phẩn 3 này để bảo mật cho Linux server

Xem thêm:
20 cách giúp tăng cường bảo mật cho Linux server – Phần 1
20 cách giúp tăng cường bảo mật cho Linux server – Phần 2
20 cách giúp tăng cường bảo mật cho Linux server – Phần 3

#11: Cấu hình cho Iptables và TCPWrappers

Iptables là một chương trình hoạt động ở user space (hay userland, user mode – vùng bộ nhớ dành cho các chương trình người dùng, trái với kernel space – vùng bộ nhớ dành riêng cho các chương trình hệ thống như hệ điều hành, driver,…). Iptables cho phép bạn cấu hình tính năng firewall (Netfilter) được cung cấp bởi Linux kernel. Bạn sử dụng firewall để cản lọc các gói tin đi vào và đi ra từ máy tính hoặc hệ thống mạng của bạn.

Bên cạnh đó, TCPWrappers – một hệ thống kiểm soát truy cập mạng cho host (host-based networking ACL system) cho phép bạn lọc các yêu cầu kết nối ra mạng ngoài (ví dụ, Internet). Bạn có thể ngăn chặn nhiều cuộc tấn công từ chối dịch vụ với sự trợ giúp của Iptables. Xem thêm:

#12: Bảo vệ Linux Kernel với /etc/sysctl.conf

File /etc/sysctl.conf được sử dụng để cấu hình các tham số cho kernel tại thời điểm kernel được thực thi. Linux đọc và áp dụng các thiết lập trong file này tại quá trình khởi động. Dưới đây là nội dung mẫu của file /etc/sysctl.conf

# Turn on execshield

kernel.exec-shield=1

kernel.randomize_va_space=1

# Enable IP spoofing protection

net.ipv4.conf.all.rp_filter=1

# Disable IP source routing

net.ipv4.conf.all.accept_source_route=0

# Ignoring broadcasts request

net.ipv4.icmp_echo_ignore_broadcasts=1

net.ipv4.icmp_ignore_bogus_error_messages=1

# Make sure spoofed packets get logged

net.ipv4.conf.all.log_martians = 1

#13: Chia tách các phân vùng ổ cứng

Tách biệt các file của hệ điều hành khỏi các chương trình, dữ liệu cá nhân của người dùng. Hay nói cách khác, đặt các loại dữ liệu này trên các phân vùng khác nhau, sẽ giúp hệ thống chạy ổn định và an toàn hơn. Đảm bảo rằng các hệ thống file (filesystem) dưới đây được gắn (mount) trên các phân vùng riêng rẽ:

  • /usr
  • /home
  • /var và /var/tmp
  • /tmp

Tạo thêm các phân vùng tách biệt cho Apache và FTP server.  Chỉnh sửa file /etc/fstab và chắc rằng bạn đã thêm vào các tùy chọn cấu hình sau:

  1. noexec – Không gán quyền thực thi (execute) cho các file nhị phân (binary) trên phân vùng này. Điều này sẽ ngăn cản việc thực thi file binary nhưng cho phép chạy các script.
  2. nodev – Không cho phép (hoặc diễn dịch) các thiết bị kiểu character hoặc thiết bị kiểu block trên phân vùng này.
  3. nosuid – Các SUID/SGID sẽ mất hiệu lực trên phân vùng này.

Chú thích:

–   character device: thiết bị cho phép đọc/ghi 0 hoặc nhiều byte thành từng luồng (stream) có kích thước không cố định. Ví dụ; TTY, bàn phím…

–    block device: thiết bị cho phép đọc/ghi lên nó một khối các byte có kích thước cố định. Ví dụ: ổ cứng, ổ flash…

Ví dụ, một dòng mẫu trong file /etc/fstab dưới đây sẽ giới hạn việc truy cập của người dùng trên phân vùng /dev/sda5 (thư mục gốc trên FPT server):

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

#13.1: Hạn ngạch ổ đĩa (Disk Quotas)

Hãy chắc rằng Disk Quota được kích hoạt cho tất cả người dùng. Để triển khai Disk quotas, bạn làm theo các bước sau:

  1. Kích hoạt quotas trên các filesytem bằng cách chỉnh sửa file /etc/fstab.
  2. Mount lại các filesystem đó.
  3. Tạo các file cơ sở dữ liệu cho quota và khởi tạo bảng sử dụng ổ cứng.
  4. Gán các chính sách hạn ngạch (quota policy).
  5. Xem chi tiết các bước làm tại đây.

#14: Tạm thời tắt IPv6

Internet Protocol version 6 (IPv6) là một giao thức mới hoạt động ở tầng Internet của bộ giao thức mạng TCP/IP. IPv6 đang dần thay thế cho IPv4 do những lợi ích mà nó mang lại. Hiện tại, vẫn chưa có công cụ tốt nào có thể kiểm tra các vấn đề bảo mật trên hệ thống hỗ trợ IPv6. Hầu hết các Distro Linux đã bắt đầu hỗ trợ giao thức IPv6. Các cracker có thể gửi các lưu lượng độc hại thông qua IPv6 vì hầu hết các quản trị viên chưa giám sát các lưu lượng IPv6 này. Vì thế, trừ khi hệ thống mạng yêu cầu sử dụng IPv6, tốt nhất bạn nên tạm thời vô hiệu hóa IPv6 hoặc cấu hình trên Firewall để cản lọc các gói tin IPv6. Xem thêm:

#15: Loại bỏ các bit SUID/SGID khỏi các file không cần thiết phải bật các bit này

Tất cả các file có các bit SUID/SGID được bật có thể bị lạm dụng khi các file này có lỗi hoặc chứa lỗ hổng bảo mật. Các người dùng cục bộ hoặc ở xa đều có thể chạy các file như vậy. Việc tìm ra các file có bật các bit SUID/SGID một cách không cần thiết là một ý tưởng tốt. Sau đây là cách hiện thực ý tưởng này với lệnh find

#Tìm tất cả các file có bật bit SUID

find / -perm +4000

# Tìm tất cả các file có bật bit SGID

find / -perm +2000

# Hoặc kết hợp cả 2 thao tác trên với một lệnh duy nhất

find / \( -perm -4000 -o -perm -2000 \) –print

find / -path -prune -o -type f -perm +6000 –ls

Tiếp đến, bạn cần xem manpage của từng file để tìm hiểu về chức năng của nó. Nếu file nào không cần thiết phải có bit SUID/SGID được bật, bạn gõ lệnh sau để loại bỏ các bit này khỏi file:

# chmod u-s filename

# chmod g-s filename

#15.1: Các file có thể được ghi bởi bất kỳ ai (world-writable file)

Bất kỳ ai có thể chỉnh sửa các world-writable file sẽ dẫn tới rủi ro về bảo mật. Sử dụng lệnh sau để tìm tất cả các thư mục con dạng world-writable trong thư mục /dir và các thư mục này có sticky bit được bật.

find /dir -xdev -type d \( -perm -0002 -a ! -perm -1000 \) -print

Sau đó, bạn cũng cần tìm hiểu kỹ về từng file và thư mục trong kết quả đầu ra của lệnh để cấp phát quyền hạn truy cập phù hợp cho chúng.

#15.2: Các file không thuộc quyền sở hữu của bất kỳ ai (noowner file)

Tìm các file như vậy với lệnh sau:

find /dir -xdev \( -nouser -o -nogroup \) –print

Sau đó, bạn cũng cần tìm hiểu kỹ về từng file và thư mục trong kết quả đầu ra của lệnh để cấp phát quyền hạn truy cập phù hợp hoặc xóa chúng.

–manthang

2 comments

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s