CentOS7-添加ssh端口

CentOS7-添加ssh端口

之前有看到关于服务器安全的 这篇文章 。于是想尝试更改下ssh登录端口,可谓是历尽千辛万苦。。网上的方法不是过时就是无效,最后终于自己摸索出来。

修改sshd_config文件

注意是sshd_config , 网上大部分是ssh.config。 我这里直接使用的WinSCP工具连接服务器修改。 没有用指令

1
vi /etc/ssh/sshd_config

找到 #Port 22 。 去掉前面的#注释,在下一行添加:Port 你认为合适的端口号

如 Port 10086 

注意不要删除 22 端口,为防止修改后新端口无法访问,造成无法用 ssh 连接服务器。

保存修改后的 sshd_config 文件,并重启 sshd 服务。


1
 systemctl restart sshd

安装 semanage 工具 :

1
2
$ yum provides semanage
$ yum -y install policycoreutils-python

为 ssh 打开 2048 端口:

1
2
3
4
5
# 为 ssh 添加新的允许端口
$ semanage port -a -t ssh_port_t -p tcp 10086
# 查看当前 SELinux 允许的端口, 应该会显示你 指定端口+22
$ semanage port -l | grep ssh
ssh_port_t    tcp    10086, 22

修改selinux:

1
vim /etc/selinux/config

找到:
SELINUX=disabled
修改成:
SELINUX= enforcing

重启重启 ssh 服务
PS selinux给SSH开放端口

配置防火墙 firewalld

1
systemctl restart sshd
1
2
3
$ 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 二 2017-12-02 11:12:59 CST; 2day 15h ago
Main PID: 10379 (firewalld)
CGroup: /system.slice/firewalld.service
└─10379 /usr/bin/python -Es /usr/sbin/firewalld –nofork –nopid
$ firewall-cmd –state
running

查看防火墙当前「默认」和「激活」zone(区域):

1
2
3
4
5
$ firewall-cmd --set-default-zone=public
$ firewall-cmd --zone=public --add-interface=eth0
success  
$ firewall-cmd --zone=public --add-interface=eth1
success

为 public zone 永久开放 2048/TCP 端口

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
# 以防新端口不生效,先把 22 端口暴露
$ firewall-cmd --permanent --zone=public --add-port=22/tcp
$ firewall-cmd --permanent --zone=public --add-port=10086/tcp
success  
# 重载防火墙
$ firewall-cmd --reload
# 查看暴露端口规则
$ firewall-cmd --permanent --list-port
443/tcp 80/tcp 22/tcp 10086/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 10086/tcp
  masquerade: no
  forward-ports:
  icmp-blocks:
  rich rules:

退出 ssh 后,尝试连接新端口

1
$ ssh -p 10086 rootlocalhost

若连接成功。则可以进行收尾工作。如果报错,原因有很多。若显示没有这个Rout,需要Ping你的服务器是否联通。若显示其它错误,则配置有问题,请特别注意版本问题。

禁用 22 端口

1
2
3
$ vi /etc/ssh/sshd_config
$ systemctl restart sshd
$ ss -tnlp | grep ssh #检查ssh 监听的端口,没有 22 证明修改成功

防火墙移除 22 端口

1
2
3
4
5
$ firewall-cmd --permanent --zone=public --remove-port=22/tcp
success  
$ firewall-cmd --reload
$ firewall-cmd --permanent --list-port
443/tcp 80/tcp 2048/tcp

参考:

https://blog.csdn.net/mrqiang9001/article/details/78308830

https://sebastianblade.com/how-to-modify-ssh-port-in-centos7/

https://yq.aliyun.com/articles/633389

评论

目前还没有评论

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注