本人已經實現一鍵更改默認端口腳本,地址: 一鍵更改Centos SSH默認端口腳本python
$ vi /etc/ssh/sshd_config
git
取消 #Port 22 的註釋,在下一行添加你須要修改的新端口Port 1111。(這裏不刪除 22 端口是爲了防止修改後新端口沒法訪問,形成沒法用 ssh 鏈接服務器。github
Port 22 Port 1111
修改保存 sshd_config 文件後重啓 sshd 服務:服務器
$ systemctl restart sshd
ssh
退出 ssh 會話後,再用新的端口鏈接:
配置防火牆 firewalld
啓用防火牆 && 查看防火牆狀態:
$ systemctl enable firewalld
tcp
$ systemctl start firewalld
rest
$ systemctl status firewalld
code
firewalld.service - firewalld - dynamic firewall daemon
> Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled; vendor preset: enabled)
> Active: active (running) since 二 2016-12-20 02:12:59 CST; 1 day 13h ago
> Main PID: 10379 (firewalld)
> CGroup: /system.slice/firewalld.service
> └─10379 /usr/bin/python -Es /usr/sbin/firewalld --nofork --nopid
<br>$ firewall-cmd --state
<br>
running ip
# 以防新端口不生效,先把 22 端口暴露
$ firewall-cmd --permanent --zone=public --add-port=22/tcp
$ firewall-cmd --permanent --zone=public --add-port=1111/tcp
success rem
$ firewall-cmd --reload
$ firewall-cmd --permanent --list-port
443/tcp 80/tcp 22/tcp 1111/tcp
$ firewall-cmd --zone=public --list-all
public (default, active)
interfaces: eth0 eth1
sources:
services: dhcpv6-client ssh
ports: 443/tcp 80/tcp 22/tcp 1111/tcp
masquerade: no
forward-ports:
icmp-blocks:
rich rules:<br>
退出 ssh 後,嘗試鏈接新端口
$ ssh -p 1111 root@example.com
成功登陸的話,就能夠作收尾工做了。
禁用 22 端口<br>
刪除 ssh 容許端口<br>
$ vi /etc/ssh/sshd_config
#Port 22
Port 1111
$ systemctl restart sshd
# 用 ss 命令檢查 ssh 監聽的端口,沒有 22 證實修改爲功
$ ss -tnlp | grep ssh
LISTEN 0 128 *:1111 :<br> users:(("sshd",18233,3))
防火牆移除 22 端口
$ firewall-cmd --permanent --zone=public --remove-port=22/tcp
success
$ firewall-cmd --reload
$ firewall-cmd --permanent --list-port
443/tcp 80/tcp 1111/tcp ssh 取消監聽 22 端口,就已經配置好了,防火牆只不過是在 ssh 外多一層訪問限制。若是要作的更好還能夠將 22 端口的訪問流量轉向訪問者本地: