学习笔记-银河麒麟V10系统禁用高危端口

1、新建规则文件
mkdir /etc/iptables
vim /etc/iptables/rules.v4
写入内容

*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -i lo -j ACCEPT
-A INPUT -p tcp -m multiport --dports 135,137,138,139,445,3389 -j REJECT
-A OUTPUT -p tcp -m multiport --sports 135,137,138,139,445,3389 -j REJECT
COMMIT

2、手动加载测试

iptables-restore < /etc/iptables/rules.v4

3、设置开机生效
由于银河麒麟系统使用的网络管理工具不是传统的ifupdown,而是NetworkManager,导致/etc/network/if-pre-up.d/目录下的脚本重启不会被触发执行。需要用更可靠的systemd服务来实现开机自动加载 iptables 规则。
步骤 1:创建 systemd 服务文件

sudo vim /etc/systemd/system/iptables.service
[Unit]
# 服务描述
Description=Load iptables Rules Automatically
# 依赖网络预启动目标,确保在网络启动前加载规则
Wants=network-pre.target
Before=network-pre.target network.target
# 取消默认依赖,避免启动顺序问题
DefaultDependencies=no

[Service]
# 一次性执行服务(执行完即退出)
Type=oneshot
# 核心命令:加载iptables规则(使用/sbin/iptables-restore绝对路径)
ExecStart=/sbin/iptables-restore /etc/iptables/rules.v4
# 如需加载IPv6规则,取消下面的注释(同样用绝对路径)
# ExecStart=/sbin/ip6tables-restore /etc/iptables/rules.v6
# 即使执行完,仍标记服务为活跃状态
RemainAfterExit=yes

[Install]
# 绑定到多用户运行级别(开机默认级别)
WantedBy=multi-user.target

步骤 2:重新加载 systemd 并启用服务

# 重新加载systemd配置,识别新创建的服务
sudo systemctl daemon-reload

# 启用服务(设置开机自启)并立即启动服务(加载规则)
sudo systemctl enable --now iptables.service

执行以下命令检查服务是否正常运行:

sudo systemctl status iptables.service

重启系统,然后执行sudo iptables -L -n,验证规则是否已经自动加载。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容