CentOS 7 配置白名单
CentOS 7 配置白名单
在一些网络安全要求比较高的场景下(比如:客户现场部署的环境,客户要求部署服务的机器均需经过安全扫描和漏洞检测),为了保证机器上的服务不会被恶意攻击,
我们可以通过一些手段进行控制(比如,MySQL数据库的访问权限控制,我们可以通过SQL命令对可访问机器进行控制)。
更为便捷的方式,可以通过 Linux 系统自带的防火墙功能,通过针对特定的 IP 和 port 添加白名单的方式,进行安全访问控制,杜绝外部恶意访问和攻击。
在配置白名单前,需要保证 CentOS 7的机器上有 iptables文件。
iptables服务的安装,可以参考:https://www.cnblogs.com/miracle-luna/p/13714709.html
如果想实现如下效果:
1)允许 10.105.211.10,10.105.211.11,10.105.211.12 这三台机器访问该机器的 UDP端口 111和123 ,TCP端口 3306,
2)允许其他机器访问该机器的除了TCP端口 8080和 8082 以外的其他端口。
方式1(常规配置):
iptables 文件配置如下:
# sample configuration for iptables service # you can edit this manually or use system-config-firewall # please do not ask us to add additional ports/services to this default configuration *filter :INPUT ACCEPT [0:0] :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [0:0] # 配置白名单中的源IP(10.105.211.10,10.105.211.11,10.105.211.12) -N whitelist -A whitelist -s 10.105.211.10 -j ACCEPT -A whitelist -s 10.105.211.11 -j ACCEPT -A whitelist -s 10.105.211.12 -j ACCEPT -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT -A INPUT -p icmp -j ACCEPT -A INPUT -i lo -j ACCEPT # 白名单中的机器允许访问 UDP端口 111和123 -A INPUT -m state --state NEW -p udp --dport 111 -j whitelist -A INPUT -m state --state NEW -p udp --dport 123 -j whitelist # 白名单中的机器允许访问 TCP端口 3306 -A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j whitelist # 其他机器允许访问 除了TCP端口 8080和 8082 以外的其他端口(此时的!表示取反) -A INPUT -p tcp ! --dport 8080 -j ACCEPT -A INPUT -p tcp ! --dport 8082 -j ACCEPT -A INPUT -j REJECT --reject-with icmp-host-prohibited -A FORWARD -j REJECT --reject-with icmp-host-prohibited COMMIT
(说明:! 是表示取反,注意 ! 两侧是有空格的,否则,会报错)
方式2(简洁配置):
# sample configuration for iptables service # you can edit this manually or use system-config-firewall # please do not ask us to add additional ports/services to this default configuration *filter :INPUT ACCEPT [0:0] :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [0:0] # 配置白名单中的源IP(10.105.211.10,10.105.211.11,10.105.211.12) -N whitelist -A whitelist -s 10.105.211.10,10.105.211.11,10.105.211.12 -j ACCEPT -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT -A INPUT -p icmp -j ACCEPT -A INPUT -i lo -j ACCEPT # 白名单中的机器允许访问 UDP端口 111和123 -A INPUT -m state --state NEW -p udp -m multiport --dport 111, 123 -j whitelist # 白名单中的机器允许访问 TCP端口 3306 -A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j whitelist # 其他机器允许访问 除了TCP端口 8080和 8082 以外的其他端口(此时的!表示取反) -A INPUT -p tcp -m multiport ! --dport 8080,8082 -j ACCEPT -A INPUT -j REJECT --reject-with icmp-host-prohibited -A FORWARD -j REJECT --reject-with icmp-host-prohibited COMMIT
(说明:-m multiport 表示同时对多个端口操作;另外,多个IP或者多个端口之间,使用英文的逗号隔开,且中间不能有空格,否则,启动 iptables 服务会报错)
iptables 文件配置完,执行如下步骤:
1、保存 iptables 配置,命令如下:
service iptables save
2、重载 iptables 文件
systemctl reload iptables
或者
service iptables reload
3、重启 iptables 服务,命令如下:
systemctl restart iptables
或者
service iptables restart
4、查看 iptables 服务状态(服务状态为绿色的 active,表示 iptables 文件配置成功,服务正常):
systemctl status iptables
或者
service iptables status
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)