firewalld 是一种用于管理 Linux 系统防火墙的工具。
常见使用方法和应用场景:
1.常见操作
启动 systemctl start firewalld service firewalld start
停止 systemctl stop firewalld
重启 systemctl restart firewalld
状态 systemctl status firewalld
开机自启 systemctl enable firewalld
2.常见查看方法
firewall-cmd --list all
查询已开放的端口(已开放的端口号集合):
firewall-cmd --zone=public --list-ports
查询指定端口号是否已开放
netstat -ntulp | grep 端口号
查询指定端口是否已开
firewall-cmd --query-port=2255/tcp
提示 yes,表示开启;no表示未开启。
3.对外开放端口
批量或单个添加指定需要开放的端口:
firewall-cmd --add-port=123/tcp --permanent
firewall-cmd --zone=public --add-port=1001-1009/tcp --permanent
重载入添加的端口:
firewall-cmd --reload
查询指定端口是否开启成功:
firewall-cmd --query-port=123/tcp
批量或单个移除指定端口:
firewall-cmd --permanent --remove-port=123/tcp
firewall-cmd --zone=public --remove-port=1001-1009/tcp --permanent
4.针对固定IP开放端口
需要先把firewall-cmd --add-por开放的端关闭(移除指定端口--remove-port)
只对192.168.1.1开放2255端口, 对其他IP不开放(这几组引号可以这样写不会混淆)
firewall-cmd --permanent --add-rich-rule="rule family="ipv4" source address="192.168.1.1" port protocol="tcp" port="123" accept"
添加一个网段
firewall-cmd --permanent --add-rich-rule="rule family="ipv4" source address="192.168.1.0/24" port protocol="tcp" port="123" accept"
删除上面设置的规则
firewall-cmd --permanent --remove-rich-rule="rule family="ipv4" source address="192.168.1.1" port protocol="tcp" port="123" accept"
查看已设置的规则
firewall-cmd --list-all
5.修改SSH端口号只针对固定IP开放固定用户
修改配置文件vi /etc/ssh/sshd_config--->找到 Port 22 ---->去掉前面的#---->改成 Port 2255
添加一行只允许root通过192.1638.1.1----->登录到本机AllowUsers root@192.168.1.1
6.修改/etc/hosts.deny hosts.allow
修改host.deny拦截所有IP的ssh 和telnet
sshd:all:deny
in.telnetd:all:deny
修改hosts.allow只针对一个IP开放ssh
sshd:192.168.1.1:allow
系统会先检查/etc/hosts.deny规则,再检查/etc/hosts.allow规则,如果有冲突 按/etc/hosts.allow规则处理
其他操作
- 添加一个允许 HTTP 流量的规则: firewall-cmd --add-service=http。
- 禁用 SSH 服务: firewall-cmd --remove-service=ssh。
- 配置区域:firewalld 支持不同的区域(如公共区域、内部区域和 DMZ 区域),可以根据需要配置不同的区域。
例如:将一个接口添加到 DMZ 区域:firewall-cmd --zone=dmz --add-interface=eth1。 - 配置端口转发:使用 firewall-cmd 命令配置端口转发,将流量从一个端口转发到另一个端口。
将 TCP 流量从 8080 端口转发到 80 端口:firewall-cmd --add-forward-port=8080:tcp:localhost:80。 - 配置网络地址转换(NAT):使用 firewall-cmd 命令配置 NAT,将流量从一个 IP 地址转发到另一个 IP 地址。
例如:将源地址为 192.168.1.100 的流量转发到公共 IP 地址:firewall-cmd --add-masquerade --zone=public。 - 配置端口随机化:firewalld 可以配置端口随机化,使攻击者很难猜测下一个要使用的端口。
例如:启用端口随机化:firewall-cmd --set-default-zone=public --add-rich-rule='rule family="ipv4" source address="192.168.1.0/24" port port="1024-65535" protocol="tcp" accept'. - 配置 IPset:使用 firewall-cmd 命令配置 IPset,可以将一组 IP 地址作为一个整体来管理。
例如:创建一个 IPset:firewall-cmd --permanent --new-ipset=myipset --type=hash:ip。
firewalld 应用场景包括但不限于:保护服务器、限制入站和出站流量、限制特定协议和端口的访问、配置端口转发和 IP 转发、使用区域来管理不同的安全策略等。
网友评论