防止syn***(DDOOS***的一种)

iptables -I INPUT -p tcp --syn -m limit --limit 1/s -j ACCEPT

iptables -I FORWARD -p tcp --syn -m limit --limit 1/s -j ACCEPT

防止各种端口扫描
iptables -A FORWARD -p tcp --tcp-flags SYN,ACK,FIN,RST RST -m limit --limit 1/s -j ACCEPT
Ping
洪水***(Ping of Death
iptables -A FORWARD -p icmp --icmp-type echo-request -m limit --limit 1/s -j ACCEPT

linux中预防SYN_RECV(转)

***的形式多种多样,我们这里只介绍最为常见的SYN_RECV,遇到***的不要着急,小量的SYN_RECV很容易防止的

1.对于大量的 SYN_RECV
若怀疑是SYN Flood***,有以下建议:

这个***的解决方法如下:
1,增加未完成连接队列(q0)的最大长度。
echo 1280>/proc/sys/net/ipv4/tcp_max_syn_backlog
2, 启动SYN_cookie。
echo 1>/proc/sys/net/ipv4/tcp_syncookies
这些是被动的方法,治标不治本。而且加大了服务器的负担,但是可以避免被拒绝***(只是减缓)
治本的方法是在防火墙上做手脚。但是现在能在一定程度上防住syn flood***的防火墙都不便宜。并且把这个命令加入"/etc/rc.d/rc.local"文件中

2. iptables的设置,引用自CU

防止同步包洪水(Sync Flood)
# iptables -A FORWARD -p tcp --syn -m limit --limit 1/s -j ACCEPT
也有人写作
#iptables -A INPUT -p tcp --syn -m limit --limit 1/s -j ACCEPT
--limit 1/s 限制syn并发数每秒1次,可以根据自己的需要修改
防止各种端口扫描
# iptables -A FORWARD -p tcp --tcp-flags SYN,ACK,FIN,RST RST -m limit --limit 1/s -j ACCEPT
Ping洪水***(Ping of Death)
# iptables -A FORWARD -p icmp --icmp-type echo-request -m limit --limit 1/s -j ACCEPT 

linux上 arptables配置 arp防火墙
 
 
1. 安装arptables
arptables的下载页面是:
http://sourceforge.net/projects/ebtables/files/
0.0.3.3版本的下载链接:
http://downloads.sourceforge.net ... les-v0.0.3-3.tar.gz

下载以后安装:
tar zxvf arptables-v0.0.3-3.tar.gz
cd arptables-v0.0.3-3/
make
make install

生成的命令是/usr/local/sbin/arptables、/usr/local/sbin/arptables-save、/usr/local /sbin/arptables-restore,系统启动脚本/etc/rc.d/init.d/arptables,这个脚本读的配置文件必须放在 /etc/sysconfig/arptables里。

打开arptables服务:
chkconfig arptables on


2. 配置arptables
linux服务器的网关MAC是00:24:51:E9:C7:10,同网段另一台服务器192.168.1.10(主机名是nh-blade-67)的MAC地址是00:17:A4:A8:68:11。

用命令行配置arp防火墙:
在eth0上如果源IP是192.168.1.10,并且源MAC不是00:17:A4:A8:68:11的话,就禁止这个数据桢。

CODE:
/usr/local/sbin/arptables -A INPUT -i eth0 --src-ip 192.168.1.10 --src-mac ! 00:17:A4:A8:68:11 -j DROP

在eth0上如果源MAC不是00:24:51:E9:C7:10(网关的MAC地址),就禁止这个数据桢,这一条针对外网过来的访问。

CODE:
/usr/local/sbin/arptables -A INPUT -i eth0 --src-mac ! 00:24:51:E9:C7:10 -j DROP

注意:添加arp防火墙策略的次序不能错,针对网关MAC地址的语句必须放在最后,否则本网段IP的访问策略不能生效。

把以上策略写入配置文件:
/usr/local/sbin/arptables-save > /etc/sysconfig/arptables

/etc/sysconfig/arptables文件的内容:

CODE:
*filter
:INPUT ACCEPT
:OUTPUT ACCEPT
:FORWARD ACCEPT
-A INPUT -j DROP -i eth0 -o any -s nh-blade-67 ! --src-mac 00:17:a4:a8:68:11
-A INPUT -j DROP -i eth0 -o any ! --src-mac 00:24:51:e9:c7:10

用命令/etc/init.d/arptables restart重启arptables的时候提示出错:

CODE:
Stopping Arp filtering (arptables):                        [  OK  ]
Starting Arp filtering (arptables): arptables v0.0.3-3: Can't use -o with INPUT

Try `arptables -h' or 'arptables --help' for more information.
ERROR(line 5):
                                                           [FAILED]

修改/etc/sysconfig/arptables文件以后的内容:

CODE:
*filter
:INPUT ACCEPT
:OUTPUT ACCEPT
:FORWARD ACCEPT
-A INPUT -j DROP -i eth0 any -s nh-blade-67 ! --src-mac 00:17:a4:a8:68:11
-A INPUT -j DROP -i eth0 any ! --src-mac 00:24:51:e9:c7:10

再重启arp防火墙就没有错误。查看arp防火墙状态/etc/init.d/arptables status:

CODE:
*filter
:INPUT ACCEPT
:OUTPUT ACCEPT
:FORWARD ACCEPT
-A INPUT -j DROP -i eth0 -o any -s nh-blade-67 ! --src-mac 00:17:a4:a8:68:11
-A INPUT -j DROP -i eth0 -o any ! --src-mac 00:24:51:e9:c7:10

注:
RHEL5U1自带arptables的版本是0.0.8,命令里不能带--source-ip参数,这个版本不是sourceforge.net上发布的