https://www.cnblogs.com/metoy/p/4320813.htmlhtml
1.filter表——三个链:INPUT、FORWARD、OUTPUT
做用:过滤数据包 内核模块:iptables_filter.
2.Nat表——三个链:PREROUTING、POSTROUTING、OUTPUT
做用:用于网络地址转换(IP、端口) 内核模块:iptable_nat
3.Mangle表——五个链:PREROUTING、POSTROUTING、INPUT、OUTPUT、FORWARD
做用:修改数据包的服务类型、TTL、而且能够配置路由实现QOS内核模块:iptable_mangle(别看这个表这么麻烦,我们设置策略时几乎都不会用到它)
4.Raw表——两个链:OUTPUT、PREROUTING
做用:决定数据包是否被状态跟踪机制处理 内核模块:iptable_raw
(这个是REHL4没有的,不过不用怕,用的很少)shell
规则链:windows
1.INPUT——进来的数据包应用此规则链中的策略
2.OUTPUT——外出的数据包应用此规则链中的策略
3.FORWARD——转发数据包时应用此规则链中的策略
4.PREROUTING——对数据包做路由选择前应用此链中的规则
(记住!全部的数据包进来的时侯都先由这个链处理)
5.POSTROUTING——对数据包做路由选择后应用此链中的规则
(全部的数据包出来的时侯都先由这个链处理)centos
1.查看iptables规则bash
[root@bogon ~]# iptables -nvL Chain INPUT (policy ACCEPT 0 packets, 0 bytes) pkts bytes target prot opt in out source destination 80697 196M ACCEPT all -- * * 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED 0 0 ACCEPT icmp -- * * 0.0.0.0/0 0.0.0.0/0 0 0 ACCEPT all -- lo * 0.0.0.0/0 0.0.0.0/0 1 52 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:22 105K 16M REJECT all -- * * 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited 0 0 DROP tcp -- * * 192.168.1.1 192.168.1.2 tcp spt:123 dpt:80 Chain FORWARD (policy ACCEPT 0 packets, 0 bytes) pkts bytes target prot opt in out source destination 0 0 REJECT all -- * * 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited Chain OUTPUT (policy ACCEPT 301 packets, 31573 bytes) pkts bytes target prot opt in out source destination [root@bogon ~]#
2.重启iptables 网络
[root@bogon ~]# service iptables restart Redirecting to /bin/systemctl restart iptables.service [root@bogon ~]#
3.iptables保存的文件tcp
[root@bogon ~]# cat /etc/sysconfig/iptables # sample configuration for iptables service # you can edit this manually or use system-config-firewall # please do not ask us to add additional ports/services to this default configuration *filter :INPUT ACCEPT [0:0] :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [0:0] -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT -A INPUT -p icmp -j ACCEPT -A INPUT -i lo -j ACCEPT -A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT -A INPUT -j REJECT --reject-with icmp-host-prohibited -A FORWARD -j REJECT --reject-with icmp-host-prohibited COMMIT [root@bogon ~]#
4.清空规则(零时清空),须要真正的清空须要执行保存命令this
[root@bogon ~]# iptables -F [root@bogon ~]#
5.保存规则3d
[root@bogon ~]# service iptables save
6.重启服务将以前的规则加载回来rest
[root@bogon ~]# service iptables restart
7.默认操做的都是filter 表
[root@bogon ~]# iptables -t filter -nvL Chain INPUT (policy ACCEPT 554 packets, 62984 bytes) pkts bytes target prot opt in out source destination Chain FORWARD (policy ACCEPT 0 packets, 0 bytes) pkts bytes target prot opt in out source destination Chain OUTPUT (policy ACCEPT 105 packets, 10485 bytes) pkts bytes target prot opt in out source destination [root@bogon ~]#
8.查看nat表的规则
[root@bogon ~]# iptables -t nat -nvL Chain PREROUTING (policy ACCEPT 0 packets, 0 bytes) pkts bytes target prot opt in out source destination Chain INPUT (policy ACCEPT 0 packets, 0 bytes) pkts bytes target prot opt in out source destination Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes) pkts bytes target prot opt in out source destination Chain POSTROUTING (policy ACCEPT 0 packets, 0 bytes) pkts bytes target prot opt in out source destination
9.iptables -Z 清空
[root@bogon ~]# iptables -Z
10.iptables -A INPUT -s 192.168.1.1 -p tcp --sport 123 -d 192.168.1.2 --dport 80 -j DROP 或 REJECT
[root@bogon ~]# iptables -A INPUT -s 192.168.1.1 -p tcp --sport 123 -d 192.168.1.2 --dport 80 -j DROP [root@bogon ~]# iptables -nvL Chain INPUT (policy ACCEPT 0 packets, 0 bytes) pkts bytes target prot opt in out source destination 69 4988 ACCEPT all -- * * 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED 0 0 ACCEPT icmp -- * * 0.0.0.0/0 0.0.0.0/0 0 0 ACCEPT all -- lo * 0.0.0.0/0 0.0.0.0/0 0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:22 564 59695 REJECT all -- * * 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited 0 0 DROP tcp -- * * 192.168.1.1 192.168.1.2 tcp spt:123 dpt:80 Chain FORWARD (policy ACCEPT 0 packets, 0 bytes) pkts bytes target prot opt in out source destination 0 0 REJECT all -- * * 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited Chain OUTPUT (policy ACCEPT 4 packets, 592 bytes) pkts bytes target prot opt in out source destination [root@bogon ~]#
11.iptables -A添加 -I 插入 删除-D
12.显示规则行号
[root@bogon ~]# iptables -nvL --line-number
13.删除规则
[root@bogon ~]# iptables -D INPUT 7
14.-P设置默认策略
15.建立shell脚步
#!/bin/bash
ipt="/usr/sbin/iptables"
$ipt -F
$ipt -P INPUT DROP
$ipt -P OUTPUT ACCEPT
$ipt -P FORWARD ACCEPT
$ipt -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
$ipt -A INPUT -s 10.21.95.0/24 -p tcp --dport 22 -j ACCEPT
$ipt -A INPUT -p tcp --dport 22 -j ACCEPT
$ipt -A INPUT -p tcp --dport 22 -j ACCEPT
[root@bogon ~]# sh /usr/local/sbin/iptables.sh [root@bogon ~]# iptables -nvL Chain INPUT (policy DROP 29 packets, 3013 bytes) pkts bytes target prot opt in out source destination 28 2056 ACCEPT all -- * * 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED 0 0 ACCEPT tcp -- * * 10.21.95.0/24 0.0.0.0/0 tcp dpt:22 0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:22 0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:22 Chain FORWARD (policy ACCEPT 0 packets, 0 bytes) pkts bytes target prot opt in out source destination Chain OUTPUT (policy ACCEPT 19 packets, 1780 bytes) pkts bytes target prot opt in out source destination [root@bogon ~]#
16.当前主机能够ping通外部机器,外部机器拼不通当前机器
[root@bogon ~]# iptables -A INPUT -p icmp --icmp-type 8 -j DROP [root@bogon ~]#
[root@bogon ~]# ping 10.21.95.218 PING 10.21.95.218 (10.21.95.218) 56(84) bytes of data. 64 bytes from 10.21.95.218: icmp_seq=1 ttl=64 time=0.402 ms 64 bytes from 10.21.95.218: icmp_seq=2 ttl=64 time=0.332 ms ^C --- 10.21.95.218 ping statistics --- 2 packets transmitted, 2 received, 0% packet loss, time 1000ms rtt min/avg/max/mdev = 0.332/0.367/0.402/0.035 ms [root@bogon ~]#
C:\Users\dell>ping 10.21.95.122 正在 Ping 10.21.95.122 具备 32 字节的数据: 请求超时。 请求超时。 请求超时。
[root@bogon ~]# iptables -D INPUT -p icmp --icmp-type 8 -j DROP [root@bogon ~]#
1.准备两台机器,01和02
第一步,给01机器添加一起网卡
第二步添加一个区段叫自定义名字
第三步选中自定义名字
01的设置结果
02机器进去统一选择自定义名字,一样Lan区段
第四步启动两台机器
第五步给01的新网卡设置IP(零时),若是永久生效须要更改ens37的配置文件。
第六步把02机器的ens33网卡ifdown掉
执行ifdown ens33命令,只保留ens37内网网卡
第七步一样给02的ens37设置ip
第八步打开01机器的内网转发
第九步01上增长一条规则让100.0网段可以上网。
第10步设置02的网关
再次ping133.1发现能ping通了
设置dns让它能够访问网络
咱们用windows ping100.100仍是不能连通
1.关闭iptables开启firewalled
[root@centos-01 ~]# systemctl disable iptables [root@centos-01 ~]# systemctl stop iptables [root@centos-01 ~]# systemctl enable firewalld Created symlink from /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service to /usr/lib/systemd/system/firewalld.service. Created symlink from /etc/systemd/system/basic.target.wants/firewalld.service to /usr/lib/systemd/system/firewalld.service. [root@centos-01 ~]#
[root@centos-01 ~]# systemctl start firewalld [root@centos-01 ~]#