Chinaunix首页 | 论坛 | 博客
  • 博客访问: 385912
  • 博文数量: 112
  • 博客积分: 10
  • 博客等级: 民兵
  • 技术积分: 800
  • 用 户 组: 普通用户
  • 注册时间: 2010-12-29 13:41
文章分类

全部博文(112)

文章存档

2020年(1)

2018年(10)

2017年(27)

2016年(18)

2015年(31)

2014年(25)

分类: 网络与安全

2016-10-08 11:47:02

一、iptables是Linux下的数据包过滤软件,也是linux发行版中默认的防火墙。

二、iptables的策略:防火墙策略一般分为两种,一种叫“通”策略,一种叫“堵”策略,通策略,默认门是关着的,必须要定义谁能进堵策略则是,大门是洞开的,但是你必须有身份认证,否则不能进。所以我们要定义,让进来的进来,让出去的出去,所以通,是要全通,而堵,则是要选择

三、iptables规则表和规则链:
  规则表:filter表(过滤功能)、nat表(端口映射,地址映射等)、mangle表(对特定数据包的修改)、raw表(优先级最高,不再让iptables做数据包的链接跟踪处理,提高性能)
  iptables表的优先级:raw>mangle>nat>filter;
  规则链:INPUT(通过路由表后目的地为本机)FORWARD(通过路由表后转发到目标主机,目的地不为本机)、OUTPUT(由本机产生,向外转发)PREROUTING(数据包进入路由表之前)POSTROUTING(发送到网卡接口之前)
 1、filter表支持的三种链:INPUT、FORWARD、OUTPUT
 2、nat表支持的三种链:PREROUTING、OUTPUT、POSTROUTING
 3、mangle表支持的五种链:PREROUTING、INPUT、FORWARD、OUTPUT、POSTROUTING
 4、raw表支持的两种链:PREROUTING、OUTPUT

四、iptables命令参数:
  格式:iptables [-t table] COMMAND chain[INPUT,OUTPUT,FORWARD,PREROUTING,POSTROUTING] parameter -j target [ACCEPT,DROP,REJECT]
    -t:后面接table。默认为filter;
  COMMAND:
   -A:追加,在当前链的最后新增一个规则;
   -D:删除,明确指定删除第几条规则;
   -I:插入,把当前规则插入为第几条,-I 2插入为第二条;
   -R:Replays替换/修改第几条规则,-R 2;
   -L:列出当前表规则;
   -F:清除所有的定制规则;
   -Z:将所有的链的计数与流量统计都归零;
   -N:new 支持用户新建一个链;
   -X:清除所有用户“自定义”的链或表;
   -P:定义策略;
  parameter:
   -p:用于匹配协议(tcp/udp/icmp)
   -s:指定源地址匹配,这里不能指定主机名,必须是IP(地址可以取反!);
   -d:匹配目标地址;
   -i:指定网卡流入的数据(eth0,eth1...);
   -o:指定网卡流出的数据(eth0,eth1...);
   --sport:指定源端口;
   --dport:指定目标端口,只能指定单个端口或连续的端口,--dport 20或20-22;
  target:
   -j:指定如何进行处理;

  
 例1:允许192.168.10.0/24网段访问我本地192.168.3.251的8080端口
     /sbin/iptables -A INPUT -s 192.168.10.0/24 -d 192.168.3.251 -p tcp --dport 8080 -j ACCEPT
     /sbin/iptables -A OUTPUT -s 192.168.3.251 -d 192.168.10.0/24 -p tcp --dport 8080 -j ACCEPT
 例2:
    iptables -A INPUT -i eth0 -p tcp --dport 22 -j DROP #丢弃所有要连接eth0网卡的22端口数据;
    iptables -A INPUT -i eth1 -p udp --dport 110-111 -j #接受所有要连接eth1网卡udp端口110和111的数据;
    iptables -A OUTPUT -o eth0 -p tcp -d 192.168.1.2/24 --dport 8080 -j DROP; #从网卡eth0去192.168.1.2/24访问8080端口丢掉;
   /sbin/iptables -A FORWARD -s 192.168.10.46 -d 192.168.3.253 -p tcp --dport 8080 -j DROP;# 源ip192.168.10.46访问目标ip192.168.3.253端口8080路过本地时丢弃掉;
 
 例3:
    iptables -t nat -A POSTROUTING -s 192.168.3.0/24 -o eth0 -j SNAT --to 211.111.123.3  #所有从eth0出来的数据包的源地址转成211.111.123.3;
阅读(757) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~