通过iptables限制并发连接数20130515
来源:互联网 发布:小米手机一键刷机软件 编辑:程序博客网 时间:2024/06/04 18:23
通过iptables对用户ip的连接数量和发包速率记录log进行统计,后期对用户IP的连接数量和发包速率进行限制,以减轻恶意用户或者CC攻击对服务器资源的过大消耗,保证
源站安全;修改系统内核参数增加同时打开SYN半连接的数量,缩短SYN半连接timeout值,已减轻SYN flood对前置机的影响
###for security log only
##log tcp connection limit
/sbin/iptables -A INPUT -p tcp --syn --dport 80 -m connlimit --connlimit-above 150 -j LOG --log-level 4 --log-prefix "iptables limit connection:"
/sbin/iptables -A INPUT -p tcp --syn --dport 80 -m connlimit --connlimit-above 150 -j DROP
##log pkgs exceed a limit rate(测试后意义不大)
#/sbin/iptables -A INPUT -p tcp --dport 80 -m limit --limit 10000/s --limit-burst 3000 -j LOG --log-level 4 --log-prefix "iptables limit rate:"
系统默认同时打开SYN半连接的数量为1024,需要调大
# more /proc/sys/net/ipv4/tcp_max_syn_backlog
1024
$ more /proc/sys/net/ipv4/tcp_syn_retries
5
将drop的数据包记录到log
# vim /etc/rsyslog.conf
# for log iptables rules
:msg, contains, "iptables limit connection" -/var/log/iptables_conn.log
:msg, contains, "iptables limit rate" -/var/log/iptables_rate.log
# /etc/init.d/rsyslog restart
查看log
# tail -f /var/log/iptables_conn.log
May 15 07:22:00 nginx kernel: iptables limit connection:IN=eth1 OUT= MAC=78:2b:cb:74:86:fc:00:30:a3:4c:b8:0a:08:00 SRC=112.95.241.183 DST=1.79.233.105
LEN=60 TOS=0x00 PREC=0x00 TTL=50 ID=34034 DF PROTO=TCP SPT=60936 DPT=80 WINDOW=5840 RES=0x00 SYN URGP=0
May 15 07:22:00 nginx kernel: iptables limit connection:IN=eth1 OUT= MAC=78:2b:cb:74:86:fc:00:30:a3:4c:b8:0a:08:00 SRC=112.95.241.183 DST=1.79.233.105
LEN=60 TOS=0x00 PREC=0x00 TTL=50 ID=50703 DF PROTO=TCP SPT=57970 DPT=80 WINDOW=5840 RES=0x00 SYN URGP=0
查看iptable数据包匹配状态
# iptables -L -vn
- 通过iptables限制并发连接数20130515
- 通过iptables限制并发连接数20130515
- iptables限制连接数
- iptables限制单个IP并发TCP连接
- iptables限制同一IP连接数
- iptables 限制指定ip的连接数
- iptables限制某个端口的连接数
- iptables限制同一IP连接数
- iptables限制同一IP连接数
- iptables限制并发数据
- iptables限制并发数据
- Squid 限制用户并发连接数
- 限制服务器最大并发连接数(47)
- apache加载mod_limitipconn,限制并发连接数
- nginx 限制用户并发连接数
- nginx 限制用户并发连接数
- nginx 限制并发连接数 limit_zone one
- iis7连接数(并发连接数)到底是什么,多少限制?
- SQLMAP注入拖库过程
- 黑与白
- <%#eval%>和<%#bind%>的区别
- struts2 parseRequest(request)为空替代方法
- 使用云(BAE)实现android应用数据的远程存取(MySQL)
- 通过iptables限制并发连接数20130515
- Bus error 续二
- 黑马程序员 Java基础 ---> String类
- android 如何实现apk search出现在系统的推荐列表里
- VxWorks组件技术
- 1 Unix家族系谱图,2 Linux各版本血缘关系
- Android MediaPlayer(2)
- 找到11的n次方十进制表示中1的个数
- android创建sqlite数据库及在SD卡上创建数据库