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

#### iptables ########

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

 *iptables是一个工作于用户空间的防火墙应用软件

 *三表五链

 filter表  mangle表  nat表

 INPUT链  OUTPUT链  FORWARD链  PREROUTING链  POSTROUTING链

 

  1.实验之前关闭firewalld服务,开启iptables

iptables_filter


  

  2.iptables命令

  * iptables  -t    ##指定表名称,默认是filter表

           -n    ##不作解析

           -L    ##列出指定表中的策略


  iptables -t filter -nL   ##查看filter表的策略

iptables_防火墙_02

iptables_防火墙_03

 * iptables  -A      ##增加策略

          -i      ##向规则链中增加条目

          -p      ##网络协议

          --dport   ##端口

          -s      ##数据来源

          -j      ##动作

          ACCEPT    ##允许

          REJECT    ##拒绝

          DROP      ##丢弃


 iptables -A INPUT -i lo -j ACCEPT  ##允许回环接口通过

 iptables -A INPUT -p tcp --dport 22 -j ACCEPT  ##允许访问22端口

 iptables -A INPUT -s 172.25.254.234 -j ACCEPT  ##允许234主机访问本机所有端口

 iptables -A INPUT -j REJECT   ##拒绝所有主机数据来源

iptables_filter_04

*测试



  * iptables   -N  ##增加链

            -E  ##修改链名称

            -X  ##删除

            -D  ##删除指定策略

            -I  ##插入

            -R  ##修改策略

            -P  ##修改默认策略



iptables_filter_05

   iptables -N redhat    ##添加redhat链

iptables_防火墙_06

   iptables -E redhat westos  ##修改redhat链为westos

iptables_应用软件_07

   iptables -X westos  ##删除westos链

iptables_filter_08

   iptables -D INPUT 2   ##删除INPUT 链中的第二条策略

iptables_应用软件_09

   iptables -I INPUT -p tcp --dport 80 -j REJECT  ##INPUT链第一条插入策略

iptables_filter_10

   iptables -R INPUT 1 -p tcp --dport 80 -j ACCEPT   ##修改INPUT链中的第一条策略

iptables_应用软件_11  

   iptables -P INPUT DROP  ##修改默认策略

 iptables_应用软件_12

   iptables -F  ##刷掉所以策略,临时生效

iptables_filter_13

   service iptables save  ##保存设置到配置文件,重启后也生效


  3. 提高访问速度,缓解访问压力方法

iptables_filter_14

iptables_防火墙_15

  iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT  、

  ##允许RELATED,ESTABLISHED状态通过防火墙

  iptables -A INPUT -i lo -m state --state NEW -j ACCEPT   ##允许回环接口访问

  iptables -A INPUT -p tcp --dport 22 -m state --state NEW -j ACCEPT  

  ##允许状态是NEW访问22端口

  iptables -A INPUT -p tcp --dport 80 -m state --state NEW -j ACCEPT  

  ##允许访状态是NEW问80端口

  iptables -A INPUT -p tcp --dport 443 -m state --state NEW -j ACCEPT 

  ##允许状态是NEW访问443端口

  iptables -A INPUT -p tcp --dport 53 -m state --state NEW -j ACCEPT  

  ##允许状态是NEW访问53端口 

  iptables -A INPUT -j REJECT   ##拒绝所有主机数据来源


  4.路由

  sysctl -a | grep forward  ##查看forward状态

iptables_filter_16

iptables_应用软件_17

  echo "net.ipv4.ip_forward = 1" >>/etc/sysctl.conf  ##打开net.ipv4.ip_forward

  sysctl -p   ##设置生效

iptables_防火墙_18

  iptables -t nat -A PREROUTING -i eth0 -j DNAT --to-dest 172.25.0.11  ##进入路由


 测试

 用172.25.0.11主机ssh连接172.25.254.174主机


  

  iptables -t nat -A POSTROUTING -o eth1 -j SNAT --to-source 172.25.254.174  ##出路由设置


 测试

 连上172.25.254.174主机,显示的IP是172.25.254.11