iptables限制某个端口的连接数
2015-07-13 10:42
225 查看
iptables限制某个ip或者某组ip的连接数
测试规则如下:
# Firewall configuration written by system-config-firewall
# Manual customization of this file is not recommended.
#-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEP
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -p tcp --syn --dport 22 -m connlimit --connlimit-above 3 --connlimit-mask 0 -j DROP
-A INPUT -s 192.168.10.0/24 -j ACCEPT
-A OUTPUT -d 192.168.10.0/24 -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A OUTPUT -p icmp -j ACCEPT
-A INPUT -s 127.0.0.1 -d 127.0.0.1 -j ACCEPT
-A OUTPUT -s 127.0.0.1 -d 127.0.0.1 -j ACCEPT
-A INPUT -j DROP
-A OUTPUT -j DROP
COMMIT
主要用到的模块connlimit
-A INPUT -p tcp --syn --dport 22 -m connlimit --connlimit-above 3 --connlimit-mask 0 -j DROP #输入的目标端口是22,也就是访问本机22端口的流量,如果连接数大于3,则DROP流量,connlimit-above这个是连接数的统计,如果大于3就满足条件,connlimit-mask这个是定义那组主机,此处跟的一个数值是网络位,子网掩码,也就是connlimit-mask
0 这个ip组的连接数大于connlimit-above 3则DROP
-A INPUT -s 192.168.10.0/24 -j ACCEPT #允许这个段的输入流量
-A OUTPUT -d 192.168.10.0/24 -j ACCEPT #允许这个段的输出流量
总体描述为流量过滤端口和连接数以及网络位,如果满足第一条,则拒绝,流量不再匹配下边的规则,如果不匹配,则第二条规则会允许流量,第一条中掩吗为0,就表示所有的ip,也就是说不管什么ip,只要连接此服务器的22端口超过3个,则DROP。
如果吧--connlimit-mask 0 这个去掉,那么connlimit-mask值默认会是32,也就是说,某个ip链接此服务器超过3个,则drop,如果又4台机器,每台机器连一个,那么它不会drop!
也就是说connlimit-above 3这个的数量所限制的区域是由--connlimit-mask 0而定!
##################
笔者原创
作者:JOHN
转载请注明出处
测试规则如下:
# Firewall configuration written by system-config-firewall
# Manual customization of this file is not recommended.
#-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEP
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -p tcp --syn --dport 22 -m connlimit --connlimit-above 3 --connlimit-mask 0 -j DROP
-A INPUT -s 192.168.10.0/24 -j ACCEPT
-A OUTPUT -d 192.168.10.0/24 -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A OUTPUT -p icmp -j ACCEPT
-A INPUT -s 127.0.0.1 -d 127.0.0.1 -j ACCEPT
-A OUTPUT -s 127.0.0.1 -d 127.0.0.1 -j ACCEPT
-A INPUT -j DROP
-A OUTPUT -j DROP
COMMIT
主要用到的模块connlimit
-A INPUT -p tcp --syn --dport 22 -m connlimit --connlimit-above 3 --connlimit-mask 0 -j DROP #输入的目标端口是22,也就是访问本机22端口的流量,如果连接数大于3,则DROP流量,connlimit-above这个是连接数的统计,如果大于3就满足条件,connlimit-mask这个是定义那组主机,此处跟的一个数值是网络位,子网掩码,也就是connlimit-mask
0 这个ip组的连接数大于connlimit-above 3则DROP
-A INPUT -s 192.168.10.0/24 -j ACCEPT #允许这个段的输入流量
-A OUTPUT -d 192.168.10.0/24 -j ACCEPT #允许这个段的输出流量
总体描述为流量过滤端口和连接数以及网络位,如果满足第一条,则拒绝,流量不再匹配下边的规则,如果不匹配,则第二条规则会允许流量,第一条中掩吗为0,就表示所有的ip,也就是说不管什么ip,只要连接此服务器的22端口超过3个,则DROP。
如果吧--connlimit-mask 0 这个去掉,那么connlimit-mask值默认会是32,也就是说,某个ip链接此服务器超过3个,则drop,如果又4台机器,每台机器连一个,那么它不会drop!
也就是说connlimit-above 3这个的数量所限制的区域是由--connlimit-mask 0而定!
##################
笔者原创
作者:JOHN
转载请注明出处
相关文章推荐
- Android 相机拍照,解决拍照过小不清晰
- 如何是cell中的图片只下载一次
- 剑指off-用两个队列模拟栈
- Java类加载器总结
- Jmeter 通过函数参数化
- MFC导入并显示BMP图片功能实现
- web 前端:连接mysql中文乱码问题的解决办法
- 【问底】王帅:深入PHP内核(一)——弱类型变量原理探究
- CART分类算法
- 动态代理---动态生成java文件并编译成class文件
- 命令行运行ktr和kjb
- 分解质因数
- JSP开发模式
- Facebook SDK for iOS 2.4 iOS 6 上运行崩溃
- 冒泡排序
- 插入排序
- shell中$0,$?,$!等的特殊用法
- Nessus漏洞扫描教程之配置Nessus
- R.layout 中找不到已存在布局文件
- 选择排序