配置 iptables
是确保服务器安全的关键步骤。iptables
是 Linux 中用于管理网络数据包的强大工具,它允许您过滤流量、限制访问并保护系统免受未经授权的访问。
为什么使用 iptables 很重要?
- 流量过滤:允许管理进出连接。
- 访问限制:限制对重要服务和端口的访问。
- 防止攻击:帮助保护服务器免受各种网络攻击,如 DDoS 攻击。
前提条件
- 运行 Ubuntu 或 Debian 的服务器:确保您拥有一个安装了 Ubuntu 或 Debian 操作系统的服务器。
- SSH 访问:需要通过 SSH 进行配置。
基本的 iptables 命令
在开始配置之前,请了解一些基本的 iptables
命令:
iptables -A
— 添加规则。iptables -I
— 插入规则。iptables -D
— 删除规则。iptables -L
— 查看规则列表。iptables -F
— 删除所有规则。
步骤 1:安装 iptables
在大多数 Ubuntu/Debian 系统上,iptables
默认已安装。若要检查或安装,请运行:
sudo apt update && sudo apt install iptables
步骤 2:清除现有规则
在开始配置之前,建议清除现有规则:
sudo iptables -F && sudo iptables -X && sudo iptables -t nat -F && sudo iptables -t nat -X && sudo iptables -t mangle -F && sudo iptables -t mangle -X
步骤 3:配置基础规则
阻止所有传入连接
首先,阻止所有传入连接,除了我们明确允许的连接:
sudo iptables -P INPUT DROP && sudo iptables -P FORWARD DROP && sudo iptables -P OUTPUT ACCEPT
允许本地连接
允许本地 loopback 接口的连接:
sudo iptables -A INPUT -i lo -j ACCEPT
允许已建立的连接
允许所有从内部发起的已建立连接:
sudo iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
步骤 4:允许 SSH
要远程访问服务器,需要允许 SSH 连接(端口 22):
sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT
步骤 5:允许其他重要服务
添加规则以允许其他必要的服务,例如 HTTP(端口 80)和 HTTPS(端口 443):
sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT && sudo iptables -A INPUT -p tcp --dport 443 -j ACCEPT
步骤 6:防止 DDoS 攻击
添加规则以防止 DDoS 攻击:
sudo iptables -A INPUT -p tcp --dport 80 -m limit --limit 25/minute --limit-burst 100 -j ACCEPT && sudo iptables -A INPUT -p tcp --dport 443 -m limit --limit 25/minute --limit-burst 100 -j ACCEPT
步骤 7:保存配置
配置完成后,保存规则,以便在重启后应用:
sudo sh -c "iptables-save > /etc/iptables/rules.v4"
对于 Debian/Ubuntu,可以通过 iptables-persistent
包保存规则:
sudo apt install iptables-persistent && sudo netfilter-persistent save
步骤 8:检查规则
使用以下命令检查应用的规则:
sudo iptables -L -v
配置 iptables
是保护服务器的重要步骤。按照这些说明,您可以设置基本规则来过滤流量并防御网络攻击。如果遇到问题或有疑问,QCKL 支持团队随时准备帮助您。
配置 iptables
可以帮助您控制服务器的访问,保护您的数据和系统免受未经授权的操作,从而确保系统的安全性。