firewalld区域策略与服务白名单配置、iptables默认拒绝链部署、windows defender入站规则精简、selinux强制访问控制启用、用户权限最小化配置,共同构成多层系统安全加固体系。

如果您正在为服务器或工作站配置防火墙并同步实施系统级安全加固,则需兼顾网络层访问控制与主机本地策略的协同生效。以下是多种可独立实施的防火墙配置与系统安全加固方法:
一、firewalld区域策略与服务白名单配置
firewalld通过“区域(Zone)”实现基于信任级别的流量分级管控,配合服务白名单可避免开放冗余端口,降低攻击面。
1、查看当前默认区域:firewall-cmd --get-default-zone
2、将默认区域设为public并永久生效:firewall-cmd --set-default-zone=public --permanent
3、仅允许SSH与HTTPS服务(禁用其他所有入站服务):firewall-cmd --zone=public --add-service=ssh --permanent && firewall-cmd --zone=public --add-service=https --permanent
4、移除默认开放的DHCP、DNS等非必要服务:firewall-cmd --zone=public --remove-service=dhcp --permanent && firewall-cmd --zone=public --remove-service=dns --permanent
5、重载全部规则使配置生效:firewall-cmd --reload
二、iptables默认拒绝链与状态化规则部署
iptables提供更底层的包过滤能力,适用于需精细控制连接状态或兼容旧环境的场景,其核心是设置INPUT链默认策略为DROP,并仅放行明确授权的连接状态。
1、清空现有INPUT链规则:iptables -F INPUT
2、允许回环接口通信:iptables -A INPUT -i lo -j ACCEPT
3、允许已建立及关联连接:iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
4、仅开放TCP 22端口(SSH)和80端口(HTTP):iptables -A INPUT -p tcp --dport 22 -j ACCEPT && iptables -A INPUT -p tcp --dport 80 -j ACCEPT
5、设置INPUT链默认策略为丢弃:iptables -P INPUT DROP
6、保存规则至持久化文件:service iptables save(CentOS 6)或iptables-save > /etc/sysconfig/iptables(CentOS 7+)
三、Windows Defender 防火墙入站规则精简
Windows Defender 防火墙默认启用大量入站规则,其中多数面向局域网发现与共享功能,在非域环境中构成潜在风险,应按需禁用。
1、以管理员身份启动PowerShell
2、启用防火墙并确认运行状态:Set-NetFirewallProfile -Profile Domain,Private,Public -Enabled True && Get-NetFirewallProfile | Select-Object Profile,Enabled
3、禁用“文件和打印机共享”全部入站规则:Disable-NetFirewallRule -DisplayGroup "File and Printer Sharing"
4、禁用“网络发现”相关规则:Disable-NetFirewallRule -DisplayGroup "Network Discovery"
5、仅保留远程桌面(如启用)和自定义应用端口:Enable-NetFirewallRule -DisplayGroup "Remote Desktop"
6、启用日志记录以追踪拦截行为:Set-NetFirewallProfile -LogAllowed True -LogBlocked True -LogFileName "C:\Windows\System32\LogFiles\Firewall\pfirewall.log"
四、SELinux强制访问控制启用与策略校准
SELinux通过类型强制(TE)机制限制进程对文件、端口、IPC等资源的访问权限,即使服务被攻破也无法越权操作,是Linux内核级纵深防御的关键组件。
1、检查当前SELinux运行状态:sestatus
2、若为permissive或disabled,编辑/etc/selinux/config,将SELINUX=enforcing设为强制模式
3、重启系统使配置生效
4、验证关键服务(如httpd、sshd)是否处于正确上下文:ls -Z /usr/sbin/httpd
5、如Web服务需访问网络,启用对应布尔值:setsebool -P httpd_can_network_connect on
6、若SSH需监听非标准端口,添加端口类型映射:semanage port -a -t ssh_port_t -p tcp 2222
五、用户权限最小化与特权分离配置
系统账户权限过高是横向移动与提权攻击的基础,必须遵循最小权限原则,分离管理职责,禁用默认高危账户。
1、创建专用管理账户(非root):useradd -m -s /bin/bash opsadmin
2、为其设置强密码并禁止空密码登录:passwd opsadmin && sed -i 's/PermitEmptyPasswords yes/PermitEmptyPasswords no/' /etc/ssh/sshd_config
3、限制该账户仅可通过密钥登录且禁止root切换:echo "opsadmin ALL=(ALL) NOPASSWD: /bin/systemctl restart nginx" >> /etc/sudoers.d/opsadmin
4、禁用root远程SSH登录:sed -i 's/#PermitRootLogin yes/PermitRootLogin no/' /etc/ssh/sshd_config
5、重载SSH服务:systemctl restart sshd
6、检查并禁用Guest账户(Windows)或nobody、ftp等无用系统账户(Linux):net user Guest /active:no 或 usermod -L nobody











