iptables大体了解

tcp/ip协议网络上一个节点,大门洞开,套接字会话,需要ip和端口,检查套接字报文,套接字和tcp/ip协议差别。主机防火墙,工作在主机上。进入网卡,到内核中的tcp/ip协议栈,工作在tcp/ip协议栈上,在一些协议栈上某些位置放上卡哨,在设定检查规则。

网络防火墙,在网络外部。

防火墙:工作与主机或网络边缘,对于进出的报文根据定义的规则做检查,进而对被规则匹配到的报文最为相应处理的套件;

网络层防火墙,检查报文的帧首部,IP首部,tcp首部,不能对数据内容进行检查。

iptables/netfilter ,netfilter就是tcp/ip协议栈上的卡哨,用iptables加入规则

规则优先级从高到低以及能工作的卡哨位置:

raw :目标是关闭nat表上启动的连接追踪功能,PREROUTING OUTPUT

mangle;修改tcp/ip首部的一些特性,任意位置。

nat:地址转换,POSTROUTING  PREROUTING OUTPUT

filter;过滤 INPUT FORWORD  OUTPUT

INPUT:在数据进入应用空间时设定的卡哨也叫做链。

FORWORD:主机路由过程的卡哨

OUTPUT:数据从应用程序发出时经过的卡哨

PREROUTING:数据进入网卡进行路由策略前的卡哨

POSTROUTING:数据最后选择网卡要离开前的卡哨

数据报文流程:跟本机内部通信,PREROUTING INPUT OUTPUT POSTROUTING

由本机转发的数据:PREROUTING FORWORD POSTROUTING

注意数据报文的流向,决定源IP目标IP。

iptables:用户空间的工具,写规则,并自动发往netfilter,立即生效。

基本语法

iptables 【-t  TABLE】 –A 链名 匹配条件 –j 处理目标

默认的表filter

COMMAND:答题上有下边几种

1.对链上规则的一些命令-A:在后面加一条规则

-I:插入一条新规则

-D:删除规则

-R:替换规则

-L:查询规则 –L -n:数字格式显示地址和端口。-L -v:详细格式 --line-numbers显示规则行号 –x 不要对计数器计数结果做单位换算,显示精确值。

2.对链的一些命令:-F :清空规则链

-N:自建一个链,只能被调用

-X删除一个自定义链

-Z计数器归零

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

-E:重命名自定义链

iptables 【-t  TABLE】 –A 链名 匹配条件 –j 处理目标

匹配条件:通用匹配

-s 地址:指定报文源IP地址匹配范围:可以是IP也可以是网络地址,可以用!取反。

-d地址:报文目标ip地址

-p协议,指定匹配报文的协议类型,一般tcp udp icmp

-i:数据报文流入网卡:只能作用在数据传入的前半部分PREROUTING INPUT FORWORD

-o:数据流出网卡:只能作用在数据传入的后半部分 FORWORD OUTPUT POSTROUTING

扩展匹配调用netfilter 用-m

隐式扩展:当使用-p {tcp|udp|icmp}中的一种时默认调用了对应模块,可以直接使用扩展选项

-p tcp对tcp/ip协议生效:--sport指定源端口 –dport 目标端口

--tcp-flags syn,ack,rst,fin   syn all(全选,或者值都为1) none(值都为0)

--tcp-flags syn,ack,rst,fin   syn           这是定义tcp第一次握手

--syn   ALL                                             也可以定义tcp第一次握手

-p icmp主要限制ping的 :--icmp-type 8是能请求报文类型,0是指响应的报文类型

显式扩展:必须明确指出使用哪个模块进行扩展,才能使用扩展选项

-m 扩展模块名称(在iptables和netfilter上都要有这个模块)

1)multiport用于匹配非连续或者连续端口,对多指定15个端口

--sports 【port,port:port】指定源端口

--dports目标端口

--ports源和目标都包含

iptables -I INPUT -s 192.168.0.0/16 -d 192.168.147.128 -p tcp -m multiport --dports 22,80 -j ACCEPT
是主机防火墙,在目标主机上添加,实现特定ip可以连接主机的http和ssh服务
没指定表就默认在filter表上实现过滤,在INPUT链上从192.168网段到192.168.147.128的tcp报文使用multiport模块指定192.168.147.128主机上的端口可以接受报文

2)iprange:匹配指定范围内的地址,匹配一段连续地址而非整个网络。

[!]--src-range IP[-P]

[!]—dst-range IP[-P]

3)string:字符串匹配,检测应用层报文中的字符串。字符串算法,kmp, bm

专用选项--algo{kmp|bm}

--string

--hex-string 16进制的字符串

4)state:状态检查需要开启状态连接功能,不适用于高并发服务器。

--state

连接追踪中的状态

NEW:新建立一个会话

ESTABLISHED:已建立的连接

RELATED:有关联的连接

INVALID:无法识别的连接

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

/proc/sys/net/nf_conntrack_max

当前追踪的所有连接

/proc/net/nf_conntrack

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

/proc/sys/net/netfilter目录

放行被动模式下的ftp服务

1.装在模块/lib/modules/KERNEL_VERSION/kernel/net/netfilter/

模块:nf_conntrack_ftp

modeprobe加载模块

2.放行报文请求

a.放行NEW状态对21端口的请求

b.放行所有ESTABLISHED和RALATED状态报文

3.放行响应报文

放行所有ESTABLISHED和RALATED状态报文                         limit:速率限制

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

--limit-burst n :能最多存几个

time:基于时间做访问控制

--datestart

--datestop

--timestart

--timestop

--weeks

connlimit;连接数限制,对每IP能发起并发连接数限制

--connlimit-above N

处理目标:

内置目标:

DROP:悄悄丢弃

REJECT:强硬拒绝

ACCEPT:接受

写规则:先确定功能(表),确定报文流向,确定要实现的目标,确定匹配条件

流向:1.访问本机进程,PREROUTING INPUT

2.出去的报文,OUTPUT POSTROUTING

3.本机转发,PRETOUTING FORWARD       POSTRONTING

4.响应,PRETOUTING FORWARD POSTRONTING

iptables 语法检查  netfilter立即生效

切记:写给则之前,先添加放行自己的会话

永久生效,规则文件,或者脚本 规则文件是/etc/sysconfig/iptables

保存规则iptables-save > /etc/sysconfig/iptables

service iptables save

生效iptables-restore < /etc/sysconfig/iptables

service iptables restart

设置默认策略

iptables –P 链 target

修改规则

iptables –R OUTPUT 1 指定那个表的那个链上的第几条规则,后面跟上完整的更改规则

优化规则:尽量减少规则条目,无关的规则把访问量大的放在上边,属于同一功能的匹配规格严格的放在上边。

为了更好的管理规则,自定义链;

iptables –t filter –N http_in

删除空的自定义链

iptables –X http_in

重命名自定义链

iptables –E oldname  newname

地址转换SNAT 原地址转换

--to-source

MASQUERADE:自动获取转换的地址

DNAT 目标地址转换

--to-destination

PNAT端口转换

FULL NAT 全部转换

iptables –t nat –A POSTROUTING  -s 192.168.1.0/24 –j SNAT –to-source 172.16.100.7
原地址转换成172.16.100.17主机地址
时间: 2024-10-12 16:53:14

iptables大体了解的相关文章

Linux学习笔记——iptables浅析

最近总结一些知识点越发吃力了,看来还是知识储备不足,用的不熟啊,还是硬着头皮来吧,争取多写点,毕竟好记性不如烂笔头不是么. 防火墙,就是用于实现Linux下访问控制的功能,它分为硬件的或者软件的防火墙两种.对于TCP/IP的模型来讲,第三层是网络层,三层的防火墙会在这层对源地址和目标地址进行检测.但是对于七层的防火墙,不管你源端口或者目标端口,源地址或者目标地址是什么,都将对你所有的东西进行检查.所以,对于设计原理来讲,七层防火墙更加安全,但是这却带来了效率更低.市面上通常的防火墙方案,都是两者

iptables/Netfilter 学习

开始学iptables,因为它是和路由器技术紧密结合在一起的. iptables的命令看起来眼花缭乱,随便找两个: iptables -A FORWARD -p tcp -s 192.168.1.0/24 -d 192.168.1.234 --dport 80 -j ACCEPT iptables -A FORWARD -f -p tcp -s 192.168.1.0/24 -d 192.168.1.234 --dport 80 -j ACCEPT 看了一些博客,还是云里雾里的,所以开始看内核里

iptables nat及端口映射

发布: 2010-6-11 15:05 | 作者: admin | 来源: SF NetWork 门户网站 iptables 应用初探(nat+三层访问控制) iptables是一个Linux下优秀的nat+防火墙工具,我使用该工具以较低配置的传统pc配置了一个灵活强劲的防火墙+nat系统,小有心得,看了网上也有很多这方面的文章,但是似乎要么说的比较少,要么就是比较偏,内容不全,容易误导,我研究了一段时间的iptables同时也用了很久,有点滴经验,写来供大家参考,同时也备日后自己翻阅. 首先要

iptables防火墙指南

防火墙概念 从逻辑上将,防火墙大体可以分为主机防火墙和网络防火墙. 主机防火墙:针对于单个主机进行防护 网络防火墙:往往处于网络入口或边缘,针对于网络入口进行防护,服务于防火墙背后的本地局域网 从物理上讲,防火墙可以分为硬件防火墙和软件防火墙 硬件防火墙:在硬件级别实现部分防火墙功能,另一部分功能基于软件实现,性能高,成本高 软件防火墙:应用软件处理逻辑运行与通用硬件平台上的防火墙,性能低,成本低 iptables iptables并不是真正的防火墙,我们可以把它理解成一个客户端代理,用户通过i

CentOS7安装iptables防火墙

CentOS7默认的防火墙不是iptables,而是firewalle. 安装iptable iptable-service #先检查是否安装了iptables service iptables status #安装iptables yum install -y iptables #升级iptables yum update iptables #安装iptables-services yum install iptables-services 禁用/停止自带的firewalld服务 #停止fir

iptables端口转发

1. 确定forward开启 # cat /proc/sys/net/ipv4/ip_forward1 2. 转发进来的包 iptables -t nat -A PREROUTING -d 111.111.111.111 -p tcp -m tcp --dport 16922 -j DNAT --to-destination 192.168.0.169:22 这表示将目的地为111.111.111.111:16922的包发往 192.168.0.169:22 3. 设置回路 iptables -

Iptables防火墙(一)

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

防火墙iptables

防火墙 主配置文件:vim /etc/sysconfig/iptables 想要自定义防火墙,需要把这里的规则清空并且权限设置成DROP 防火墙名字:netfilter,工具:iptables 防火墙有三个表filter,nat,mangle 每个表下面还有链: filter表主要用于过滤包,系统预设的表.内建三个链INPUT.OUTPUT.FORWARD,INPUT作用于进入本机的包,OUTPUT作用于本机送出的包,FORWARD作用于跟本机无关的包. nat表主要用处是网络地址转换,PRER

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

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