防火墙的种类:
- 包过滤防火墙
- 代理防火墙
- 状态检测技术
通信原理:
一台客户端>iptables>服务器
数据包---》iptables把数据包分类进行处理(各种表rew,mangle,nat,filter表等)--
-》
filter:允许,不允许通过数据包。
nat:进行数据转换的数据包。
mangle:对数据包做标记
raw:对状态的跟踪
默认的5种规则链:
INPUT链:进口
OUTPUT链:出口
FORWARD链:转发
POSTROUTING链:路由选择后处理 例:ip地址转换后,
PREROUTING链:路由选择前处理 例:ip地址转换前
规则表之间的顺序:
raw mangle nat filter
规则链之间的顺序:
* 入站数据流向:到达防火墙--》PREROUTING链处理--》路由选择---》目的地址是防火墙本
机,交给INPUT链处理,--》系统上层应用响应
* 转发数据流向:到达防火墙--》PREROUTING链处理--》路由选择--》数据包目标地址是其他
外部地址,交给FORWARD链处理---》POSTROUTING链处理
* 出站数据流向:防火墙本机向外部地址发数据包--》OUTPUT链处理--》路由选择--》
POSTROUTING链处理
* 规则链内部各天防火墙规则之间的顺序:从上往下,一旦匹配,立即终止。
Centos7中使用iptables:
先关闭firewalld防火墙:
systemctl status firewalld
systemctl stop firewalld
systemctl disable firewalld
systemctl is-enable firewalld:查看是否是开机自启。
安装iptables服务:
yum install iptables-services
systemctl start iptables
systemctl enable iptables
service iptables sava :保存设置
iptables语法格式:
iptables [-t 表名] 管理选项 [链名] [条件匹配] [-j 目标动作]
iptables -L 没有-t 指定表名,默认查看的是fileter表中的信息
iptables -L --line-number 查看的是fileter表中的信息,并显示行号
iptables -F 没有-t 指定表名,默认清空fileter表中的信息
iptables -t fileter -A INPUT -d 127.0.0.1 -p tcp --dport 22 -j ACCEPT 在链尾追加一条规则
iptables -I INPUT -s 192.168.75.1 -d 127.0.0.1 -p tcp --dport 22 -j ACCEPT 在第一个位置插入一条规则
iptables -I INPUT 2 -s 192.168.75.1 -d 127.0.0.1 -p tcp --dport 22 -j DROP 在第2条规则前插入一条规则
iptables -D INPUT 1 删除INPUT链中的第一条规则
iptables -P INPUT DROP 设置默认策略为拒绝所有连接
iptables -P INPUT ACCEPT 设置默认策略为允许已建立的规则进行连接
iptables -h 查看帮助信息
man iptables 查看iptables手册
-A :在链尾追加一条新的规则
-l :在指定位置(或链首)插入一天新的规则
-P :设置指定链的默认策略
-L :列表查看各条规则信息
-D :删除指定位置或内容的规则
-F :清空规则链内的所有规则
-h :查看iptables命令的使用帮助