Debian VPS下使用iptables防火墙

文章目录

Iptables 是建立在 netfilter 架构基础上的一个包过滤管理工具,最主要的作用是用来做防火墙或透明代理。Iptables 从 ipchains 发展而来,它的功能更为强大。Iptables 提供以下三种功能:包过滤、NAT(网络地址转换)和通用的 pre-route packet mangling。

在之前的文章中我对Iptables 进行了概念和原理上的介绍:Iptables介绍及命令,但是在实际应用中,很多实用的命令会反复用到,所以在这里对这些命令进行一下总结,方便大家查看。

安装iptables防火墙

如果没有安装iptables需要先安装,CentOS执行:

1
yum install iptables

Debian/Ubuntu执行:

1
apt-get install iptables

PS:一般默认的VPS Linux发行版都会带有iptables。

iptables规则的查看与删除

查看iptables规则

命令后面的line-number为显示行号(将规则一则一则输出,并显示行号),可选,方便后文的删除指令。

1
iptables -L -n --line-numbers

清除已有iptables规则

1
2
3
iptables -F
iptables -X
iptables -Z

删除某iptables规则

例如,删除第12行的规则,行号可由之前的命令查看

1
iptables -D INPUT 12

常用的iptables规则

开放指定的端口

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#允许本机访问
iptables -A INPUT -s 127.0.0.1 -d 127.0.0.1 -j ACCEPT
# 允许已建立的或相关连的通行
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
#允许所有本机向外的访问
iptables -A OUTPUT -j ACCEPT
# 允许访问22端口
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
#允许访问80端口
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
#允许FTP服务的21和20端口
iptables -A INPUT -p tcp --dport 21 -j ACCEPT
iptables -A INPUT -p tcp --dport 20 -j ACCEPT
#如果有其他端口的话,规则也类似,稍微修改上述语句就行
#禁止其他未允许的规则访问
iptables -A INPUT -j REJECT
iptables -A FORWARD -j REJECT

屏蔽IP

有些IP如果你不想被VPS访问的到(原因很多,例如搜索引擎蜘蛛,DOS攻击者之类),可以用iptables屏蔽这些IP的访问:

1
2
3
4
5
6
7
8
9
#如果只是想屏蔽IP的话“3、开放指定的端口”可以直接跳过。
#屏蔽单个IP的命令是
iptables -I INPUT -s 123.45.6.7 -j DROP
#封整个段即从123.0.0.1到123.255.255.254的命令
iptables -I INPUT -s 123.0.0.0/8 -j DROP
#封IP段即从123.45.0.1到123.45.255.254的命令
iptables -I INPUT -s 124.45.0.0/16 -j DROP
#封IP段即从123.45.6.1到123.45.6.254的命令是
iptables -I INPUT -s 123.45.6.0/24 -j DROP

保存iptables规则

CentOS上可以执行:

1
service iptables save

一般在安装iptables完成后,开机启动会自动设置成功,但在个别CentOS系统上,貌似还有些问题,可以使用如下命令手动设置:

1
chkconfig --level 345 iptables on

另外更需要注意的是Debian/Ubuntu上iptables是不会保存规则的。
需要按如下步骤进行,让网卡关闭是保存iptables规则,启动时加载iptables规则:
创建/etc/network/if-post-down.d/iptables 文件,添加如下内容:

1
2
#!/bin/bash
iptables-save > /etc/iptables.rules

添加执行权限。

1
chmod +x /etc/network/if-post-down.d/iptables

创建/etc/network/if-pre-up.d/iptables 文件,添加如下内容:

1
2
#!/bin/bash
iptables-restore < /etc/iptables.rules

添加执行权限

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

本文出自 TENNFY博客,转载时请注明出处及相应链接。

本文永久链接: https://www.tennfy.com/2552.html

下一篇文章:

上一篇文章:

4人参与了讨论

  1. 超級efly 说:

    前來支持一下~學習啦! :oops: :oops:

  2. Eric_plus 说:

    屏蔽IP的功能,博主能分享一下有哪些垃圾IP

  3. Finle 说:

    收藏本文,我正要配置ipt

发表评论

电子邮件地址不会被公开。 必填项已用 * 标注

*

3 + 4 = ?


您可以使用这些 HTML 标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

返回顶部