iptables是linux的静态防火墙,用户通过iptables,可以对进出你的计算机的数据包进行过滤。通过iptables命令设置你的规则,来把守你的计算机网络——哪些数据允许通过,哪些不能通过,哪些通过的数据进行记录(log)。

iptables的基本语法格式

iptables [-t 表名] 命令选项 [链名] [条件匹配] [-j 目标动作或跳转] 说明:表名、链名用于指定iptables命令所操作的表和链,命令选项用于指定管理iptables规则的方式(比如:插入、增加、删除、查看等;条件匹配用于指定对符合什么样条件的数据包进行处理;目标动作或跳转用于指定数据包的处理方式(比如允许通过、拒绝、丢弃、跳转(Jump)给其它链处理。

iptables命令的管理控制选项

-A  在指定链的末尾添加(append)一条新的规则
-D  删除(delete)指定链中的某一条规则,可以按规则序号和内容删除
-I  在指定链中插入(insert)一条新的规则,默认在第一行添加
-R  修改、替换(replace)指定链中的某一条规则,可以按规则序号和内容替换
-L  列出(list)指定链中所有的规则进行查看
-E  重命名用户定义的链,不改变链本身
-F  清空(flush)
-N  新建(new-chain)一条用户自己定义的规则链
-X  删除指定表中用户自定义的规则链(delete-chain)
-P  设置指定链的默认策略(policy)
-Z 将所有表的所有链的字节和数据包计数器清零
-n  使用数字形式(numeric)显示输出结果
-v  查看规则表详细信息(verbose)的信息
-V  查看版本(version)
-h  获取帮助(help)

iptables是linux的静态防火墙,用户通过iptables,可以对进出你的计算机的数据包进行过滤。通过iptables命令设置你的规则,来把守你的计算机网络——哪些数据允许通过,哪些不能通过,哪些通过的数据进行记录(log)。

iptables的基本语法格式

iptables [-t 表名] 命令选项 [链名] [条件匹配] [-j 目标动作或跳转]

说明:表名、链名用于指定iptables命令所操作的表和链,命令选项用于指定管理iptables规则的方式(比如:插入、增加、删除、查看等;条件匹配用于指定对符合什么样条件的数据包进行处理;目标动作或跳转用于指定数据包的处理方式(比如允许通过、拒绝、丢弃、跳转(Jump)给其它链处理。

iptables命令的管理控制选项

-A  在指定链的末尾添加(append)一条新的规则

-D  删除(delete)指定链中的某一条规则,可以按规则序号和内容删除

-I  在指定链中插入(insert)一条新的规则,默认在第一行添加

-R  修改、替换(replace)指定链中的某一条规则,可以按规则序号和内容替换

-L  列出(list)指定链中所有的规则进行查看

-E  重命名用户定义的链,不改变链本身

-F  清空(flush)

-N  新建(new-chain)一条用户自己定义的规则链

-X  删除指定表中用户自定义的规则链(delete-chain)

-P  设置指定链的默认策略(policy)

-Z 将所有表的所有链的字节和数据包计数器清零

-n  使用数字形式(numeric)显示输出结果

-v  查看规则表详细信息(verbose)的信息

-V  查看版本(version)

-h  获取帮助(help)

一、检查iptables

service iptables status

若提示为iptables:unrecognized service,则需要安装。

VPS.GL提供的Linux系统都已经安装了iptables防火墙。同时,为了适应广大使用Linux朋友的需要,这里就告诉大家安装步骤。

二、快速安装iptables  

apt-get install iptables  //Debian,Ubuntu使用此命令

yum install iptables   //Linux,CentOS使用此命令

二、配置iptables规则

 以下就在Linux系统下,配置iptables。使用Ubuntu的朋友参照此教程即可。为了避免本身的规则会对我们的配置造成干扰,我们先清除默认规则。  

iptables –F

好了我们现在开始配置我们的规则。这里仅仅是指导大家配置一些常用的规则,并不是每一条规则都适合每一台VPS。因此,在配置的同时,应选择适合自己系统的iptables规则。(iptables配置文件在/etc/sysconfig/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

#允许所有本机向外的访问

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

# 允许访问22端口(这是ssh端口,建议开启)

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

#允许访问80端口(架设WEB必须开启)

iptables -A INPUT -p tcp –dport 1723 -j ACCEPT

#允许访问1723端口(架设VPN必须开启)

iptables -A INPUT -p tcp –dport 21 -j ACCEPT

iptables -A INPUT -p tcp –dport 20 -j ACCEPT

#允许FTP服务的21和20端口

注:因为根据防火墙的安全规则,禁用所有没有定义的端口。所以,如果大家还需要开启更多的端口,请按照上面的配置开启。

iptables -A INPUT -j REJECT

iptables -A FORWARD -j REJECT

#禁止其他未允许的规则访问

#拒绝某个ip访问:

-A INPUT -s ip -j DROP

service iptables save

或者/etc/rc.d/init.d/iptables save   

#保存防火墙规则

service iptables restart

#重启防火墙才能使规则生效

三、查询修改及删除

iptables -L –n   

#查询正在使用的规则

iptables -L -n --line-numbers  

#将规则按数字序号显示方便删除

iptables -D INPUT 4   

#删除第四条规则

 四、设定开机启动,这一步很重要推荐设置。

chkconfig iptables on