前言一、火墙介绍以及实验环境设定
1.火墙介绍2.实验环境设定3.火墙管理工具的切换 二、firewalld对火墙的管理方式以及设定
1.firewalld基础管理命令2.火墙中的三张表和五条链3.firewalld高级策略 三、iptable对火墙的管理
1.iptables基础命令2.iptable中的优化3.iptables中的nat模式 总结
前言
一、火墙介绍以及实验环境设定 1.火墙介绍
位于内部网络以及外部网络之间的防御屏障,主要保护服务器的安全 1. netfilter 2. iptables 3. iptables|firewalld2.实验环境设定
双网卡主机 vim /etc/sysconfig/network-scripts/ifcfg-enp1s0 NAME=enp1s0 DEVICE=enp1s0 IPADDR=172.25.0.190 NETMASK=255.255.255.0 ONBOOT=yes BOOTPROTO=none GATEWAY=172.25.0.90 vim /etc/sysconfig/network-scripts/ifcfg-enp7s0 NAME=enp7s0 IPADDR=172.25.254.190 PREFIX=24 ONBOOT=yes BOOTPROTO=none DEVICE=enp7s0 单网卡主机 vim /etc/sysconfig/network-scripts/ifcfg-enp1s0 NAME=enp1s0 DEVICE=enp1s0 IPADDR=172.25.254.191 NETMASK=255.255.255.0 ONBOOT=yes BOOTPROTO=none GATEWAY=172.25.0.903.火墙管理工具的切换
systemctl disabled --now firewalld.server systemctl mask firewalld.server systemctl umask iptables systemctl enable --now iptables ##不同的火墙管理工具必须进行服务的锁定否则会互相进行影响二、firewalld对火墙的管理方式以及设定 1.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
火墙中默认的域都在配置文件中进行修改,重启后可以使得其生效
vim /etc/firewalld/firewalld.conf 6 DefaultZone=public vim /lib/firewalld/zones/public.xml #.xml即超文本标记语言 1 23 Public 4For use in public areas. You do not trust the other computers on networks to not harm your computer. only selected incoming connections are accepted. 56 7 8 9 #允许的服务内容在其中进行添加即可 10
添加服务后重启火墙即可生效
vim /lib/firewalld/zones/public.xmlWork For use in work areas. You mostly trust the other computers on networks to not harm your computer. only selected incoming connections are accepted.
firewall-cmd --get-default-zone #查看默认域 firewall-cmd --set-default-zone=block #更改默认域为block firewall-cmd --list-all #查看默认域的火墙策略 firewall-cmd --list-all --zone=work #查看指定域的火墙规则 firewall-cmd --get-services #查看所有可允许的服务 firewall-cmd --permanent --remove-service=http --zone=work #永久移除指定域中的服务 firewall-cmd --permanent --remove-service=http #永久移除当前域中的服务 firewall-cmd --reload #加载火墙策略使其生效 firewall-cmd --permanent --add-source=172.25.0.91/24 --zone=block #添加指定的数据来源到某个域 firewall-cmd --permanent --remove-source=172.25.0.91/24 --zone=block #删除指定来源 firewall-cmd --permanent --change-source=172.25.0.91/24 --zone=work #更改指定来源到另外一个域中 firewall-cmd --permanent --list-sources #查看已经写入的指定数据来源 firewall-cmd --permanent --add-interface=enp1s0 --zone=block #添加网络接口到block firewall-cmd --permanent --remove-interface=enp1s0 --zone=block #删除网络接口 firewall-cmd --permanent --change-interface=enp1s0 --zone=work #更改网络接口到指定的域上2.火墙中的三张表和五条链
默认的五条链 input #输入 output #输出 forward #转发的请求需要转发的 postrouting #路由之前的数据 prerouting #路由之后的数据
系统默认的三张表 filter #经过内核的数据表 nat #不经过内核的数据表 mangle #当filter和nat表不够时可以进行补充策略
filter表 input #记录所有访问内核的输入 output #记录经过内核的输出 forward #记录所有需要本机转发的数据,数据在不会经过内核处理但是NAT的时候会使用内核
nat表 input #不访问内核的输入策略 output #不妨问内核的输出策略 postrouting #路由之前的数据 perouting #路由之后的数据3.firewalld高级策略
filter表
firewall-cmd --direct --get-all-rules #查看高级规则 firewall-cmd --direct --add-rule ipv4 filter INPUT 1 ! -s 172.25.0.91 -p tcp -j REJECT #-s指定IP-p指定协议-j指定状态 firewall-cmd --direct --remove-rule ipv4 filter INPUT 1 '!' -s 172.25.0.91 -p tcp -j REJECT #删除规则
nat表
firewall-cmd --permanent --add-masquerade #开启地址转换 firewall-cmd --permanent --add-forward-port=port=22:poroto=tcp:toaddr=172.25.0.190 #开启源地址转换三、iptable对火墙的管理 1.iptables基础命令
| iptables | 参数解释 |
|---|---|
| -A | 添加规则 |
| -L | 查看规则 |
| -n | 不做解析 |
| -t | 指定表 |
| -p | 指定协议 |
| –dport | 指定目的地端口 |
| -s | 指定数据来源为那个IP |
| -j | 指定动作其中,REJECT拒绝,SNAT源地址转换,DNAT目的地地址转换,ACCEPT允许 |
| -N | 新建表 |
| -E | 更新连接名称 |
| -X | 删除连接名称 |
| -D | 删除规则 |
| -I | 插入规则 |
| -R | 更改规则 |
| -P | 更改默认规则 |
| -F | 刷新火墙数据 |
| 数据包类型 | 解释 |
|---|---|
| RELATED | 建立过连接的 |
| ESTABLISHED | 正在建立连接的 |
| NEW | 新的为建立过连接的 |
iptables -A INPUT -t filter -j REJECT -s 1.1.1.91 -p tcp --dport 22 iptables -D INPUT 6 iptables -I INPUT 1 -t filter -p tcp -s 1.1.1.91 --dport 22 -j DROP iptables -R INPUT 1 -t filter -p tcp --dport 80 -s 172.25.254.90 -j REJECT iptables -N westos #新建链 iptables -E westos westosa #更改链的名称 iptables -X westosa #删除链 iptables-save > /etc/sysconfig/iptables #永久保存用户的火墙设定 service iptables save #也可保存设定
iptables -I INPUT 2 -m state --state RELATED,ESTABLISHED -j ACCEPT #连接过的或是正在连接的可直接通过火墙 iptables -I INPUT 3 -m state --state NEW -i lo -j ACCEPT #本地回环接口可以直接通过火墙 service iptables save #保存火墙策略3.iptables中的nat模式
iptables -t nat -A POSTROUTING -o enp7s0 -j SNAT --to-source 172.25.254.190 #开启地址转换功能使得其可以进行地址转换 iptables -t nat -A PREROUTING -i enp7s0 -j DNAT --to-dest 172.25.254.90 #源地址转换使得其可以进行源地址的转换
总结



