五个表table:filter、nat、mangle、raw、security
filter表: 过滤规则表,根据预定义的规则过滤符合条件的数据包,filter表是默认规则表
nat表: network address translation 地址转换规则表
mangle: 修改数据标记位规则表
raw: 关闭NAT表上启用的连接跟踪机制,加快封包穿越防火墙速度
security:用于强制访问控制(MAC)网络规则,由Linux安全模块(如SELinux)实现
优先级由高到低的顺序为:security -->raw-->mangle-->nat-->filter
五条链chain:INPUT,OUTPUT,FORWARD,PREROUTING,POSTROUTING
对于网络中的报文,分为两种,一种是到本主机的报文,一种是经由本主机的转发报文,对于到本主机的报文,在内核中的传输过程是这样的,首先数据包会PREROUTING进入主机,在内核中进入tcp/ip协议栈,在这里会检查这个数据包的目的ip,查看是否是发送给本主机的,如果是发送给本主机的,会进入INPUT链,
语法规则:分为三部分 1:定义操作 2:检查条件 3:处理动作
1:链操作
-P 定义某张表的某条链的默认策略
-N 新建一条自定义的规则链,但自定义规则链只有在被主链调用时才能生效
-X 删除引用数为0的自定义规则链
-F 清空某张表的某条链,不指定是清空某张表的所有的表规则
-E 重命名某条引用为0的自定义规则链
-L 列出某张表某条链的所以规则,不指定时列出所有的表规则
-v 详细显示表规则
-n 不进行地址解析
2:操作有以下几个选项:
-A 追加,在某一表的某一条链上追加一条规则
-I 插入,在某一张表的某一条链的特定位置插入一条规则
-D 删除,删除某一个表的某一条链的规则
-R 替换,用某一条规则替换掉某张表的某条规则
3:检查条件有一下几项:
-s 检查报文中的源ip地址是否符合此处指定的ip地址范围
-d 检查报文中的目的ip地址是否符合此处指定的ip地址范围
-i 检查报文的流入借口
-o 检查报文的流出借口
-p 检查报文的协议是否符合此处指定的协议
应用
//查询已开启的端口
/sbin/iptables -L -n
//关闭端口号 8080
iptables -A OUTPUT -p tcp --dport 8080 -j DROP
//开启端口号8099:
iptables -A INPUT -p tcp --dport 8099 -j ACCEPT
//编辑iptables
vim /etc/sysconfig/iptables
//重启防火墙
service iptables restart
//重启防火墙2 第一种无效的情况下
/bin/systemctl restart iptables.service
//更换 ssh端口
//查看ssh端口号
netstat -anp|grep ssh