centos 6.4 修改ssh默认端口22为其他端口详尽安全教程(包含SELinux,iptables设置)
2014-05-09 10:04
1261 查看
该教程是目前最安全的教程,如果你是新手请严格按照教程的步骤进行,如果是有一定基础的人可以选择性跳过某些段落
vim /etc/ssh/sshd_config
找到#Port 22 这行然后去掉前面的注释,然后再下面加一行 Port 1234
Port 22
Port 1234
很多教程是直接修改22为其他端口,最好不要这样做,万一修改的端口不能用,你就完全登陆不上了,所以先留一条后路
vim /etc/sysconfig/iptables
增加一行
iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 1234 -j ACCEPT
service iptables stop
vim /etc/sysconfig/selinux
将SELINUX=enforcing 这行修改为 SELINUX=disabled 然后重启
netstat -tpnl | grep ssh会看到同时有两个端口打开
[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
重要:这时测试一下新端口能否连接通过
刚刚装好的centos是没有semanage命令的,所以请先确认semanage命令是否存在,如果没有,就按照下面的教程安装
# 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端口:
semanage port -l | grep ssh
会输出
ssh_port_t tcp 22
添加1234端口到 SELinux
semanage port -a -t ssh_port_t -p tcp 1234
重要:然后确认一下是否添加进去
semanage port -l | grep ssh
如果成功会输出
ssh_port_t tcp 1234, 22
vim /etc/sysconfig/selinux修改安全等级
SELINUX=permissive
然后reboot重启
重要:重启好之后再一次用新端口测试远程连接
如果测试通过修改 SELINUX=enforcing, 然后重启,因为前面说过很多次修改的方式,这边就不贴代码了
重启之后再一次用新端口测试远程连接
修改端口配置
先运行vim /etc/ssh/sshd_config
找到#Port 22 这行然后去掉前面的注释,然后再下面加一行 Port 1234
Port 22
Port 1234
很多教程是直接修改22为其他端口,最好不要这样做,万一修改的端口不能用,你就完全登陆不上了,所以先留一条后路
修改防火墙配置
修改iptables(linux 的防火墙)文件:vim /etc/sysconfig/iptables
增加一行
iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 1234 -j ACCEPT
关闭防火墙
然后关闭防火墙service iptables stop
关闭SELinux
重要:先关闭SELinux,很多教程没有提到这点,因为SElinux 默认的防护等级是很高的,如果不关闭SElinux就会出现很多问题vim /etc/sysconfig/selinux
将SELINUX=enforcing 这行修改为 SELINUX=disabled 然后重启
测试连接
重启好后运行命令 :netstat -tpnl | grep ssh会看到同时有两个端口打开
[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命令是否存在,如果没有,就按照下面的教程安装
# 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端口:
semanage port -l | grep ssh
会输出
ssh_port_t tcp 22
添加1234端口到 SELinux
semanage port -a -t ssh_port_t -p tcp 1234
重要:然后确认一下是否添加进去
semanage port -l | grep ssh
如果成功会输出
ssh_port_t tcp 1234, 22
开启SELinux较低安全等级
然后去修改SELinux策略,重新打开它,但是我们先修改为permissive这种安全等级不会拦截你的修改,只是提示警告vim /etc/sysconfig/selinux修改安全等级
SELINUX=permissive
然后reboot重启
重要:重启好之后再一次用新端口测试远程连接
开启SELinux正常安全等级
重启好之后用新的端口测试连接如果测试通过修改 SELINUX=enforcing, 然后重启,因为前面说过很多次修改的方式,这边就不贴代码了
重启之后再一次用新端口测试远程连接
后续清理步骤
如果都可以的话,恭喜你,成功的配置好新端口,然后你可以自己进行把22端口从sshd_config中删除,把22端口从防火墙中删除等步骤相关文章推荐
- CentOS修改22默认端口 SSH默认端口
- Linux VPS安全设置之一 修改SSH端口(CentOS/Debian)
- centos6.5 ssh安全优化,修改默认端口名,禁止root远程登录
- centos6.5 ssh安全优化,修改默认端口名,禁止root远程登录
- Xshell连接centos,修改ssh默认端口号(22)
- linux修改SSH端口及对应的iptables防火墙设置
- 修改Linux中SSH默认端口22的方法
- centos 7.0 修改ssh默认连接22端口 和 添加防火墙firewalld 通过端口
- 搭建web服务器的SElinux策略保护 SElinux修改默认端口 安全web服务
- centos 7.0 修改ssh默认连接22端口 和 添加防火墙firewalld 通过端口
- RHEL7 修改SSH默认端口及修改SELinux运行状态
- centos7 修改默认ssh端口 22
- RHEL7.0修改SSH默认端口及SELinux运行状态修改
- CentOS修改SSH默认端口
- CentOS 7.2 修改ssh默认端口
- CentOS 7修改SSH端口并配置iptables防火墙
- 我的服务器开发之路-服务器SSH默认端口22和ftp默认端口21修改
- CentOS修改SSH默认端口
- 修改CentOS 6.4 root用户的系统默认语言设置
- RHEL7 修改SSH默认端口及修改SELinux运行状态