firewalld:
1、介绍
firewalld(动态防火墙),其中引入区域(zone)的概念。区域就是预先设计的策略集合,用户可以根据不同环境选择合适的策略集合,从而实现防火墙策略之间的快速切换。
2、域的介绍
网络域名称 | 配置 |
---|---|
trusted | 可接受所有的网络 |
internal | 可用于内部网络,支持ssh,mdns,ipp-client,samba-client,dhcpv6-client |
home | 可用于家庭网络,支持ssh,mdns,ipp-client,samba-client,dhcpv6-client |
public | 可用于公共区域,支持ssh,dhcp6-client |
work | 可用于工作环境,支持ssh,ipp-client,dhcpv6-client |
dmz | 支持ssh |
external | 支持ssh |
block | 拒绝所有连接 |
drop | 任何网络数据包丢弃 |
3、图形化管理
命令:firewall-config
设置域
设置默认域
4、命令管理
firewall-cmd --state #查看当前状态
firewall-cmd --get-active-zones #查看当前防火墙工作的域
firewall-cmd --get-default-zone #查看防火墙默认工作域
firewall-cmd --get-zones #查看可选择的域
firewall-cmd --zone=public --list-all #查看public域的配置
firewall-cmd --get-services #可直接添加的服务
firewall-cmd --list-all-zones #查看所有的域的配置
firewall-cmd --set-default-zone-trusted #设置默认域为trusted(如需永久设定需添加--permanent,并重新加载)
5、设置2台本地主机访问远端主机两个ip,可以访问到默认发布文件
(通过测试了解防火墙设置)
(1)准备
2台本地主机:
ip1=172.25.254.12/24
ip2=1.1.1.112/24
1台远端主机;
拥有两块网卡eth0,eth1
eth0:172.25.254.212/24
eth1:1.1.1.212/24
(2)远端主机设置
安装http并设置默认发布文件,默认发布文件目录/var/www/html/
设置允许172.25.254.0/24网段通过trusted域访问远端主机文件(一个域仅能设置同一ip通过,否则将会出现冲突)
命令:firewall-cmd --permanent --zome=trusted --add-source=172.25.254.0/24 #设置为永久设定需进行重新加载
firewall-cmd --reload
(3)本地主机1测试
浏览器中输入172.25.254.212
(4)远端主机设置
将eth1网卡添加至trusted域中
方法一:
命令:
firewall-cmd --remove-interface=eth1 --zone=public
将eth1移出public域(public域为例,移出的域视真实情况而定)
firewall-cmd --add-inerface=eth1 --zone=trusted
将eth1添加进trusted域
方法二:
命令:
firewall-cmd --change-interface=eth1 --zone=trusted
将eth1网卡直接修改至trusted域
该设定将eth1网卡设置在trusted域的接口上,便可与1.1.1.0/24网段进行通信
(5)本地主机2测试
6、防火墙的永久设定配置
远端主机;
配置函数路径:/etc/firewalld
以下进入zones目录为例
(1)查看当前firewall中public域配置
命令:firewall-cmd --list-all
查看public.xml和public.xml.old文件
可以发现两文件内容目前为一模一样
(2)永久添加ftp服务
命令:firewall-cmd --permanent --add-service=ftp (--permanent为永久添加的参数)
firewall-cmd --reload (设定永久添加需重新加载)
(3)查看public.xml和public.xml.old
查看当前public.xml文件当前内容发现添加ftp
查看当前public.xml.old文件为之前的配置
7、Direct Rules
通过 --direct可进行端口规则设置
测试:设置仅允许本地主机ip172.25.254.12访问远端主机ip172.25.254.212
(1)远端主机设置
命令:firewall-cmd --direct --add-rule ipv4 filter INPUT 1 -s 172.25.254.12 -p tcp --dport 22 -j ACCEPT
filter INPUT #使用filter表的INPUT链
-s #接收数据包的地址 (若在之前添加!则为禁止该ip通过该端口)
-p #协议
-dport #端口
-j #是否允许通过
命令:firewall-cmd --direct --get-all-rules
查看规则
(2)测试
本地主机1(ip172.25.254.12/24)
本地主机2(ip1.1.1.112)
测试:设置伪装和转发
远端主机设定:
伪装功能开启
命令:firewall-cmd --permanent --add-masquerade
firewall-cmd --reload
设置转发
命令:firewall-cmd --add-forward-port=port=22:proto=tcp:toport=22:toaddr=1.1.1.212 (ip为转发的目标)
iptables
1、介绍
iptables根据规则进行管理防火墙。
iptables具有3张表
(1)Fliter表
作用:过滤数据包
INPUT链:处理来自外部数据
OUTPUT链:处理发送的数据
FORWARD链:用于转发至其他网卡的数据
(2)NAT表
作用:地址转换
PREOUTING链:处理路由转发前的数据,主要用于DNAT
OUTPUT链:处理本机发送的数据
POSTROUTING链:处理路由后的数据,主要用于SNAT
(3)Mangle表
作用:用于处理数据包
PREOUTING链,OUTPUT链,POSTROUTING链,INPUT链,FORWARD链。
2、参数介绍
-t | 指定表名称 |
-n | 不做解析 |
-L | 列出指定表中的策略 |
-A | 增加策略 |
-p | 网络协议 |
--dport | 端口 |
-s | 数据来源 |
-j | 动作 |
ACCEPT | 允许 |
REJECT | 拒绝 |
DROP | 丢弃 |
-N | 增加链 |
-E | 修改链名称 |
-X | 删除链 |
-D | 删除指定策略 |
-I | 插入 |
-R | 修改策略 |
-P | 修改默认策略 |
-F | 清除信息 |
-i | 选择接口 |
3、参数示例
(1)默认查看filter表信息
命令:iptables -nL
(2)查看nat表信息
命令:iptables -t nat -nL
(3)保存iptable配置信息
命令:service iptables save
保存在/etc/sysconfig/iptables
(4)添加lo接口
命令:iptabels -t fileter -A INPUT -i lo -j ACCEPT
(5)允许ip172.25.254.112访问本机所有端口
命令:iptabels -t fileter -A INPUT -s 172.25.254.112 -j ACCEPT
(6)禁止ip172.25.254.112访问本机所有端口
命令:iptabels -t fileter -A INPUT -s 172.25.254.112 -j REJECT
(7)删除指定设置
命令:iptables -D INPUT 2
数字为链中的序号
(8)修改指定设置
命令:iptables -R INPUT 2 -s172.25.254.112 -j ACCEPT
数字为链中的序号
(9)修改策略模式
命令:iptables -P INPUT DROP
INPUT为当前模式,DROP为修改后的模式
(10)增加链
命令:iptables -N admin
链名为admin
(11)删除链
命令:iptables -X admin
4、实现两个不同网段相互通信
远端主机作为路由端
ip分别为172.25.254.212/24,1.1.1.212/24
两台本地主机
ip1:172.25.254.12
ip2:1.1.1.112
(1)路由端测试
命令:sysctl -a | grep forward
查看net.ipv4.ip_forward(转发功能)是否开启
若没有开启编辑文件/etc/sysctl.conf
添加net.ipv4.ip_forward=1,接着执行命令sysctl -p读取文件
设置iptables中转发和伪装
命令:iptables -t nat -A PREROUTING -i eth1 -j DNAT --to-dest 1.1.1.212
在NAT表中的PREROUTING链设置转发
命令:iptables -t nat -A POSTROUTING -o eth1 -j SNAT --to-source 172.25.254.212
在NAT表中的POSTROUTING链设置伪装
本地主机2设置网关
测试