Đổi port SSH mặc định ngay nếu không muốn Server bị hack
Bảo mật server luôn là vấn đề đau đáu của các admin. Tuy nhiên không phải ai cũng có đủ công cụ và chi phí để bảo vệ mình khỏi sự nhòm ngó của các con bọ quét trên mạng hàng ngày. Trong bài viết này TechXanh sẽ giới thiệu SSH và cách đổi port SSH tăng cường bảo mật cho website.
Nội dung bài viết
SSH là gì
SSH (viết tắt của từ Secure Socket Shell) là một giao thức mạng được sử dụng để đăng nhập và thực hiện các lệnh tới một máy tính. SSH được sử dụng phổ biến trong Linux và Unix. Giao thức SSH là giao thức an toàn và bảo mật để thay thế cho telnet.
Port SSH là gì
Port trong tin học là một khái niệm chỉ cổng kết nối giữa máy tính với nhau. Máy tính client và máy tính server nói chuyện qua 1 port được mở trên đầu server. Một máy tính bất kỳ có 65536 port từ 0-65535. Port SSH là port sử dụng cho giao thức SSH, thông thường SSH sử dụng port 22 trên server để lắng nghe kết nối từ client tới.
Vì sao phải đổi port SSH mặc định của Server?
Như các bạn đã biết port 22 là port mặc định dành cho dịch vụ ssh. Giao thức SSH là một giao thức cải tiến, nó an toàn hơn rất nhiều so với telnet. Tuy nhiên không phải nó không có những hạn chế. Theo mặc định thì nó sẽ sử dụng cổng 22 để lắng nghe kết nối tới. Các con bọ quét nó hiểu điều này, nó dò rất dễ dàng ra port ssh và thực hiện tấn công Brute Force, một hình thức tấn công dò pass thông dụng nhất.
1 ngày nếu không đổi port SSH bạn sẽ bị tấn công bao nhiêu lần
Thống kê các server của tôi trước kia chỉ ra trong 1 tháng có khoảng 400-500 IP dò quét Server của mình và chủ yếu là qua SSH. Hàng ngày có khoảng 100 IP quét, do tôi sử dụng fail2ban nên các ip quét sẽ bị chặn ngay khi không đăng nhập thành công.
Thêm một thống kê nữa là trong 3 ngày tôi bị 73837 các con bọ tấn công brute force. Con số này thật khủng khiếp phải không các bạn.
Các user bị tấn công brute force SSH nhiều nhất là gì
Đầu tiên phải kể đến là root: 67746, admin: 1677, user: 552, ftpuser: 165, test: 241, guest:123, fpt, operator, pi, sshd, nagios, monitor, anonymous, backup, huawei, zte, zxin10, demo, test1, ubuntu, tomcat, jboss, unknown, noc, office, nobody, zabix, postgres, public, samba, nologin, redis, zimbra, mysql, 1111, 101, 1234, 123…
Những user mặc định của hệ thống và user dễ đoán, phổ biến. Tôi thấy bạn có thể đặt tên user có thêm số để an toàn hơn nhé, ví dụ: tên_bạn199 chẳng hạn, tránh đặt tên user dễ đoán.
Cách đổi port SSH mặc định
Có 2 cách đổi port SSH: dùng firewall hoặc đổi trong cấu hình.
Đổi port SSH bằng Firewall
Cách này khá tốt nhưng trong một số trường hợp firewall bị lỗi sẽ dẫn tới việc bị tấn công như thường. Tôi đã từng bị tấn công mà ko để ý firewall bị chết nhưng rất may bật lại kịp và sử dụng cách khác thay thế.
#nếu firewalld chưa bật
systemctl enable firewalld
systemctl start firewalld
#cấu hình forward port
firewall-cmd --permanent --zone=public --add-forward-port=port=9899:proto=tcp:toport=22
firewall-cmd --list-all
firewall-cmd --reload
Đổi port SSH bằng cấu hình của service SSHD
vi /etc/ssh/sshd_config
Tìm dòng
#Port 22
Đổi thành
Port 9899
Mở firewall cho cổng mới đổi của SSH
Với firewalld trên Centos 7
firewall-cmd --permanent --zone=public --add-port=9899/tcp
firewall-cmd --list-all
firewall-cmd --reload
Kiểm tra port SSH đã được đổi chưa?
Bạn đừng thoát phiên ssh đang sử dụng. Mở cửa sổ mới và thử ssh vào cổng đã chọn ở trên: ví dụ
ssh user@abc.com -p 9899
Ngoài đổi port SSH chúng ta cần làm gì
Ngoài việc thay đổi port SSH cho server bạn hãy bỏ đăng nhập bằng root và chỉ định 1 vài user có quyền ssh vào thôi. Nếu có thể thì hãy dùng xác thực qua ssh key.
Cấu hình bỏ đăng nhập bằng root và cho phép user có quyền truy cập ssh
Mở file sshd_config tìm dòng có chứa “PermitRootLogin”. Set lại giá trị là “no” như bên dưới
PermitRootLogin no
Restart lại service sshd nhé
Khi đổi xong cấu hình nhớ thực hiện restart lại service sshd nhé
Với Centos 5-6
service sshd restart
Hoặc với Centos 7
systemctl sshd restart
Còn nhiều cách hạn chế tấn công SSH khác như:
Cấu hình firewall chỉ authen cho một số IP vào được
Cài đặt fail2ban để hạn block brute force
Cài đặt xác thực 2 yếu tố, có thể dùng của Authy
Nói chung những cách này đều rất hay nhưng dễ dùng và đơn giản nhất là đổi port mặc định của ssh
Trên đây là một số kinh nghiệm của TechXanh để hạn chế tấn công vào server Linux. Chúc các bạn thành công và không bị hacker nhòm ngó!