There are questions remain, We'll search for the answers together. But one thing we known for sure,the future is not set!

【原创文章】修改亚马逊AWS EC2 LINUX系统SSH默认22端口失败的原因和解决办法

系统防护 百蔬君 14044℃ 已收录 0评论

在《亚马逊AWS EC2 REDHAT LINUX系统修改SSH端口后无法登陆的解决办法》一文中介绍了当修改SSH端口没有成功,而又无法连接SSH管理系统的解决办法,那么正确的修改SSH端口的方法到底是什么呢?

按照网上大多数人的文章和教程,修改SSH端口和我在上文中叙述的一样。第一个就是修改vi /etc/ssh/sshd_config文件,去掉port 22前面的注释符号#,修改为你的目标端口,这个端口不能被其它程序占用,80,21端口这些尽量不要使用。基于上篇文章的情况,那么我建议把22这个端口保留,然后新添加一个端口。

port 22
port 56

当56端口连接连接成功之后,再删除22端口,那么这里的工作就完成了。对于AWS EC2主机,如果开启了iptables,那么还需要开启iptables的2200端口和AWS EC2后台安全组中的56端口。这里不再赘述。

但是当这样修改之后还是无法登录,就像上篇文章叙述的一样,这样配置SSH正常来说是没有问题的,但是偏偏就是无法连接56,折腾了蛮久,最后修改回22端口才让网站正常运行。

经过多次尝试研究,发现了问题所在,下面分享一下修改亚马逊AWS EC2 LINUX系统SSH为非22端口错误的原因和解决办法。

首先运行命令 netstat -apn

查看端口使用情况,确实56端口没有被监听,只有22端口被监听。

service sshd restart重启sshd服务,发现错误信息。
运行journalctl -xe

原来权限不够,56端口绑定失败。这时候想起了新版linux的SElinux。SELinux安全增强型Linux,在内核中实现强制访问控制(MAC)的安全机制,他给每一个程序制定访问端口的权限。

运行命令

semanage port -l | grep ssh  #查看ssh端口

他对SSH只开放了22端口,所以绑定56端口的时候就只有失败了!!!

那么把56端口添加进SELinux的规则中,增加一个56端口,运行命令

semanage port -a -t ssh_port_t -p tcp 56  # 修改SELINUX,允许56

成功后,再次运行运行命令 netstat -apn

发现56端口已经开始监听了。顺利连接56端口。

写到这里,解决这个问题很显然还有一个办法,那就是,如果你对SELinux不是很熟悉,我们可以关掉它,不然会遇到很多坑。

关闭SELinux方法,在配置文件/etc/selinux/config中,将SELINUX=enforcing改为SELINUX=disabled

之后删除vi /etc/ssh/sshd_config中的port 22

这样就把22端口封闭了,从而开启了另外一个SSH安全端口了。修改SSH端口是防治批量扫描22端口的一个手段,以免在服务器上线之初,由于密码简单而中招。后续的安全还可以限制SSH的ip登录,限制root登录,限制密码登录等等多个安全措施,这样Linux系统就比较安全了。

乐在分享,让看到这篇文章的你少走弯路,那么我写这篇文章的几个小时劳动就值得了。Have a enjoy!

转载请注明:百蔬君 » 【原创文章】修改亚马逊AWS EC2 LINUX系统SSH默认22端口失败的原因和解决办法

喜欢 (14)or分享 (0)
发表我的评论
取消评论

请证明您不是机器人(^v^):

表情