Centos 7更改默认ssh端口

更改默认ssh端口

Posted by DC on January 22, 2018

CentOS 7 更改ssh默认端口

请自行配置selinux,本人在更改默认端口之前是将selinux关闭了,如需按照我的教程配置,请先关闭selinux,按照我的教程配置完成连接成功后,再自行配置selinux

$ vi /etc/ssh/sshd_config
取消 #Port 22 的注释,在下一行添加你需要修改的新端口 Port 1111。(这里不删除 22 端口是为了防止修改后新端口无法访问,造成无法用 ssh 连接服务器。)
Port 22
Port 1111
修改保存 sshd_config 文件后重启 sshd 服务:

$ systemctl restart sshd
退出 ssh 会话后,再用新的端口连接:

配置防火墙 firewalld 启用防火墙 && 查看防火墙状态: $ systemctl enable firewalld
$ systemctl start firewalld
$ systemctl status firewalld

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
$ firewall-cmd --state
running

以防新端口不生效,先把 22 端口暴露

$ firewall-cmd --permanent --zone=public --add-port=22/tcp
$ firewall-cmd --permanent --zone=public --add-port=1111/tcp
success

重载防火墙

$ 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:
退出 ssh 后,尝试连接新端口

$ ssh -p 1111 root@example.com
成功登录的话,就可以做收尾工作了。

禁用 22 端口
删除 ssh 允许端口
$ vi /etc/ssh/sshd_config #Port 22 Port 1111 $ systemctl restart sshd

用 ss 命令检查 ssh 监听的端口,没有 22 证明修改成功

$ ss -tnlp | grep ssh
LISTEN 0 128 :1111 *:
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 端口的访问流量转向访问者本地: