永久关闭selinux : vi /etc/selinux/config
临时关闭selinux:
netfilter 平时是关闭的。需要关闭firewalled,再开启netfilter.
1. 关闭firewalled.
systemctl disable firewalld
2. 然后再停止服务:systemctl stop firewalled
3. 再开启netfilter。 首先安装netfilter 命令包
yum install -y iptables-services
4. 启动iptables 服务
systemctl enable iptables
systemctl start iptables
iptables 是netfilter的一种工具而已。
netfilter的5个表:
1. filter 表主要用于过滤包,是系统预设的表,该表内建3个链:
INPUT、OUTPUT以及FORWARD。
INPUT 链作用于本机的包,OUTPUT链作用于本机送出的包,FORWARD链作用于那些跟本机无关的包。
2. nat 表主要用于网络地址转换,它有3个链。
PREROUTING、OUTPUT、POSTROUTING
PREROUTING 链的作用是在包到达防火墙时改变它的目的地址(如果需要的话),OUTPUT链的作用是改变本地产生的包的目的地址,POSTROUTING链的作用是在包即将离开防火墙时改变其源地址。
3. mangle 表主要用于给数据表做标记,然后根据标记去操作相应的包。
4. raw 表可以实现不追踪某些数据包,默认系统的数据包都会被追踪,但追踪势必消耗一定的资源,可以用raw表来指定某些端口的包不被追踪。
5. security 表在centOS6中是没有的,它用于强制访问控制(MAC)的网络规则。
netfilter的5个链:
5个链分别是:PREROUTING、INPUT、FORWARD、OUTPUT、POSTROUTING
PREROUTING: 数据包进入路由表之前
INPUT: 通过路由表后目的地为本机
FORWARDING: 通过路由表后,目的地不为本机。
OUTPUT:由本机产生,向外转发。
POSTROUTING :发送到网卡接口之前
iptables 是一个非常复杂和功能丰富的工具,语法很有特点。
1. 查看规则以及清除规则:
# iptables -t nat -nvl
-t 选项后面跟表名,-nvl表示查看该表的规则。 其中-n 表示不针对ip反解析主机名,-L 表示列出,-v表示列出的信息更加信息。
#iptables -F 表示把所有的规则全部删除,如果不加-t指定表,默认只清除filter表规则。
#iptables -z 表示把包以及流量计数器置零。
2. 增加/删除一条规则
以下这些规则参数用于描述数据包的协议、源地址、目的地址、允许经过的网络接口,以及如何处理这些数据包。这些描述是对规则的基本描述。
-p 协议(protocol)
-s 源地址(source)
-d 目的地址(destination)
-j 执行目标(jump to target)
-i 输入接口(input interface)
-o 输出(out interface)
–sport 源端口(source port)针对 -p tcp 或者 -p udp
–-dport 目的端口(destination port)针对-p tcp 或者 -p udp
-–tcp-flags TCP标志 针对-p tcp
-–icmp-type ICMP类型 针对-p icmp
15.iptables filter 表案例
16-18 iptables nat 表应用