目录
前言
一、火墙管理工具切换
二、iptables 的使用
三、火墙默认策略
四、firewalld的使用
1、firewalld的开启
2、关于firewalld的域
3、关于firewalld的设定原理及数据存储
4、firewalld的管理命令
5、firewalld的高级规则
6、firewalld中的NAT
总结
前言
火墙可以看作内核上的一种过滤插件。netfilter :火墙所开启的策略表格。iptables:管理表格的方法;iptables或者firewalld:提供这种方法的两种服务。
实验环境:
服务器两块网卡,192网段和172网段
客户端
一、火墙管理工具切换
系统默认使用的时firewalld:
(1)firewalld切换为iptablesdnf install iptables-services -y
systemctl stop firewalld
systemctl disable --now firewalld
systemctl mask firewalld %锁住该服务
systemctl enable --now iptables.service(2)iptales切换为fiewalld
dnf install firewalld -y
systemctl stop iptables
systemctl disable --now iptables
systemctl mask iptables
systemctl enable --now firewalld
二、iptables 的使用
火墙策略的永久保存
/etc/sysconfig/iptables ##iptables 策略记录文件
永久保存策略
iptales-save > /etc/sysconfig/iptables
service iptables save
三、火墙默认策略
默认策略中的5条链
input ##输入
output ##输出
forward ##转发
postrouting ##路由之后
prerouting ##路由之前
默认的3张表
filter ##经过本机内核的数据(input output forward)
nat ##不经过内核的数据(postrouting,prerouting,input,output)
mangle ##当filter和nat表不够用时使用(input output forward postrouting,prerouting,)
iptables命令
iptables
-t | 指定表名称 |
-n | 不做解析 |
-L | 查看 |
-A | 添加策略 |
-p | 协议 |
--dport | 目的地端口 |
-s | 来源 |
-j ACCEPT DROP REJECT | 动作 允许 拒绝 源地址转换 目的地地址转换 丢弃 |
-N | 新建链 |
-E | 更改链名称 |
-X | 删除链 |
-D | 删除规则 |
-I | 插入规则 |
-R | 更改规则 |
-P | 更改默认规则 |
数据包状态
RELATED ##建立过连接的
ESTABLISHED ##正在连接的
NEW ##新的
可以通过下面的命令来使服务快速正确的通过火墙策略,而不需要遍历所有火墙策略:
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A INPUT -m state --state NEW -i lo -j ACCEPT
iptables -A INPUT -m state --state NEW -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -m state --state NEW -p tcp --dport 443 -j ACCEPT
iptables -A INPUT -m state --state NEW -p tcp --dport 53 -j ACCEPT
iptables -A INPUT -m state --state NEW ! -s 192.168.0.10 -p tcp --dport 22 -j ACCEPT
ptables -A INPUT -m state --state NEW -j REJECT
service iptables save %火墙策略永久保存
注意:iptables命令添加策略时优先级是从上至下
sshd httpd iscsi dns 实际上相当于电影院检票
nat表中的dnat snat
ping不同,在另一台主机上做nat表的设定
内网访问外网
外网访问内网
四、firewalld的使用
1、firewalld的开启
systemctl stop iptables
systemctl disable iptables
systemctl mask iptablessystemctl unmask firewalld
systemctl enable --now firewalld
2、关于firewalld的域
trusted ##接受所有的网络连接
home ##用于家庭网络,允许接受ssh mdns ipp-client samba-client dhcp-client
work ##工作网络 ssh ipp-client dhcp-client
public ##公共网络 ssh dhcp-client
dmz ##军级网络 ssh
block ##拒绝所有
drop ##丢弃 所有数据全部丢弃无任何回复
internal ##内部网络 ssh mdns ipp-client samba-client dhcp-client
external ##ipv4网络地址伪装转发 sshd
3、关于firewalld的设定原理及数据存储
/etc/firewalld ##火墙配置目录
/lib/firewalld ##火墙模块目录
恢复默认设置,删除掉public.xml
4、firewalld的管理命令
firewall-cmd --state ##查看火墙状态
firewall-cmd --get-active-zones ##查看当前火墙中生效的域
firewall-cmd --get-default-zone ##查看默认域
firewall-cmd --list-all ##查看默认域中的火墙策略
firewall-cmd --list-all --zone=work ##查看指定域的火墙策略
firewall-cmd --set-default-zone=trusted ##设定默认域
firewall-cmd --get-services ##查看所有可以设定的服务
firewall-cmd --permanent --remove-service=cockpit ##移除服务
firewall-cmd --reload
firewall-cmd --permanent --add-source=172.25.254.0/24 --zone=block ##指定数据来源访问指定域
firewall-cmd --reload
firewall-cmd --permanent --remove-source=172.25.254.0/24 --zone=block ##删除自定域中的数据来源
firewall-cmd --permanent --remove-interface=ens224 --zone=public ##删除指定域的网络接口
firewall-cmd --permanent --add-interface=ens224 --zone=block ##添加指定域的网络接口
firewall-cmd --permanent --change-interface=ens224 --zone=public ##更改网络接口到指定域
立即生效apache,但是刷新,重新读取配置文件设定就没了
如何设定一直存在
之后刷新,重新读取配置文件
删除同理
指定数据来源访问指定域
指定接口
修改默认模块为iptable
5、firewalld的高级规则
想拒绝谁就写谁
firewall-cmd --direct --get-all-rules ##查看高级规则
数据走向,其他人都可以访问ssh,只有20不可以访问
6、firewalld中的NAT
SNAT
DNAT
总结
火墙的设置策略也是在今后工作和面试中的重点内容,firewalld相对更傻瓜,iptables相对更灵活,希望大家重点掌握!