#!/bin/sh

IPTABLES=/sbin/iptables

# clear

$IPTABLES -F

# if pkg type is allow, then accept

#$IPTABLES -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

# 如果同时在80端口的连接数大于10,就Drop掉这个ip

netstat -an | grep : | awk -F: '{ print $8 }' | sort | uniq -c | awk -F\   '$1>10 && $2!="" { print $2 }' >> /etc/fw.list

less /etc/fw.list | sort | uniq -c | awk -F\   '$2!="" { print $2 }' > /etc/fw.list2

less /etc/fw.list2 > /etc/fw.list

while read line

       do

       t=`echo "$line"`

       $IPTABLES -A INPUT -p tcp -s $t -j DROP

done < /etc/fw.list2

# IP转发

$IPTABLES -A INPUT -p tcp --dport  -j ACCEPT

$IPTABLES -A INPUT -d 172.16.204.7 -p tcp -m tcp --dport  -i eth0 -j ACCEPT

$IPTABLES -t nat -A PREROUTING -d 211.100.39.44 -p tcp -m tcp --dport  -j DNAT --to-destination 172.16.204.7:

$IPTABLES -t nat -A POSTROUTING -d 172.16.204.7 -p tcp -m tcp --dport  -j SNAT --to-source 10.6.39.44

# if pkg visit , port then accept

$IPTABLES -A INPUT -p tcp --dport  -j ACCEPT

$IPTABLES -A INPUT -p tcp --dport  -j ACCEPT

$IPTABLES -A INPUT -p tcp --dport  -j ACCEPT

$IPTABLES -A INPUT -p tcp --dport  -j ACCEPT

# $IPTABLES -A INPUT -i eth0 -m limit --limit /sec --limit-burst  -j ACCEPT

$IPTABLES -A INPUT -p tcp --tcp-flags SYN,ACK,FIN,RST SYN -m limit --limit /m --limit-burst  -j ACCEPT

$IPTABLES -A FORWARD -p tcp --syn -m limit --limit /s -j ACCEPT

$IPTABLES -A FORWARD -f -m limit --limit /s --limit-burst  -j ACCEPT

# if pkg from allow ip then accept

$IPTABLES -A INPUT -p tcp -s 127.0.0.1   -j ACCEPT

# if pkg not above then deny

$IPTABLES -A INPUT -p tcp --syn -j DROP

下面这个防火墙测试结果更正确,能起到一定的防攻击的功能

#!/bin/sh

IPTABLES="/sbin/iptables"

echo "" > /proc/sys/net/ipv4/ip_forward

$IPTABLES -P INPUT DROP

$IPTABLES -P FORWARD DROP

$IPTABLES -P OUTPUT DROP

$IPTABLES -F

$IPTABLES -X

$IPTABLES -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

$IPTABLES -A INPUT -p tcp --dport  -j ACCEPT

$IPTABLES -A INPUT -p tcp --dport  --tcp-flags SYN,ACK,FIN,RST SYN -m limit --limit /m --limit-burst  -j ACCEPT

$IPTABLES -A OUTPUT -p tcp -s 127.0.0.1 -j ACCEPT

$IPTABLES -A OUTPUT -p tcp -s 192.168.1.102 -j ACCEPT

$IPTABLES -A OUTPUT -p udp -s 127.0.0.1 -j ACCEPT

$IPTABLES -A OUTPUT -p udp -s 192.168.1.102 -j ACCEPT

$IPTABLES -A INPUT -p tcp --syn -j DROP
复制代码

http://bbs.chinaunix.net/thread-3665515-1-1.html

防简单攻击iptables策略的更多相关文章

  1. 防cc攻击策略

    黑客攻击你的网站,会采取各种各样的手段,其中为了降低你网站的访问速度,甚至让你的服务器瘫痪,它会不断的刷新你的网站,或者模拟很多用户同一时间大量的访问你的网站, 这就是所谓的CC攻击,这就需要我们在程 ...

  2. 转:nginx防DDOS攻击的简单配置

    文章来自于: 近期由于工作需要,做了些防DDOS攻击的研究,发现nginx本身就有这方面的模块ngx_http_limit_req_module和ngx_http_limit_conn_module. ...

  3. linux中防CC攻击两种实现方法(转)

    CC攻击就是说攻击者利用服务器或代理服务器指向被攻击的主机,然后模仿DDOS,和伪装方法网站,这种CC主要是用来攻击页面的,导致系统性能用完而主机挂掉了,下面我们来看linux中防CC攻击方法. 什么 ...

  4. Linux系统防CC攻击自动拉黑IP增强版Shell脚本 《Linux系统防CC攻击自动拉黑IP增强版Shell脚本》来自张戈博客

    前天没事写了一个防CC攻击的Shell脚本,没想到这么快就要用上了,原因是因为360网站卫士的缓存黑名单突然无法过滤后台,导致WordPress无法登录!虽然,可以通过修改本地hosts文件来解决这个 ...

  5. 增强VPS SSH账号安全:改端口,禁用Root,密钥登录,Denyhosts防暴力攻击

    VPS SSH账号是我们日常管理VPS的主要登入方式,尤其是Root账号,对Linux系统安全至关重要.以前好多站长喜欢用Putty中文版,这实际是别人修改官方Putty汉化而来,这些软件被植入了后门 ...

  6. 使用Discuz!自带参数防御CC攻击以及原理,修改Discuz X 开启防CC攻击后,不影响搜索引擎收录的方法

    这部份的工作,以前花的时间太少. 希望能产生一定的作用. http://www.nigesb.com/discuz-cc-attacker-defence.html http://bbs.zb7.co ...

  7. .NET MVC中的防CSRF攻击

    一.CSRF是什么? CSRF(Cross-site request forgery),中文名称:跨站请求伪造,也被称为:one click attack/session riding,缩写为:CSR ...

  8. 【前端安全】JavaScript防XSS攻击

    什么是XSS XSS(Cross Site Scripting),跨站脚本攻击,是一种允许攻击者在另外一个用户的浏览器中执行恶意代码脚本的脚本注入式攻击.本来缩小应该是CSS,但为了和层叠样式(Cas ...

  9. 25个最常用的iptables策略

    1.清空存在的策略当你开始创建新的策略,你可能想清除所有的默认策略,和存在的策略,可以这么做:iptables -F  或者iptables --flush2,设置默认策略默认链策略是ACCEPT,改 ...

随机推荐

  1. IAR仿真时绿色箭头一直指向汇编界面,而C界面没有

    设置如下

  2. 容错处理库Polly使用文档

    Design For Failure1. 一个依赖服务的故障不会严重破坏用户的体验.2. 系统能自动或半自动处理故障,具备自我恢复能力. 以下是一些经验的服务容错模式 超时与重试(Timeout an ...

  3. 连接远程linux机器时无法使用matlab gui的解决方案

    用ssh连接romate linux之后要打开matlab的界面.却得到warning: No display specified.的警告 虽然每个linux都是可以打开matlab界面的.但是需要使 ...

  4. oracle trim函数用法详解

    在oracle数据库中,trim一般都是用在删除字符串两边的空格.实际上,trim也可以用来删除字符串两边的指定字符.并且trim指定删除的字符串只能是单个字符Oracle TRIM函数是很常见的函数 ...

  5. vivado 调用UE

  6. MD5 和的价值体现在哪里,它是用来做什么的?

    MD5 和的价值体现在哪里,它是用来做什么的? MD5 和是由字母和数字构成的字符串,起到了文件指纹的作用.如果两个文件有相同的 MD5 和值,那么,文件完全相同.您可以为每一软件下载使用所提供的 M ...

  7. 【Unity】3.6 导入图片资源

    分类:Unity.C#.VS2015 创建日期:2016-04-05 一.简介 Unity支持的图像文件格式非常多,包括TIF.PSD.TCA.JPC.PNG.GlF.BMP.IFF.PICT.DDS ...

  8. python 给文件批量加‘“’ ”,"

    file = open('face.txt','r') filew = open('face1.txt','w') try: for line in file: print(line) if line ...

  9. HTML5学习笔记(二):HTML基础学习之二

    表单 表单用来传递用户数据,多用来与后端进行数据交互. 前端: <!DOCTYPE html> <html lang="en"> <head> ...

  10. 转:Git: git stash 用法小结

    一.应用场景 综合下网上的介绍和资料, git stash (git储藏)可用于以下情形: 发现有一个类是多余的,想删掉它又担心以后需要查看它的代码,想保存它但又不想增加一个脏的提交.这时就可以考虑  ...