首页
人工智能
网络安全
手机
搜索
登录
搜索
golden81
累计撰写
154
篇文章
累计收到
0
条评论
首页
栏目
首页
人工智能
网络安全
手机
包含标签 【日志记录】 的文章
2025-4-27
firewalld防火墙笔记
一、firewalld 简介 功能:firewalld 是一个动态管理防火墙规则的工具,它提供了一个基于命令行和图形界面的管理方式,允许管理员轻松地配置和管理防火墙规则,以保护系统免受网络破坏 区域(Zones):firewalld 引入了区域的概念,每个区域都有预定义的规则集。常见的区域包括 public(用于公共网络,规则较为严格)、private(用于私有网络,规则相对宽松)、trusted(信任区域,允许所有流量通过)等 二、安装与启动 安装:在大多数 Linux 发行版中,可以使用包管理工具来安装 firewalld。例如,在 CentOS/RHEL 系统中,可以使用以下命令安装:yum install firewalld 启动:安装完成后,可以使用以下命令启动 firewalld 服务:systemctl start firewalld。同时,可以使用 systemctl enable firewalld 命令设置开机自启 三、基本命令 查看状态:firewall-cmd --state,用于查看 firewalld 的运行状态,如是否正在运行 查看区域列表:firewall-cmd --get-zones,可以列出系统中所有可用的区域 查看默认区域:firewall-cmd --get-default-zone,查看当前系统使用的默认区域 设置默认区域:firewall-cmd --set-default-zone=<zone>,将指定的区域设置为默认区域,例如 firewall-cmd --set-default-zone=public 四、区域相关操作 将接口添加到区域:firewall-cmd --zone=<zone> --add-interface=<interface>,例如 firewall-cmd --zone=public --add-interface=eth0,将 eth0 接口添加到 public 区域 从区域中移除接口:firewall-cmd --zone=<zone> --remove-interface=<interface> 查看区域中的接口:firewall-cmd --zone=<zone> --query-interface=<interface>,用于查询指定接口是否属于某个区域 五、服务相关操作 允许服务:firewall-cmd --zone=<zone> --add-service=<service>,例如 firewall-cmd --zone=public --add-service=http,允许 public 区域中的设备访问本机的 HTTP 服务 移除服务:firewall-cmd --zone=<zone> --remove-service=<service> 查看允许的服务:firewall-cmd --zone=<zone> --list-services,查看指定区域中允许的服务列表 六、端口相关操作 允许端口:firewall-cmd --zone=<zone> --add-port=<port>/<protocol>,例如 firewall-cmd --zone=public --add-port=8080/tcp,允许 public 区域中的设备通过 TCP 协议访问本机的 8080 端口 移除端口:firewall-cmd --zone=<zone> --remove-port=<port>/<protocol> 查看允许的端口:firewall-cmd --zone=<zone> --list-ports,查看指定区域中允许的端口列表 七、富规则(Rich Rules) 定义富规则:富规则是一种更灵活、更强大的规则定义方式,可以指定更详细的规则条件和动作。例如,firewall-cmd --zone=public --add-rich-rule='rule family="ipv4" source address="192.168.1.0/24" service name="ssh" accept',表示允许 192.168.1.0/24 网段内的设备通过 SSH 访问本机 查看富规则:firewall-cmd --zone=<zone> --list-rich-rules,查看指定区域中的富规则列表 移除富规则:需要使用与添加富规则相同的命令,只是将 add-rich-rule 替换为 remove-rich-rule 八、持久化设置 上述的防火墙规则默认情况下只在当前系统运行期间生效,重启后会丢失。如果要使规则持久化,可以在命令中添加 --permanent 选项。例如,firewall-cmd --zone=public --add-service=http --permanent,这样设置的规则在系统重启后仍然有效 注意:在添加了持久化规则后,需要使用 firewall-cmd --reload 命令重新加载防火墙配置,使新的持久化规则生效 九、图形界面管理 在一些 Linux 桌面环境中,提供了图形化的 firewalld 管理工具,如 firewall-config。可以通过图形界面更加直观地进行防火墙规则的配置,包括区域设置、服务和端口的允许与禁止、富规则的管理等操作 十、IPset 集成 IPset 简介:IPset 是一个用于管理 IP 地址集合的工具,可与 firewalld 结合使用,方便对大量 IP 地址进行统一的规则管理 创建 IPset:使用 ipset create <set_name> hash:ip 命令创建一个 IPset,例如 ipset create blacklist hash:ip 创建了一个名为 blacklist 的 IPset,用于存储黑名单 IP 地址 将 IP 地址添加到 IPset:ipset add <set_name> <ip_address>,如 ipset add blacklist 192.168.1.100 将指定 IP 添加到 blacklist 集合中 在 firewalld 中使用 IPset:通过富规则可以引用 IPset,例如 firewall-cmd --zone=public --add-rich-rule='rule family="ipv4" source ipset="blacklist" reject',这表示拒绝 public 区域中来自 blacklist 集合内 IP 地址的所有连接 十一、端口转发 启用端口转发:首先需要确保系统内核支持 IP 转发,可通过检查 /proc/sys/net/ipv4/ip_forward 文件的值是否为 1 来确认。如果为 0,可以通过执行 echo 1 > /proc/sys/net/ipv4/ip_forward 临时开启,或者在 /etc/sysctl.conf 文件中添加 net.ipv4.ip_forward = 1 并执行 sysctl -p 使其永久生效 设置端口转发规则:使用 firewall-cmd 命令设置端口转发,例如 firewall-cmd --zone=public --add-forward-port=port=80:proto=tcp:toport=8080:toaddr=192.168.1.10 表示将 public 区域中目标端口为 80 的 TCP 流量转发到 192.168.1.10 主机的 8080 端口 十二、日志记录 启用日志记录:可以通过修改 firewalld 的配置文件来启用日志记录。在 /etc/firewalld/firewalld.conf 文件中,将 LogDenied 的值设置为 yes,然后重启 firewalld 服务使设置生效 查看日志:启用日志记录后,相关的防火墙日志会记录在系统日志文件中,通常可以通过 journalctl -xe 命令来查看与 firewalld 相关的日志信息,例如查看拒绝连接的日志记录,可通过过滤相关关键字来查找具体的日志条目 十三、与 SELinux 的关系 SELinux 简介:SELinux(Security-Enhanced Linux)是一个强制访问控制的安全模块,与 firewalld 共同作用来增强系统的安全性 策略配合:当 firewalld 允许某个服务或端口访问时,SELinux 可能仍然会根据其自身策略对该访问进行限制。例如,即使 firewalld 允许了 HTTP 服务通过 80 端口访问,但如果 SELinux 的策略不允许相关进程监听在 80 端口上,那么 HTTP 服务仍然无法正常提供服务。这时需要根据具体情况调整 SELinux 策略,确保与 firewalld 配置相配合,以实现预期的安全和访问控制效果。可以使用 semanage 命令来管理 SELinux 的端口、布尔值等相关配置 十四、故障排除 检查服务状态:使用 systemctl status firewalld 命令检查 firewalld 服务的运行状态,查看是否有错误信息或异常日志 检查规则配置:通过 firewall-cmd --list-all 命令查看当前所有的防火墙规则配置,确保规则设置正确,没有冲突或遗漏 检查网络连接:使用网络工具如 ping、telnet、nmap 等检查网络连接是否正常,以及目标端口是否可达,以确定问题是出在防火墙配置还是其他网络方面 十五、升级与维护 软件升级:定期使用包管理工具更新 firewalld 软件包,以获取最新的功能和安全修复。例如在 CentOS/RHEL 系统中,使用 yum update firewalld 命令进行升级 配置备份:定期备份 firewalld 的配置文件,如 /etc/firewalld/ 目录下的所有文件,以便在出现问题时能够快速恢复到之前的正常配置状态。可以使用 tar 命令将配置文件打包备份,如 tar -czvf firewalld_backup.tar.gz /etc/firewalld/ 十六、总结 以上内容进一步扩展了关于 firewalld 防火墙的知识,涵盖了 IPset 集成、端口转发、日志记录等更高级的功能和维护相关的内容,有助于更全面地掌握和管理 firewalld 防火墙
2025年-4月-27日
8 阅读
0 评论
网络安全