我是 Linux 新手,以前用过 Windows 很多年,这是我第一次使用 Linux“Ubuntu 14.04 LTS”
我正在托管一个游戏服务器,我想知道是否可以让 IPtables 在 2 个或以上玩家在同一秒内登录我的 tcp/udp 端口“7171”时将其踢出或阻止他们 5 秒钟,我不需要像“drop-reject”常规选项那样长时间阻止他们。
有人能告诉我正确的命令或教程吗?如果 2 个或以上玩家在同一秒内从同一 IP 登录到我的 tcp/udp 端口“7171”,就踢出?或者丢弃/阻止他们 5 秒或更短时间?
提前致谢我感谢任何人的回答/帮助
答案1
这个答案假设在你的 iptables 规则集的某个地方有:
sudo iptables -A INPUT -i eth0 -s 0.0.0.0/0 -d XXX.YYY.ZZZ.WWW -m state --state ESTABLISHED,RELATED -j ACCEPT
一旦连接已经建立,则作为旁路。
然后检测和临时 DROP 规则是(我已经做了 3 秒):
sudo iptables -A INPUT -i eth0 -m recent --update --hitcount 2 --seconds 3 --name BADGUY_GAME -j DROP
sudo iptables -A INPUT -i eth0 -p tcp -m tcp --dport 7171 -m recent --set --name BADGUY_GAME -j ACCEPT
在哪里:
eth0 is your external I/F. Change to your actual external I/F name
XXX.YYY.ZZZ.WWW is your external IP address. Change to actual.