Chinaunix首页 | 论坛 | 博客
  • 博客访问: 509401
  • 博文数量: 110
  • 博客积分: 3971
  • 博客等级: 中校
  • 技术积分: 1175
  • 用 户 组: 普通用户
  • 注册时间: 2006-06-20 23:27
文章分类

全部博文(110)

文章存档

2015年(2)

2014年(1)

2013年(1)

2011年(9)

2010年(28)

2009年(12)

2008年(13)

2007年(23)

2006年(21)

我的朋友

分类: LINUX

2009-08-21 17:40:31

1.禁止icmp
**使自己不能ping 通 127.0.0.1
iptables -A INPUT -s 127.0.0.1 -p icmp -j DROP
**192.168.0.0/24 网段无法ping能本机
iptables -A INPUT -s 192.168.0.0/24 -p icmp -j DROP
**禁所有机器
# iptables -A INPUT -s 0/0 -p icmp -j DROP
# ICMP(PING) 接受 ! echo-request
/sbin/iptables -A INPUT -p icmp –icmp-type ! echo-request -j ACCEPT
accept_redirects
# echo ”0″ > /proc/sys/net/ipv4/conf/all/accept_redirects
or
# sysctl net.ipv4.conf.all.accept_redirects=”0″

在linux里,如果要想使ping没反应也就是用来忽略icmp包,因此我们可以在 Linux的命令行中输入如下命令:

echo 1 > /proc/sys/net/ipv4/icmp_echo_igore_all ;如果想恢复使用ping命令,就可以输入:

echo 0 > /proc/sys/net/ipv4/icmp_echo_igore_all命令。
**不允许人家PING我
#iptables -A INPUT -p icmp --icmp-type echo-request -i eth1 -j DROP


2.禁止udp
iptables -A INPUT -p udp -i eth1 -j DROP

3.拒绝外网对22端口访问
iptables -A INPUT -i eth0 -p tcp --dport 22  -j DROP

 

4.防止恶意扫描

iptables -A INPUT -p tcp --tcp-flags ALL ALL -j DROP
iptables -A FORWARD -p tcp --tcp-flags ALL ALL -j DROP
iptables -A INPUT -p tcp --tcp-flags ALL NONE -j DROP
iptables -A FORWARD -p tcp --tcp-flags ALL NONE -j DROP
iptables -A INPUT -p tcp --tcp-flags ALL FIN,URG,PSH -j DROP
iptables -A FORWARD -p tcp --tcp-flags ALL FIN,URG,PSH -j DROP
iptables -A INPUT -p tcp --tcp-flags SYN,RST SYN,RST -j DROP
iptables -A FORWARD -p tcp --tcp-flags SYN,RST SYN,RST -j DROP


#SYN的使用
不能关闭所有端口,也不能只指定某些端口处于打开状态,那么怎样才能设置一个有效的规则,既可以允许普通用户正常通过,又可以阻止恶意攻击者访问网络呢?
刚开始使用iptables的人可以充分利用syn标识来阻止那些未经授权的访问。iptables只检测数据包的报头,事实上,除 iptables以外,很多其它有用的数据包分析都是基于报头的。比如,在进行Web冲浪时,一个请求从你的PC发送至其它地方的Web服务器上,该服务器会响应请求并发回一个数据包,同时得到你系统上的一个临时端口。与响应请求不同的是,服务器并不关心所传送的内容。可以利用这种特点来设置规则,让它阻止所有没有经过你系统授权的TCP连接:

$iptables -t filter -A INPUT -i eth0 -p tcp --syn -j DROP

这里的-i指的是网卡,-p则是指协议,--syn则表示带有syn标识设置的TCP数据包。SYN用于初始化一个TCP连接,如果自己机器上没有运行任何服务器,别人也就不会向你发送SYN数据包。

#只允许在LAN中使用SSH连接
$IPTABLES -A INPUT -s 192.168.1.0/24 -p tcp --destination-port ssh -j ACCEPT

#丢弃那些流出的不是出自本地机的数据包
$IPTABLES -A OUTPUT -o eth1 -s !192.168.1.0/24 -j DROP

 iptables -A FORWARD -s !192.168.1.0/24 -j DROP

#限制一些流出的信息
$IPTABLES -A OUTPUT -o eth0 -p tcp -dport 31337 -j DROP
$IPTABLES -A OUTPUT -o eth0 -p tcp -sport 31337 -j DROP

#为了防止DOS太多连接进来,那么可以允许最多15个初始连接,超过的丢弃
iptables -A INPUT -s 192.186.0.0/24 -p tcp --syn -m connlimit --connlimit-above 15 -j DROP

#只允许每组ip同时15个80端口转发
iptables -A FORWARD -p tcp --syn --dport 80 -m connlimit --connlimit-above 15 --connlimit-mask 24 -j DROP

阅读(1213) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~