Những cuộc tấn công DDoS thăm dò các port ngẫu nhiên để tìm kiếm lỗ hổng trên server có thể sẽ diễn ra bất cứ lúc nào với server của bạn. Vì thế, bạn sẽ cần phải bảo vệ server của mình trước bất kỳ cuộc tấn công nào xảy ra. Trong bài viết này, Tino Group sẽ hướng dẫn bạn cách để đổi port SSH cho server Linux CentOS 7/8 nhằm gia tăng tính bảo mật cho server của bạn.
Vì sao nên đổi port SSH cho server Linux CentOS?
Thực tế, việc đổi port SSH cho server Linux CentOS sẽ không mang lại nhiều lợi ích bảo mật vì các hacker có thể tìm cách dò ra các port bạn đang sử dụng, nếu họ đã nhắm đến việc tấn port server của bạn.
Tuy nhiên, việc đổi port SSH cho server Linux CentOS vẫn sẽ mang lại những lợi ích như:
- Hạn chế những hacker có ít kiến thức hay những cuộc tấn port ngẫu nhiên nhắm vào các port mặc định nhằm khai thác lỗ hổng.
- Gửi mail đến bạn và ghi lại nhật ký tấn port của các cuộc tấn port Brute force attack vào các port mặc định.
SSH là gì?
SSH là viết tắt của Secure Shell daemon. Đây là một giao thức mạng được sử dụng để đăng nhập vào máy chủ từ xa một cách an toàn, bảo mật cho các hệ điều hành Linux và các bản phân phối của Linux.
Thông thường, bạn có thể truy cập vào SSH thông qua port mặc định 22. Tuy nhiên, để gia tăng sự bảo mật trước những cuộc tấn port ngẫu nhiên vào các port mặc định, bạn nên thay đổi port của SSH.
Những lưu ý trước khi thay đổi port SSH mặc định
Trước khi thay đổi port SSH mặc định, bạn nên đọc qua các lưu ý của Tino Group nhé!
- Thay đổi port mặc định của SSH sẽ không giúp bạn an toàn 100% trước các cuộc tấn công.
- Bạn nên tránh việc sử dụng chung port với các dịch vụ khác của server.
Một số port của các dịch vụ bạn nên tránh khi thay đổi port SSH:
Hướng dẫn đổi port SSH cho server Linux CentOS
Truy cập vào server bằng SSH
Để truy cập vào server thông qua SSH, bạn sẽ cần một phần mềm để có thể tạo kết nối giữa máy tính của bạn và server – PuTTY là một trong những phần mềm được các nhà cung cấp dịch vụ nổi tiếng như: AWS, Azure hay Google Cloud khuyên dùng vì sự đơn giản và tiện dụng.
Để có thể kết nối SSH đến server VPS, bạn có thể tham khảo bài viết đầy đủ nội dung tại đây.
Nếu bạn sử dụng dịch vụ của Tino Group, bạn có thể theo dõi bài viết hướng dẫn truy cập SSH vào share hosting với PuTTY và thực hiện theo hướng dẫn dễ hiểu trong cPanel của Tino Group nhé!
Update hệ thống
Trước khi tiến hành cấu hình lại SSH, bạn nên cập nhật các bản vá và sửa lỗi của hệ thống trước bằng lệnh:
sudo yum update -y
Tùy vào việc bạn có từng thay đổi vị trí của tệp sshd_config hay không, bạn thực hiện bước này hoặc không.
Thông thường, sshd_config nằm tại thư mục như sau: /etc/SSH/sshd_config, nếu bạn chưa từng thay đổi gì, bạn có thể bỏ qua bước này. Nếu bạn đã thay đổi và muốn tìm lại vị trí của sshd_config, bạn chạy dòng lệnh sau:
$ find / -name "sshd_config" 2>/dev/null
Tạo một bản sao cấu hình SSH hiện tại
Nếu bạn không chắc chắn về kinh nghiệm của bản thân, bạn nên tạo 1 bản backup cho sshd_config. Nếu có sự cố xảy ra, bạn có thể khôi phục lại thông số ổn định hiện tại.
Bước 1: chạy lệnh backup:
date_format=`date +%Y_%m_%d:%H:%M:%S`
sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config_$date_forma
Bước 2: chạy lệnh xác nhận:
$ ls /etc/ssh/sshd_config*
/etc/ssh/sshd_config /etc/SSH/sshd_config_( định dạng năm, tháng, ngày, giờ:phút:giây - bạn nên copy lại dòng lệnh hệ thống hiện ra nhé!)
Thay đổi port SSH
Trước khi thay đổi, bạn nên thử kiểm tra xem port nào đang được cấp cho cho SSH chạy nhằm tránh việc thay đổi thành port port SSH đang sử dụng (nếu có ai đó từng thay đổi giúp nhưng bạn không biết).
netstat -nltp | grep sshd
Nếu port SSH đã được thay đổi sẵn và không trung với các port chính của các dịch vụ ở phần lưu ý, bạn có thể thoát ra được rồi.
Bước 1: Để thay đổi port SSH, bạn sẽ cần mở file sshd_config bằng loại text editor bạn muốn ví dụ như vi, vim hay nano. Trong đó, tôi thường sử dụng nano nhất, câu lệnh để mở như sau:
sudo nano /etc/ssh/sshd_config
Bước 2: bạn cần tìm những port 22 mặc định của SSH và đổi thành 1 port khác. Nhưng port đó không nên trùng lặp với những port chính của các dịch vụ đã nêu trong phần lưu ý.
Ví dụ, bạn có thể thay port #Port 22 thành Port 3000, port 3000 không trùng lặp với port chính của dịch vụ nào và có mức độ gợi nhớ với câu nói “I love you 3000”.
- Xóa dấu # trước chữ Port 22
- Thay đổi thành Port 3000
Bước 4: bạn lưu lại thay đổi và đóng file lại.
Cập nhật cho các dịch vụ tường lửa
Nếu bạn không sử dụng tường lửa – firewall, bạn có thể bỏ qua phần này và thực hiện khởi động lại SSH để quá trình thay đổi của bạn có hiệu lực.
Nếu bạn đang sử dụng Firewall Hay IPTables, bạn thực hiện cập nhật như sau.
Cập nhật SSH cho máy chủ sử dụng dịch vụ Firewalld
Để cập nhật SSH cho máy chủ sử dụng dịch vụ Firewalld, bạn chạy 2 lệnh sau đây:
sudo firewall-cmd --permanent --zone=public --add-port=3000
sudo firewall-cmd --reload/tcp
Cập nhật SSH máy chủ sử dụng cho dịch vụ IPTables
Để cập nhật SSH cho máy chủ sử dụng dịch vụ IPTables, bạn chạy 3 lệnh sau đây:
iptables -I INPUT -p tcp -m tcp --dport 22 -j ACCEPT
service iptables restart
iptables -L -n
Nếu bạn muốn, bạn có thể cài đặt IPTables cho CentOS 7, bạn thực hiện theo bài viết: IPTables là gì? hướng dẫn cấu hình chi tiết.
Khởi động lại SSH
Để các thay đổi có hiệu lực, bạn sẽ cần restart lại dịch vụ SSH, bạn thực hiện lệnh như sau:
sudo systemctl restart sshd
Nếu bạn gặp phải lỗi và không thể restart dịch vụ SSH, bạn có thể restart lại cả server để cập nhật thay đổi của mình. Nếu bạn đang sở hữu một dịch vụ với lượng người dùng lớn, bạn nên lưu ý chọn thời điểm ít người dùng như gần sáng để restart hoặc gửi thông báo đến người dùng sau đó restart.
Trong lần kết nối SSH tiếp theo, bạn sẽ không thể truy cập bằng port 22 nữa. Để truy cập, bạn sẽ cần phải thay đổi thành port mới giúp quá trình truy cập an toàn hơn! Nếu bạn cảm thấy việc thay đổi port SSH là chưa đủ, bạn có thể cài đặt thêm Fail2ban nhé!
Đến đây, bạn đã hoàn tất việc đổi port SSH cho server Linux CentOS 7/8. Nếu bạn gặp bất cứ khó khăn nào trong quá trình thay đổi, sử dụng hoặc gặp lỗi với SSH và bạn đang là khách hàng của Tino Group. Bạn hãy liên hệ ngay với chúng tôi để được hỗ trợ kịp thời nhé! Chúc bạn may mắn và thành công!
Những câu hỏi thường gặp về đổi port SSH cho server Linux CentOS
Vì sao máy tính cá nhân không thể kết nối với server bằng PuTTY?
Trong một số trường hợp, tường lửa và các phần mềm diệt virus xem PuTTY là một phần mềm độc hại và không cho phép PuTTY kết nối với Internet cũng như thực hiện các tác vụ. Có thể vì lý do này mà máy tính cá nhân không thể kết nối với server.
Bạn có thể khắc phục bằng cách cho PuTTY vào danh sách không cấm trong phần mềm diệt virus và bạn tắt tường lửa mỗi khi chạy PuTTY.
Brute force attack là gì?
Bạn có thể hiểu đơn giản, brute force attack là một tấn công dò mật khẩu online, hacker sẽ tạo ra một loạt danh sách tài khoản và mật khẩu thường gặp và liên tục thay đổi nếu đăng nhập thất bại cho đến khi đăng nhập thành công.
Vì sao không nên đổi port của SSH thành các port mặc định của dịch vụ khác?
Ví dụ, bạn thích số 443, vì thế bạn chuyển port SSH thành port 443. Nhưng port 443 là port mặc định của phương thức HTTPS. Khi bạn tiến hành đổi, chắc chắn sự xung đột hay tranh chấp port sẽ xảy ra dẫn đến tình trạng lỗi không đáng có trên hệ thống.
Fail2ban là gì?
Fail2ban làm một ứng dụng được phát triển nhằm hỗ trợ phân tích, theo dõi log của hệ thống giúp phát hiện và ngăn chặn các cuộc tấn công vào server. Bạn có thể tích hợp thêm Fail2ban để có thể gia tăng bảo mật SSH của bạn. Để thực hiện, bạn theo dõi bài viết đầy đủ tại đây.