试图理解iptables(我在VPS上安装了cPanel)并且有一点玩法,所以听起来像是一个愚蠢的问题我在做什么。
我已经将默认的iptables配置复制到备份(如果出现错误还原),并创建了自定义iptables配置(/ etc / sysconfig / iptables),我是DROP INPUT / OUTPUT / FORWARDING(所以一切)。
然后我设法获得除了电子邮件(25)之外我想要访问所需工作的所有端口(传入/传出HTTP / s / SSH / FTP等)。我正在使用Roundcube并使用以下配置发送电子邮件,但电子邮件无法在我的服务器上发送/接收(如果我恢复默认配置(接受所有内容),那么除了端口之外):25是否有我需要允许访问的任何其他端口知道一切都被丢弃后发送的邮件?)。我在我的自定义(/ etc / sysconfig / iptables)中使用下面的config配置电子邮件: -
-A INPUT -p tcp --dport 25 -m state --state NEW,ESTABLISHED -j ACCEPT
-A OUTPUT -p tcp --sport 25 -m state --state ESTABLISHED -j ACCEPT
-A OUTPUT -p tcp --dport 25 -j ACCEPT
-A INPUT -p tcp --sport 25 -m state --state ESTABLISHED -j ACCEPT
答案 0 :(得分:0)
IP是双向通信,当您接收邮件时,会在您的服务器上通过端口25发送数据包,并且您将在任意分配的端口号上发送响应数据包(在连接建立期间确定)
因此,关于iptables的常见规则是:
无论连接状态如何,都接受来自指定端口(邮件为25)的输入数据包
-A INPUT -p tcp --dport 25 -j ACCEPT
接受发送所有已建立连接的数据包,无论目标端口是什么。-A OUTPUT -p tcp -m state --state ESTABLISHED -j ACCEPT
现在,如果您想发送邮件到服务器,您必须允许数据包到达端口25并允许传入所有已建立的连接。
-A INPUT -p tcp -m state --state ESTABLISHED -j ACCEPT
-A OUTPUT -p tcp --dport 25 -j ACCEPT
另一个想法是记录应该删除的数据包。 将日志行放在所有链规则的末尾。
iptables -A INPUT -p tcp -j LOG --log-prefix "INPUT PACKET DROPPED " iptables -A OUTPUT -p tcp -j LOG --log-prefix "OUTPUT PACKET DROPPED "
有了这个,你会在/ var / log / message(或dmesg)中看到每个数据包的一行到达链规则的末尾并且掉线了。