Các cách cơ bản để tăng cường bảo mật máy chủ Linux

Tác giả: 21/08/2024

I.Tổng quan

Bảo mật máy chủ Unix/Linux hiện nay là rất cần thiết. Điều này giúp hệ thống tránh được nhiều nguy cơ bị kẻ xấu tấn công, đánh cắp thông tin…

Linux mặc dù là hệ điều hành máy chủ thông dụng, phổ biến được ưa chuộng. Nhưng cũng chính vì vậy mà rất dễ dẫn đến những nguy cơ về bảo mật

Trong bài viết này, Nhân Hòa sẽ giới thiệu đến bạn các mẹo cực kỳ hữu hiệu. Giúp bạn nhanh chóng bảo vệ và tăng cường bảo mật cho máy chủ Linux của mình.

II.Các cách cơ bản để tăng cường bảo mật máy chủ Linux

1.Đặt mật khẩu mạnh,có độ khó cao.

Mật khẩu là xương sống của một máy chủ an toàn. Hãy sử dụng mật khẩu có độ dài tối thiểu 8 ký tự và gồm cả chữ và số, ký tự đặc biệt, chữ hoa và chữ thường để ngăn chặn các cuộc tấn công brute-force…

Ngoài ra, tránh dùng lại mật khẩu cho nhiều ứng dụng, hạn chế sử dụng lại các mật khẩu cũ. Thêm cấu hình đặt thời hạn cho mật khẩu của bạn, vì không có mật khẩu nào cung cấp bảo mật liên tục.

1.1 Thiết lập yêu cầu đặt mật khẩu mạnh

Một số lượng lớn người sử dụng chỉ đặt cho mình những mật khẩu yếu và dễ bị hack. ‘pam_cracklib’ trong chế độ PAM sẽ buộc người dùng phải sử dụng cho mình những mật khẩu mạnh và an toàn hơn. Hãy thêm những dòng sau vào file system-auth

vi /etc/pam.d/system-auth

và thêm dòng sau (lcredit,ucredit, dcredit hay ocredit tương ứng với chữ thường, chữ hoa, chữ số và các kí tự khác)

1.2 Thay đổi thời hạn cho mật khẩu

Trong Linux, mật khẩu  người dùng được lưu trữ trong file ‘/etc/shadow’ dưới dạng mã hóa. Để kiểm tra thời gian sử dụng password của người sử dụng, bạn sẽ cần sử dụng câu lệnh ‘chage’. Nó sẽ  hiển thị lên các thông tin về thời hạn của một mật khẩu theo số liệu về thời gian thay đổi gần nhất. Những thông tin này được hệ thống sử dụng để quyết định khi nào người sử dụng cần thay đổi mật khẩu của họ

chage -l username

Để thay đổi giới hạn cho một password, sử dụng câu lệnh

chage -M 60 username#chage -M 60 -m 7 -W 7 username

Với

  • M: Số ngày tồn tại tối đa của mật khẩu
  • m: số ngày tối thiểu
  • W: Số ngày để đưa ra cảnh báo
2. Tạo vào sử dụng SSH Key

SSH Key sẽ mang đến nhiều sự bảo mật về đăng nhập hơn là chỉ dùng mật khẩu thông thường. Trong khi mật khẩu thông thường có thể bị bẻ khóa thì SSH Key gần như là không thể giải mã.

SSH Key các bạn có thể hiểu đơn giản là một kiểu chứng thực đối chiếu giữa người dùng (Private key) và máy chủ (Public key). Public keyPrivate key có mối quan hệ chặt chẽ với nhau để nhận diện mở khóa. Khi bạn tạo SSH Key sẽ có 2 file bao gồm là Public Key, file này bạn sẽ upload  lên máy chủ còn Private key bạn sẽ để ở máy tính cá nhân

Để tạo thì bạn ssh vào máy chủ sau đó thực hiện nhập vào lệnh sau để tạo chuổi Public keyPrivate key.

ssh-keygen -t rsa

Với

  • ssh-keygen -t rsa: Lệnh để tạo
  • Enter file in which to save the key: Đặt tên cho file ssh key
  • Enter passphrase (empty for no passphrase): Đặt mật khẩu để mở khóa cho ssh key
  • Enter same passphrase again: Nhập lại mật khẩu để xác nhận

3.Thường xuyên update hệ thống

Luôn cập nhật những bản vá bảo mật mới nhất cho hệ thống sẽ giúp ích rất nhiều trong việc tăng cường bảo mật cho máy chủ Linux

Khi đó, máy chủ sẽ được nâng cấp tính năng mới, vá những lỗ hỏng và sửa lỗi, nâng cấp phần nhân hệ thống khi đó các hacker khó có khả năng lợi dụng các lỗi,lỗ hổng để xâm nhập, tấn công dữ liệu.

Sử dụng những lệnh sau để cập nhật máy chủ:

yum update -y

yum check-update
4. Thay đổi cổng (Port) SSH mặc định 22

Nếu bạn vẫn sử dụng cổng 22 để truy cập máy chủ Linux của mình thông qua kết nối SSH, Điều này vô tình tạo điều kiện cho hacker dễ dàng tấn công hệ thống. Vì vậy, thay đổi port SSH là việc làm vô cùng cần thiết

Để tiến hành thay đổi port SSH trên máy chủ Linux, bạn mở file sshd_config

vi /etc/ssh/sshd_config

Khi đã mở được file lên bạn tìm đến dòng #Port 22 sau đó bỏ dấu # và sửa số 22 thành port mà bạn mong muốn. Ở đây mình chọn port ssh là 2024 và mình sẽ nhập vào là 2024

Lưu ý: Bạn không thể đổi sang port mà dịch vụ khác đang sử dụng. Ví dụ như “80, 21,23,53..” và nếu máy chủ sử dụng firewall thì bạn cần mở port mới này trên firewall nhé

Sau đó khởi động lại dịch vụ SSH bằng lệnh:

systemctl restart sshd.service

5. Cài đặt sử dụng tường lửa (Firewall)

Tường lửa (Firewall) chính là công cụ hỗ trợ đắc lực cho công cuộc bảo mật. Đây chính là bước phòng thủ đầu tiên quyết định hệ thống của bạn có chống lại được kẻ tấn công hay không.

Với những ứng dụng tường lửa này, cơ sở thông tin mà bạn truy cập sẽ được bảo đảm an toàn tối ưu. Chúng lọc truy cập mạng hiệu quả, tiến hành xác minh tên máy chủ, đăng nhập tiêu chuẩn và tránh giả mạo. Một vài ứng dụng tường lửa có thể tích hợp cho hệ thống server linux của bạn: CSF (ConfigServer & Firewall), FirewallD, IPtables,…

6. Gỡ bớt đi các gói dữ liệu không cần thiết, hạn chế lỗ hổng bảo mật

Mọi hệ điều hành, trong đó có cả Linux đều đi kèm với rất nhiều thứ khác bên trong. Tuy nhiên, thực tế bạn không bao giờ sử dụng đến chúng. Bởi, tất cả mọi gói dịch vụ này của máy chủ Linux đều có tiềm năng trở thành điểm lợi dụng của hacker. Do đó, hãy xem xét, kiểm tra để loại bỏ bớt những thứ mà bạn chẳng có nhu cầu dùng đến.

Sử dụng trình quản lý gói RPM như yum, apt-get hoặc dpkg để xem lại tất cả các phần mềm đã cài đặt trên hệ thống và xóa tất cả các gói không mong muốn:

yum list installed

yum list packageName

yum remove packageName
7. Thường xuyên kiểm tra các cổng kết nối mạng

Cũng giống như việc loại bỏ những gói dữ liệu, dịch vụ không cần thiết trong máy chủ. Bạn nên thường xuyên kiểm tra, giảm thiểu tối đa các cổng dịch vụ chưa từng dùng đến. Cách này cũng góp phần tăng hiệu năng cho máy tính hoạt động tốt hơn, trơn tru hơn

Để thực hiện, bạn có thể sử dụng câu lệnh ‘netstat -tunlp’ để xem tất cả các cổng đang mở và các chương trình có kết nối mạng. Sau đó, tiến hành rà soát, nếu có phát hiện phải nhanh chóng dùng lệnh ‘chkconfig’ để tắt các dịch vụ đó đi.

8. Sử dụng SELinux

SELinux (Security-Enhanced Linux) là một mô đun bảo mật ở nhân của Linux. Nó cung cấp cơ chế hỗ trợ các chính sách bảo mật kiểm soát truy cập (access control), gồm các điều khiển truy nhập bắt buộc theo quy định Bộ Quốc phòng Hoa Kỳ (MAC).

Sử dụng thêm SELinux và các phần mở rộng bảo mật Linux khác để tạo thêm một lá chắn an toàn cho hệ thống máy chủ Linux. Chúng sẽ tăng cường bảo mật cho hệ thống ở mức cao hơn với nhiều chính sách bảo đảm an ninh hữu hiệu.

9. Vô hiệu hóa IPv6

Nếu như bạn không sử dụng IPv6, hãy tắt nó đi bởi vì phần lớn các ứng dụng không đòi hỏi giao thức này.

Vô hiệu hóa IPv6 giúp tránh các lỗ hổng bảo mật và giúp máy chủ Linux của bạn ít bị tấn công mạng hơn. Vì tin tặc thường gửi lưu lượng độc hại qua IPv6 nên việc để giao thức mở có thể khiến máy chủ của bạn gặp nguy cơ vi phạm bảo mật.

Để giữ an toàn cho hệ điều hành và máy chủ Linux của bạn, hãy làm theo các hướng dẫn sau để tắt IPv6

Kiểm tra IPv6 có được kích hoạt trên máy chủ

Để biết được máy chủ của bạn có đang hỗ trợ tính năng IPv6 không ? Cách đơn giản nhất là bạn chỉ cần hiển thị thông tin card mạng, sẽ đi kèm thông tin IPv6 tự phát dành cho card mạng của Linux.

ifconfig -a | grep inet6

Ngoài ra các bạn có thể kiểm tra nhanh bằng cách sử dụng lệnh bên dưới, nếu kết quả trả là “0” nghĩa là đang kích hoạt, còn “1” nghĩa là không kích hoạt.

cat /proc/sys/net/ipv6/conf/all/disable_ipv6

Sau đó để tắt bạn thêm 2 dòng sau vào file sysctl.conf

vi /etc/sysctl.conf

Thêm 2 dòng sau vào cuối file

net.ipv6.conf.all.disable_ipv6 = 1

net.ipv6.conf.default.disable_ipv6 = 1

Lưu và đóng tệp cấu hình sysctl. Chạy lệnh sau để tải lại cấu hình sysctl

sysctl -f /etc/sysctl.conf
10. Cấu hình cmdlog giám sát nhật ký máy chủ Linux

Việc theo dõi nhật ký máy chủ của bạn sẽ cung cấp thông tin chi tiết về những gì đang xảy ra với dịch vụ lưu trữ máy chủ của bạn. Những nhật ký này cũng có thể cung cấp thông tin chi tiết về tình trạng VPS, bao gồm tải máy chủ và mức sử dụng tài nguyên, nhằm mục đích báo cáo.

Giám sát nhật ký máy chủ giúp bạn xác định xem máy chủ có đang gặp phải các cuộc tấn công mạng hoặc các mối đe dọa bảo mật khác hay không. Những lỗ hổng đó được khắc phục càng sớm thì kẻ tấn công càng có ít cơ hội để chặn dữ liệu.

11. Kiểm tra các tài khoản không có password

Bất kể tài khoản nào mà không có mật khẩu đồng nghĩa với việc nó đang mở ra một lối truy cập trái phép cho bất kỳ ai. Vì thế bạn nên chắc chắn rằng tất cả các tài khoản đều sử dụng một mật khẩu mạnh và không ai có thể truy cập một cách trái phép được. Các tài khoản không có mật khẩu là một đe dọa về bảo mật.

Để kiểm tra các tài khoản này sử dụng câu lệnh sau

cat /etc/shadow |awk -F: '($2==""){print $1}'
12. Cài đặt phần mềm chống virus

Ngoài việc thiết lập tường lửa để lọc lưu lượng truy cập đến, điều quan trọng là phải giám sát các tệp trong máy chủ của bạn. Vì các cuộc tấn công của virus là một trong những lỗ hổng chính của máy chủ Linux nên mối đe dọa mạng này có thể nhắm mục tiêu vào máy chủ của bạn và làm hỏng dữ liệu của bạn.

Nó làm cho việc cài đặt phần mềm scan chống virus trở thành một biện pháp tăng cường bảo mật quan trọng. Có rất nhiều tùy chọn có sẵn nhưng đáng chú ý nhất là ClamAV. Nó là nguồn mở và được sử dụng để phát hiện hoạt động đáng ngờ và cách ly các tệp không mong muốn.

Lưu ý : Không bật ClamAV nếu máy chủ của bạn có RAM dưới 2 GB. Làm như vậy có thể tiêu tốn hết bộ nhớ còn lại, có thể gây quá tải máy chủ của bạn.

Ngoài ra bạn cũng có thể tham khảo cài ImunifyAV

III.Tổng kết

Bảo vệ máy chủ Linux của bạn rất quan trọng vì nó chứa dữ liệu. Mặc dù Linux nổi tiếng với khả năng bảo mật mạnh mẽ nhưng máy chủ Linux vẫn tồn tại những lỗ hổng. Các cuộc tấn công và sự cố mạng phổ biến trong hệ thống Linux bao gồm phần mềm độc hại, tấn công DDoS,Attack,sniffing and brute-force,SQL injections, cross-site scripting (XSS)…

Nhân Hòa hy vọng bài viết này đã giúp bạn cải thiện bảo mật máy chủ Linux của mình. Nếu bạn có bất kỳ câu hỏi hoặc lời khuyên nào khác, vui lòng để lại trong phần bình luận bên dưới nhé.