Iptables 规则导致通信速度很慢

Iptables 规则导致通信速度很慢

当我向运行在应用了以下防火墙规则的机器上的应用程序发送请求时,它会等待很长时间。当我停用 iptables 规则时,它会立即响应。是什么导致通信如此缓慢?

-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p tcp -m tcp --dport 22 -j ACCEPT
-A INPUT -p esp -j ACCEPT
-A INPUT -i ppp+ -j ACCEPT
-A INPUT -p udp -m udp --dport 500 -j ACCEPT
-A INPUT -p udp -m udp --dport 4500 -j ACCEPT
-A INPUT -p udp -m udp --dport 1701 -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -i lo -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT
-A INPUT -m limit --limit 5/min -j LOG --log-prefix "iptables denied: " --log-level 7
-A FORWARD -i ppp+ -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT

更新。

ftp -inv <<! > $FTPLOG
open $_FTP_HOST
user $_FTP_USER $_FTP_PASS
mkdir $_FTP_COPY_TO_FOLDER
cd $_FTP_COPY_TO_FOLDER
lcd $BACKUP_SAVE_DIR
bin
put $BACKUP_FILE_NAME
quit
!

这是 ftp 连接

ftp> ls
200 Port command successful
150 Opening data channel for directory list.

答案1

您应该删除此规则,因为它是多余的:

-A INPUT -i lo -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT

这些规则是在恒定时间内处理的,没有状态数据,而且极不可能成为问题:

-A INPUT -p tcp -m tcp --dport 22 -j ACCEPT
-A INPUT -p esp -j ACCEPT
-A INPUT -i ppp+ -j ACCEPT
-A INPUT -p udp -m udp --dport 500 -j ACCEPT
-A INPUT -p udp -m udp --dport 4500 -j ACCEPT
-A INPUT -p udp -m udp --dport 1701 -j ACCEPT
-A INPUT -i lo -j ACCEPT

这些规则往往很有效,除非您有大量的开放 TCP 连接,否则不太可能导致这种情况:

-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -i ppp+ -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT

由于日志记录和更重要的是限制规则,此规则是您所拥有的最昂贵的规则:

-A INPUT -m limit --limit 5/min -j LOG --log-prefix "iptables denied: " --log-level 7

尝试删除最后一个规则,看看性能是否提高。如果没有,请将其添加回来并删除两个状态规则,看看性能是否提高。

但是,这在很大程度上取决于您向应用程序发出请求的含义。除非您通过网络发出请求,否则这些都不适用,因为您的规则都是输入或转发(尽管它们可能会影响从该主机向网络发出查询的速度)。操作是否完成?

相关内容