Chinaunix首页 | 论坛 | 博客
  • 博客访问: 404835
  • 博文数量: 67
  • 博客积分: 1742
  • 博客等级: 上尉
  • 技术积分: 753
  • 用 户 组: 普通用户
  • 注册时间: 2009-06-15 01:54
文章分类

全部博文(67)

文章存档

2014年(1)

2013年(4)

2012年(1)

2011年(9)

2010年(29)

2009年(23)

我的朋友

分类: 网络与安全

2010-09-20 14:45:14

保存.写入到/etc/sysconfig/iptables文件里
iptables-save >/etc/sysconfig/iptables
/etc/rc.d/init.d/iptables save
service iptables save
 
iptables -L -n
iptables –t nat –L :显示nat表的中的设置
 
iptables -F 清除预设表filter中的所有规则链的规则 
 
iptables -X 清除预设表filter中使用者自定链中的规则
 
-D删除链里面的某一条规则:
iptables -L 
iptables –D INPUT 3 删除INPUT链上的第3条规则。
 
插入规则 iptables -I 插入到第一行,成为第一个规则
 
iptables-save >/etc/sysconfig/iptables
 
设定链的规则
iptables -p INPUT DROP 
 
iptables -p OUTPUT ACCEPT 
 
iptables -p FORWARD DROP 
 
开启22端口. 
 
iptables -A INPUT -p tcp --dport 22 -j ACCEPT 
iptables -A INPUT -p tcp --dport 80 -j ACCEPT 
 
iptables -A OUTPUT -p tcp --sport 22 -j ACCEPT
iptables -A OUTPUT -p tcp --sport 80 -j ACCEPT
 
邮件服务器,开启25,110端口. 
iptables -A INPUT -p tcp --dport 110 -j ACCEPT 
iptables -A INPUT -p tcp --dport 25 -j ACCEPT
 
如果做了FTP服务器,开启21端口 
iptables -A INPUT -p tcp --dport 21 -j ACCEPT 
iptables -A INPUT -p tcp --dport 20 -j ACCEPT 
 
如果做了DNS服务器,开启53端口 
iptables -A INPUT -p tcp --dport 53 -j ACCEPT
 
允许icmp包通过,也就是允许ping, 
iptables -A OUTPUT -p icmp -j ACCEPT (OUTPUT设置成DROP的话) 
iptables -A INPUT -p icmp -j ACCEPT (INPUT设置成DROP的话) 
 
 
只是良好的链接状态才接受
iptables -A INPUT -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
 
 
开启内网所有端口
iptables -A INPUT  -d 10.0.0.0/16 -j ACCEPT  
 
多端口配置
iptables -A INPUT -p tcp -m multiport --source-port 22,53,80,110 -j ACCEPT
 
配置回环
iptables–A INPUT –i lo –j ACCEPT
iptables -A OUTPUT -o lo -p all -j ACCEPT(如果是OUTPUT DROP) 
 
-s IP地址或者网段 匹配源IP地址或者网段 -d是匹配目的地址ip段,用法同-s
-s 192.168.0.1/24 ,如果是除这个网段之外的所有则为:! -s 192.168.0.1/24 
 
 
丢弃坏的TCP包 
iptables -A FORWARD -p tcp ! --syn -m state --state NEW -j DROP (! --syn就是syn=0的包,正常的一个包是1)
 
处理IP碎片数量,防止攻击,允许每秒100个 (100/m,就是每分钟100个)
iptables -A FORWARD -f -m limit --limit 100/s --limit-burst 100 -j ACCEPT 
 
设置ICMP包过滤,允许每秒1个包,限制触发条件是10个包. 
iptables -A FORWARD -p icmp -m limit --limit 1/s --limit-burst 10 -j ACCEPT
 
 
设置Iptables FORWORD规则:
首先要开启转发功能:编辑/etc/sysctl.conf文件
net.ipv4.ip_forward = 1
sysctl -p 执行一下
 
做网关转发上网(路由功能)
iptables -P FORWARD DROP
iptables -A FORWARD -i eth0 -s 192.168.0.0/24 -j ACCEPT
iptables -A FORWARD -o eth0 -d 192.168.0.0/24 -j ACCEPT
 
iptables -A FORWARD -s 10.0.0.230 -m mac --mac-source 00:00:BA:A5:7D:12 -i eth0 -j DROP 
 
禁止访问制的的网站
iptables -A FORWARD -d -j DROP
 
禁止机器上网
iptables -A FORWARD -s 10.0.0.0/24  -j DROP
 
禁止内网机器使用ftp协议下载
iptables -A FORWARD -s 192.168.0.0/24 -p tcp --dport 21 -j DROP
iptables -A FORWARD -s 192.168.0.0/24 -p tcp --dport 23 -j DROP
 
 
通过dnat访问内网的网站
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j DNAT --to-destination 192.168.1.1:80
 
禁止外网的机器ping,但内网的不限制(eth1是外网网卡)
iptables -A INPUT -i eth1 -p icmp -j DROP
 
访问10.0.0.3主机的3389端口
iptables -t nat -A PREROUTING -p tcp --dport 3389  -j DNAT --to-destination 10.0.0.3:3389
 
封掉QQ等聊天工具,通过不让他查询dns服务器,获取不到ip地址来做到
iptables -A FORWARD -i eth0 -p udp --dport 53 -m string --algo bm --string "tencent" -j DROP
iptables -A FORWARD -i eth0 -p udp --dport 53 -m string --algo bm --string "TENCENT" -j DROP
限制打开含有qq.com的页面,也就封了webQQ的页面
iptables  -A FORWARD -i eth0  -m string --algo bm --string "qq.com" -j DROP
 
 
 
 
使用实例
前提:INPUT OUTPUT FORWARD 都为DROP
 
作为客户机的iptables基本设置:
dns ping lo ssh
-A INPUT -p tcp -m tcp --dport 22 -j ACCEPT  #其他主机ssh连接过来
-A OUTPUT -p tcp -m tcp --sport 22 -j ACCEPT # 本机ssh其他机器
-A INPUT -i lo -j ACCEPT 
-A INPUT -p icmp -j ACCEPT 
-A INPUT -p udp -m udp --sport 53 -j ACCEPT  #open dns port is udp 53 
-A OUTPUT -p tcp -m tcp --sport 22 -j ACCEPT #其他主机ssh连接过来
-A OUTPUT -p tcp -m tcp --dport 22 -j ACCEPT # 本机ssh其他机器
-A OUTPUT -o lo -j ACCEPT 
-A OUTPUT -p icmp -j ACCEPT 
-A OUTPUT -p udp -m udp --dport 53 -j ACCEPT #open dns port is udp 53
 
做为一个服务器端的配置
ssh dns www ftp email
 
-A INPUT -p tcp -m tcp --dport 22 -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -p udp -m udp --sport 53 -j ACCEPT
-A INPUT -p tcp -m tcp --sport 22 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 80 -j ACCEPT  开启80端口
-A INPUT -s 10.0.0.102 -p tcp -m tcp --dport 80 -j DROP  禁止10.0.0.102访问80端口
-A OUTPUT -p tcp -m tcp --sport 22 -j ACCEPT
-A OUTPUT -o lo -j ACCEPT
-A OUTPUT -p icmp -j ACCEPT
-A OUTPUT -p udp -m udp --dport 53 -j ACCEPT
-A OUTPUT -p tcp -m tcp --dport 22 -j ACCEPT
-A OUTPUT -p tcp -m tcp --sport 80 -j ACCEPT
-A OUTPUT -s 10.0.0.102 -p tcp -m tcp --sport 80 -j DROP
 
以上这种方法配置后,10.0.0.102可以继续访问,原因是
-A INPUT -p tcp -m tcp --dport 80 -j ACCEPT和
-A INPUT -s 10.0.0.102 -p tcp -m tcp --dport 80 -j DROP是同一类规程,当iptables是同一类规程是
它是从上到下匹配的。匹配到以后他就不向下匹配了所以上面一条起作用了,下面的没起作用。
只要把-A INPUT -s 10.0.0.102 -p tcp -m tcp --dport 80 -j DROP放到
-A INPUT -p tcp -m tcp --dport 80 -j ACCEPT上面就行了
 
 
Nat共享上网 eth0:内网网卡,eth1:外网网卡
首先要开启转发功能
-A FORWARD -s 10.0.12.100 -m mac --mac-source 00:0A:EB:FE:BE:9f -i eth0 -j ACCEPT ip地址和mac地址捆绑
-A FORWARD -d 10.0.12.100 -m limit --limit 7/s --limit-burst 7  -i eth1 -j ACCEPT 限制下载、上网速度
然后配置nat表的postrouting
iptables -t nat -A POSTROUTING -s 10.0.12.100 -j SNAT --to-source 122.224.70.246(静态的配置方法)
iptables -t nat -A POSTROUTING -s 10.0.12.100 -o eth0(ppp0) -j MASQUERADE(动态的用)
 
 
/bin/sh /usr/local/mysql/bin/mysqld_safe --user=mysql
/usr/local/www/bin/httpd -k start
 
 
升级内核和iptables的方法:
http://hi.baidu.com/tr106/blog/item/b8aed92dc1875b3d359bf7cb.html
阅读(2034) | 评论(0) | 转发(0) |
0

上一篇:/tmp 100%

下一篇:删除Oracle 10g

给主人留下些什么吧!~~