写一个脚本,使用firewalld禁止访问主机和主机上docker地址ip和端口,主机和主机上docker仅允许172.27.30.1主机和192.168.2.0/24网段访问ip和端口。
时间: 2023-08-31 16:20:05 浏览: 130
### 回答1:
以下是一个使用firewalld禁止访问主机和主机上docker地址IP和端口的脚本,同时只允许172.27.30.1主机和192.168.2.0/24网段访问IP和端口的配置:
```
#!/bin/bash
# 关闭防火墙
systemctl stop firewalld
# 清空防火墙规则
firewall-cmd --flush
# 禁止访问主机
firewall-cmd --add-rich-rule='rule family="ipv4" source address="all" drop'
# 禁止访问主机上的docker地址IP和端口
firewall-cmd --add-rich-rule='rule family="ipv4" source address="all" port port="2375" protocol="tcp" drop'
firewall-cmd --add-rich-rule='rule family="ipv4" source address="all" port port="2376" protocol="tcp" drop'
# 允许172.27.30.1主机访问IP和端口
firewall-cmd --add-rich-rule='rule family="ipv4" source address="172.27.30.1" port port="2375" protocol="tcp" accept'
firewall-cmd --add-rich-rule='rule family="ipv4" source address="172.27.30.1" port port="2376" protocol="tcp" accept'
# 允许192.168.2.0/24网段访问IP和端口
firewall-cmd --add-rich-rule='rule family="ipv4" source address="192.168.2.0/24" port port="2375" protocol="tcp" accept'
firewall-cmd --add-rich-rule='rule family="ipv4" source address="192.168.2.0/24" port port="2376" protocol="tcp" accept'
# 保存防火墙规则
firewall-cmd --runtime-to-permanent
# 启动防火墙
systemctl start firewalld
```
请注意,此脚本需要以root用户身份运行。另外,根据您的实际情况,可能需要修改IP地址和端口号。
### 回答2:
脚本如下:
```bash
#!/bin/bash
# 定义被禁止访问的IP和端口
blocked_ip="192.168.1.1"
blocked_port="8080"
# 定义允许访问的主机和网段
allowed_host="172.27.30.1"
allowed_subnet="192.168.2.0/24"
# 启用 firewalld 服务
systemctl start firewalld.service
# 添加被禁止访问的规则
firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="'$blocked_ip'" drop'
# 添加允许访问主机的规则
firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="'$allowed_host'" accept'
# 添加允许访问网段的规则
firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="'$allowed_subnet'" accept'
# 添加被禁止访问的端口规则
firewall-cmd --permanent --add-rich-rule='rule family="ipv4" port port="'$blocked_port'" protocol="tcp" drop'
# 重新加载防火墙规则
firewall-cmd --reload
# 显示当前防火墙规则
firewall-cmd --list-all
```
这个脚本使用 firewalld 命令添加防火墙规则,首先启动 firewalld 服务,然后添加被禁止访问的IP、被禁止访问的端口、允许访问的主机和允许访问的网段的规则,并重新加载防火墙规则,最后显示当前的防火墙规则。
阅读全文