Hướng dẫn chi tiết cách thay đổi port SSH trên Linux

Bài viết này sẽ hướng dẫn cách thay đổi port SSH trên Linux giúp bạn tránh được việc có người lợi dụng cấu hình port SSH mặc định (port 22) để thực hiện tấn công dò tìm mật khẩu tài khoản root của VPS/ Server Linux.

Hướng dẫn cách thay đổi port ssh trên Linux

Kiểm tra port SSH đang listen

Chúng ta cần kiểm tra port nào đang được SSH mở sử dụng để listen các kết nối SSH vào máy chủ Linux.

# netstat -atnp | grep "ssh"

tcp        0 0 0.0.0.0:22                0.0.0.0:* LISTEN     28032/sshd

tcp        0 0 :::22                     :::* LISTEN     28032/sshd

Dịch vụ SSH đang sử dụng port số 22 (port SSH mặc định) để listen các kết nối đến.

Thực hiện cấu hình thay đổi SSH port trên Linux

Bạn cần xác định là sẽ sử dụng port số mấy cho sự thay đổi port SSH này. Ví dụ là “2345” thì sau khi đã quyết định được số SSH port mới thì ta cần kiểm tra xem là có dịch vụ nào đang sử dụng port “2345” không.

# netstat -atnp | grep ":2345"

Nếu output không có chương trình dịch vụ nào đang sử dụng thì tức là port “2345” có thể sử dụng được. Ta sẽ thực hiện edit file cấu hình dịch vụ SSH ‘/etc/ssh/sshd_config’ dưới quyền user root.

# vi /etc/ssh/sshd_config

Tìm kiếm dòng ‘#Port 22’, bỏ dấu ‘#’ ở đầu và thay bằng port bạn muốn dùng. Nếu file cấu hình đang dùng số khác thì thay nội dung là “Port” bằng số port bạn muốn.

Lấy ví dụ là “2345”, bạn nên tránh lựa chọn các port số thuộc dạng well-known, tức là port thông dụng dành cho các dịch vụ khác.

Port 2345

Lưu lại file cấu hình và kiểm tra cú pháp cấu hình dịch vụ SSH, xem có chỉnh sửa cú pháp sai không. Nếu sai cú pháp thì sửa lại cho đúng rồi mới làm tiếp.

# sshd -t

Mở firewall rule cho port SSH mới

Nếu đang sử dụng firewall trên hệ thống Linux thì bạn cần mở port cho phép các kết nối đến port SSH mới (2345) cấu hình trước khi restart lại dịch vụ SSH.

Ví dụ dưới là sử dụng firewall ‘iptables’.

# iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 2345 -j ACCEPT

Sẽ có một số trường hợp dịch vụ Cloud Server/ VPS mà họ có thêm 1 lớp tường lửa phục vụ riêng thì lớp này sẽ lọc traffic trước khi traffic vào tới VPS/ Server Linux. Nếu có trường hợp này thì bạn cần mở port trên giao diện dịch vụ của nhà cung cấp đó.

Khởi động dịch vụ SSHd và kiểm tra

Restart lại dịch vụ SSH để SSHd áp dụng cấu hình mới.

# systemctl restart sshd

+ CentOS 7/Ubuntu 16.0 4

# systemctl restart sshd

+ CentOS 6/Ubuntu 14.0.4

# service sshd restart

Stopping sshd: [ OK ]

Starting sshd: [ OK ]

Tiếp theo là kiểm tra kết nối SSH vào Port SSH mới - port 2345. Bạn nhớ không được tắt terminal hoặc exit kết nối SSH của bạn trong lúc này. Nếu bạn logout nó mà chưa chắc chắn đã kết nối với SSH được port mới thì phải mất thời gian để kết nối conforce riêng cho server/vps Linux đó để fix lại.

Giờ thì hãy mở chương trình SSH Client như putty trên Windows hoặc dùng lệnh ‘ssh’ trên Linux với option ‘-p portnumber’ để kiểm tra kết nối dịch vụ SSH port mới cấu hình.

# ssh -p 2345 root@192.168.100.5

Vậy, cách để thay đổi port SSH trên Linux thật đơn giản đúng không? Chúc bạn thành công!