CentOS 7 更改ssh默认端口

本人已经实现一键更改默认端口脚本,地址: 一键更改Centos SSH默认端口脚本python

$ vi /etc/ssh/sshd_configgit

取消 #Port 22 的注释,在下一行添加你须要修改的新端口Port 1111。(这里不删除 22 端口是为了防止修改后新端口没法访问,形成没法用 ssh 链接服务器。github

Port 22
Port 1111

修改保存 sshd_config 文件后重启 sshd 服务:服务器

$  systemctl restart sshdssh

退出 ssh 会话后,再用新的端口链接:
 
配置防火墙 firewalld
启用防火墙 && 查看防火墙状态:
$ systemctl enable firewalldtcp

$ systemctl start firewalldrest

$ systemctl status firewalldcode

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 端口的访问流量转向访问者本地:

相关文章
相关标签/搜索