如何修改ssh的端口号

正忙着呢,突然收到监控服务器发出的报警短信提示xx设备的ssh服务出问题了,一般ssh出问题的是服务器死机了,赶快上监控界面查看,发现 conn没有报警,ping了一下该设备,网络是通的,用putty连了一下,报错提示无法连接。想起有个putty的终端跑着日志监控一直没 关,ctrl+c切出来发现没被踢出,哈哈,不用跑机房了。执行netstat -natp | grep :22,看到有N个连接,除了我自己的ip,都是一个国外的ip,吓出一头汗,难道被黑了?w了一下发现只有一个已经登录的连接,这才松了口气,看来是这 个机器对外网开放着22端口,导致有个脚本小子想来这抓台肉鸡,还好我老人家的设备口令一般都在11位以上,且绝对的数字字母符号的混合。但我印象总5年 前我就把所有有公网ip的unix主机在防火墙上都限制了22的访问啊,难道记错了?翻看了一下文档,从pix的配置文件中看应该都把22的对外访问注释 掉了啊。忽然想起这个机器上面绑定了两个内部ip,其中一个ip在pix上做的NAT,因为这个ip没有提供外部业务,当时仅是为了用于连接短信中心,可 能在修改防火墙的时候忘了它了。
现在让那小子知道这个ip开放了ssh,肯定会不断尝试,修改pix需要找其他部门的人协调,时间来不及,看来只能从本地想办法了,首先想到的 是关闭ssh服务,重新开放telnet服务,这样以后内部访问用23口,外部因为23没在pix上做配置,所有也是安全的。后来斟酌了下,觉得还是用 ssh,毕竟安全,但必须得把端口改掉,执行了以下流程,将ssh端口做了修改,然后重启了设备将那小子踢出,问题得以解决。
 
首先修改配置文件
vi /etc/ssh/sshd_config
找到#Port 22一段,这里是标识默认使用22端口,修改为如下:
Port 22
Port 50000
然后保存退出
执行/etc/init.d/sshd restart
这样SSH端口将同时工作与22和50000上。
(现在编辑防火墙配置:vi /etc/sysconfig/iptables
启用50000端口。
执行/etc/init.d/iptables restart
这段适用于打开了iptables的用户,我个人不大习惯用这个,所以不用操作此步
)
现在请使用ssh工具连接50000端口,来测试是否成功。
如果连接成功了,则再次编辑sshd_config的设置,将里边的Port22删除(dd掉),即可。

之所以先设置成两个端口,测试成功后再关闭一个端口,是为了方式在修改conf的过程中,
万一出现掉线、断网、误操作等未知情况时候,还能通过另外一个端口连接上去调试
以免发生连接不上必须派人去机房,导致问题更加复杂麻烦。

你可能感兴趣的:(工作,unix,ssh,脚本,防火墙)