使用iptables保护CentOS服务器是一个复杂的过程,需要根据你的具体需求来配置规则。以下是一些基本的步骤和示例,帮助你开始使用iptables来增强服务器的安全性。
首先,清空现有的iptables规则,以确保你从一个干净的状态开始。
sudo iptables -F
sudo iptables -X
设置默认策略为DROP,这意味着任何未明确允许的流量都将被丢弃。
sudo iptables -P INPUT DROP
sudo iptables -P FORWARD DROP
sudo iptables -P OUTPUT ACCEPT
确保本地回环接口(lo)的流量被允许。
sudo iptables -A INPUT -i lo -j ACCEPT
sudo iptables -A OUTPUT -o lo -j ACCEPT
允许已建立的连接和相关的流量。
sudo iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
sudo iptables -A OUTPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
如果你需要通过SSH访问服务器,允许SSH连接。假设SSH运行在默认端口22上。
sudo iptables -A INPUT -p tcp --dport 22 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT
sudo iptables -A OUTPUT -p tcp --sport 22 -m conntrack --ctstate ESTABLISHED -j ACCEPT
如果你需要通过HTTP(端口80)和HTTPS(端口443)访问服务器,允许这些连接。
sudo iptables -A INPUT -p tcp --dport 80 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT
sudo iptables -A OUTPUT -p tcp --sport 80 -m conntrack --ctstate ESTABLISHED -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 443 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT
sudo iptables -A OUTPUT -p tcp --sport 443 -m conntrack --ctstate ESTABLISHED -j ACCEPT
允许DNS查询(端口53)。
sudo iptables -A INPUT -p udp --dport 53 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT
sudo iptables -A OUTPUT -p udp --sport 53 -m conntrack --ctstate ESTABLISHED -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 53 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT
sudo iptables -A OUTPUT -p tcp --sport 53 -m conntrack --ctstate ESTABLISHED -j ACCEPT
如果你只想允许特定IP地址访问服务器,可以添加相应的规则。
sudo iptables -A INPUT -s 192.168.1.1 -j ACCEPT
sudo iptables -A INPUT -s 192.168.1.2 -j ACCEPT
保存iptables规则,以便在系统重启后仍然有效。
sudo service iptables save
确保iptables服务在系统启动时自动启动。
sudo systemctl enable iptables
sudo systemctl start iptables
sudo iptables-save > /etc/iptables/rules.v4
通过以上步骤,你可以使用iptables为你的CentOS服务器提供基本的安全保护。根据你的具体需求,可能需要添加更多的规则和配置。
辰迅云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>
推荐阅读: centos查看进程的方法有哪些