BẢO MẬTLINUX - UNIXSERVER

Đổ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.

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.

ssh terminal

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.

Đọc thêm:  Kiến thức về độ sẵn sàng cao, dự phòng và chia tải hệ thống

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.

log brute force ssh

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.

log fail2ban

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…

Đọc thêm:  3 Phần mềm SSH client vào Server không thể bỏ qua cho System Admin

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 thêm:  Cách đơn giản để clear cache cho module pagespeed của Apache trong 1 nốt nhạc

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ó!

 

 

4.7/5 - (4 bình chọn)

A Tùng

IT guy, thích đam mê công nghệ, Server, Linux, Wordpress, SEO và uống trà

Bài viết liên quan

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *

Back to top button