OsoLinux 快速安装指南


学习掌握 firewalld 指令:

# 查看安全设置:

firewall-cmd --list-all      # 显示默认安全区域的所有设置

firewall-cmd --query-panic      # 查看是否拒绝

firewall-cmd --get-zones       # 显示安全区域列表 系统配备了多个不同的方案

firewall-cmd --reload      # 重新加载防火墙规则

# 更改方案为 public,非专业其实不用去切换或利用方案:

firewall-cmd --set-default-zone=public

# 改变拒绝状态,永久生效再加上 --permanent,否则 firewall-cmd --reload 就清空了:

firewall-cmd --panic-on      # 拒绝所有包

firewall-cmd --panic-off --permanent      # 取消拒绝状态

# 查看局部设置:

firewall-cmd --list-ports      # 查看所有打开的端口

firewall-cmd --list-services      # 列出默认安全方案放行的所有服务

# 默认安全区域加入、移除一个端口或服务:

firewall-cmd --add-port=8080/tcp --permanent

firewall-cmd --remove-port=233/udp --permanent      # 拒绝通过udp访问233

firewall-cmd --remove-service=smtp --permanent

# 临时允许 Samba 服务通过 600 秒:

firewall-cmd --add-service=samba --timeout=600

#direct 可以直接在防火墙的链(chain)中添加规则,0 代表了最高的优先级:

firewall-cmd --direct -add-rule ipv4 filter INPUT 0 -p tcp --dport 9000 -j ACCEPT

将 80 端口转发至 8080 端口:

firewall-cmd --add-forward-port=port=80:proto=tcp:toport=8080       # 将80端口的流量转发至8080

# 将 80 端口的流量转发至 192.168.0.1:

firewall-cmd --add-forward-port=port=80:proto=tcp:toaddr=192.168.0.1

# 将 80 端口的流量转发至 192.168.0.1 的 8080 端口:

firewall-cmd --add-forward-port=port=80:proto=tcp:toaddr=192.168.0.1:toport=8080

# 接下来我们来看富规则的设置,即 rich rules,允许 192.168.2.208 主机的所有流量:

firewall-cmd --zone=drop --add-rich-rule="rule family="ipv4" source address="192.168.2.208" accept"

# 允许 192.168.2.208 主机的 icmp 协议,即允许 192.168.2.208 主机 ping:

firewall-cmd --add-rich-rule="rule family="ipv4" source address="192.168.2.208" protocol value="icmp"
 accept"

# 取消允许 192.168.2.208 主机的所有流量:

firewall-cmd --zone=drop --remove-rich-rule="rule family="ipv4" source address="192.168.2.208" accept"

# 允许 192.168.2.208 主机访问ssh服务:

firewall-cmd --zone=drop --add-rich-rule="rule family="ipv4" source address="192.168.2.208"
 service name="ssh" accept"

# 禁止 192.168.2.208 访问 https 服务,并返回错误信息:

firewall-cmd --zone=drop --add-rich-rule="rule family="ipv4" source address="192.168.2.208"
 service name="https" reject"

# 允许 192.168.2.0/24 网段的主机访问 22 端口:

firewall-cmd --zone=drop --add-rich-rule="rule family="ipv4" source address="192.168.2.0/24"
 port protocol="tcp" port="22" accept"

每分钟允许2个新连接访问 ftp 服务

firewall-cmd --add-rich-rule="rule service name=ftp limit value=2/m accept"

# 允许新的 ipv4 和 ipv6 连接 ftp,并使用日志和审核,每分钟允许访问一次:

firewall-cmd --add-rich-rule="rule service name=ftp log limit value="1/m" audit accept"

# 拒绝来自 192.168.2.0/24 网段的连接,10 秒后自动取消:

firewall-cmd --add-rich-rule="rule family=ipv4 source address=192.168.2.0/24 reject" --timeout=10

# 允许 ipv6 地址为 2001:db8::/64 子网的主机访问 dns 服务,并且每小时审核一次,300 秒后自动取消:

firewall-cmd --add-rich-rule="rule family=ipv6 source address="2001:db8::/64" service name="dns"
 audit limit value="1/h" reject" --timeout=300

# 将来自 192.168.2.0/24 网段访问本机80端口的流量转发到本机的22端口:

firewall-cmd --zone=drop --add-rich-rule="rule family=ipv4 source address=192.168.2.0/24
 forward-port port=80 protocol=tcp to-port=22"

# 将来自 192.168.2.0/24 网段访问本地80端口的流量转发到 192.168.2.208 主机的 22 端口:

firewall-cmd --zone=drop --add-rich-rule="rule family=ipv4 source address=192.168.2.0/24
 forward-port port=80 protocol=tcp to-port=22 to-addr=192.168.2.208"

#伪装 IP:

firewall-cmd --query-masquerade      # 检查是否允许伪装 IP

firewall-cmd --add-masquerade       # 允许防火墙伪装 IP

firewall-cmd --remove-masquerade      # 禁止防火墙伪装 IP

# 将来自局域网 192.168.2.0/24 网段访问外网的流量映射为网络出口公网IP,即修改源 IP 地址:

firewall-cmd --zone=drop --add-masquerade

firewall-cmd --zone=drop --add-rich-rule="rule family=ipv4 source address=192.168.2.0/24 masquerade"