iptables

  1. systemctl stop firewalld .
  2. systemctl start iptables.service
  3. systemctl enable iptables.service .

1.三表五链

三表
filter:访问本机数据
nat:从本机经过的数据
mangle:
五链
input
utput 不经过网卡
forword
postrouting源地址转换,在路由之后
prerouting路由之前
4. iptables -t filter -nL #查看filter表,与iptables -nL看到的效果相同
iptables
5. iptables -t nat -nL #查看nat表
iptables
6. iptables -t mangle -nL #查看mangle表,五条链的信息都可以看到
iptables
7. iptables -F #刷新,清掉策略
8. service iptables save #保存更改到/etc/sysconfig/iptables
iptables
9. cat /etc/sysconfig/iptables #iptables的配置文件

2.iptables 命令行管理

ptables -vnL:
iptables -A INPUT -s 192.168.0.4 -p tcp –dport 23 -j REJECT:
iptables -A INPUT -s 192.168.0.4 -p tcp –dport 23 -j DROP:(访问
拒绝,无任何提示)
iptables -F:刷新策略
iptables -t nat -F PREROUTING:
iptables -I INPUT 2 -p tcp –dport 23 -j DROP:插入到第二条策略
iptables -E allowed disallowed:修改规则链名称
iptables -D INPUT 3:删除filter表中的第三条规则
iptables -D INPUT -s 192.168.0.1 -j DROP #按内容删除
iptables -R INPUT 3 -j ACCEPT #将原来编号为3的规则内容替换为ACCEPT
iptables -P INPUT DROP #设置filter表INPUT链的默认规则 ,当数据包没有被规则列表里的任何规则匹配到时,按此默认规则处理
iptables -t nat -F #清空nat策略, -F 仅仅是清空链中规则,并不影响 -P 设置的默认规则
iptables -t nat -nL #查看nat策略
iptables -t nat -L PREROUTING #查看nat表PREROUTING链的规则
iptables -N redhat #添加自定义链名
iptables-X redhat #删除自定义链
iptables-A INPUT -s !192.168.0.4 -p tcp –dport 23 -j REJECT #只有4不可以连接
-D redhat 1 #删除自定义链下的策略
-i eth0 #匹配从网络接口 eth0 进来
-o eth0 #匹配从网络接口 eth0 出去
-s 192.168.0.1 #匹配来自 192.168.0.1 的数据包
-s 192.168.1.0/24 #匹配来自 192.168.1.0/24 网络的数据包
-d 202.106.0.20 #匹配去往 202.106.0.20 的数据包
-d 202.106.0.0/16 #匹配去往 202.106.0.0/16 网络的数据包
-d www.abc.com #匹配去往域名 www.abc.com
10. systemctl start httpd
11. iptables -P INPUT DROP #设置为丢弃状态,默认为接受,可以进行访问
iptables
测试:
修改之前:
iptables
修改之后:
iptables
注: iptables -P #其后只能加ACCEPT或DROP,P表示规则,p表示协议
12. iptables -A INPUT -p tcp –dport 80 -j REJECT #将80端口设置为拒绝状态
iptables

iptables

  1. iptables -A INPUT -s 172.25.254.78 -p tcp –dport 80 -j ACCEPT #设置只允许172.25.254.78这台主机连接,但是还是不能访问,因为默认只读第一条正确的策略,以提高读取速度;其余的策略根本就不会读,所以还不能访问
    iptables
  2. iptables -D INPUT 2 #删除第二条策略
    iptables
  3. iptables -R INPUT 1 -s 172.25.254.78 -p tcp –dport 80 -j ACCEPT #修改第一条策略使得172.25.254.78这台主机可以访问
    iptables
  4. iptables -I INPUT 2 -p tcp –dport 22 -j ACCEPT #指定在INPUT的第二行添加策略,使得所有主机都可连接此服务端
    iptables
  5. iptables -N westos #添加westos
    iptables

  6. iptables -E westos WESTOS #重命名
    iptables

  7. iptables -X WESTOS #删除
    iptables
    如果有多条策略,但只读第一条正确的,其余的就不会读,以下操作解决这个问题
  8. iptables -D INPUT 1 #删除原来所有的策略,有几行就依次删除
  9. iptables -A INPUT -p tcp –dport 80 -j ACCEPT
  10. iptables -A INPUT -p tcp –dport 22 -j ACCEPT
  11. iptables -A INPUT -p tcp –dport 3260 -j ACCEPT
  12. iptables -A INPUT -p tcp –dport 443 -j ACCEPT
  13. iptables -A INPUT -i lo -j ACCEPT #允许回环接口
  14. iptables -nL #查看策略
  15. iptables -F #刷新策略
    26.iptables -A INPUT -m state –state ESTABLISHED,RELATED -j ACCEPT #设置使连接过的和正在使用的不读取,那么在后边新写入的策略就会被读取,以此类推,新写入的策略总能被读取到
    iptables

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

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

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

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

  20. iptables -A INPUT -m state –state NEW -p tcp –dport 3260 -j ACCEPT

  21. iptables -A INPUT -m state –state NEW -p -i lo -j ACCEPT

  22. iptables -nL
    iptables

  23. iptables -F
  24. service iptables save
  25. cat /etc/sysconfig/iptales
    iptables

3.iptable命令实现端口伪装,在nat表中实现

在服务端(双网卡)

  1. iptables -t nat -A POSTROUTING -o eth1 -j SNAT –to-source 172.25..238 #所有从eth1出去的数据包地址都伪装成172.25.0.238输出,SNAT就是改变转发数据包的源地址
  2. iptables -t nat -A PREROUTING -i eth1 -p tcp –dport 22 -j DNAT –to-dest 172.25.254.238 #22端口是以172.25.254.238输入,DNAT就是改变转发数据包的目的地址
  3. iptables -t nat -nL
    在客户端测试:

  4. 内网访问外网
    ping 172.25.0.238 #可以ping通,就代表成功
    iptables

  5. 外网访问内网
    连接服务端,连接成功查看eth0,看到172.25.254.238,就代表成功
    iptables