linux防火墙基础知识以及如何管理设置iptables规则

一、linux防火墙基础

防火墙分为硬件防火墙和软件防火墙。

1.概述

linux 防火墙体系主要工作在网络层,针对TCP/IP数据包实施过滤和限制,属于典型的包过滤防火墙。

包过滤机制:netfilter

管理防火墙规则命令工具:iptables

netfilter 指linux内核中实现包过滤防火墙的内部结构,不依程序或文件的形式存在,属于“内核态”的防火墙功能体系

iptables 指管理linux防火墙的命令工具,属于“用户态”的防火墙管理体系

2.iptables的规则表、链结构

iptables的作用在于为包过滤机制的实现提供规则,通过不同的规则作出不同的反应.

iptables管理4个表、以及他们的规则链

filter,用于路由网络数据包。

INPUT 网络数据包流向服务器

OUTPUT 网络数据包从服务器流出

FORWARD 网络数据包经服务器路由

nat,用于NAT表.NAT(Net Address Translation )是一种IP地址转换方法。

PREROUTING 网络数据包到达服务器时可以被修改

POSTROUTING 网络数据包在即将从服务器发出时可以被修改

OUTPUT 网络数据包流出服务器

mangle,用于修改网络数据包的表,如TOS(Type Of Service),TTL(Time To Live),等

INPUT 网络数据包流向服务器

OUTPUT 网络数据包流出服务器

FORWARD 网络数据包经由服务器转发

PREROUTING 网络数据包到达服务器时可以被修改

POSTROUTING 网络数据包在即将从服务器发出时可以被修改

raw, 用于决定数据包是否被跟踪机制处理

OUTPUT 网络数据包流出服务器

PREROUTING 网络数据包到达服务器时可以被修改

3.数据包过滤匹配流程

1>.规则表之间的优先顺序

依次应用:raw、mangle、nat、filter表

2>.规则链之间的优先顺序

入站数据流向

转发数据流向

出站数据流向

3>.规则链内部各条防火墙规则之间的优先顺序

二、管理和配置Iptables规则

1.iptables的基本语法格式

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

本文URL地址:http://www.bianceng.cn/OS/Linux/201410/45496.htm

表名链名用于指定iptables命令所做对象,未指定默认filter表,命令选项指于管理iptables规则的方式(插入、删除··);条件匹配指定对条件的符合而处理;目标动作或跳转指定数据包的处理方式。

2.管理iptables规则

控制选项

-A 在链尾添加一条规则

 -D 从链中删除一条规则

-I 在链中插入一条规则

-R 修改、替换某链的某规则

-L 列出某个链上的规则

-F 清空链,删除链上的所有规则

-N 创建一个新链

-X 删除某个规则链

-P 定义某个链的默认策略

 -n 数字形式显示结果

-v 查看规则列表详细信息

-V 查看iptables命令工具版本

-h 查看命令帮助信息

-line-numbers 查看规则列表,显示顺序号

增加、插入、删除和替换规则

相关规则定义的格式为:

iptables  [-t表名]  <-A | I | D | R> 链名 [规则编号] [-i | o 网卡名称] [-p 协议类型] [-s 源IP地址 | 源子网] [--sport 源端口号] [-d目标IP地址 | 目标子网] [--dport目标端口号] <-j动作>

参数说明如下。

[-t表名]:定义默认策略将应用于哪个表,可以使用filter、nat和mangle,如果没有指定使用哪个表,iptables就默认使用filter表。

-A:新增加一条规则,该规则将会增加到规则列表的最后一行,该参数不能使用规则编号。

-I:插入一条规则,原本该位置上的规则将会往后顺序移动,如果没有指定规则编号,则在第一条规则前插入。

-D:从规则列表中删除一条规则,可以输入完整规则,或直接指定规则编号加以删除。

-R:替换某条规则,规则被替换并不会改变顺序,必须要指定替换的规则编号。

<链名>:指定查看指定表中哪个链的规则列表,可以使用INPUT、OUTPUT、FORWARD、PREROUTING、OUTPUT和POSTROUTING。

[规则编号]:规则编号用于插入、删除和替换规则时用,编号是按照规则列表的顺序排列,规则列表中第一条规则的编号为1。

[-i | o 网卡名称]:i是指定数据包从哪块网卡进入,o是指定数据包从哪块网卡输出。网卡名称可以使用ppp0、eth0和eth1等。

[-p 协议类型]:可以指定规则应用的协议,包含TCP、UDP和ICMP等。

[-s 源IP地址 | 源子网]:源主机的IP地址或子网地址。

[--sport 源端口号]:数据包的IP的源端口号。

[-d目标IP地址 | 目标子网]:目标主机的IP地址或子网地址。

[--dport目标端口号]:数据包的IP的目标端口号。

<-j动作>:处理数据包的动作,各个动作的详细说明可以参考表10-3。

1>.添加及插入规则

在Filter表的INPUT链的末尾添加一条防护墙规则

[root@s2 ~]# iptables -t filter -A INPUT -p tcp -j ACCEPT

在Filter表的INPUT链中插入一条防护墙规则

[root@s2 ~]# iptables -I INPUT -p udp -j ACCEPT

在在Filter表的INPUT链中插入一条防护墙规则(为链中第二条规则)

[root@s2 ~]# iptables -I INPUT 2 -p icmp -j ACCEPT

2>.查看规则表

查看Filter表的INPUT链中的所有规则,同时显示顺序号

[root@s2 ~]# iptables -L INPUT --line-numbers

Chain INPUT (policy ACCEPT)

num  target     prot opt source               destination

1    ACCEPT     udp  --  anywhere             anywhere

2    ACCEPT     icmp --  anywhere             anywhere

3    REJECT     icmp --  anywhere             anywhere

查看filter表各链中所有规则的详细信息,以数字形式显示地址和端口信息

[root@s2 ~]# iptables -vnL

Chain INPUT (policy ACCEPT 0 packets, 0 bytes)

pkts bytes target     prot opt in     out     source               destination

1189  154K ACCEPT     udp  --  *      *       0.0.0.0/0            0.0.0.0/0

0     0 ACCEPT     icmp --  *      *       0.0.0.0/0            0.0.0.0/0

0     0 REJECT     icmp --  *      *       0.0.0.0/0            0.0.0.0/0           reject-with icmp-port-unreachable

时间: 2025-01-30 16:54:13

linux防火墙基础知识以及如何管理设置iptables规则的相关文章

linux系统中查看己设置iptables规则

iptables是一个强大的Linux防火墙,使用频率极高.本文介绍如何查看iptables规则设置. 1.iptables -L 查看filter表的iptables规则,包括所有的链.filter表包含INPUT.OUTPUT.FORWARD三个规则链. 说明:-L是--list的简写,作用是列出规则. 2.iptables -L [-t 表名] 只查看某个表的中的规则. 说明:表名一个有三个:filter,nat,mangle,如果没有指定表名,则默认查看filter表的规则列表(就相当于

Linux系统管理基础知识

一.用户账号管理级 不管是Linux还是Windows,对于用户账号的管理都是重中之重,因为它是进入系统的第一道门,作为一个运维人员,必须掌握对用户账号的基本管理,什么样的用户账号有什么样的权限,不该有什么样的权限,这个要很明确的.当某个用户不应该再访问系统的时候,必须禁用该用户的账号.没有用的用户账号,他就没有存在的必要,否则可能会是你某天早上醒来会的第一个噩梦.当然,再删除账号以前,要将该用户账号下的所有文件进行备份并转移到其他位置. 学会在字符命令行下的用户账号管理,主要在Linux环境下

Linux操作系统基础知识之二:内存寻址

Q1.        什么是物理地址?什么是虚地址?什么是线性地址? A: 1)        将主板上的物理内存条所提供的内存空间定义为物理内存空间,其中每个内存单元的实际地址就是物理地址: 2)        将应用程序员看到的内存空间定义为虚拟地址空间(或地址空间),其中的地址就叫做虚拟地址(或虚地址),一般用"段:偏移量"的形式来描述,如A815:CF2D: 3)        线性地址空间是指一段连续的.不分段的.范围为0~4GB的地址空间,一个线性地址就是线性地址空间的一个

Linux操作系统基础知识之一:Linux操作系统概述

 Q1.        什么是GNU?Linux与GNU有什么关系? A: 1)        GNU是GNU is Not Unix的递归缩写,是自由软件基金会(Free Software Foundation,FSF)的一个项目,该项目已经开发了许多高质量的编程工具,包括emacs编辑器.著名的GNU C和C++编译器(gcc和g++): 2)        Linux的开发使用了许多GNU工具,Linux系统上用于实现POSIX.2标准的工具几乎都是由GNU项目开发的:Linux内核.GN

linux备份与恢复基础知识_Linux

unix系统为每个文件都记录这三个不同的时间,第一个是mtime,即修改时间.无论何时,只要文件内容被改变,mtime的值就会被相应修改.第二个是atime,即访问时间.只要文件被访问(比如运行或读取),它就会被修改.第三个是ctime,即变更时间.当文件的属性发生变化(比如改变权限或者所有关系)时,ctime的值就会被改变.管理员用ctime来查找黑客. 备份会改变atime,tar,cpio,dd都会这样做,dump通过原始设备来读取文件系统,因此它不 会改变atime. dump的语法.

Linux操作系统基础知识之三:进程

Q1.        程序与进程的概念分别是什么?为什么要引入"进程"的概念? A: 1)        程序是一个普通文件,是机器代码指令和数据的集合,这些指令和数据存储在磁盘上的一个可执行映像中,可执行映像(executable image)就是一个可执行文件的内容: 2)        进程代表程序的执行过程,它是一个动态的实体,随着程序中指令的执行而不断地变化,在某个时刻进程的内容被称为进程映像(process image): 3)        程序的执行过程可以说是一个执行

Linux操作系统基础知识之八:文件系统

Q1.        Linux目录树结构是怎样的?它与Windows的目录树结构有什么区别?为什么Linux的文件系统采用固定的目录形式? A:文件是一个抽象的概念,它是存放一切数据或信息的仓库: 1)        Linux的目录树结构为:根目录(/)在上,其它的平行在下: 2)        Windows操作系统也是采用树型结构,但其树型结构的根是磁盘分区的盘符,有几个分区就有几个树型结构,它们之间的关系式并列的:而在Linux中,无论操作系统管理几个磁盘分区,这样的目录树只有一个:

Linux操作系统基础知识之九:设备驱动

Q1.        为什么把设备分为"块设备"和"字符设备"两大类? A: 1)        Linux将设备看成文件,具有三方面的含义:第一,每个设备都对应一个文件名,在内核中也就对应一个索引节点:第二,对文件操作的系统调用大都适用于设备文件:第三,从应用程序的角度看,设备文件的逻辑空间是一个线性空间:对于同一个具体的设备而言,文件操作和设备驱动是同一个事物的不同层次,概念上可以将一个系统划分为应用.文件系统和设备驱动三个层次: 2)        Linux

防火墙基础知识与常见相关术语

防火墙英文名称为FireWall,是指位于计算机和它所连接的网络之间的硬件或软件,也可以位于两个或多个网络之间,比如局域网和互联网之间,网络之间的所有数据流都经过防火墙(见图).通过防火墙可以对网络之间的通讯进行扫描,关闭不安全的端口,阻止外来的DoS攻击,封锁特洛伊木马等,以保证网络和计算机的安全. 防火墙又大致分为硬件防火墙和软件防火墙:硬件防火墙是指把防火墙程序做到芯片里面,由硬件执行这些功能,能减少CPU的负担,使路由更稳定.硬件防火墙一般都有WAN.LAN和DMZ三个端口,还具有各种安