在CentOS系统中,使用iptables进行流量控制主要涉及到两个模块:ip_conntrack和hashlimit
首先,确保已经安装了iptables-services软件包。如果没有,请使用以下命令安装:
sudo yum install iptables-services
sudo systemctl start iptables
sudo systemctl enable iptables
hashlimit模块可以限制单位时间内的连接数或数据包数量。以下是一些示例规则:
sudo iptables -A INPUT -p tcp --syn -m hashlimit --hashlimit-name mylimit --hashlimit-upto 10/min -j ACCEPT
sudo iptables -A INPUT -p tcp -m hashlimit --hashlimit-name mylimit --hashlimit-upto 100/min -j ACCEPT
sudo iptables -A INPUT -p tcp -m hashlimit --hashlimit-name mylimit --hashlimit-upto 5/sec -j ACCEPT
CentOS 7及更高版本使用firewalld作为默认防火墙,因此需要安装iptables-services软件包来保存规则。对于CentOS 6,请使用以下命令保存规则:
sudo service iptables save
使用以下命令查看当前的iptables规则:
sudo iptables -L -n -v
注意:这些规则仅适用于TCP流量。如果需要对其他协议进行流量控制,可以根据需要修改规则。同时,这些规则在系统重启后将丢失。要使规则永久生效,请考虑使用firewalld或其他持久化方法。