bash,#!/bin/bash,# 清空所有规则,iptables -F,iptables -X,iptables -t nat -F,iptables -t nat -X,iptables -t mangle -F,iptables -t mangle -X,iptables -P INPUT ACCEPT,iptables -P FORWARD ACCEPT,iptables -P OUTPUT ACCEPT,,# 允许本地回环接口通信,iptables -A INPUT -i lo -j ACCEPT,iptables -A OUTPUT -o lo -j ACCEPT,,# 允许已建立的连接和相关连接,iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT,iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT,,# 允许特定端口(例如SSH),iptables -A INPUT -p tcp --dport 22 -j ACCEPT,,# 拒绝其他所有输入流量,iptables -A INPUT -j REJECT,,echo "iptables rules applied successfully.",
“,,这个脚本会清空现有的iptables规则,设置默认策略为接受所有流量,然后添加一些基本的规则来允许本地回环接口通信、已建立的连接和相关连接,以及特定端口(如SSH)的流量。它会拒绝所有其他输入流量。在Linux环境下,iptables是一个非常强大的防火墙工具,它允许用户配置和管理网络流量的规则,为了帮助系统管理员快速部署和配置防火墙规则,下面分享一个实用的iptables脚本示例,这个脚本将帮助你设置基本的安全策略,包括允许特定端口的访问、阻止不必要的流量以及日志记录等。
iptables脚本示例
#!/bin/bash 清除现有的所有规则 iptables -F iptables -X iptables -t nat -F iptables -t nat -X iptables -t mangle -F iptables -t mangle -X 默认策略: 拒绝所有传入连接 iptables -P INPUT DROP iptables -P FORWARD DROP iptables -P OUTPUT ACCEPT 允许本地回环接口通信 iptables -A INPUT -i lo -j ACCEPT iptables -A OUTPUT -o lo -j ACCEPT 允许已经建立或正在建立的连接通过 iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT 允许SSH远程登录(假设使用22号端口) iptables -A INPUT -p tcp --dport 22 -j ACCEPT 允许HTTP和HTTPS服务 iptables -A INPUT -p tcp --dport 80 -j ACCEPT iptables -A INPUT -p tcp --dport 443 -j ACCEPT 允许DNS请求通过 iptables -A INPUT -p udp --dport 53 -j ACCEPT 启用日志记录功能 iptables -A INPUT -j LOG --log-prefix "IPTables-Input: " --log-level 7 iptables -A FORWARD -j LOG --log-prefix "IPTables-Forward: " --log-level 7 iptables -A OUTPUT -j LOG --log-prefix "IPTables-Output: " --log-level 7 保存当前配置到文件 iptables-save > /etc/iptables/rules.v4 echo "Firewall rules applied successfully."
相关问答FAQs
Q1: 如何更改上述脚本中允许的服务端口?
A1: 要更改允许的服务端口,请直接修改脚本中的相应行,如果您想改变SSH使用的端口号为2222,则需将--dport 22
替换为--dport 2222
,同样地,对于其他服务如HTTP(80)、HTTPS(443)或DNS(53),只需调整对应的端口号即可。
Q2: 如果我想添加更多的自定义规则怎么办?
A2: 您可以轻松地向此脚本添加更多规则,首先确定新规则的目标动作(如ACCEPT, DROP等),然后指定匹配条件(例如协议类型、源地址/目的地址、端口号等),使用iptables -A
命令将其添加到适当的链中,记得在每次修改后重新运行脚本以应用更改。
小编有话说
通过上述脚本,我们实现了一个简单的防火墙设置,它能够有效地保护服务器免受未经授权的访问,并且还能确保必要的网络服务正常运行,这只是最基础的配置,实际生产环境中可能需要根据具体需求做出相应调整,希望这份指南对你有所帮助!如果你有任何疑问或者想要进一步了解的内容,欢迎随时留言交流。
原创文章,作者:未希,如若转载,请注明出处:https://www.kdun.com/ask/1428189.html
本网站发布或转载的文章及图片均来自网络,其原创性以及文中表达的观点和判断不代表本网站。如有问题,请联系客服处理。
发表回复