方法一:systemctl status firewalld
防火墙的开启、关闭、禁用命令
(1)设置开机启用防火墙:systemctl enable firewalld.service
(2)设置开机禁用防火墙:systemctl disable firewalld.service
(3)启动防火墙:systemctl start firewalld
(4)关闭防火墙:systemctl stop firewalld
(5)检查防火墙状态:systemctl status firewalld
示例如下:
方法二:firewall-cmd --state
查看默认防火墙状态(关闭后显示notrunning,开启后显示running)
1 2 |
|
添加白名单:
如果你使用的是 CentOS 7,防火墙未开启,未进行设置,那么可以按照以下步骤使用 `firewall` 来实现你的需求:
1. 安装 `firewall`
如果你的系统上没有安装 `firewall`,可以使用以下命令来安装:
```
sudo yum install firewalld
```
2. 启动 `firewall`
使用以下命令启动 `firewall` 服务:
```
sudo systemctl start firewalld
```
3. 添加 1521 端口规则
使用以下命令添加 1521 端口的规则,仅允许指定的 IP 地址访问:
```
sudo firewall-cmd --add-rich-rule='rule family="ipv4" source address="100.60.6.190/32" port protocol="tcp" port="1521" accept'
sudo firewall-cmd --add-rich-rule='rule family="ipv4" source address="100.60.6.120/32" port protocol="tcp" port="1521" accept'
sudo firewall-cmd --add-rich-rule='rule family="ipv4" source address="100.60.248.174/32" port protocol="tcp" port="1521" accept'
sudo firewall-cmd --add-rich-rule='rule family="ipv4" source address="100.63.248.661/32" port protocol="tcp" port="1521" accept'
```
4. 添加默认规则
使用以下命令添加默认规则,允许所有端口的流量通过:
```
sudo firewall-cmd --zone=public --add-service=ssh --permanent
sudo firewall-cmd --zone=public --add-service=http --permanent
sudo firewall-cmd --zone=public --add-service=https --permanent
sudo firewall-cmd --reload
```
其中,`--zone=public` 表示将规则应用于公共区域,`--add-service=ssh` 表示允许 SSH 流量通过,`--add-service=http` 和 `--add-service=https` 表示允许 HTTP 和 HTTPS 流量通过。
5. 重启 `firewall` 如果不管用这一步省略
使用以下命令重启 `firewall` 服务:
```
sudo systemctl restart firewalld
```
这样就完成了使用 `firewall` 实现你的需求的操作。需要注意的是,如果你的系统上已经安装了 `iptables`,那么 `firewall` 和 `iptables` 可能会产生冲突,建议只使用其中一个来管理防火墙。
如果你添加了防火墙规则后,100.60.6.110 无法连接到当前服务器 Oracle 数据库,但是在停止防火墙后可以访问,那么很可能是防火墙规则设置有误。
请检查以下几个方面:
1. 防火墙规则是否正确设置
请检查防火墙规则是否正确设置,包括端口号、IP 地址等。可以使用以下命令查看当前的防火墙规则:
```
sudo firewall-cmd --list-all
```
确保你添加的规则已经生效,并且没有其他规则阻止了访问。
2. 防火墙默认策略是否正确设置
请检查防火墙默认策略是否正确设置,确保默认策略不会阻止访问。可以使用以下命令查看当前的默认策略:
```
sudo firewall-cmd --get-default-zone
sudo firewall-cmd --zone=public --list-all
```
确保默认策略允许通过所需的端口。
3. 安全组是否正确设置
如果你的服务器是运行在云端的虚拟机上,那么可能还需要检查云服务商的安全组设置。请确保安全组允许通过所需的端口和 IP 地址。
如果以上步骤都检查过了,仍然无法访问 Oracle 数据库,可以尝试使用 telnet 命令来测试连接。例如,使用以下命令测试连接 1521 端口:
```
telnet 服务器IP地址 1521
```
如果连接成功,说明问题可能出在 Oracle 数据库配置或其他方面;如果连接失败,说明防火墙规则设置有误。