一.iptables优化脚本案例

#!/bin/bash

#脚本下载地址:#wget www.mrliangqi.com/pack/shell/iptables.sh

#脚本使用:#bash iptables.sh

# 适用于Web等服务的Linux iptables防火墙脚本。

# 注意1:该脚本需要根据实际情况修改后才能使用。

# 注意2:如果需要开发ftp服务,仅仅开发TCP20,21端口是不够的,必须要加载ip_conntrack_ftp以及ip_nat_ftp。

#     修改/etc/sysconfig/iptables-config, 增加/修改为以下一行内容:

#     IPTABLES_MODULES="ip_conntrack_ftp ip_nat_ftp"

##############

# 可信任的主机或者网段

##############

TRUSTHOSTS=( "0.0.0.0/0" )

##############

# 只开放给可信任主机的管理用端口

##############

ADMIN_TCP_PORTS="22,3306"

##############

# 对公网开放的服务端口

##############

SERVICE_TCP_PORTS="22,25,80,3306,1980,65531"

SERVICE_UDP_PORTS="53"

##############

# 清空原来的iptables设置

##############

iptables -F

iptables -X

##############

# 设置默认规则

# 通常INPUT及FORWARD设为DROP,OUTPUT设置为ACCEPT就足够了

# 极端情况下,可以将OUTPUT也设置成默认DROP。然后针对OUTPUT逐条增加过滤规则

##############

iptables -P INPUT DROP

iptables -P FORWARD DROP

iptables -P OUTPUT ACCEPT

##############

# 允许lo, PING, 以及所有内部发起的访问

##############

iptables -A INPUT -i lo -j ACCEPT

iptables -A INPUT -p icmp -j ACCEPT

iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT

iptables -A FORWARD -p icmp -j ACCEPT

iptables -A FORWARD -m state --state ESTABLISHED -j ACCEPT

##############

# 允许可信任主机访问管理端口

##############

for TRUSTHOST in ${TRUSTHOSTS[@]}

do

iptables -A INPUT  -p tcp -j ACCEPT -m multiport --dport $ADMIN_TCP_PORTS -s $TRUSTHOST

done

##############

# 放开TCP及UDP服务端口

##############

iptables -A INPUT  -p tcp -j ACCEPT -m multiport --dport $SERVICE_TCP_PORTS

iptables -A INPUT  -p udp -j ACCEPT -m multiport --dport $SERVICE_UDP_PORTS

#######################

# 防止DDOS攻击:Ping of Death

#######################

iptables -N PING_OF_DEATH

iptables -A PING_OF_DEATH -p icmp --icmp-type echo-request \

-m hashlimit \

--hashlimit 10/s \

--hashlimit-burst 10 \

--hashlimit-htable-expire 300000 \

--hashlimit-mode srcip \

--hashlimit-name t_PING_OF_DEATH \

-j RETURN

iptables -A PING_OF_DEATH -j LOG --log-prefix "ping_of_death_attack: "

iptables -A PING_OF_DEATH -j DROP

iptables -A INPUT -p icmp --icmp-type echo-request -j PING_OF_DEATH

#######################

# 防止DDOS攻击:SYN FLOOD

#######################

iptables -N SYN_FLOOD

iptables -A SYN_FLOOD -p tcp --syn \

-m hashlimit \

--hashlimit 200/s \

--hashlimit-burst 10 \

--hashlimit-htable-expire 300000 \

--hashlimit-mode srcip \

--hashlimit-name t_SYN_FLOOD \

-j RETURN

iptables -A SYN_FLOOD -j LOG --log-prefix "syn_flood_attack: "

iptables -A SYN_FLOOD -j DROP

iptables -A INPUT -p tcp --syn -j SYN_FLOOD

#######################

# 防止DDOS攻击:stealth scan

#######################

iptables -N STEALTH_SCAN

iptables -A STEALTH_SCAN -j LOG --log-prefix "stealth_scan_attack: "

iptables -A STEALTH_SCAN -j DROP

iptables -A INPUT -p tcp --tcp-flags SYN,ACK SYN,ACK -m state --state NEW -j STEALTH_SCAN

iptables -A INPUT -p tcp --tcp-flags ALL NONE -j STEALTH_SCAN

iptables -A INPUT -p tcp --tcp-flags SYN,FIN SYN,FIN         -j STEALTH_SCAN

iptables -A INPUT -p tcp --tcp-flags SYN,RST SYN,RST         -j STEALTH_SCAN

iptables -A INPUT -p tcp --tcp-flags ALL SYN,RST,ACK,FIN,URG -j STEALTH_SCAN

iptables -A INPUT -p tcp --tcp-flags FIN,RST FIN,RST -j STEALTH_SCAN

iptables -A INPUT -p tcp --tcp-flags ACK,FIN FIN     -j STEALTH_SCAN

iptables -A INPUT -p tcp --tcp-flags ACK,PSH PSH     -j STEALTH_SCAN

iptables -A INPUT -p tcp --tcp-flags ACK,URG URG     -j STEALTH_SCAN

service iptables save

二.通过加载ip_nat_pptp模块使iptables支持PPTP穿透

的通过上面的脚本添加完整的iptables之后,发现无论如何都连接不到之前搭建的vpn,开始以为过滤策略有问题,后来发现清楚之后还一样,最后查看log,发现一下错误

localhost kernel: conntrack: generic helper won't handle protocol 47. Please consider loading the specific helper module.

需要加载某些模块,最后网上找到一条加载命令:

# modprobe ip_nat_pptp

加载即可~正常连接vpn.

长期有效的的办法当然不是手动加载,而是让每次启动之后都自动加载该模块。这时候就需要在/etc/sysconfig/iptables 中加入:

IPTABLES_MODULES="ip_conntrack_netbios_ns ip_conntrack_ftp ip_nat_pptp"

iptables防护CC和DDos和PPTP穿透脚本的更多相关文章

  1. 网站遭遇CC及DDOS攻击紧急处理方案

    检测访问是否是CC攻击的命令: 80口为网站的访问端口,可以根据实际情况进行修改 # netstat -anlp|grep 80|grep tcp|awk '{print $5}'|awk -F: ' ...

  2. 宝塔linux面板防护CC设置

    使用宝塔linux面板很多用户受到CC攻击不知如何防范. 下面讲下如何利用宝塔自带的功能来进行基本的CC防护. 首先是在nginx上有个waf安全模块,里面有CC防护设置.(要求nginx为1.12版 ...

  3. f5 ddos cc——Mitigating DDoS Attacks with F5 Technology

    摘自:https://f5.com/resources/white-papers/mitigating-ddos-attacks-with-f5-technology Mitigating Appli ...

  4. Linux iptables 安全配置(防Ddos)

    *filter:INPUT ACCEPT [0:0]:FORWARD ACCEPT [0:0]:OUTPUT ACCEPT [0:0]-N whitelist-A whitelist -s 58.60 ...

  5. CentOS 6.x 一键安装PPTP VPN脚本

    环境 CentOS 6.x 32位/64位XEN/KVM/OpenVZ 步骤 依次运行下列命令 #wget http://www.hi-vps.com/shell/vpn_centos6.sh #ch ...

  6. Iptables DDOS/CC 自动屏蔽脚本

    Iptables DDOS/CC 自动屏蔽脚本 May 20, 2013 最近不停地被 CC (DDOS的一种)频繁干扰,分享一个 iptables 屏蔽 DDOS 的脚本.让 crond 每分钟运行 ...

  7. iptables防DDOS攻击和CC攻击设置

    防范DDOS攻击脚本 #防止SYN攻击 轻量级预防 iptables -N syn-flood iptables -A INPUT -p tcp --syn -j syn-flood iptables ...

  8. iptables防DDOS攻击和CC攻击配置

    防范DDOS攻击脚本 #防止SYN攻击 轻量级预防 iptables -N syn-flood iptables -A INPUT -p tcp –syn -j syn-flood iptables ...

  9. DDOS防护原理

    1.常见DDoS攻击分类 DDoS粗略分类为流量型攻击和CC攻击.流量型攻击主要是通过发送报文侵占正常业务带宽,甚至堵塞整个数据中心的出口,导致正常用户访问无法达到业务服务器.CC攻击主要是针对某些业 ...

随机推荐

  1. bzoj 3620 暴力KMP

    十分暴力的KMP,枚举左端点,在向右侧推进的同时,取较小的la保证条件,n方暴力 #include<bits/stdc++.h> #define rep(i,j,k) for(int i= ...

  2. Node 体验 事件驱动、非阻塞式 I/O

    https://github.com/nswbmw/N-blog/blob/master/book/2.1%20require.md 全局对象和浏览器中的window类似 1.console.log( ...

  3. HttpClient 测试web API上传文件实例

    1.使用HttpClient 测试上传文件并且设置header信息: using Lemon.Common; using Newtonsoft.Json; using System; using Sy ...

  4. [C++]PAT乙级1010. 一元多项式求导 (25/25)

    /* 1010. 一元多项式求导 (25) 设计函数求一元多项式的导数.(注:x^n(n为整数)的一阶导数为n*x^n-1.) 输入格式: 以指数递降方式输入多项式非零项系数和指数(绝对值均为不超过1 ...

  5. UE4 位置转换相关函数

    get mouse positionget mouse position scaled by dpiget viewport scaleDeproject Scence to WorldLocal T ...

  6. CPU缓存一致性协议—MESI详解

    MESI(也称伊利诺斯协议)是一种广泛使用的支持写回策略的缓存一致性协议,该协议被应用在Intel奔腾系列的CPU中. MESI协议中的状态 CPU中每个缓存行使用的4种状态进行标记(使用额外的两位b ...

  7. Django实战(一)-----用户登录与注册系统2(数据模型、admin后台、路由视图)

    使用Django开发Web应用的过程中,很多人都是急急忙忙地写视图,写前端页面,把最根本的模型设计给忽略了. 模型中定义了数据如何在数据库内保存,再直白点说就是数据表的定义.这部分工作体现在Djang ...

  8. 关于VXLAN的认识-----基础知识

    一.什么是VXLAN 普通的VLAN数量只有4096个,无法满足大规模云计算IDC的需求,因为目前大部分IDC内部结构主要分为两种L2,L3. L2结构里面,所有的服务器都在一个大的局域网里面,TOR ...

  9. pytroch 0.3 到 0.4版本迁移资料mark

    搜了一堆,还是官方资料给力,一份中文,一份英文,maek一下 https://www.pytorchtutorial.com/pytorch-0-4-0-migration-guide/ https: ...

  10. codevs 1080 线段树练习(线段树)

    题目: 题目描述 Description 一行N个方格,开始每个格子里都有一个整数.现在动态地提出一些问题和修改:提问的形式是求某一个特定的子区间[a,b]中所有元素的和:修改的规则是指定某一个格子x ...