深入研究iptables防火墙基础

防伪码:没有比脚更长的路,没有比人更高的山

第十章 iptables防火墙(一)

前言:我们在以前学习过asa防火墙,对防火墙有一定的了解,那么iptables和asa防火墙类似,作用一样,都是为了保证网络安全,系统安全,服务器的安全,和asa一样也需要建立策略,个人觉得比asa的策略要繁琐一点,但“只要功夫深铁杵磨成针”。

一、基础概念

1、iptables表、链结构

a、规则表

表的作用:容纳各种规则链

表的划分依据:防火墙规则的作用相似

默认包括4个规则表

raw表:确定是否对该数据包进行状态跟踪

mangle表:为数据包设置标记

nat表:修改数据包中的源、目标IP地址或端口

filter表:确定是否放行该数据包(过滤)

b、规则链

规则的作用:对数据包进行过滤或处理

链的作用:容纳各种防火墙规则

链的分类依据:处理数据包的不同时机

默认包括5种规则链

INPUT:处理入站数据包

OUTPUT:处理出站数据包

FORWARD:处理转发数据包

POSTROUTING链:在进行路由选择后处理数据包

PREROUTING链:在进行路由选择前处理数据包

如图所示:

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

a、规则表

raw——mangle——nat——filter

b、规则链

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

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

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

c、规则链内部各条防火墙规则之间的顺序

匹配即停(LOG日志操作的规则除外)

找不到相匹配的规则,则按该链的默认策略处理

二、编写防火墙规则

实验环境:

网站服务器ip地址是192.168.1.7,网关服务器的内网地址是192.168.1.254,外网地址是172.16.16.254,internter测试机是172.16.16.16。

vim /etc/sysctl.conf

使用internet测试机172.16.16.16可以ping通192.168.1.7

1、 例如:在网站服务器的filter表的INPUT链中插入一条规则,拒绝发送给本机使用的ICMP协议的数据包。

执行:Iptables  -t  filter  -I  INPUT -p icmp  -j REJECT

查看规则:iptables -L INPUT --line-numbers

然后再次使用172.16.16.172ping192.168.1.5,出现目标端口不可到达,无法ping通

2、 添加新的规则

例如:1)在filter表INPUT链的末尾添加一条规则,接受tcp协议(实验之前在网站服务器上搭建ftp服务,使用internet测试机可以访问ftp服务器)

service vsftpd start

在internet测试机上访问

默认网站服务器的防火墙开启,所以不能访问,然后执行:

iptables  -t   filter  -A  INPUT  -p  tcp   -j   ACCEPT

发现依然不能访问,因为-A是在末尾添加一条新的规则

所以执行:Iptables  -I INPUT  -p  udp  -j  ACCEPT(-I默认是添加在第一条)

在网站服务器上查看规则:

例:2)添加规则允许udp数据包通过,默认位于filter的第一条

Iptables  -I INPUT  -p  udp  -j  ACCEPT

例:3)指定顺序号,添加规则允许icmp数据包通过,位于第2条

Iptables  -I INPUT 2 -p icmp  -j  ACCEPT

查看规则列表:

3、 以数字形式显示规则列表,加快执行速度

4、 删除,清空规则

1) 若要删除filter表INPUT链中的第三条规则,执行:

Iptables  -D  INPUT 3

2) 清空指定链或表中的所有防火墙规则,使用-F

Iptables  -F INPUT

3) 清空filter表,nat表,mangle表

Iptables -F

Iptables -t nat -F

Iptables -t mangle -F

5、 设置默认策略:当找不到任何一条能够匹配数据包规则时,则执行默认策略

例如1)将filter表中FORWARD链的默认策略设置为丢弃,OUTPUT链的默认策略设置为允许(默认策略不参与规则的顺序编排,因此在前后并无区别。)

三、 规则的匹配条件

对于同一条防火墙规则,可以指定多个匹配条件,这些条件必须都满足规则才能生效。

1、 通用匹配:分为三种类型,协议匹配,地址匹配,网络接口匹配。

1) 协议匹配

如果在网关服务器上开启防火墙,那么internet测试机是不能访问网站服务器的。

查看网关服务器的FORWARD链,发现只有一条拒绝all,如果想允许路由转发,执行下面的命令:iptables
-I FORWARD -j ACCEPT,然后在internet测试机上可以访问网站服务器。

然后如果想丢弃通过icmp协议访问防火墙本机的数据包,允许转发经过防火墙的除icmp协议之外的数据包,可以执行:

Iptables  -I INPUT -p icmp -j DROP

Iptables  -A FORWARD ! -p icmp ACCEPT

执行之前先在internet测试机上ping网关服务器的172.16.16.254和192.168.1.7都是可以ping通的。执行完之后就不能ping通了,但是依然能够访问网站服务器的ftp。

先在internet测试机上ping,可以ping通

然后在网关服务器上执行以下命令

在internet测试机上ping192.168.1.7和172.16.16.254都不通了,但是ftp依然可以访问。

2) 地址匹配

例1)例如:拒绝转发源地址为172.16.16.172的数据,允许转发源地址192.168.1.0的数据包

因为172.16.16.172就是internet测试机,所以internet测试机无法ping通192.168.1.5,也不能访问ftp

例2)如果检测到来自某网段的频繁扫描,登录等不良的企图,可以立即添加防火墙规则进行封锁。

Iptables -I INPUT -s 10.20.30.0/24 -j DROP

Iptables -I FORWARD -s 10.20.30.0/24-j DROP

3) 网络接口匹配

例如:若要丢弃从外网接口访问防火墙本机且源地址为私有地址的数据包,执行以下操作:

首先:在172.16.16.16上ping172.16.16.254,使之可以ping通

然后执行以下命令:

再次在172.16.16.172上ping172.16.16.254,无法ping通,因为外网接口是eth1

2、 隐含匹配:以指定的协议匹配作为前提条件,相当于子条件。

1) 端口匹配

例如:允许网段192.168.1.0/24转发dns查询数据包。

首先在网站服务器上开启dns服务

为了实验效果,先在网关服务器上执行以下命令,阻止转发

然后在internet测试机上执行nslookup,不能解析

接下来在网关服务器上执行隐含匹配,允许为172.16.16.0网段转发dns查询包

再次在internet测试机上测试解析

2) ICMP类型匹配

若要禁止从其他主机ping本机,但是允许本机ping其他主机,可以执行以下操作

首先为了实验测试方便,在网关服务器上执行:(执行之前把其它的规则都删掉)

执行之后internet测试机和网站服务器之间可以互相ping通

然后执行:

实验效果:

3、 显示匹配

必须调用相应的模块,然后方可设置匹配条件

1) 多端口匹配

例如:允许网站服务器本机开放25、80、110、143端口。

2) ip范围匹配

例如:禁止转发源地址位于192.168.4.21与192.168.4.28之间的tcp数据包。

3) mac地址匹配

例如:禁止以下mac地址的主机访问网站服务器的任何应用。

4) 状态匹配

例如:禁止转发与正常tcp连接无关的非syn请求数据包(如伪造的网络攻击数据包)。

再例如:开放本机的web服务80端口,但对发给本机的tcp应答数据包予以放行,其他入站数据包均丢弃,对应的入站规则如下:

谢谢观看 希望能真心的帮到您!

时间: 2024-10-10 13:12:08

深入研究iptables防火墙基础的相关文章

iptables防火墙基础

一.iptables基础: 1.了解iptables防火墙. (1)iptables的表:按照功能的不同表分为raw(状态跟踪).mangle(标记).nat(地址修改).filter(过滤). (2)iptables规则链:按照不同时机链分为INPUT(入站).OUTPUT(出站).FORWARD(转发).PREROUTING(路由前).POSTROUTING(路由后): 在链中存放规则: filter: INPUT/FORWARD/OUTPUT nat: PREROUTING/POSTROU

马哥2016全新Linux+Python高端运维班-Iptables 防火墙基础练习,tcp_wrapper

本周作业内容: 系统的INPUT和OUTPUT默认策略为DROP,请完成以下关于iptables的题目: 先设置默认策略为DROP # iptables -P OUTPUT DROP # iptables -P INPUT DROP 1.限制本地主机的web服务器在周一不允许访问:新请求的速率不能超过100个每秒:web服务器包含了admin字符串的页面不允许访问:web服务器仅允许响应报文离开本机: # iptables -A  INPUT -d 192.168.137.30 -p tcp -

基础运维:iptables防火墙入门到掌握

一.简介 IPTABLES 是与最新的 3.5 版本 Linux 内核集成的 IP 信息包过滤系统.如果 Linux 系统连接到因特网或 LAN.服务器或连接 LAN 和因特网的代理服务器, 则该系统有利于在 Linux 系统上更好地控制 IP 信息包过滤和防火墙配置.防火墙在做数据包过滤决定时,有一套遵循和组成的规则,这些规则存储在专用的数据包过滤表中,而这些表集成在 Linux 内核中.在数据包过滤表中,规则被分组放在我们所谓的链(chain)中.而netfilter/iptables IP

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

【整理笔记-防火墙】实现iptables防火墙搭建

搭建防火墙,配置防火墙. - - 系统centos7 . centos7自带firewalld,由于看firewalld命令行没有接触过,所以安装iptables防火墙. 1:禁用firewalld firewall-cmd --state 查看系统自带防火墙状态. 用systemctl stop firewalld.service   禁止立即生效, systemctl disable firewalld.service  永久关闭firewalld.执行完再看一下防火墙状态, 显示为not

iptables防火墙高级应用

iptables 防火墙(主机防火墙) 前言:我们在以前学习过asa防火墙,对防火墙有一定的了解,那么iptables和asa防火墙类似,作用一样,都是为了保证网络安全,系统安全,服务器的安全,和asa一样也需要建立策略,个人觉得比asa的策略要繁琐一点,但只要多做几遍,也就简单了. 一.防火墙基础 Linux防火墙主要工作在网络层,属于典型的包过滤防火墙. 1.iptables的表.链结构 Iptables采用了表和链的分层结构,每个规则表相当于内核空间的一个容器,根据规则集的不同用途划分为默

Linux下的配置iptables防火墙增强服务器安全

Linux下的配置iptables防火墙增强服务器安全 实验要求 iptables常见概念 iptables服务器安装及相关配置文件 实战:iptables使用方法 例1:使用iptables防火墙保护公司web服务器 例2:使用iptables搭建路由器,通过SNAT使用内网机器上网 例3:限制某些IP地址访问服务器 例4:使用DNAT功能把内网web服务器端口映射到路由器外网 实验环境 iptables服务端:xuegod-63   IP:192.168.1.63 iptables客户端:x

linux设置iptables防火墙的详细步骤(centos防火墙设置方法)

我们 来讨论一下如何为你的CentOS 服务器来设置简单的防火墙. 这里我们以DigitalOcean的CentOS 6 VPS为基础来讨论的,同样也适用于 阿里云上其他类型的LINUX系统. (阿里云有个云盾系统,因此在你自己的VPS上不设置防火墙也是可以的) 需要说明的是: 本文只涉及最基础最常用的防火墙设置,能屏蔽一些常用的攻击,但并不能彻底保证你的服务器的安全. 系统的随时更新 以及 关闭不必要的服务 仍然是保证系统安全非常重要的步骤. 如果你需要更全面的了解iptables,阅读本文后