编写一个脚本,直接给出案例,iptables所有端口开放, 通过shell变量的方式配置每个ip和指定端口号1秒钟最多建立多少个TCP连接,*表示所有端口...
时间: 2024-02-06 15:08:51 浏览: 56
下面是一个例子,脚本名为 `iptables_tcp_limit.sh`:
```bash
#!/bin/bash
# 获取传入的IP地址和每秒最大连接数
ip=$1
limit=$2
# 如果参数不足,则提示使用方法
if [ $# -lt 2 ]; then
echo "Usage: $0 <ip_address> <max_connections_per_second>"
exit 1
fi
# 开放所有端口
iptables -I INPUT -p tcp -s $ip -j ACCEPT
iptables -I OUTPUT -p tcp -d $ip -j ACCEPT
# 限制每秒最大连接数
iptables -A INPUT -p tcp -s $ip -m connlimit --connlimit-above $limit --connlimit-mask 32 -j REJECT --reject-with tcp-reset
iptables -A OUTPUT -p tcp -d $ip -m connlimit --connlimit-above $limit --connlimit-mask 32 -j REJECT --reject-with tcp-reset
```
使用方法:
- 执行 `chmod +x iptables_tcp_limit.sh` 添加可执行权限;
- 执行脚本 `./iptables_tcp_limit.sh 192.168.0.1 10`,其中 `192.168.0.1` 是要限制的 IP 地址,`10` 是每秒最大连接数。
这个脚本将会开放指定 IP 的所有端口,并限制每秒最多建立 10 个 TCP 连接。如果超过限制,将会被强制拒绝连接。
阅读全文