centos centos6 云服务器

centos6云服务器如何使用iptables防火墙

小晨
164
2021-07-26 10:30:39
栏目: 云计算

centos6云服务器使用iptables防火墙的方法:1、打开centos6云服务器终端控制台;2、输入“yum install -t iptables”命令安装iptables防火墙;3、安装iptables防火墙成功后,设置防火墙规则即可。

centos6云服务器如何使用iptables防火墙

具体内容如下:

我们需要先准备好一台部署CentOS 6的云服务器,并确保可以用root账户登录系统。

第一步:规划iptables规则

在本文的演示环境中,这台云服务器将提供网站服务,不提供其他服务,诸如FTP、邮件、IRC等。我们规划的需要开启的服务、协议和端口如下表,除此之外全部屏蔽。

服务协议端口
HTTPTCP80
HTTPSTCP443
SSHTCP22
NTPTCP123
DNSTCP & UDP53
PingICMPAll

正如上文所述,iptables是由一系列的规则来控制网络访问的。当网络数据包发送到云服务器上时,iptables将会依次按照这些规则来检测并处理数据包。如果满足某条规则,其他规则将被略过。如果没有满足任何规则,则使用iptables的默认规则来处理。

网络数据包分为三类:INPUT、OUTPUT、FORWARD。对于这三类数据包,我们将采取不同的处理方式,这也作为iptables的默认规则使用。

第二步:创建iptables规则

好了,下面我们就根据规划来设置iptables防火墙规则。以下命令都是用root账户登录系统后执行的,请确保登录账户有root权限。

查看当前规则:

iptables -L -n

清空当前规则:

iptables -F; iptables -X; iptables -Z

拒绝来自127.0.0.0/8的流量,除了loopback(回环流量)之外:

iptables -A INPUT -i lo -j ACCEPT

iptables -A INPUT -d 127.0.0.0/8 -j REJECT

阻止一些常见的攻击:

iptables -A INPUT -p tcp ! --syn -m state --state NEW -j DROP

iptables -A INPUT -p tcp --tcp-flags ALL NONE -j DROP

iptables -A INPUT -p tcp --tcp-flags ALL ALL -j DROP

接受所有已建立的流入连接:

iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

接受HTTP和HTTPS连接:

iptables -A INPUT -p tcp --dport 80 -j ACCEPT

iptables -A INPUT -p tcp --dport 443 -j ACCEPT

接受SSH连接:

iptables -A INPUT -p tcp --dport 22 -j ACCEPT

接受NTP连接:

iptables -A INPUT -p udp --dport 123 -j ACCEPT

接受DNS请求:

iptables -A INPUT -p udp --dport 53 -j ACCEPT

iptables -A INPUT -p tcp --dport 53 -j ACCEPT

允许Ping:

iptables -A INPUT -p icmp --icmp-type echo-request -j ACCEPT

最后,设置iptables默认规则:

iptables -P INPUT DROP

iptables -P OUTPUT ACCEPT

iptables -P FORWARD DROP

第三步:保存iptables规则

需要注意的是,虽然以上设置都是即时生效的,但并非永久有效。如果没有保存,一旦系统重启后,规则将会失效。因此我们还需要把刚才设置好的规则保存到云服务器硬盘中。保存iptables的规则是:

service iptables save

iptables的规则将被保存到/etc/sysconfig/iptables文件中,你可以直接查看或修改这个文件。

cat /etc/sysconfig/iptables

我被锁在外面了,怎么办?

因为iptables的规则都是即时生效的,所以我们一旦设置错误,就有可能把自己锁在外面,无法远程管理云服务器了,怎么办呢?有两种解决办法。

0
看了该问题的人还看了