首页 » Iptables » 正文

初识linux默认防火墙 iptables/Netfilter

linux默认自带一个功能及其强大的防火墙,也就是我们常说的iptables

我们先看一下iptables的结构

iptables表-链

我们可以看到,主要分为4个表:filter,nat,mangle和raw

其中,各自的功能分别是:

filter:filter是Netfileter(iptables)中最重要的机制,其任务是执行数据包的过滤操作,也就是起到防火墙的作用

nat: Network address Translation ,也是防火墙上一个不可或缺的重要机制,比较通俗的方式来说,其功能就是ip分享器,只不过其所能执行的功能,要更加强大

 

mangle:mangle是一个很特殊的机制,我们可以通过mangle机制来修改经过防火墙的数据包的内容

raw: 负责加速数据穿过防火墙机制的速度,提高防火墙的性能

下面我们着重先说一下filter机制

情景假设

我们有一个服务器安装了两块网卡,并在服务器上运行了httpd和firefox两个程序

http

INPUT 类型

网络上其他主机发送给本机进程的数据包,例如别的机器如果访问我们这台服务器上的httpd服务,那么属于这个INPUT

OUTPUT类型:

本机进程生成的数据包就是OUTPUT的包,例如我们使用firefox访问其他服务器的服务

FORWARD类型:

如果数据对于本机而且只是路过,那么久属于FORWARD类型,其实就是类似路由器,替你转发一下

三种类型对应filter表中的三个链,就是INPUT,OUTPUT,FORWARD

 

例如,我们想保护我们本机的httpd服务,那么我们就要去控制INPUT链,因为只有INPUT类型的数据包才会对本机造成伤害,我们可以这么写:如果传入的数据包是要到本机的TCP 80端口,而且是192.168.2.1这个主机发送过来的,就将这个数据包丢掉

再例如:如果我们不想我们的本机的人通过firefox来访问www.baidu.com,毫无疑问,这条规则属于OUTPUT,因为这个包是要出去访问别人的服务,所以我们可以这么写:如果数据包是由本机产生,并且想发往www.baidu.com所在的TCP 80端口,将这个包丢掉

再例如:我们这台服务器是一个防火墙,想保护内网的web服务器,所有的请求都必须通过当前主机之后,才能到内网的web服务器,那么我如果想限制这些请求,就必须使用FORWARD链了,例如:如果数据包是由192.168.1。1 主机发送出来的,而且数据向到内网的192.168.1.100这个服务器的TCP 80端口,我们就把数据包丢掉,也就是说,FORWARD链是保护其他的主机的,不是自己本身

 

发表评论