本人已经实现一键更改默认端口脚本,地址: 一键更改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 端口的访问流量转向访问者本地: