一次,帮同事远程配置一台ftp,配置好,从本机可正常登陆,正常访问,端口正常监听,可是从外网怎么也访问不了.
第二天,同样帮一个同事远程改sshd端口,改完后,却发现无法登陆,按正常情况下不太可能的,sshd.conf,改端口,当前的进程号重起,应该没有问题???让同事在那边看了,
本地的ssh服务改过后的端口监听也正常,只是外部网络就是被拒绝.于是改回来就好了.
两个服务器的问题应该有相似性,而且都是AS4 U2的系统,考虑到selinux有时候会出现一些不可预见的问题,于是将其关闭,结果仍然不成功.
本地正常,问题肯定出在外部登陆的过程中,client发起请求,服务程序未响应就被拒绝.查看日志,发现FTP和ssh日志都没有我请求的日志,奇怪,那就是说我的请求在被服务守护进程响应前就已经被过滤掉了.
这一般都是防火墙干的事吧,可是没有发现有什么问题,于是再关闭防火墙,问题依旧,再清空iptables,发现问题依旧.再看启动日志,发现有一个非系统服务的shell程序被提前加载,这个脚本控制端口的连接,除22端口外其他端口统统deny,那问题应该就在这里了!!!找到脚本,在deny前加上允许FTP的端口,然后连接ok!
问题居然就这么简单
然后修改ssh端口,绝妙的是,这两台服务器用的是一模一样的shell程序,难怪问题相同,这里将允许端口22通过改成其他的端口,再修改sshd.conf,kill -HUP [PID_SSHD],ok!!!
呵呵,一个小小的策略引起的问题.