iptables防火墙高级应用

iptables 防火墙(主机防火墙)

前言:我们在以前学习过asa防火墙,对防火墙有一定的了解,那么iptables和asa防火墙类似,作用一样,都是为了保证网络安全,系统安全,服务器的安全,和asa一样也需要建立策略,个人觉得比asa的策略要繁琐一点,但只要多做几遍,也就简单了。

一、防火墙基础

Linux防火墙主要工作在网络层,属于典型的包过滤防火墙。

1、iptables的表、链结构

Iptables采用了表和链的分层结构,每个规则表相当于内核空间的一个容器,根据规则集的不同用途划分为默认的四个表,raw表,mangle表,nat表,filter表,每个表容器内包括不同的规则链,根据处理数据包的不同时机划分为五种链,而决定是否过滤或处理数据包的各种规则,按先后顺序存放在各规则链中。

规则表分为以下4种

1)filter表:用来对数据包进行过滤,表内包含三个链,即:INPUT,FORWARD,OUTPUT

2)Nat表:nat表主要用来修改数据包的ip地址、端口号等信息。包含三个链,即PREROUTING,POSTROUTING,OUTPUT

3)Mangle表:用来修改数据包的TOS、TTL,或者为数据包设置MARL标记,实现流量整形,策略路由等高级应用,包含五个链,PREROUTING,POSTROUTING,INPUT,OUTPUT,FORWARD

4)Raw表:用来决定是否对数据包进行状态跟踪,包含两个链:即OUTPUT,PREROUTING

规则链分为以下5种

1)INPUT链:当收到访问防火墙本机地址的数据包(入站),应用此链中的规则。

2)OUTPUT链:当防火墙本机向外发送数据包(出站)时,应用此链中的规则。

3)FORWARD链:当收到需要通过防火墙中转发送给其他地址的数据包(转发)时,应用此链中的规则。

4)PREROUTING链:在对数据包做路由选择之前,应用此链中的规则。

5)POSTROUTING链:在对数据包做路由选择之后,应用此链中的规则。

2、数据包过滤的匹配流程

1)规则表的顺序

当数据包抵达防火墙时,将依次应用raw表,mangle表,nat表和filter表中对应链内的规则,应用顺序为raw-mangle-nat-filter

2)规则链之间的顺序

入站数据流向:来自外界的数据包到达防火墙后,首先被PRETOUTING链处理,然后进行路由选择,如果数据包的目标地址是防火墙本机,那么内核将其传递给INPUT链进行处理,通过以后再讲给系统的上层应用程序进行响应。

转发数据流向:来自外界的数据包到达防火墙后,首先被PREROUTING链处理,然后再进行路由选择,如果数据包的目的地址是其他外部的地址,则内核将其传递给FORWARD链进行处理,最后交给POSTROUTING链进行处理。

出站数据流向:防火墙本机向外部地址发送的数据包,首先被OUTOUT处理,然后进行路由选择,再交给POSTROUTING链进行处理。

3)规则链内部各条防火墙规则之间的顺序

当数据包经过每条规则链时,依次按第一条规则,第二条规则......的顺序进行匹配和处理,链内的过滤遵循“匹配即停止”的原则,一旦找到一条相匹配的规则,则不再检查本链内后续的其它规则,如果比对完整个链,也找不到与数据包相匹配的规则,就按照规则链的默认策略进行处理。

3:防火墙过滤包的角度分为3种:

包过滤防火墙:工作在网络层,只匹配ip与端口

应用层防火墙:工作在应用层,匹配端口IP及数据

状态检测防火墙: 补充过滤包防火墙

4:命令格式为 iptables [ -t 表名 ] 选项 [链名] 【条件】【-j 控制列表】

控制列表分为:

ACCEPT:允许通过

DROP:丢弃,不响应

REJECT:拒绝,但响应

LOG:记录日志,但不做处理

选项:

-A :链尾添加新规则

-I:链首添加新规则

查看规则:

-L :列出规则条目

-n:以数字形式显示端口或ip

-v:更加详细

--line-numbers:查看规则,显示规则序列

删除,清空:

-D :删除链内的序列号

-F:清空所有规则

二、为网站服务器编写防火墙规则(主机型)

1.首先在服务器上安装httpd和vsftpd服务器,并启动服务,更改ssh端口为2222,用于验证防火墙设置

2.修改INPUT莲默认策略为DROP

[[email protected] ~]# iptables -t filter -P INPUT  DROP

3.清空filter表

[[email protected] ~]#iptables  -F

4.允许192.168.1.56(管理员)主机ping服务器,禁止从其他主机ping服务器,服务器可以ping其他主机

[[email protected] ~]# iptables -A INPUT -s 192.168.1.56 -p icmp --icmp-type 8 -j ACCEPT

[[email protected] ~]# iptables -A INPUT -p icmp --icmp-type 0 -j ACCEPT

[[email protected] ~]# iptables -A INPUT -p icmp --icmp-type 3 -j ACCEPT

5.允许192.168.1.56(管理员)主机对服务器进行ssh

验证是否可以链接:

6.允许访问服务器的ftp,http服务

[[email protected] ~]# iptables -I INPUT -p tcp -m multiport --dport 21,20,80 -j ACCEPT

[[email protected] ~]# iptables -I INPUT -p tcp -m state --state NEW, ESTABLISHED,RELATED  -j ACCEPT

如果用被动模式访问ftp,还需要编辑/etc/sysconfig/iptables-config文件,在其中加入如下内容:

IPTABLES_MODULES="ip_conntrack_ftp"
IPTABLES_MODULES="ip_nat_ftp"

7.允许服务器访问其他的web服务

[[email protected] ~]# iptables -I INPUT -p tcp -m state --state NEW,ESTABLISHED -j ACCEPT

8.禁止转发与正常TCP连接无关的非--syn请求数据包

[[email protected] ~]# iptables -A FORWARD -m state --state NEW -p tcp ! --syn -j DROP

时间: 2024-10-02 16:58:43

iptables防火墙高级应用的相关文章

iptables的高级应用(网关型防火墙)

iptables 防火墙高级应用(网关性防火墙) 1:本次内容主要学习linux防火墙的SNAT,DNAT策略,是linux转换地址的操作. 也是iPtables命令中的一种控制类型,其作用是根据制定条件修改源ip地址 2:SNAT策略的概述: 主要是将源地址转换为公网iP地址.类似网络中的静态PAT技术 3:DNAT策略的该是:主要将外网的ip地址装换为内网的ip地址.类似网络中的动态PAT技术 4:SNAT,DNAT提高内部网络的安全,保护内部主机的ip地址,有可以节省公网ip地址,减少公司

iptables的高级应用(网络型防火墙)

iptables 防火墙高级应用(网关性防火墙) 1:本次内容主要学习linux防火墙的SNAT,DNAT策略,是linux转换地址的操作. 也是iPtables命令中的一种控制类型,其作用是根据制定条件修改源ip地址 2:SNAT策略的概述: 主要是将源地址转换为公网iP地址.类似网络中的静态PAT技术 3:DNAT策略的该是:主要将外网的ip地址装换为内网的ip地址.类似网络中的动态PAT技术 4:SNAT,DNAT提高内部网络的安全,保护内部主机的ip地址,有可以节省公网ip地址,减少公司

iptables防火墙的使用

一.了解防火墙1.防火墙分为硬件和软件,硬件防火墙ASA,软件防火墙iptables(linux)如ISA(windows).2.linux的防火墙分为netfilter(内核模块).iptables(用户工具).firewall(用户工具) 二.了解iptables结构1.表中存放链,链中放规则,规则对数据包进行处理2.表依据功能进行划分:row状态跟踪.mangle标记.net修改.filter过滤3.链依据时机进行划分:INPUT链:入站   OUTPUT链:出站   FORWARD链:转

Iptables防火墙(一)

一.Linux防火墙基础 Linux防火墙主要工作在网络层,属于典型的包过滤防火墙. netfilter和iptables都用来指Linux防火墙,主要区别是: netfilter:指的是linux内核中实现包过滤防火墙的内部结构,不以程序或文件的形式存在,属于"内核态"的防火墙功能体系. iptables:指的是用来管理linux防火墙的命令程序,通常位于/sbin/iptables目录下,属于"用户态"的防火墙管理体系. 1.iptables的表.链结构 Ipt

iptables防火墙应用

安全服务--Iptables  一.网络安全访问控制我们都知道,Linux一般作为服务器使用,对外提供一些基于网络的服务,通常我们都需要对服务器进行一些网络控制,类似防火墙的功能,  常见的访问控制包括:那些IP可以访问服务器,可以使用那些协议,那些接口.那些端口 是否需要对数据包进行修改等等.如果某服务器受到攻击,或者来自互联网哪个区域或者哪个IP的攻击,这个时候应该禁止所有来自该IP的访问.那么Linux底层内核集成了网络访问控制,通过netfilter模块来实现.  iptables作用:

安全的Web主机iptables防火墙脚本

下面以自己的Web服务器举例说明之,系统的默认策略是INPUT 为DROP,OUTPUT.FORWARD链为ACCEPT,DROP设置得比较宽松,因为我们知道出去的数据包比较安全:为了验证脚本的通用性,我特的 查看了服务器的内核及iptables版本,命令如下所示: 1 2 3 4 5 6 7 8 9 10 uname -a Linux ud50041 2.6.9-34.ELsmp #1 SMP Fri Feb 24 16:54:53 EST 2006 i686 i686 i386 GNU/Li

Netfilter/iptables防火墙

http://os.51cto.com/art/201107/273443.htm [51CTO独家特稿]Linux系统管理员们都接触过Netfilter/iptables,这是Linux系统自带的免费防火墙,功能十分强大.在接下来的这个<深入浅出Netfilter/iptables防火墙框架>系列中,51CTO安全/Linux专家李洋将对Netfilter/iptables进行详尽的.条理的介绍.本文是基础篇,先介绍Netfilter/iptables框架的原理. 1.Netfilter/i

iptables 防火墙之主机防火墙

Linux因为其强大的防火墙功能而闻名,它主要依靠于iptables,一个运行在用户空间的应用软件,它可以通过控制Linux内核netfilter模块,来管理网络数据包的流动与转送.它解决了网络中很多攻击,比如网络中常见的端口扫描.用户密码暴力破解等. 一.防火墙模型 主机通信基本模型:报文进入主机后进入接受缓冲区缓冲,内核从中取报文处理,拆开数据帧检测是否是目标地址时本机地址,如果是则再拆TCP或UDP报文找到对应目的端口,发送给注册在内核的用户端进程:如果目标地址不是本机地址那么就查看是否转

iptables 防火墙之主机防火墙(2)

承接上一篇博文,这里讲述主机防火墙高级部分,一个内容一个示例,希望大家明白! 一.显式扩展: 必须显式地指明使用的扩展模块进行的扩展: 使用帮助: CentOS 6: man iptables CentOS 7: man iptables-extensions 1.multiport扩展 以离散方式定义多端口匹配:最多指定15个端口: [!] --source-ports,--sports port[,port|,port:port]...:指定多个源端口","表示离散的端口"