首页 >  帮助中心 > 快云VPS服务器 Debian/Linux系统环境安装配置Iptables防火墙教程

快云VPS服务器 Debian/Linux系统环境安装配置Iptables防火墙教程

来源:原创发布  访问次数:(240) 发布时间:2014-07-25

Debian是国外服务器中使用率很高的Linux系统,不论从占用资源,稳定性和安全易用性等方面都有很优异的表现。Debian默认安装了Iptables,但是需要配置才能使用数据包过滤,网络地址转换(NAT)等功能。本文分3步做一个简单的介绍,方便国内Debian用户在快云VPS中使用。

一、查看当前配置信息

SSH终端,使用如下命令查看:

sudo iptables -L

输出结果类似于此:

Chain INPUT (policy ACCEPT)
target     prot opt source               destination
Chain FORWARD (policy ACCEPT)
target     prot opt source               destination
Chain OUTPUT (policy ACCEPT)
target     prot opt source     destination

这个结果表明还没有配置规则,没有数据包被阻止-----允许从任何地方任何人访问任何东西,也就是说还没有配置防火墙,跟没安装效果一样,所以接下来我们需要配置一下。

二、配置Iptables

新建测试文件 iptables.test.rules 编辑并保存基本的Iptables的规则。

sudo vim /etc/iptables.test.rules

除了vim也可以使用nano等其它编辑器。然后在这个文件中输入如下规则内容,这个内容是参考Debian wiki官方给出的基本配置:

*filter
# Allows all loopback (lo0) traffic and drop all traffic to 127/8 that doesn't use lo0
-A INPUT -i lo -j ACCEPT
-A INPUT ! -i lo -d 127.0.0.0/8 -j REJECT
# Accepts all established inbound connections
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
# Allows all outbound traffic
# You could modify this to only allow certain traffic
-A OUTPUT -j ACCEPT
# Allows HTTP and HTTPS connections from anywhere (the normal ports for websites)
-A INPUT -p tcp --dport 80 -j ACCEPT
-A INPUT -p tcp --dport 443 -j ACCEPT
# Allows SSH connections
# THE -dport NUMBER IS THE SAME ONE YOU SET UP IN THE SSHD_CONFIG FILE
-A INPUT -p tcp -m state --state NEW --dport 30000 -j ACCEPT
# Now you should read up on iptables rules and consider whether ssh access
# for everyone is really desired. Most likely you will only allow access from certain IPs.
# Allow ping
-A INPUT -p icmp -m icmp --icmp-type 8 -j ACCEPT
# log iptables denied calls (access via 'dmesg' command)
-A INPUT -m limit --limit 5/min -j LOG --log-prefix "iptables denied: " --log-level 7
# Reject all other inbound - default deny unless explicitly allowed policy:
-A INPUT -j REJECT
-A FORWARD -j REJECT
COMMIT

注意文件开头不能有多余空格字符,否则会提示出错。配置大意是关闭所有端口,只保留80,443(web和ssh)端口,可以根据实际需要添加如 ftp端口20,21等。

保存文件,然后加载本规则,使之生效。注意,iptables不需要重启,加载一次规则就保存了。

sudo iptables-restore < /etc/iptables.test.rules

然后再输入命令查看最新的配置是否全部生效。

sudo iptables -L

三、保存生效的配置,让系统重启的时候可以自动加载

Iptables提供了保存当前运行的规则功能,输入以下命令:

iptables-save > /etc/iptables.up.rules

需要说明的是即使使用了sudo,也会提示你没有权限,无法保存文件,该命令必须先sudo -i 切换到root下再输入此命令。

为了重启服务器后,规则自动加载,需要创建如下文件:

sudo vim /etc/network/if-pre-up.d/iptables

添加内容并保存:

#!/bin/sh
/sbin/iptables-restore < /etc/iptables.up.rules

最后需要添加可执行仅限:

chmod +x /etc/network/if-pre-up.d/iptables

更多详细文档可以参考Debian官方wiki:https://wiki.debian.org/iptables