SSH-修改服务器默认端口

centos 下:

首先修改配置文件   vim     /etc/ssh/sshd_config
(注意 网页 复制代码的 时候 vim和/etc中间的 空格有问题,导致shell 终端 无法识别 vim空格 命令)

重新总结一下:

step1 修改/etc/ssh/sshd_config
vi /etc/ssh/sshd_config
#Port 22         //这行去掉#号
Port 20000      //下面添加这一行

step2 修改SELinux

(这一步 centos 好像 不需要啊,有些版本好像还是需要的)

另外需要注意一点就是,如果selinux没有关闭,那么端口会绑定失败,
使用 systemctl status sshd.service 命令查看状态时
会发现error: Bind to port 2223 on 0.0.0.0 failed: Permission denied,的错误,
这种情况改下,要关闭selinux,然后再次重新启动ssh服务,新的端口才可以生效

如果忽略这一步,发现端口修改无效,可以看看systemctl status sshd.service

semanage 命令如果找不到,

-bash: semanage: command not found

就先查找,哪个软件提供这条命令

yum provides /usr/sbin/semanage

# 也可以用 下面这条命令

yum whatprovides /usr/sbin/semanage

可能输出:

Loaded plugins: fastestmirror
Determining fastest mirrors
 * base: mirror.nbrc.ac.in
 * extras: mirror.nbrc.ac.in
 * updates: mirror.nbrc.ac.in
policycoreutils-python-2.2.5-11.el7.x86_64 : SELinux policy core python
 : utilities
Repo : base
Matched from:
Filename : /usr/sbin/semanage
policycoreutils-python-2.2.5-11.el7_0.1.x86_64 : SELinux policy core python
 : utilities
Repo : updates
Matched from:
Filename : /usr/sbin/semanage

As you see in the above output, we need to install the package policycoreutils-python-2.2.5-11.el7_0.1.x86_64 in order to use ‘semanage’ command.

so, let us install policycoreutils-python-2.2.5-11.el7_0.1.x86_64 package using command:

yum install policycoreutils-python

使用以下命令查看当前SElinux 允许的ssh端口:
semanage port -l | grep ssh

添加20000端口到 SELinux
semanage port -a -t ssh_port_t -p tcp 20000

然后确认一下是否添加进去
semanage port -l | grep ssh
如果成功会输出
ssh_port_t                    tcp    20000, 22

step3 重启ssh
systemctl restart sshd.service

step4 配置防火墙端口号

centos7 防火墙 改成了 firewalld 替换 原来的 iptable 了。

firewall-cmd --permanent --add-port=12588/tcp  (ssh改用的端口号)
firewall-cmd --reload(重新加载防火墙配置)
因为 ssh 默认端口改了 所以 开放 ssh 使用 的端口吧 (结果没有用)
firewall-cmd --permanent --zone=public --add-service ssh

课外补充:   使用 防火墙 屏蔽 ip 地址

firewall-cmd --permanent --add-rich-rule="rule family='ipv4' source address='128.128.128.128' reject" 

参考:
https://www.cnblogs.com/freeweb/p/5667166.html

Linux Troubleshooting – semanage command not found in CentOS 7/RHEL 7

0 0 votes
Article Rating
Subscribe
Notify of
guest
0 Comments
Inline Feedbacks
View all comments