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


Tiếp theo phần 1 của loạt bài viết về bảo mật cho Linux server. Ở phần 2 này, tôi xin giới thiệu tới các bạn 5 cách nữa để tăng cường an ninh cho máy chủ chạy Linux.

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

#6: Quản lý tài khoản người dùng và chính sách mật khẩu mạnh

Sử dụng lệnh useradd/usermod để tạo và quản lý các tài khoản người dùng. Hãy đảm bảo rằng bạn áp dụng chính sách mật khẩu mạnh. Ví dụ, một mật khẩu mạnh bao gồm ít nhất 8 ký tự và kết hợp cả chữ cái, chữ số, ký tự đặc biệt, chữ hoa, chữ thường… Nhưng hầu hết mọi người đều chọn một mật khẩu dễ ghi nhớ. Điều này tạo cơ hội để hacker sử dụng các công cụ như John the ripperđể dò tìm các mật khẩu yếu trên server của bạn. Cấu hình file pam_cracklib.so để thực thi chính sách mật khẩu mà bạn mong muốn.

#6.1: Thời gian tồn tại của mật khẩu (password aging)

Lệnh chage cho phép thay đổi số ngày giữa các lần thay đổi mật khẩu và ngày thay đổi mật khẩu lần cuối. Dựa vào 2 thông tin này, hệ thống sẽ xác định xem khi xem nào người dùng cần thay đổi mật khẩu của họ. File /etc/login.defs cũng bao gồm cấu hình password aging.

Để vô hiệu hóa password aging, tức là mật khẩu sẽ không bao giờ hết hạn, bạn gõ lệnh sau:

# chage -M 99999 userName

Để xem thông tin về thời gian mãn hạn của mật khẩu, gõ:

# chage -l userName

Cuối cùng, bạn cũng có thể chỉnh sửa file /etc/shadow file theo sự giải thích về các trường dưới đây:

{userName}:{password}:{lastpasswdchanged}:{Minimum_days}:{Maximum_days}:{Warn}:{Inactive}:{Expire}:

  1. Minimum_days: Số ngày tối thiểu để thay đổi mật khẩu. Tức là, trước khi người dùng được phép thay đổi mật khẩu của họ thì mật khẩu phải tồn tại ít nhất trong Mininum_days ngày.
  2. Maximum_days: Số ngày tối đa mà mật khẩu còn hiệu lực. Tức là, sau khi mật khẩu đã tồn tại trong Maximum_days ngày, người dùng bắt buộc phải thay đổi mật khẩu của họ.
  3. Warn : Số ngày trước khi mật khẩu hết hạn mà người dùng sẽ nhận được cảnh báo rằng mật khẩu của họ cần phải được thay đổi.
  4. Expire : Số ngày kể từ ngày 01/01/1970 tài khoản sẽ bị khóa

Khuyên cáo bạn nên sử dụng lệnh chage thay vì tự tay chỉnh sửa file /etc/shadow.

Xem thêm

#6.2: Hạn chế sử dụng lại các mật khẩu trước đó

Trong Linux, bạn có thể ngăn chặn tất cả các người dùng sử dụng lại các mật khẩu cũ, đã từng sử dụng trước đó. Tham số remember của module pam_unixcho biết số lượng các mật khẩu trước đó sẽ không được sử dụng lại.

#6.3: Khóa tài khoản sau một số lần đăng nhập thất bại

Dưới Linux, bạn có thể sử dụng lệnh faillog để hiển thị các bản ghi hoặc để thiết lập giới hạn số lần đăng nhập thất bại.

Để mở khóa cho tài khoản sau khi tài khoản này bị khóa sau 1 số lần đăng nhập thất bại, gõ:

# faillog -r -u userName //–reset = -r

Lưu ý: bạn có thể sử dụng lệnh passwd để khóa hoặc mở khóa tài khoản

# passwd -l userName //khóa tài khoản

# passwd -u userName //mở khóa tài khoản

#6.4:  Xác định các tài khoản sử dụng mật khẩu rỗng

Bạn gõ lệnh sau:

# awk -F: ‘($2 == “”) {print}’ /etc/shadow

Khóa tài khoản có mật khẩu rỗng

# passwd -l accountName

#6.5: Đảm bảo rằng không có người dùng thông thường nào có UID = 0

Chỉ có tài khoản root có UID =0 với quyền hạn cao nhất để truy cập vào hệ thống. Gõ lệnh sau để hiển thị tất cả các tài khoản với UID = 0

# awk -F: ‘($3 == “0”) {print}’ /etc/passwd

Bạn sẽ thấy ít nhất 1 dòng tương ứng với tài khoản root như sau:

root:x:0:0:root:/root:/bin/bash

Trường thứ 3 cho biết giá trị UID. Nếu có thêm các tài khoản khác có UID =0, hãy đổi lại UID cho những tài khoản này sử dụng lệnh sau:

# usermod –u new_UID userName

#7: Đừng bao giờ đăng nhập với root

Hạn chế tối đa đăng nhập với tài khoản root! Thay vào đó, bạn nên sử dụng sudo để thực thi các lệnh với quyền root khi cần thiết mà không cần phải cung cấp mật khẩu của root. Ngoài ra, sudo cũng cung cấp các tính năng auditing và tracking giúp bạn biết được người dùng đã chạy những lệnh sudo nào.

#8: Bảo mật vật lý cho server

Cấu hình lại BIOS và vô hiệu hóa việc khởi động từ  các thiết bị ngoại vi như DVD/CD/USB. Bạn cũng nên đặt mật khẩu bảo vệ cho GRUB. Những máy chủ quan trọng cần được khóa cẩn thận trong các IDC (Internet Data Center) và tất cả mọi người phải trải qua các bước kiểm tra an ninh trước khi truy cập vào server của bạn. Xem thêm:

#9: Tắt hết các dịch vụ không cần thiết

Bạn cần loại bỏ tất cả các dịch vụ (service hoặc daemon) không cần thiết khỏi quá trình khởi động của hệ thống. Điều này giúp gia tăng tốc độ hoạt động cũng như sự ổn định của hệ thống và quan trọng hơn là giúp server giảm thiểu được nguy cơ bị tấn công bề mặt (surface attack) vào các dịch vụ ẩn chứa lỗ hổng. Sử dụng lệnh chkconfig để liệt kê tất cả các dịch vụ được khởi chạy cùng hệ thống ở runlevel 3

# chkconfig –list | grep ‘3:on’

Để tắt một dịch vụ nào đó, gõ:

# service serviceName stop

Hoặc
# chkconfig serviceName off

#9.1: Tìm các cổng dịch vụ (port) đang mở trên server

Sử dụng lệnh sau để liệt kê tất cả các port đang mở và các chương trình sử dụng các port đó.

netstat -tulpn

hoặc
nmap -sT -O localhost

nmap -sT -O server.example.com

Sử dụng iptables để đóng các port đang mở hoặc sử dụng 2 lệnh servicechkconfig ở trên để tắt các dịch vụ mạng không cần thiết.

#9.2: Xem thêm

#10: Gỡ bỏ X Windows

Thành phần đồ họa X Windows thật không cần thiết chạy trên Linux server! Không có lý do nào lại chạy X Windows trên Mail server hoặc Apache web server của bạn. Bạn có thể loại bỏ hoàn toàn X Windows để nâng cao hiệu suất hoạt động và bảo mật cho server theo các bước sau:

–  Chỉnh sửa file /etc/inittab để thiết lập cho Linux khởi chạy ở runlevel 3.

–   Xóa X Windows system bằng lệnh yum

# yum groupremove “X Window System”

–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