iptables详解加实战

iptables 组件是一种工具,也称为用户空间(userspace),它使插入、修改和除去信息包过滤表中的规则变得容易。分为四个表和五个链,其中表是按照对数据包的操作区分的,链是按照不同的Hook点来区分的,表和链实际上是netfilter的两个维度。



4个表:filter,nat,mangle,raw,默认表是filter(没有指定表的时候就是filter表)。表的处理优先级:raw>mangle>nat>filter。

filter:一般的过滤功能,如不-t指定表,则默认filter

nat:用于nat功能(端口映射,地址映射等)

mangle:用于对特定数据包的修改

raw:优先级最高,设置raw时一般是为了不再让iptables做数据包的链接跟踪处理,提高性能

5个链:PREROUTING,INPUT,FORWARD,OUTPUT,POSTROUTING。

PREROUTING:数据包进入路由表之前

INPUT:通过路由表后目的地为本机

FORWARDING:通过路由表后,目的地不为本机

OUTPUT:由本机产生,向外转发

POSTROUTIONG:发送到网卡接口之前

用表格表示下他们之间关系

四个表/五个链 PREROUTING INPUT FORWARD OUTPUT POSTROUTING
rew
mangle
nat
filter

用图来表示他们的过滤匹配流程



常用参数:

链中规则:

-A 添加一条规则

-I 根据给出的规则序号向所选链中插入一条或更多规则

-R 从选中的链中取代一条规则

-D 删除一条规则

链:

-N 新建一条自定义链

-X 删除一条自定义链

-E 重命名一条自定义链

-F 清空指定链,如果不指定链,则清空表中的所有链

-P 设定链的默认策略

-Z 把所有链的包及字节的计数器清空

查看:

-L 查看

-v 详细查看

-vv 更详细查看

-x  显示包和字节计数器的精确值,代替用K,M,G表示的约数。 这个选项仅能用于 ‘-L -v‘命令

-n  数字输出。IP地址和端口会以数字的形式打印

--line-numbers 在每个列表前加上行号

服务脚本:/etc/rc.d/init.d/iptables

脚本配置文件:/etc/sysconfig/iptables-config

service iptables {status|start|stop|restart|save}

规则的保存位置/etc/sysconfig/iptables



匹配条件:

通用匹配

-s 源地址匹配

-d 目标地址匹配

(源地址和目标地址可以是ip地址,也可以是网络地址,网络地址需加上掩码,如:192.168.1.0/24 。如需取反则加上!,如:! 192.168.1.11,即除192.168.1.11以外的ip)

-p 协议匹配,通常有三种协议{icmp|tcp|udp}

-i IN_INTERFACE 流入接口,注意:通常接的链有 PREROUTING、INPUT、FORWARD

-o OUT_INTERFACE 流出接口,注意:通常接的链有 FORWARD、OUTPUT、POSTROUTING

扩展匹配

隐式扩展

-p tcp

--dport PORT

--sport PORT

(这里可以指定端口片,如:{22:67}指定22端口到67端口,{22: }指定22端口以上,{ :22}指定22端口以下,也可以使用!取反{! 22:67})

--tcp-flage SYN,ACK,RST,FIN SYN 检查tcp标志位,SYN为1,其他三个为0(tcp标识位有6个,分别是SYN、ACK、URG、PSH、RST、FIN----建立连接、确认、紧急、强迫、复位、结束)

-p udp

--sport PORT

--dport PORT

(这里同上tcp)

-p icmp

--icmp-type typename

(typename有‘8‘请求、‘0‘应答等类型,例如配置一个不让某网段ping本机:iptables -t filter -A INPUT -s 192.168.0.0/24 -p icmp --icmp-type 8 -j DROP )

显示扩展

(netfilter 扩展模块引入的扩展,用于扩展匹配条件,通常需要额外专用选项来定义)

-m state:用于实现连接的状态检测模块

--state NEW(新建连接),ESTABLISHED(确认连接),RELATED(关联连接),INVALID(无效连接)

-m multiport :多端口

--source-port :源端口组

--destination-ports :目标端口组

--ports

例如:将同是tcp协议的22、80端口合并一条规则

[[email protected] ~ ]#iptables -L INPUT -n
Chain INPUT (policy DROP)
target     prot opt source               destination         
ACCEPT     tcp  --  0.0.0.0/0            172.31.12.4         tcp dpt:22 
ACCEPT     tcp  --  0.0.0.0/0            172.31.12.4         tcp dpt:80 
[[email protected] ~ ]#iptables -F INPUT
[[email protected] ~ ]#iptables -I INPUT 1 -d 172.31.12.4 -p tcp -m multiport --destination-ports 22,80 -m state --state NEW,ESTABLISHED -j ACCEPT

iptables详解加实战

时间: 2024-08-26 02:20:46

iptables详解加实战的相关文章

linux中iptables详解

linux中iptables详解 一.通用基础知识 1.基本概念 什么是防火墙? 所谓防火墙指的是工作于主机或网络的边缘,对于进出的报文根据事先定义的规则作检查,将那些能够被规则所匹配到的报文作出相应处理的组件. 防火墙是由软件和硬件设备组合而成.在内部网和外部网之间.专用网与公共网之间的界面上构造的保护屏障,使Internet与Intranet之间建立起一个安全网关(Security Gateway),从而保护内部网免受非法用户的侵入. 防火墙主要由服务访问规则.验证工具.包过滤和应用网关4个

iptables详解--转

出处:http://yijiu.blog.51cto.com/433846/1356254 iptables详解 基本概念: 1.防火墙工作在主机边缘:对于进出本网络或者本主机的数据报文,根据事先设定好的检查规则对其检查,对形迹可疑的报文一律按照事先定义好的处理机制做出相应处理 对linux而言tcp/ip协议栈是在内核当中,意味着报文的处理是在内核中处理的,也就是说防火墙必须在工作在内核中,防火墙必须在内核中完成tcp/ip报文所流进的位置,用规则去检查,才真正能工作起来. iptables用

CentoOS iptables详解

一.防火墙.iptables和netfilter简介 防火墙(Firewall):是由软件和硬件设备组合而成的一种隔离技术,它工作于网络或主机的边缘(通信报文的进出口),对于进出本网络或主机的数据包根据事先定义的检测规则进行匹配检测,允许或是限制传输的数据包通过. netfilter:是内核的一部分,由一些数据包过滤表组成,这些表包含内核用来控制数据包过滤处理的规则集. iptables:是用来插入.修改和删除数据包过滤表中的规则的管理工具. 二.iptables详解 该图片来自于网络 报文流向

iptables详解之filter

iptables详解之filter iptables令很多小伙伴脑阔疼,下面我们来说说如何使用iptables. 一.iptables格式 1.1.iptables 帮助 通过iptables --help查看一下iptables用法 [[email protected] ~]# iptables --help iptables v1.4.21 Usage: iptables -[ACD] chain rule-specification [options] iptables -I chain

iptables 详解

Iptables 详解 Iptables的历史 历史版本 与Linux内核各版本集成的防火墙历史版本: 2.0.X内核:ipfwadm 2.2.X内核:ipchains 2.4.X内核:iptables iptables的工作原理 iptables由用户空间的命令行程序和位于内核中的tcp/ip协议栈的报文处理框架两部分组成.工作在用户空间中,定义规则,让在内核空间当中的netfilter来读取,并且实现让防火墙工作.而放入内核的地方必须是tcp/ip的协议栈经过的地方.而这个tcp/ip协议栈

Linux网络安全模型及iptables详解(1)

Linux网络安全模型及iptables详解 基本概念 Firewall:工作在主机或网络边缘,对进出的报文按事先定义的规则进行检查, 并且由匹配到的规则进行处理的一组硬件或软件,甚至可能是两者的组合 硬件防火墙:在硬件级别实现部分功能的防火墙:另一个部分功能基于软件实现 软件防火墙:应用软件处理逻辑运行于通用硬件平台之上的防火墙: 主机防火墙:工作于主机边缘,只能对一台主机起到保护作用 网络防火墙:工作于网络边缘,对多台主机起到保护作用(定向规则) iptables:防火墙规则编写工具,位于用

转:iptables详解

一:前言 防火墙,其实说白了讲,就是用于实现Linux下访问控制的功能的,它分为硬件的或者软件的防火墙两种.无论是在哪个网络中,防火墙工作的地方一定是在网络的边缘.而我们的任务就是需要去定义到底防火墙如何工作,这就是防火墙的策略,规则,以达到让它对出入网络的IP.数据进行检测. 目前市面上比较常见的有3.4层的防火墙,叫网络层的防火墙,还有7层的防火墙,其实是代理层的网关. 对于TCP/IP的七层模型来讲,我们知道第三层是网络层,三层的防火墙会在这层对源地址和目标地址进行检测.但是对于七层的防火

【转】iptables详解

一:前言 防火墙,其实说白了讲,就是用于实现Linux下访问控制的功能的,它分为硬件的或者软件的防火墙两种.无论是在哪个网络中,防火墙工作的地方一定是在网络的边缘.而我们的任务就是需要去定义到底防火墙如何工作,这就是防火墙的策略,规则,以达到让它对出入网络的IP.数据进行检测. 目前市面上比较常见的有3.4层的防火墙,叫网络层的防火墙,还有7层的防火墙,其实是代理层的网关. 对于TCP/IP的七层模型来讲,我们知道第三层是网络层,三层的防火墙会在这层对源地址和目标地址进行检测.但是对于七层的防火

Linux下iptables详解

一.介绍 防火墙,其实说白了讲,就是用于实现Linux下访问控制的功能的,类似于网络设备中的ACL.它分为硬件的或者软件的防火墙两种.无论是在哪个网络中,防火墙工作的地方一定是在网络的边缘或网络出口.而我们的任务就是需要去定义到底防火墙如何工作,这就是防火墙的策略.规则,以达到让它对出入网络的IP.数据进行检测. 目前市面上比较常见的有3.4层的防火墙,叫网络层的防火墙,还有7层的防火墙,其实是代理层的网关. 对于TCP/IP的七层模型来讲,我们知道第三层是网络层,三层的防火墙会在这层对源地址和