总结参数信息:
-s --- 指定匹配的源地址网段信息,或者匹配的主机信息
-d --- 指定匹配的目标地址网段信息,或者匹配的主机信息
-i --- 指定匹配的进入流量接口信息 只能配置在INPUT链上
-o --- 指定匹配的发出流量接口信息 只能配置在OUTPUT链上
实践03:除了莫个地址可以访问22端口之外,其余地址都不能访问
10.0.0.1 10.0.0.253 10.0.0.9(只允许)
iptables -t filter -A INPUT -s 10.0.0.9 -p tcp --dport 22 -j ACCEPT
iptables -t filter -A INPUT -s 10.0.0.0/24 -p tcp --dport 22 -j DROP
iptables -t filter -A INPUT ! -s 10.0.0.9 -p tcp --dport 22 -j ACCEPT
通过利用 !进行规则取反,进行策略控制
实践04:指定阻止访问多个端口服务
22--80 22,24,25
iptables -A INPUT -s 10.0.0.9 -p tcp --dport 22:80 -j DROP --- 匹配连续的端口号访问
iptables -A INPUT -s 10.0.0.9 -m multiport -p tcp --dport 22,24,25 -j DROP --- 匹配不连续的端口号访问
总结参数信息:
-m --- 指定应用扩展模块参数
multiport --- 可以匹配多个不连续端口信息
实践05: 通过防火墙实现禁ping功能
实现ping功能测试链路是否正常,基于icmp协议实现的
icmp协议有多种类型:
icmp-type 8:请求类型 icmp-type 0:回复类型
情况一:实现禁止主机访问防火墙服务器(禁ping)
iptables -A INPUT -p icmp --icmp-type 8 -j DROP
iptables -A OUTPUT -p icmp --icmp-type 0 -j DROP
情况二:实现禁止防火墙访问主机服务器(禁ping)
iptables -A OUTPUT -p icmp --icmp-type 8 -j DROP
iptables -A INPUT -p icmp --icmp-type 0 -j DROP
默认情况:所有icmp类型都禁止
iptables -A INPUT -p icmp -m icmp --icmp-type any -j DROP
iptables -A OUTPUT -p icmp -m icmp --icmp-type any -j DROP
实践06:实现防火墙状态机制控制
NEW: 发送数据包里面控制字段为syn=1,发送第一次握手的数据包
ESTABLISHED: 请求数据包发出之后,响应回来的数据包称为回复的包
RELATED: 基于一个连接,然后建立新的连接 例如:ftp连接
INVALID: 无效的的数据包,数据包结构不符合正常要求的
iptables -A INPUT -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
5.企业当中应用防火墙方法
项目:部署一个最安全的企业级防火墙(案例)
两种思想:针对默认规则而言。
逛公园:黑名单
1、默认规则默认是允许的状态。
看电影:白名单(更安全,推荐配置)
2、默认规则默认是不允许的状态。更安全。
看电影的思想更安全。
1)保存防火墙配置文件信息
cp /etc/sysconfig/iptables{,.bak}
2)清除配置规则
iptables -F <- 清空iptables所有规则信息(清除filter)
iptables -X <- 清空iptables自定义链配置(清除filter)
iptables -Z <- 清空iptables计数器信息(清除filter)
3)别把自己踢出到门外
iptables -A INPUT -s 10.0.0.1 -p tcp --dport 22 -j ACCEPT
iptables -A INPUT -s 10.0.0.0/24 -p tcp --dport 22 -j ACCEPT
4)配置防火墙filter上各个链的默认规则
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT
-P --- 指定相应链的默认规则策略,是允许还是阻止
5)允许iptables服务端ping自己的网卡地址
iptables -A INPUT -i lo -j ACCEPT --- 让自己可以ping自己
6)指定外网可以访问的端口信息
iptables -A INPUT -p tcp -m multiport --dport 80,443 -j ACCEPT
7)企业中内网之间不要配置防火墙策略
iptables -A INPUT -s 172.16.1.0/24 -j ACCEPT --- 允许架构内部服务进行访问
8)企业之间有合作关系的,不要将友商的网络禁止(主要经常改动)
iptables -A INPUT -s 10.0.1.0/24 -j ACCEPT --- 允许一些合作企业的外网服务器进行访问
iptables -A INPUT -s 10.0.2.0/24 -j ACCEPT
9)如果防火墙上配置了FTP服务,需要配置网络状态机制
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT --- 允许web服务与ftp服务器建立连接
注意:如果没有ESTABLISHED允许,当用防火墙的服务器ssh去另一台服务器时,就没有回来的数据了
例如:telnet 10.0.0.9 22 将连接不成功
10)实现iptables策略配置永久保存
①. 利用防火墙启动脚本命令参数,实现永久保存
/etc/init.d/iptables save
②. 利用防火墙配置信息保存命令,实现永久保存
iptables-save >/etc/sysconfig/iptables
实例拓展:避免自己被踢出门外
1.去机房重启系统或者登陆服务器删除刚才的禁止规则。
2.让机房人员重启服务器或者让机房人员拿用户密码登录进去
3.通过服务器的远程管理卡管理(推荐)
4.先写一个定时任务,每5分钟就停止防火墙
5.测试环境测试好,写成脚本,批量执行
以上内容为防火墙filter表的配置实践与原理说明