[debian 9]Debian VPS系统iptables防火墙使用教程

更新时间:2019-11-11    来源:Ubuntu    手机版     字体:

【www.bbyears.com--Ubuntu】


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

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

安装iptables防火墙

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

yum install iptables

Debian/Ubuntu执行:

apt-get install iptables

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

iptables规则的查看与删除

查看iptables规则

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

iptables -L -n --line-numbers

清除已有iptables规则

iptables -F
iptables -X
iptables -Z

删除某iptables规则

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

iptables -D INPUT 12

常用的iptables规则

开放指定的端口

#允许本机访问
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的访问:

#如果只是想屏蔽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上可以执行:

service iptables save

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

chkconfig --level 345 iptables on

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

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

添加执行权限。

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

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


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

添加执行权限

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

本文来源:http://www.bbyears.com/caozuoxitong/78575.html