iptables之禁ping和ddos向外发包脚本总结

主要讲2个基本的实际应用,主要涉及到禁ping(ipv4)以及禁止udp,即禁止有黑客利用服务器向外发包ddos攻击方面的内容。

一、如果没有iptables禁止ping

echo 1 > /proc/sys/net/ipv4/icmp_echo_igore_all #开启
echo 0 > /proc/sys/net/ipv4/icmp_echo_igore_all #关闭
二、利用iptables规则禁ping

iptables -A INPUT -p icmp --icmp-type 8 -s 0/0 -j DROP

三、利用iptables规则,禁止服务器向外发包,防止DDOS向外攻击

iptables -I OUTPUT -p udp --dport 53 -d 8.8.8.8 -j ACCEPT #允许UDP服务IP
iptables -A OUTPUT -p udp -j DROP #禁止udp服务

上述53端口和8888是DNS服务必须有的,如果不清楚本机的DNS设置,可执行以下命令得到IP:

cat /etc/resolv.conf

一个不错的防火墙代码
#####################################################

-A INPUT -f -m limit --limit 100/sec --limit-burst 100 -j ACCEPT

-A INPUT -p tcp -m tcp --tcp-flags SYN,RST,ACK SYN -m limit --limit 20/sec --limit-burst 200 -j

ACCEPT

-A INPUT -p udp -m udp --dport 138 -j DROP

-A INPUT -p udp -m udp --dport 137 -j DROP

-A INPUT -p tcp -m tcp --dport 1068 -j DROP

-A INPUT -p icmp -m limit --limit 12/min --limit-burst 2 -j DROP

-A FORWARD -f -m limit --limit 100/sec --limit-burst 100 -j ACCEPT

-A FORWARD -p tcp -m tcp --tcp-flags SYN,RST,ACK SYN -m limit --limit 20/sec --limit-burst 200

-j ACCEPT

-A FORWARD -p tcp -m tcp --dport 445 -j DROP

-A FORWARD -p udp -m udp --dport 138 -j DROP

-A FORWARD -p udp -m udp --dport 137 -j DROP

-A FORWARD -p tcp -m tcp --dport 1068 -j DROP

-A FORWARD -p tcp -m tcp --dport 5554 -j DROP

-A FORWARD -p icmp -j DROP

:PREROUTING ACCEPT [986908:53126959]

:POSTROUTING ACCEPT [31401:2008714]

:OUTPUT ACCEPT [30070:1952143]

-A POSTROUTING -p tcp -m tcp --dport 445 -j DROP

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

 

iptables 防火墙例子
 

#!/bin/bash
#
# The interface that connect Internet

# echo
echo "Enable IP Forwarding..."
echo 1 > /proc/sys/net/ipv4/ip_forward
echo "Starting iptables rules..."

IFACE="eth0"

# include module
modprobe ip_tables
modprobe iptable_nat
modprobe ip_nat_ftp
modprobe ip_nat_irc
modprobe ip_conntrack
modprobe ip_conntrack_ftp
modprobe ip_conntrack_irc
modprobe ipt_MASQUERADE

# init
/sbin/iptables -F
/sbin/iptables -X
/sbin/iptables -Z
/sbin/iptables -F -t nat
/sbin/iptables -X -t nat
/sbin/iptables -Z -t nat

/sbin/iptables -X -t mangle

# drop all
/sbin/iptables -P INPUT DROP
/sbin/iptables -P FORWARD ACCEPT
/sbin/iptables -P OUTPUT ACCEPT
/sbin/iptables -t nat -P PREROUTING ACCEPT
/sbin/iptables -t nat -P POSTROUTING ACCEPT
/sbin/iptables -t nat -P OUTPUT ACCEPT

/sbin/iptables -A INPUT -f -m limit --limit 100/sec --limit-burst 100 -j ACCEPT
/sbin/iptables -A INPUT -p tcp -m tcp --tcp-flags SYN,RST,ACK SYN -m limit --limit 20/sec --limit-burst 200 -j ACCEPT

/sbin/iptables -A INPUT -p icmp -m limit --limit 12/min --limit-burst 2 -j DROP

/sbin/iptables -A FORWARD -f -m limit --limit 100/sec --limit-burst 100 -j ACCEPT
/sbin/iptables -A FORWARD -p tcp -m tcp --tcp-flags SYN,RST,ACK SYN -m limit --limit 20/sec --limit-burst 200 -j ACCEPT

# open ports
/sbin/iptables -A INPUT -i $IFACE -p tcp --dport 21 -j ACCEPT
/sbin/iptables -A INPUT -i $IFACE -p tcp --dport 22 -j ACCEPT
/sbin/iptables -A INPUT -i $IFACE -p tcp --dport 25 -j ACCEPT
/sbin/iptables -A INPUT -i $IFACE -p tcp --dport 53 -j ACCEPT
/sbin/iptables -A INPUT -i $IFACE -p udp --dport 53 -j ACCEPT
/sbin/iptables -A INPUT -i $IFACE -p tcp --dport 80 -j ACCEPT
/sbin/iptables -A INPUT -i $IFACE -p tcp --dport 100 -j ACCEPT
/sbin/iptables -A INPUT -i $IFACE -p tcp --dport 113 -j ACCEPT

# close ports
iptables -I INPUT -p udp --dport 69 -j DROP
iptables -I INPUT -p tcp --dport 135 -j DROP
iptables -I INPUT -p udp --dport 135 -j DROP
iptables -I INPUT -p tcp --dport 136 -j DROP
iptables -I INPUT -p udp --dport 136 -j DROP
iptables -I INPUT -p tcp --dport 137 -j DROP
iptables -I INPUT -p udp --dport 137 -j DROP
iptables -I INPUT -p tcp --dport 138 -j DROP
iptables -I INPUT -p udp --dport 138 -j DROP
iptables -I INPUT -p tcp --dport 139 -j DROP
iptables -I INPUT -p udp --dport 139 -j DROP
iptables -I INPUT -p tcp --dport 445 -j DROP
iptables -I INPUT -p udp --dport 445 -j DROP
iptables -I INPUT -p tcp --dport 593 -j DROP
iptables -I INPUT -p udp --dport 593 -j DROP
iptables -I INPUT -p tcp --dport 1068 -j DROP
iptables -I INPUT -p udp --dport 1068 -j DROP
iptables -I INPUT -p tcp --dport 4444 -j DROP
iptables -I INPUT -p udp --dport 4444 -j DROP
iptables -I INPUT -p tcp --dport 5554 -j DROP
iptables -I INPUT -p tcp --dport 1434 -j DROP
iptables -I INPUT -p udp --dport 1434 -j DROP
iptables -I INPUT -p tcp --dport 2500 -j DROP
iptables -I INPUT -p tcp --dport 5800 -j DROP
iptables -I INPUT -p tcp --dport 5900 -j DROP
iptables -I INPUT -p tcp --dport 6346 -j DROP
iptables -I INPUT -p tcp --dport 6667 -j DROP
iptables -I INPUT -p tcp --dport 9393 -j DROP

iptables -I FORWARD -p udp --dport 69 -j DROP
iptables -I FORWARD -p tcp --dport 135 -j DROP
iptables -I FORWARD -p udp --dport 135 -j DROP
iptables -I FORWARD -p tcp --dport 136 -j DROP
iptables -I FORWARD -p udp --dport 136 -j DROP
iptables -I FORWARD -p tcp --dport 137 -j DROP
iptables -I FORWARD -p udp --dport 137 -j DROP
iptables -I FORWARD -p tcp --dport 138 -j DROP
iptables -I FORWARD -p udp --dport 138 -j DROP
iptables -I FORWARD -p tcp --dport 139 -j DROP
iptables -I FORWARD -p udp --dport 139 -j DROP
iptables -I FORWARD -p tcp --dport 445 -j DROP
iptables -I FORWARD -p udp --dport 445 -j DROP
iptables -I FORWARD -p tcp --dport 593 -j DROP
iptables -I FORWARD -p udp --dport 593 -j DROP
iptables -I FORWARD -p tcp --dport 1068 -j DROP
iptables -I FORWARD -p udp --dport 1068 -j DROP
iptables -I FORWARD -p tcp --dport 4444 -j DROP
iptables -I FORWARD -p udp --dport 4444 -j DROP
iptables -I FORWARD -p tcp --dport 5554 -j DROP
iptables -I FORWARD -p tcp --dport 1434 -j DROP
iptables -I FORWARD -p udp --dport 1434 -j DROP
iptables -I FORWARD -p tcp --dport 2500 -j DROP
iptables -I FORWARD -p tcp --dport 5800 -j DROP
iptables -I FORWARD -p tcp --dport 5900 -j DROP
iptables -I FORWARD -p tcp --dport 6346 -j DROP
iptables -I FORWARD -p tcp --dport 6667 -j DROP
iptables -I FORWARD -p tcp --dport 9393 -j DROP

/sbin/iptables -A INPUT -i $IFACE -m state --state RELATED,ESTABLISHED -j ACCEPT
/sbin/iptables -A INPUT -i $IFACE -m state --state NEW,INVALID -j DROP

# drop ping
/sbin/iptables -A INPUT -p icmp -j DROP

/sbin/iptables -I INPUT -s 222.182.40.241 -j DROP

时间: 2024-12-28 11:21:07

iptables之禁ping和ddos向外发包脚本总结的相关文章

iptables禁ping和防ddos向外发包配置

主要讲2个基本的实际应用,主要涉及到禁ping(ipv4)以及禁止udp,即禁止有黑客利用服务器向外发包ddos攻击方面的内容. 一.如果没有iptables禁止ping echo 1 > /proc/sys/net/ipv4/icmp_echo_igore_all #开启 echo 0 > /proc/sys/net/ipv4/icmp_echo_igore_all #关闭 二.  iptables禁止ping的命令如下: iptables -I INPUT -i eth0 -p icmp

linux如何禁ping和允许ping设置方法

  问题一:linux如何禁ping? 解决方法:[root@sliu ~]# echo 1 >/proc/sys/net/ipv4/icmp_echo_ignore_all. 问题二:linux如何允许ping? [root@sliu ~]# echo 0 >/proc/sys/net/ipv4/icmp_echo_ignore_all 解决方法:操作完即可查看效果,无需重启. 以上就是linux如何禁ping和允许ping设置方法了,希望对大家有些帮助吧!

linux-初学Linux,只能ping本机,ping不通网关和外网。。怎么解决?、大神们帮帮忙。。。

问题描述 初学Linux,只能ping本机,ping不通网关和外网..怎么解决?.大神们帮帮忙... 解决方案 服务器分配给你的233.3地址?还是自己配置的.用dhcp动态分配呢. 解决方案二: 本身的网路没有配置好吧, 解决方案三: IP地址配置不对,将IP地址配置为192.168.1段的 解决方案四: IP地址和网关不是一个网段的,配置有误. IP地址.网关和掩码至少有一个弄错了. 解决方案五: 都不在一个网段,把IP配置成1网段

如何得知对方电脑是否开机(对方与我不在同一局域网且禁Ping)

问题描述 如何得知对方电脑是否开机条件是对方与我不在同一网段不在同一局域网对方防火墙禁Ping已试过arp包:只能在同一局域网,失败Ping:被防火墙阻挡,失败求高人解决 解决方案 解决方案二:补充:对方关掉防火墙是可以Ping通的解决方案三:up解决方案四:这个是没法子判断的,就和对方睡着了一样,你怎么喊他,他就是不回答,你根本没法子判断他是否真正的睡着...这个和对方端口的开放程度有关--你必须找到能够回应的端口...如1433等等,然后连接等待回应...不过一般开了防火墙,大多数端口都被封

利用iptables来缓解和预防DDOS及CC攻击

 iptables防ddos方法实例 缓解DDOS攻击 #防止SYN攻击,轻量级预防 iptables -N syn-flood iptables -A INPUT -p tcp –syn -j syn-flood iptables -I syn-flood -p tcp -m limit –limit 3/s –limit-burst 6 -j RETURN iptables -A syn-flood -j REJECT #防止DOS太多连接进来,可以允许外网网卡每个IP最多15个初始连接,超

linux禁ping和允许ping的方法

系统环境Centos5 一.系统禁止ping [root@linuxzgf ~]# echo 1 >/proc/sys/net/ipv4/icmp_echo_ignore_all 二.系统允许ping [root@linuxzgf ~]# echo 0 >/proc/sys/net/ipv4/icmp_echo_ignore_all 此上两条命令的效果实时生效,可以用另外的机器ping来测试是否生效. ----------------------------------------------

Win7系统怎么取消禁ping命令?

  1.查看主机ip 打开"开始"程序中的"附件",找到"命令提示符"打开.输入命令:ipconfig,可以看到本机的ip是192.168.0.111,网关是192.168.0.1 2.查看虚拟机中系统的ip 在ubuntu系统中打开终端,输入命令:ifconfig,注意:和windows系统下的ipconfig命令就差了一个字母.可以看到ip地址是:192.168.0.101 3.在本机中ping虚拟机系统中的ip 在命令提示符中输入命令:pi

Windows2008 server和win7如何取消禁ping

  现在一些优化工具(360, 魔方)优化后, 就出现可以Ping别人, 却不可以被别人Ping通的情况. windowsn2008 server: 服务器管理器--设置--高级安全windows防火墙--入站规则 找到"文件和打印机共享(回显请求-ICMPv4-in)"右击--选择"启用规则" windowsn7: 控制面板---系统和安全---windows防火墙----入站规则 找到"文件和打印机共享(回显请求-ICMPv4-in)"右击-

Windows防火墙开启ping,禁ping的配置方法_win服务器

当我通过本机Ping另一台在同一局域网内(即在同一网段)的计算机时,发现,如果防火墙开启的话,无论如何也ping不通.一旦关闭防火墙就可以ping通了.这是为什么呢?究竟该怎么设置呢? 原因是这样的,现在的计算机系统,出于安全考虑,在默认情况下是不允许外部主机对其进行ping测试的.但在一个安全的局域网环境中,Ping测试又是管理员进行网络测试所必须的.如何更改设置呢?XP系统和WIN7系统有所不同: Windows XP,Windows Server 2003: Windows防火墙 -->