iptables防护CC和DDos和PPTP穿透脚本

一.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[@]}

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

done

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

# 放开TCP及UDP服务端口

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

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

# 防止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”

原文链接:https://www.cnblogs.com/python-cat/p/7264637.html

原创文章,作者:优速盾-小U,如若转载,请注明出处:https://www.cdnb.net/bbs/archives/21687

(0)
上一篇 2023年10月2日
下一篇 2023年10月2日

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注

优速盾注册领取大礼包www.cdnb.net
/sitemap.xml