iptables的概述及应用(一)

Iptables

Iptables是属于网络层的防火墙,但是并不正真意义上是防火墙,因为iptables/netfilter是一个组件,iptables只是负责编写规则并提交给netfilter做执行的规则生成器。Netfiter是在linux内核中TCP/IP协议栈中工作的一个框架,从软件的角度来将是在TCP/IP协议栈中做了五个钩子函数,这五个钩子函数可非常准确的执行iptables所编写的规则并实现规则中相关的拦截和放行。规则的功能分别为raw,mangle,nat,filter四种,这些规则统称为表;而钩子函数分为PREROUTING、INPUT、FORWARD、OUTPUT、POSTOUTING五种,这些钩子函数统称为链

钩子函数是指:

PREROUTING:马上就要到本机时,简称为路由前

INPUT:到达本机内部的报文必经之路

FORWARD:由本机转发的报文必经之路

OUTPUT:由本机发出的报文的必经之路

POSTROUTING:马上就要离开本机,简称为路由后

规则的功能是指:

filter:过滤,定义是否允许通过防火墙

nat:地址转换,用于转换源地址和源端口或目标地址和目标端口

mangle:用于修改报文首部某些特性但不修改IP

raw:目标是为nat表上启用的连接追踪功能

表和链的对应关系:

filter:INPUT, FORWARD, OUTPUT

nat:PREROUTING(SNAT),POSTROUTING(DNAT),OUTPUT

mangle:PREROUTING, INPUT, FORWARD, OUTPUT, POSTROUTING

raw:PREROUTING, OUTPUT

下为图解:

使用iptables编辑完规则后是可以直接生效的,因为iptables编辑完成以后会自动发往netfilter内,netfilter接收到以后便立即执行

下面说下iptables编写规则的基本使用

Iptables的基本语法

iptables[-t TABLE] COMMAND CHAIN  CRETIRIA -jTARGET

-t TABLE: 表示指定规则

nat, mangle, raw, filter

默认为filter

COMMAND:  链中的命令

-F:flush,清空规则链

-N: new,自建一条链

-X: delete, 删除一条自定义的空链

-Z:zero, 计数器归零

-P:policy,设置默认策略,对filter表来讲,默认规则为ACCEPT或DROP;

-E:重命名自定义链

链中的规则:

-A:增加

-I:插入

-D:删除

-R:修改、替换

查询:

-L:

-n:数字格式显示主机地址和端口;

-v:详细格式

-line--numbers: 显示规则编号

匹配条件分为通用匹配和扩展匹配,扩展匹配又分为隐式匹配和显示匹配,下面是匹配条件的具体命令

通用匹配:

-s  地址: 指定报文源IP地址的匹配的范围,可以是IP也可以是网络地址;可使用!取反, --src,--source和-s表达的意思一样

-d 地址:指定报文目标IP地址匹配的范围,--dst,--destination和-d表达的意思一样

-p 协议:指定匹配报文的协议类型,一般有三种tcp,udp和icmp;

-i INTERFACE: 数据报文流入的接口;PREROUTING,INPUT, FORWARD

-oINTERFACE: 数据报文流出的接口;OUTPUT, FORWARD, POSTROUITING

扩展匹配:

隐式扩展:

-ptcp [-m tcp]

--sportPORT[-PORT]:指定源端口

--dport:指定目标端口

--tcp-flag要检查标志位列表(用逗号分隔)必须为1的标志位列表(逗号分隔)

-p udp [-m udp]

--sport:指定源端口

--dport:指定目标端口

-picmp [-m icmp]

--icmp-type

0: echo-reply,ping响应

8:echo-request, ping请求

显示扩展:

-m扩展模块名称(模块:是iptables,netfilter各拥有的一部分代码;在添加模块时可使用“,”和“:” ,表示离散的、:表示连续的)

multiport:多端口匹配(可用于匹配非连续或连续端口;最多指定15个端口;在添加模块时可使用,和: ,表示离散的,:表示连续的)

专用选项:

--source-ports, --sportsport[,port,port:port]

--destination-ports, --dports

--ports

iprange:匹配指定范围内的地址;匹配一段连续的地址而非整个网络时有用;

专用选项:

[!]--src-range:源地址或地址段[!表示可以取反]

--dst-range:目标地址或地址段

string:字符串匹配,能够检测报文应用层中的字符串(字符匹配检查高效算法kmp, bm)

专用选项:

--algo {kmp|bm}:比较时的算法

--string "STRING"

--hex-string "HEX_STRING":HEX_STRING为编码成16进制格式的字串;

(注:string和hex-string中选其一使用就可以)

time:基于时间做访问控制

专用选项:

--datestart:起始时间 YYYY[-MM][-DD[Thh[:mm[:ss]]]]

--datestop :结束时间

--timestart    hh:mm[:ss]

--timestop     hh:mm[:ss]

--weekdays:设定以星期为单位  day[,day] Mon.Tues.Wed.Thur.Fri.Sat.Sun

connlimit:连接数限制,对每IP所能够发起并发连接数做限制;

专用选项:

--connlimit-above [n]:大于所设定的数字就拒绝,小于就允许

limit:速率限制

专用选项:

--limit n[/second|/minute|/hour|/day]

--limit-burst n(n表示个数)

state:状态检查

专用选项:

--state

连接追踪中的状态:

NEW: 新建立一个会话

ESTABLISHED:已建立的连接

RELATED: 有关联关系的连接

INVALID: 无法识别的连接

调整连接追踪功能所能容纳的连接的最大数目:

/proc/sys/net/nf_conntrack_max

记录当前追踪的所有连接

/proc/net/nf_conntrack

不同协议或连接类型追踪时的属性:

/proc/sys/net/netfilter目录:

处理目标:

内置目标:

DROP:表示拒绝

REJECT:有状态的拒绝

ACCEPT:允许

自定义链:为自己根据需求所设定的链

 Iptables的常用命令已经介绍完了,下面为大家举例说明命令的使用
1、设定172.16.0.0网段的无法ping通172.16.25.1主机
[email protected]~]# iptables -t filter -A INPUT -s 172.16.0.0/16 -d 172.16.25.1 -p icmp -j DROP
2、查看设定的情况
[[email protected]~]# iptables -L -n –v
3、删除INPUT中设定的第一条策略
[[email protected]~]# iptables -D INPUT 1
4、再设置INPUT,OUTPUT链默认target为DROP,一定要将远程端口设定为打开,否则也会把自己挡在防火墙之外
[[email protected]~]# iptables -A INPUT -i eth0 -s 172.16.0.0/16 -d 172.16.25.1 -p tcp --dport 22-j ACCEPT
[[email protected]~]# iptables -A OUTPUT -s 172.16.25.1 -d 172.16.0.0/16 -p tcp --sport 22 -jACCEPT
5、设置INPUT, OUTPUT链默认target为DROP,也就是外部与服务器不能通信
[[email protected]~]# iptables -t filter -P INPUT DROP
[[email protected]~]# iptables -t filter -P OUTPUT DROP
6、修改在使用远程访问本机时只能通过eth0的端口访问
[[email protected]~]# iptables -R OUTPUT 1 -s 172.16.25.1 -d 172.16.0.0/16 -o eth0 -p tcp --sport22 -j ACCEPT
7、插入一条对应规则,可以使本主机ping自己的回环地址
[[email protected]~]# iptables -I INPUT -i lo -j ACCEPT
[[email protected]~]# iptables -I OUTPUT -o lo -j ACCEPT
8、设置本机可以ping其他主机
[[email protected]~]# iptables -R INPUT 2 -d 172.16.25.1 -p icmp --icmp-type 0 -j ACCEPT
[[email protected]~]# iptables -A OUTPUT -s 172.16.25.1 -p icmp --icmp-type 8 -
j ACCEPT
9、添加multiport模块,设置只能使用访问本机的22和80端口的服务
[[email protected]~]# iptables -I INPUT -d 172.16.25.1 -p tcp -m multiport --dports 22,80 -jACCEPT
[[email protected]~]# iptables -R OUTPUT 1 -s 172.16.25.1 -p tcp -m multiport --sports 22,80 -jACCEPT
10、添加iprange模块,设置只能某个网段使用telnet来访问本主机
[[email protected]~]# iptables -I INPUT -d 172.16.25.1 -p tcp --dport 23 -m iprange --src-range172.16.25.1-172.16.25.210 -j ACCEPT
[[email protected]~]# iptables -I OUTPUT  -s 172.16.25.1 -ptcp --sport 23 -m iprange --dst-range 172.16.25.1-172.16.25.210
11、添加string模块,设置只要出现所设定的字符就会出现拒绝访问
[[email protected] ~]# iptables -I OUTPUT-m string --algo kmp --string "game" -j DROP
12、添加time模块,设定在工作日的9点到17点拒绝访问本主机的web服务
[[email protected]]# iptables -I INPUT -d 172.16.25.1 -p tcp --dport 80 -m time--timestart 09:00 --timestop 17:00 --weekdays Tue,Thur -j DROP
13、添加connlimit模块,限制连接数
[[email protected]]# iptables -A INPUT -d 172.16.25.1 -p tcp --dport 22 -m connlimit--connlimit-above 2 -j DROP
14、添加limit模块,限制速率
[[email protected]]# iptables -A INPUT -d 172.16.25.1 -p icmp --icmp-type 8 -m limit--limit 20/m --limit-burst 7 -j ACCEPT
15、state的使用
1)使用state模块设置ssh和web的出入策略
[[email protected]~]# iptables –A INPUT –d 172.16.25.1 –p tcp –m multiport --dports 22,80 –mstate –state NEW –j ACCPET
[[email protected]~]#iptables –I INPUT –d 172.16.25.1 –p tcp –m state –state ESTABLISHED –jACCEPT
[[email protected]~]#iptables –I OUTPUT –s 172.16.25.1 –p tcp –m state –state ESTABLISHED –jACCEPT
2)设置被动连接的ftp服务
[[email protected]~]# modprobe nf_conntrack_ftp
[[email protected]~]# iptables -AINPUT -d 172.16.25.1 -p tcp -m state --state RELATED -j ACCEPT
[[email protected]~]#iptables-R OUTPUT 1 -s 172.16.25.1 -m state --state ESTABLISHED,RELATED -j ACCEPT

iptables的概述及应用(一),布布扣,bubuko.com

时间: 2024-10-09 10:01:19

iptables的概述及应用(一)的相关文章

Linux之Iptables防火墙概述~

Linux的防火墙体系主要工作在网络层,针对TCP/IP数据包实现过滤和机制,属于典型的包过滤防火墙(或称之为网络层防火墙). Netfilter和Iptables区别: Netfilter:指的是Linux内核中实现包过滤防火墙的内部结构,不以程序或文件的形式存在,属于"内核态"(kernel space,又称为内核空间)的防火墙功能体系. Iptables:指的是Linux防护墙的命令工具,程序通常位于/sbin/iptables,属于"用户态"(User sp

Iptables用法概述

---恢复内容开始--- iptables 防火墙的规则设置最好的设置流程是,将防火墙规则写入到配置文件中,然后通过#iptables-restore读取, 这样可以避免防火墙设置错误和防火墙规则混乱: 一.iptables—语法: ——————————————————————————- iptables [-t 要操作的表] <操作命令> [要操作的链] [规则号码] [匹配条件] [-j 匹配后的动作] 小写      大写        大写                   小写  

Iptables及Firewalld加固服务器安全

中心主题Iptables及Firewalld加固服务器安全信息安全概述系统安全策略SSH端口修改,SUDO,禁用管理员登录文件指纹数据安全加密认证selinux,自身程序用于自身文件的访问,修改删除监控网络防火墙应用安全防火墙WAFWAF => Web Application Firewall ,可以用来屏蔽常见的网站漏洞***,如SQL注入,XML注入.XSS等.一般针对的是应用层而非网络层的***,从技术角度应该称之为Web IPS.其防护重点是SQL注入.https://baike.bai

防火墙、Iptables、netfilter/iptables、NAT 概述

防火墙.Iptables.netfilter/iptables.NAT 概述 - 如果你真的想做一件事,你一定会找到方法: 如果你不想做一件事,你一定会找到借口. - ITeye技术网站 一.防火墙的简介 防火墙是指设置在不同网络或网络安全域之间的一系列部件的组合,它能增强机构内部网络的安全性.它通过访问控制机制,确定哪些内部服务允许外部访问,以及 允许哪些外部请求可以访问内部服务.它可以根据网络传输的类型决定IP包是否可以传进或传出内部网 防火墙通过审查经过的每一个数据包,判断它是否有相匹配的

iptables防火墙的概述和常见用法总结

iptables是组成Linux平台下的包过滤防火墙,与大多数的Linux软件一样,这个包过滤防火墙是免费的,它可以代替昂贵的商业防火墙解决方案,完成封包过滤.封包重定向和网络地址转换(NAT)等功能.在日常Linux运维工作中,经常会设置iptables防火墙规则,用来加固服务安全. 以下对iptables的规则使用做了总结性梳理: iptables首先需要了解的:1)规则概念规则(rules)其实就是网络管理员预定义的条件,规则一般的定义为“如果数据包头符合这样的条件,就这样处理这个数据包”

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

防火墙iptables实现Linux强大的NAT功能

1.概述1.1 什么是NAT在传统的标准的TCP/IP通信过程中,所有的路由器仅仅是充当一个中间人的角色,也就是通常所说的存储转发,路由器并不会对转发的数据包进行修改,更为确切的说,除了将源MAC地址换成自己的MAC地址以外,路由器不会对转发的数据包做任何修改.NAT(Network Address Translation网络地址翻译)恰恰是出于某种特殊需要而对数据包的源ip地址.目的ip地址.源端口.目的端口进行改写的操作.1.2 为什么要进行NAT我们来看看再什么情况下我们需要做NAT.假设

云计算概述与KVM

一.云计算概述 云计算主要是一种按需付费的网络模式,这种模式提供可用的.便捷的.按需的网络访问,进入可配置的计算资源共享池(资源包括网络,服务器,存储,应用软件,服务),这些资源能够被快速提供,只需投入很少的管理工作,或与服务供应商进行很少的交互.分为三大层:IaaS(基础设施即服务,面向运维人员).PaaS(平台即服务,面向开发人员),SaaS(软件即服务,面向终端用户). 虚拟化分类:服务器虚拟化.桌面虚拟化.应用虚拟化,私有云 1.1 云计算的特点和优势 1)云计算是一种使用模式 2)云计

VSFTP搭建与概述

VSFTP服务 概述 服务名 服务端 客户端 适用于范围 FTP linux/windows linux/windows 内网.外网 NFS linux linux 内网.外网 samba linux/windows linux/windows 内网 FTP软件 wu-ftp              早期,不太安全 proftp              增强ftp工具 vsftp               安全,强大 ftp 21  命令传输端口   (被动模式) 20数据传输端口