Linux中的火墙策略优化

一.火墙介绍

netfilter:内核上有个安全插件netfilter(访问控制列表),这个列表里有许多详细的规则,当对这个规则允许或拒绝时,可以控制其他主机是否能访问,极大的提高了安全性。
iptables:管理netfilter的工具,通过iptables往netfilter表格里面写网络安全策略
iptables / firewalld:对iptables进行管理,用iptables / firewalld手段来写网络安全策略。

用iptables / firewalld这两个上层的管理工具去管理iptables,往iptables写网络安全策略时,iptables会把策略通过netfilter存在控制表格里。

二、.火墙管理工具切换

在rhel8中默认使用的是firewalld

firewalld----->iptables

1)dnf install iptables-services -y
2)systemctl disable --now firewalld
3)systemctl mask firewalld
4)systemctl enable --now iptables
Linux中的火墙策略优化_第1张图片

iptables -------> fiewalld

1)dnf install firewalld -y
2)systemctl disable --now iptables
3)systemctl mask iptables
4)systemctl enable --now firewalld
Linux中的火墙策略优化_第2张图片

三、firewalld的使用

1.firewalld的开启

1)systemctl disable --now iptables
2)systemctl mask iptables
3)systemctl unmask firewalld
4)systemctl enable --now firewalld
Linux中的火墙策略优化_第3张图片

2.关于firewalld的域

trusted 接受所有的网络连接
home 用于家庭网络,允许接受ssh mdns ipp-client samba-client dhcp-client
work 工作网络 ssh ipp-client dhcp-client
public 公共网络 ssh dhcp-client
dmz 军级网络 ssh
internal 内部网络 ssh mdns ipp-client samba-client dhcp-client
external ipv4网络地址伪装转发 ssh
  • trusted | 接受所有的网络连接|
    Linux中的火墙策略优化_第4张图片

  • home 家庭网络
    Linux中的火墙策略优化_第5张图片

  • work 工作网络
    Linux中的火墙策略优化_第6张图片

  • public 公共网络
    Linux中的火墙策略优化_第7张图片

  • dmz 军级网络
    Linux中的火墙策略优化_第8张图片

  • internal 内部网络
    Linux中的火墙策略优化_第9张图片

  • external ipv4网络地址伪装转发
    Linux中的火墙策略优化_第10张图片

3.关于firewalld的设定原理及数据存储

/etc/firewalld 火墙配置目录
/lib/firewalld 火墙模块目录
  • /etc/firewalld

[火墙配置目录]

Linux中的火墙策略优化_第11张图片

  • /lib/firewalld

[火墙模块目录]

Linux中的火墙策略优化_第12张图片

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 --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 更改网络接口到指定域
  • firewall-cmd --state | 查看火墙状态
  • firewall-cmd --get-active-zones | 查看当前火墙中生效的域
  • firewall-cmd --get-default-zone |查看默认域
  • firewall-cmd --list-all | 查看默认域中的火墙策略

Linux中的火墙策略优化_第13张图片

  • firewall-cmd --list-all --zone=work |查看指定域的火墙策略

Linux中的火墙策略优化_第14张图片

  • firewall-cmd --set-default-zone=trusted | 设定默认域

Linux中的火墙策略优化_第15张图片

  • firewall-cmd --get-services | 查看所有可以设定的服务

Linux中的火墙策略优化_第16张图片

  • firewall-cmd --permanent --remove-service=cockpit | 移除服务
  • firewall-cmd --reload | 重新加载(设定里有permanent[永久]时,要使用此命令来重新加载,否则在查看火墙策略时会显示不出来)

Linux中的火墙策略优化_第17张图片

  • firewall-cmd --permanent --add-source=192.168.0.0/24 --zone=trusted | 指定数据来源访问指定域

Linux中的火墙策略优化_第18张图片

  • firewall-cmd --permanent --remove-source=192.168.0.0/24 --zone=trusted | 删除自定域中的数据来源

Linux中的火墙策略优化_第19张图片

(默认情况下,两个网卡域都为public)

Linux中的火墙策略优化_第20张图片
可以先用以下命令删除网卡域的设定

  • firewall-cmd --permanent --remove-interface=ens1s0 --zone=public | 删除指定域的网络接口
    Linux中的火墙策略优化_第21张图片

  • firewall-cmd --permanent --add-interface=ens1s0 --zone=block | 添加指定域的网络接口
    Linux中的火墙策略优化_第22张图片

  • firewall-cmd --permanent --change-interface=ens1s0 --zone=public | 更改网络接口到指定域
    Linux中的火墙策略优化_第23张图片

5. firewalld的高级规则

firewall-cmd --direct --get-all-rules 查看高级规则

firewall-cmd --direct --add-rule ipv4 filter INPUT 0 ! -s 172.25.254.5 -p tcp --dport 22 -j REJECT(除了ip172.25.254.5可以进入22端口,其他都拒绝)

Linux中的火墙策略优化_第24张图片
测验
ip为172.25.254.5的主机可以登陆

Linux中的火墙策略优化_第25张图片
其他ip的主机不能登陆
Linux中的火墙策略优化_第26张图片

6.firewalld中的NAT

SNAT(源地址转换)

firewall-cmd --permanent --add-masquerade
firewall-cmd --reload
Linux中的火墙策略优化_第27张图片

DNAT(目的地地址转化)

用5登陆105,显示的目的地地址是105

Linux中的火墙策略优化_第28张图片
我们可以使用以下命令来对目的地地址进行转换
firewall-cmd --permanent --add-forward-port=port=22:proto=tcp:toaddr=1.1.1.205
firewall-cmd --reload

Linux中的火墙策略优化_第29张图片
此时用5登陆105主机,会发现地址改变为1.1.1.205,这就是目的地地址转换

Linux中的火墙策略优化_第30张图片
实验前确保被转换的1.1.1.205主机可以与172.25.254.105可以通信,这个在前面的网络配置里有写到!!

四、 iptables的使用

1. 火墙默认策略

  • 默认策略中的5条链

input 输入
output 输出
forward 转发
postrouting 路由之后
prerouting 路由之前
  • 默认的3张表

filter 经过本机内核的数据(input output forward)
nat 不经过内核的数据(postrouting,prerouting,input,output)
mangle 当filter和nat表不够用时使用(input output forward postrouting,prerouting,)

2. iptables命令

iptables -t 指定表名称
iptables -n 不做解析
iptables -L 查看
iptables -A 添加策略
iptables -p 协议
iptables --dport 目的地端口
iptables -s 来源
iptables -j 动作
iptables -j ACCEPT 允许
iptables -j DROP 丢弃
iptables -j REJECT 拒绝
iptables -j SNAT 源地址转换
iptables -j DNAT 目的地地址转换
iptables -N 新建链
iptables -E 更改链名称
iptables -X 删除链
iptables -D 删除规则
iptables -I 插入规则
iptables -R 更改规则
iptables -P 更改默认规则
  • iptables -n | 不做解析

  • iptables -L | 查看

  • iptables -t | 指定表名称(filter/nat/mangle)
    Linux中的火墙策略优化_第31张图片

  • iptables -A | 添加策略

  • iptables -p | 协议

  • iptables --dport | 目的地端口

  • iptables -s | 来源
    Linux中的火墙策略优化_第32张图片

  • iptables -N | 新建链
    Linux中的火墙策略优化_第33张图片

  • iptables -E | 更改链名称
    Linux中的火墙策略优化_第34张图片

  • iptables -X | 删除链
    Linux中的火墙策略优化_第35张图片
    Linux中的火墙策略优化_第36张图片

  • iptables -I | 插入规则
    Linux中的火墙策略优化_第37张图片

  • iptables -R | 更改规则
    Linux中的火墙策略优化_第38张图片

  • iptables -D | 删除规则
    Linux中的火墙策略优化_第39张图片

  • iptables -P | 更改默认规则
    Linux中的火墙策略优化_第40张图片

3. 数据包状态

RELATED 建立过连接的
ESTABLISHED 正在连接的
NEW 新的

iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT

Linux中的火墙策略优化_第41张图片

iptables -A INPUT -m state --state NEW -i lo -j ACCEPT
( 允许从回路接口进入)

Linux中的火墙策略优化_第42张图片

iptables -A INPUT -m state --state NEW -p tcp --dport 80 -j ACCEPT

( 允许所有主机进入80端口[httpd服务])

Linux中的火墙策略优化_第43张图片

iptables -A INPUT -m state --state NEW -p tcp --dport 53 -j ACCEPT
(允许所有主机进入53端口[dns服务])

Linux中的火墙策略优化_第44张图片

iptables -A INPUT -m state --state NEW -p tcp --dport 22 -j ACCEPT
(允许所有主机都可通过22端口[ssh服务]进入此主机)

Linux中的火墙策略优化_第45张图片

iptables -A INPUT -m state --state NEW ! -s 192.168.0.66 -p tcp --dport 22 -j ACCEPT

(允许除192.168.0.66ip以外的主机通过22端口进入此主机)
Linux中的火墙策略优化_第46张图片
测试
主机为192.168.0.66不能通过22端口进不去此主机
Linux中的火墙策略优化_第47张图片
但23主机可以通过22端口进入
Linux中的火墙策略优化_第48张图片

4. 火墙策略永久保存

在进行上面的添加规则,链接等一系列操作时,若不永久保存,iptable -F 后,就会被完全刷新掉。

Linux中的火墙策略优化_第49张图片
若不想被刷掉,需要进行永久保存。

火墙策略的记录文件

  • /etc/sysconfig/iptables

[iptables 策略记录文件]

Linux中的火墙策略优化_第50张图片

  • iptales-save > /etc/sysconfig/iptables (永久保存)

Linux中的火墙策略优化_第51张图片

5. iptables中的NAT

SNAT(源地址转换)

iptable -t nat -A POSTROUTING -o ens160 -j SNAT --to-source 192.168.0.205
Linux中的火墙策略优化_第52张图片
做了源地址转换后,1网段的主机也可以和192网段的主机通信
Linux中的火墙策略优化_第53张图片

DNAT(目的地地址转化)

登陆192.168.0.205主机时,Ip地址就是205
Linux中的火墙策略优化_第54张图片

iptables -t nat -A PREROUTING -i ens160 -j DNAT --to-dest 1.1.1.23
Linux中的火墙策略优化_第55张图片

做了目的地地址转换后,登陆192.168.0.205主机,ip地址显示的会是1.1.1.23ip

你可能感兴趣的:(笔记,RH135)