瑞rhce教学-rh255-08安全网络通信_第1页
瑞rhce教学-rh255-08安全网络通信_第2页
瑞rhce教学-rh255-08安全网络通信_第3页
瑞rhce教学-rh255-08安全网络通信_第4页
瑞rhce教学-rh255-08安全网络通信_第5页
免费预览已结束,剩余33页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

目标学习了本单元后,你应该能够:SSH端口转发滤NATSSH端口转发SSH端口转发?SSH

会自动加密和 所有SSH

客户端与服务端之间的网络数据。但是,SSH

还同时提供了一个非常有用的功能,这就是端口转发。它能够将其

他TCP

端口的网络数据通过SSH

来转发,并且自动提供了相应的加密及服务。这一过程有时也被叫做“隧道”(tunneling),这是因为SSH为其他TCP

提供了一个安全的通道来进行传输而得名。例如,net以及,SMTP,LDAP

这些TCP

应用均能够从中得益,避免了用户名,隐私信息的明文传输。而与此同时,如果您工作环境中的

限制了一些网络端口的使用,但是允许SSH

的连接,那么也是能够通过将TCP

端口转发来使用SSH

进行通讯。总的来说SSH

端口转发能够提供两大功能:加密SSH

Client

端至SSH

Server

端之间的通讯数据。突破

的限制完成一些之前无法建立的

TCP

连接。SSH端口转发-L

clientport:host:hostportssh

–L

4000:sftp

4000-R

serverport:host:hostportssh

–R

5000:localhost:21

–N

stat-f:21

-N

sta启用关于Netfilter•Netfilter

?Linux的第三代

,但论其功能、稳定性、安全性及扩展性,却一点也不逊色于

,甚至一些先进功能是

不及的Netfilter与Linux的关系Netfilter与Linux是两个独立的组织,直到2.6内核中Linux组织才将Netfilter

的功能收录进Linux的内核中。Nefilter

与iptables的关系常听说Linux的

叫做”iptables”,这种叫法不是很合适。Iptables是将

规则写入内存的工具,正确的叫法应该是Netfilter/iptablesNetfilter工作的位置应用程序kernelNetfiltereth0硬件eth1作为典型的滤,Netfilter

工作在网络层,最大的特点就是每次能够执行检查的最小单位为“一个封包”。比如:因为滤的检查范围就是一个封包,所以滤无法对连接中的信息执行极为精准的过滤动作,比如无法使用滤来检查一封电子邮件中是否带有。/lib/modules/kernel_version/kernel/net/ipv4/netfileterNetfilter总览策略在内核中过滤:无守护进程在OSI参考模型的第2、3、4层只查看数据包标题构成数由内核中的netfilter模块和iptables用户空间据链路层:控制网络层与物理层之间的通信网络层:主要功能是将网络地址翻译成对应的物理地址,并决定如何将数据从发送方路由到接收方。Netfilter表和Netfilter链Netfilter将规则分成了四个表(RAW未列出)的功能。Netfilter最重要的机制,执行封包的过滤动作,也就是网络地址转换功能Filter:NAT:Mangle:RAW:修改经 内的封包的内容。比如修改封包的ttl值。负责加快封包穿越

机制的速度。Netfilter表和Netfilter链INPUT:网络上其他主机送给本机的进程封包。如果要保护本机的httpd进程的话,应该是使用什么类型的封包呢?应该是INPUT,只有INPUT类型封包才会对本机的进程造成危害。OUTPUT:本机进程多产生的封包,如firefoxFORWARD:封包对本机而言只是“路过”,如果本机执行的是路由器的角色,会不会产生FORWARD类型的封包呢?Prerouting:

数据包刚刚到达

时,改变其目的地址Postrouting:数据包就要离开防火前之前改变其源地址如:ip

。Netfilter的数据包流程iptables

语法概述iptables[-t

要操作的表]<操作命令>[要操作的链][规则号码][匹配条件][-j

匹配到以后的动作]操作命令(-A、-I、-D、-R、-P、-F)查看命令(-[vnx]L)iptables

语法概述-A<链名>追加一条规则(放到最后)一条规则iptables

-t

filter

-A

INPUT

-j

DROP-I

<链名> [规则号码]

INSERT,iptables

-I

INPUT

3

-j

DROP-D<链名><规则号码|

具体规则内容>iptables-D

INPUT-s

-j

DROP删除filter

表INPUT

链中内容为“-s

-j

DROP”的规则(不管其位置在哪里)-R<链名><规则号码><具体规则内容>iptables-R

INPUT

3

-j

ACCEPTiptables

语法概述-P

<链名><动作>

POLICY,设置某个链的默认规则iptables

-P

INPUT

DROP-F

[链名]

FLUSH,清空规则iptables

-t

nat

-F

PREROUTINGiptables

-F

INPUT注意:-F

仅仅是清空链中规则,并不影响-P

设置的默认规则-P

设置了DROP

后,使用-F

一定要

!!!如果不写链名,默认清空某表里所有链里的所有规则规则:通常要考虑的因素更适用于几乎关闭的系统iptables

-P

INPUT

DROP

oriptables

-A

INPUT

-j

DROPiptables

-A

INPUT

-j

REJECT条件也适用于回送接口和路由一样,规则被载入内存,因此必须被保存到文件中才能在重启后持续生效注意:不管在CHAIN之内有多少规则,默认策略

在每一个链的底端。状态不是ACCEPT就是DROP!iptables

语法概述-L[链名]LIST,列出规则-[vxn]Lv:显示详细信息,包括每条规则的匹配包数量和匹配字节数x:在v

的基础上,n:只显示IP

地址和端自动单位换算(K、M)码,不显示 和服务名称链操作分配链策略(-P

CHAIN)ACCEPT

(默认,是内置目标)DROP(是内置目标)REJECT(不允许,是扩展目标)清除某个链的所有规则(-F)不会清除策略把字节和数据包计数器重设为零(-Z[CHAIN])有助于

链统计数据管理定制链(-N,-X)-N

Your_Chain-Name

(adds

chain)-XYour_Chain-Name

(deletes

chain)iptables匹配条件流入、流出接口(-i、-o)

-i

eth0来源、目的地址(-s、-d)-s

/24-d

协议类型(-p)

-p

tcp

udp

icmp来源、目的端口(--sport、--dport)--sport

1000

匹配源端口是1000

的数据包--sport

1000:3000

匹配源端口是1000-3000

的数据包(含1000、3000)--sport:3000

匹配源端口是3000

以下的数据包(含3000)--sport

1000:

匹配源端口是1000

以上的数据包(含1000)iptables匹配条件匹配的项目可以是:IP地址或主机名警告:在 规则时,主机名必须能够被解析端

码或服务名称参数可以使用“!”来否定包括的端口范围可以使用“0:1023”来指定掩码可以使用VLSM或CIDR格式-p:指定数据包协议--dport

指定端口tcp

udp

all

icmp(指定端口必须指定协议)-i -o

指定数据包在网卡中的流向简单的例子Fliter表中INPUT规则连接提供对数据包“状态”的检查解决

主机对外连接问题和FTP问题可以在指定环境中测试数据包简化规则设计不进行连接

,规则通常是成对出现的(进入和输出)在“状态”匹配扩展中实施可识别的状态:NEW、ESTABISHED、RELATED、INVALID需要 内存连接追踪在标准的TCP/IP规范中,封包的状态分为12种,但在state模块中只有四种:ESTABLISHED:ESTABLISHED已经注意到两个方向上的数据传输,而且会继续匹配这个连接的包。处于ESTABLISHED状态的连接是非常容易理解的。只要发送并接到应答,连接就是ESTABLISHED的了。

接要从NEW变为ESTABLISHED,只需要接到应答包即可,不管这个包是发往

的,还是要由

转发的。NEW:一条连接中的第一个封包的状态就是NEW,也就是追踪模块看到的某个连接的第一个包,它即将被匹配了。连接追踪RELATED当

接和某个已处于ESTABLISHED状态的连接有关系时,就被认为是RELATED的了。换句话说,

接要想是RELATED的,首先要有一个ESTABLISHED的连接,

产生的响应封包,而且这个封包不属于现在的任何连接的封包。这个ESTABLISHED连接再产生一个主连接之外的连接,这个新的连接就是RELATED的了,当然前提是conntrack模块要能理解RELATED。ftp是个很好的例子,FTP-data

连接就是和FTP-control有关联的,如果没有在iptables的策略中配置RELATED状态,FTP-data

的连接是无法正确建立的INVALID状态不明的封包,即不属于以上三种状态的封包,即为INVALID状态,被视为“

”封包。连接 (续)连接 模块ip_conntrack_ftpip_conntrack_tftpip_conntrack_netbios_nsip_nat_ftpip_nat_tftp/etc/sysconfig/iptables-config连接 示例使用一条规则来允许建立连接:iptables

-A

INPUT

-m

state--state

ESTABLISHED,RELATED

-j

ACCEPT使用多条规则来

,每个的服务都有一条规则iptables

-A

INPUT

-m

state

--state

NEW

-p

tcp

--dport

25

-j

ACCEPT最后,使用一条规则来组织所有其它进入的连接:iptables

-AINPUT

-m

state

--state

NEW

-j

DROP网络地址转换(NAT)将一个IP地址专程另一个(进入或输出)允许将

的IP地址“隐藏”在一个公共IP地址后面在nat表中设置规则网络地址转换类型:目的地NAT(DNAT)-在使用被转换的地址进行过滤的PREROUTING链中设置源NAT(SNAT,MASQUERADE)-在从不使用被转换的地址进行过滤的POSTROUTING

链中设置DNAT示例INBOUNDiptables

-t

nat

-A

PREROUTING

-p

tcp

--dport

80

-j

DNAT

--to-dest

0OUTBOUND(带有端口重定向)iptables

-t

nat

-A

OUTPUT

-p

tcp

--dport

80

-j

DNAT

--to-dest

00:3128SNAT实例MASQUERADE(适用于DHCP接口)iptables

-t

nat

-A

POSTROUTING

-o

eth0-j

MASQUERADESNATiptables

-t

nat

-APOSTROUTING

-j

SNAT--to-source

5FTP

协议传输原理模式是客户端主动模式是从服务器端向客户端发起;向服务器端发起连接。command

port

21data

port

20传输模式主动模式(ACTIVE)模式(PASSIVE)主动FTP:命令连接:客户端>1023端口->服务器21端口数据连接:客户端>1023端口<-服务器20端口FTP:命令连接:客户端>1023端口->服务器21端口数据连接:客户端>1023端口->服务器>1023端口FTP主动模式任何端口到FTP服务器的21端口(客户端初始化的连接S<-C)FTP服务器的21端口到大于1023的端口(服务器响应客户端的控制端口S->C)FTP服务器的20端口到大于1023的端口(服务器端初始化数据连接到客户端的数据端口S->C)大于1023端口到FTP服务器的20端口(客户端发送ACK响应到服务器的数据端口S<-C)FTP

模式从任何端口到服务器的21端口(客户端初始化的连接S<-C)服务器的21端口到任何大于1023的端口(服务器响应到客户端的控制端口的连接S->C)从任何端口到服务器的大于1023端口(入;客户端初始化数据连接到服务器指定的任意端口S<-C)服务器的大于1023端口到 的大于1023的端口(出;服务器发送ACK响应和数据到客户端的数据端口

S->C)FTP的主动模式和

模式总结:主动FTP对FTP服务器的管理有利,但对客户端的管理不利。因为FTP服务器企图与客户端的 随机端口建立连接,而这个端口很有可能被客户端的 阻塞掉。

FTP对FTP客户端的管理有利,但对服务器端的管理不利。因为客户端要与服务器端建立两个连接,其中 到一个 随机端口,而这个端口很有可能被服务器端的

阻塞掉。幸运的是,有折衷的办法。既然FTP服务器的管理员需要他们的服务器有最多的客户连接,那么必须得支持

FTP。端口范围来减小服务器 端口的可以通过为FTP服务器指定一个有限的。这样,不在这个范围的任何端口会被服阻塞。虽然这没有消除所有针对服务器的

,但它大大减少了危务器的险。FTP使用连接追踪模块modprobe

ip_nat_ftp

ip_conntrack_ftpiptables

-A

INPUT

-p

tcp

--dport

21

-j

ACCEPTiptables

-A

INPUT

-m

state

--state

RELATED,ESTABLISHED

-jACCEPT规则持续性iptables不是守护进程,它将规则载入内存后退出规则在每次重启间不是持续的service

iptables

save命令会将规则保存在/etc/sysconfig/iptables文件中可使用系统V(System

V)管理,并在配置联网前运行实际应用中的 写法Iptables

-A INPUT

-i

lo -j

ACCEPTIptables

-A INPUT

-p

tcp

-m

state --state

INVALID

-j

DROPIptables

-A INPUT

-p

tcp

-m

state --stateESTABLISHED,RELATED

–j

ACCEPTIptables

-A

INPUT

-p

tcp-m

state

--state

NEW

-p

tcp

--dport

25-j

ACCEPT/etc/sysconfig/iptables示例*filter:INPUT

DROP

[0:0]:FORWARD

ACCEPT

[0:0]:OUTPUT

ACCEPT

[0:0]-A

INPUT

-i

lo

-j

ACCEPT-A

INPUT

-p

tcp

-mtcp

--dport

143

-jACCEPT-A

INPUT

-p

tcp

-m

tcp

--dport

22

-j

ACCEPT-A

INPUT

-p

tcp

-m

tcp

--dport

25-s

-j

ACCEPT-A

INPUT

-p

tcp

-m

tcp

--dport

53-j

ACCEPT-A

INPUT

-p

udp

-m

udp

--dport

53

-j

ACCEPT-AINPUT

-p

udp

-m

udp

--dport

123

-s

-j

ACCEPT-A

INPUT

-p

icmp

-j

ACCEPT-A

INPUT

-p

tcp

-m

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论