centos 6.4 修改ssh默认端口22为其他端口详尽安全教程(包含SELinux,iptables设置)

前端之家收集整理的这篇文章主要介绍了centos 6.4 修改ssh默认端口22为其他端口详尽安全教程(包含SELinux,iptables设置)前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

该教程是目前最安全的教程,如果你是新手请严格按照教程的步骤进行,如果是有一定基础的人可以选择性跳过某些段落

修改端口配置

先运行

[plain] view plain copy 在CODE上查看代码片派生到我的代码

vim /etc/ssh/sshd_config


找到#Port 22 这行然后去掉前面的注释,然后再下面加一行 Port 1234

[plain] view plain copy 在CODE上查看代码片派生到我的代码

Port 22

Port 1234


很多教程是直接修改22为其他端口,最好不要这样做,万一修改的端口不能用,你就完全登陆不上了,所以先留一条后路

修改防火墙配置


修改iptables(linux 的防火墙)文件

[plain] view plain copy 在CODE上查看代码片派生到我的代码

vim /etc/sysconfig/iptables


增加一行

[plain] view plain copy 在CODE上查看代码片派生到我的代码

iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 1234 -j ACCEPT


关闭防火墙

然后关闭防火墙

[plain] view plain copy 在CODE上查看代码片派生到我的代码

service iptables stop


关闭SELinux

重要:先关闭SELinux,很多教程没有提到这点,因为SElinux 默认的防护等级是很高的,如果不关闭SElinux就会出现很多问题

[plain] view plain copy 在CODE上查看代码片派生到我的代码

vim /etc/sysconfig/selinux


将SELINUX=enforcing 这行修改为 SELINUX=disabled 然后重启

测试连接

重启好后运行命令 :

[plain] view plain copy 在CODE上查看代码片派生到我的代码

netstat -tpnl | grep ssh

会看到同时有两个端口打开

[plain] view plain copy 在CODE上查看代码片派生到我的代码

[root@localhost ~]# netstat -tpnl | grep ssh

tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1497/sshd

tcp 0 0 0.0.0.0:1234 0.0.0.0:* LISTEN 1497/sshd

tcp 0 0 :::22 :::* LISTEN 1497/sshd

tcp 0 0 :::1234 :::* LISTEN 1497/sshd


重要:这时测试一下新端口能否连接通过

修改SELinux配置

如果正常再进行下面的步骤:修改selinux

刚刚装好的centos是没有semanage命令的,所以请先确认semanage命令是否存在,如果没有,就按照下面的教程安装

[plain] view plain copy 在CODE上查看代码片派生到我的代码

# rpm -qa | grep semanag

libsemanage-2.0.43-4.2.el6.x86_64

# which semanage

/usr/bin/which: no semanage in (/usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin)

# yum provides /usr/sbin/semanage

policycoreutils-python-2.0.83-19.30.el6.x86_64 : SELinux policy core python utilities

Repo : base

Matched from:

Filename : /usr/sbin/semanage

# yum whatprovides /usr/sbin/semanage

Loaded plugins: fastestmirror,refresh-packagekit,security

Loading mirror speeds from cached hostfile

* base: mirrors.prometeus.net

* epel: mirror.switch.ch

* extras: mirrors.prometeus.net

* rpmfusion-free-updates: rpmfusion.famillecollet.com

* rpmfusion-nonfree-updates: rpmfusion.famillecollet.com

* updates: mirrors.prometeus.net

policycoreutils-python-2.0.83-19.30.el6.x86_64 : SELinux policy core python utilities

Repo : base

Matched from:

Filename : /usr/sbin/semanage

# yum -y install policycoreutils-python


完成之后,使用以下命令查看当前SElinux 允许的ssh端口:

[plain] view plain copy 在CODE上查看代码片派生到我的代码

semanage port -l | grep ssh


输出

[plain] view plain copy 在CODE上查看代码片派生到我的代码

ssh_port_t tcp 22


添加1234端口到 SELinux

[plain] view plain copy 在CODE上查看代码片派生到我的代码

semanage port -a -t ssh_port_t -p tcp 1234


重要:然后确认一下是否添加进去

[plain] view plain copy 在CODE上查看代码片派生到我的代码

semanage port -l | grep ssh


如果成功会输出

[plain] view plain copy 在CODE上查看代码片派生到我的代码

ssh_port_t tcp 1234,22


开启SELinux较低安全等级

然后去修改SELinux策略,重新打开它,但是我们先修改为permissive这种安全等级不会拦截你的修改,只是提示警告

[plain] view plain copy 在CODE上查看代码片派生到我的代码

vim /etc/sysconfig/selinux

修改安全等级

[plain] view plain copy 在CODE上查看代码片派生到我的代码

SELINUX=permissive


然后reboot重启

重要:重启好之后再一次用新端口测试远程连接

开启SELinux正常安全等级

重启好之后用新的端口测试连接

如果测试通过修改 SELINUX=enforcing, 然后重启,因为前面说过很多次修改的方式,这边就不贴代码

重启之后再一次用新端口测试远程连接

后续清理步骤

如果都可以的话,恭喜你,成功的配置好新端口,然后你可以自己进行把22端口从sshd_config中删除,把22端口从防火墙中删除等步骤

原文链接:https://www.f2er.com/centos/381141.html

猜你在找的CentOS相关文章