如何在iptableslocking后重新获得SSH访问权限?

TL:DR

我改变了我的iptablesconfiguration,现在SSH拒绝所有的连接。 我可以解决这个问题,而不联系我的托pipe公司


长版本

好的,这很可能是100%我自己的错

在准备将网站移动到专用服务器时,我们得到了一台运行CentOS 5.6的新主机。 该机器iptables相当locking,只允许ssh(22)和http(80),但我们也需要它通过端口20 en 21接受FTP。

今天下午,我添加到我的iptables的线路,以接受到端口20和21的传入连接。起初,这是行不通的,因为有一个reject all线路我上面添加的ftp。 所以我把这条线移到底部,保存并重新启动iptables和ftp正在工作。

2小时后,当我尝试再次连接, port 22: Connection refused同样的http。

所以我无法通过SSH到服务器,有什么办法可以解决这个问题,而无需联系我的托pipe公司?

很不幸的是,不行。 除非您有其他可用的pipe理界面,如远程串行控制台,iDRAC,iLO等,否则请在下次登出之前将其粉碎以体验并记住testing设置;)

假设您仍然可以通过ftp访问服务器,并且可以通过ftp(不太可能和通常不明智的方式)以root用户身份login到非chrooted(etc)环境:

将这些内容放在/etc/cron.d文件中:

 * * * * * root /sbin/service iptables stop 

根据这些说明 ,您还可以追加:

 scripts2/doautofixer?autofix=iptablesflush 

…到您的WHMurl。 我做到了,并以一个url结束:

 https://mysite:2087/SESSION_ID/scripts2/doautofixer?autofix=iptablesflush 

它重置我的iptables,一切都很好,再次与世界。 🙂

在CentOS中,如果你没有这个文件,你可以使用/etc/sysconfig/iptables文件,只需使用iptables-save将当前规则集转储到一个文件中即可。

 iptables-save > /etc/sysconfig/iptables 

要加载文件,你不需要重启机器,你可以使用iptables-restore

 iptables-restore < /etc/sysconfig/iptables