




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1iptables与firewalld的关系
RHEL7.0以后,使用firewalld服务取代了iptables服务,但是依然可以使
用iptables服务,只是默认不开启了,iptables和firewalld都不是真正的防火
墙,它们都只是用来定义防火墙策略的防火墙管理工具,是操作系统上的一种服
务,将定义好的规则交给内核中的netfilter(网络过滤器)来读取,从而实现防
火墙的功能,firewalld和iptables除了可以可以在inbond和outbond方向
做策略限制以外,还能实现snat和dnat功能。
注意:firewalld和iptables同时只能运行一种服务,否则会出现不可预知
的情况
2iptables安装
RHEL7.0以后,iptables默认不开启,需要安装iptables服务
[root0Server-]#systemctlstatusiptables
iptables.service
Loaded:not-found'Reason:Nosuchfileordirectory)
Active:inactive(dead)
(root@Server7#systemctlstartiptables
Failedtoissuemethodcall:Unitiptables.servicefailedtoload:Nosuchfileordirectory.
[root0Server7#rpm-qaIgrepiptables
iptables-1.4.21-13,el7,x86_64
安装完成后
[rooteServer-]#systemctlstartiptables
[rooteServer-]#rpm-qaIgrepiptables
iptables-1.4.21-13.617.x86_64
iptables-devel-1.4.21-13.el7,x86_64
iptables-services-1.4.21-13.el.7.x86_64
iptables-utils-1.4.21-13.el7,x86_64-
[root0Server-]#systemctlstatusiptables
iptables.service-IPv4firewallwithiptables
Loaded:loaded(/usr/lib/systemd/system/iptables.service;disabled)
Active:active(exited)sinceTue2018-12-2522:11:00EST;28sago
Process:13672ExecStart=/usr/libexec/iptable$/iptables.initstart(code=exited,status=O/SUC
MainPID:13672(code-exited,status-G/SUCCESS]
Dec2522:11:00Serve。systemd[l]:StartingIPv4firewallwithiptables...
Dec2522:11:00Serveriptables.init(13672):iptables:Applyingfirewallrules:(OK]
Dec2522:11:00Serversystemd[1]:StartedIPv4firewallwithiptables.
3实验场景
3.1源地址转换
>需求:
源地址1(172.16.202.15)需要访问公网目的地址
(192.168.111.245),源地址2(172.16.202.16)不需要访问公网。
内网两台服务器,分别为源地址1(172.16.202.15)和源地址2
(172.16.202.16),公网出口处有一台centos7.1的双网卡服务器,
一个接口接内网(172.16.202.14),一个接口接外网
(192.168.111.63\
源地址1上首先需要保证和iptables服务器能够互通,并且有去
往192.168.111.245的路由,路由下一跳需要指向iptables内网接
□(172.16.202.14),由iptables服务器做源nat,把源地址
(172.16.202.15)nat成公网接口地址(192.168.111.63),从而可
以访问目的地址(192.168.111.245\
一、首先在源地址1服务器上配置去往192.168.111.245的路由
iprouteadd192.168.111.245via172.16.202.14〃临时
添加路由,重启网卡或者系统后,路由会丢失,建议做路由固化
路由固化:ffi/etc/sysconfig/network-scripts目录下,新建一
个route配置文件,viroute-ethO,新增一条路由,
192.168.111.245/32via172.16.202.14,重启网卡即可生效
[root@host-172-16-2O2-15-]#ipr
defaultvia172.16.202.254devethGprotostaticmetric10G
(defaultvia192.168.111.254devethlprotostaticmetric161
aevetnuprotokernelscopelinksrciZ2.ib.2U2.15metric100
192.168.111.0/24devethlprotokernelscopelinksrc192.168.111.64metric100
iptables服务器上,配置snat策略
iptables-tnat-APOSTROUTING-s172.16.202.15/32-d
192.168.111.245/32-jSNAT-to192.168.111.63
注释:
-ttabletabletomanipulate(default:'filter')//
这个选项指定命令要操作的匹配包的表。如果内核被配置为自动
加载模块,这时若模块没有加载,系统将尝试为该表加载适合的
模块。这些表如下:filter,这是默认的表,包含了内建的链INPUT
(处理进入的包XFORWARD(处理通过的包)和OUTPUT(处
理本地生成的包X
nat〃这个表被查询时表示遇到了产生新的连接的包,由三个内
建的链构成:PREROUTING(修改到来的包\OUTPUT(修改
路由之前本地的包\POSTROUTING(修改准备出去的包\
-Achain〃在所选择的链末添加规则
POSTROUTING〃先路由再做nat
-s〃源IP地址
-d〃目的IP地址
-jSNAT〃做源地址转换
-to〃转换后的IP地址
此时,从源地址1服务器上去ping192.168.111.245,结果如下:
[root@host-172-16-2Q2-15-]#ping192.168.111.245
PING192.168.111.245(192.168.111,245)56(84)bytesofdata.
From172.16.202.14icmp_seq=lDestinationHostProhibited
From172.16.202.14icmp_seq=2DestinationHostProhibited
From172.16.202.14icmp_seq=3DestinationHostProhibited
From172.16.202.14icmp_seq=4DestinationHostProhibited
From172.16.202.14icmp_seq=5DestinationHostProhibited
From172.16.202.14icmp_seq=6DestinationHostProhibited
From172.16.202.14icmp_seq=7DestinationHostProhibited
From172.16.202.14icmp_seq=8DestinationHostProhibited
F
---192.168.111.245pingstatistics---
8packetstransmitted,0received,+8errors,100%packetloss,time6999ms
提示destinationhostprohibited,说明路由可达,但是在中间
路径上被防火墙阻止了,源地址1本地服务器上,因为是出接口方向
流量,所以默认情况下,不会被阻止,所以只能在iptables服务器
上,被防火墙默认规则阻止了,所以只需要在iptables服务器上放
开防火墙限制即可
三、iptables服务器上放开防火墙规则
前面提到过,iptables上默认的filter表中,分为三个规则链:
INPUT,OUTPUT和FORWARD,其中INPUT负责处理入方向的
包,OUTPUT负责处理本地生成出方向的包,FORWARD负责经过
经过的数据包,从网络拓扑上可以看出来源地址1(172.168.202.15)
去访问目的地址(192.168.111.245),是经过iptables服务器,所
以调用的iptables服务器的FORWARD表,所以只需要在iptables
服务器上FORWARD表中,增加一条规则即可
iptables-IFORWARD-jACCEPT
如果不确定是调用的哪个规则链,也可以在INPUT和OUTPUT
方向都加上规则链,iptables-IINPUT-jACCEPT,iptables-I
OUTPUT-jACCEPT
注意:以上二三两个步骤添加的nat规则和防火墙规则,都是临
时的,重启iptables服务或重启系统后,nat规则和防火墙规则会
丢失,可以使用命令保存:serviceiptablessave,也可以手动修
改配置文件,配置文件如下vi/etc/sysconfig/iptables:
[root0Server-]#vim/etc/sysconfig/iptables
1号Generatedbyiptables-savevl.4.21onWedDec2602:54:302Q18
2*nat
3:PREROITTINGACCEPT[384:38919]
4:INPUTACCEPT[0:0]
5:OUTPUTACCEPT[0:0]
6:POSTROUTINGACCEPT(0:0]
7-APOSTROUTING-s172.16.202.15/32-d192.168.111.245/32-jSNAT--to-source192.168.11
8COMMIT
9#CompletedonWedDec2602:54:302018
IQ#Generatedbyiptables-savevl,4.21onWedDec2602:54:302018
11"filter
12:INPUTACCEPT[0:G]
13:FOFWARDACCEPT[0:0]
14IOLTTPUTACCEPT[1541:169788]
15-AINPUT-mstate--stateRELATED,ESTABLISHED-jACCEPT
16-AINPITT-picmp-jACCEPT
17-AINPUT-i10-jACCEPT
18-AINPUT-ptcp-mstate--stateN刖-mtcp--dport22-jACCEPT
19-AINPUT-jREJECT--reject-withicmp-host-prohibited
20-AFOFWARD-jACCEPT
21-AFORWARD-jREJECT--reject-withicmp-host-prohibited
COMMTT
四、打开ip_forward
出于安全考虑,Linux系统默认是禁止数据包转发的。所谓转发
即当主机拥有多于一块的网卡时,其中一块收到数据包,根据数据包
的目的ip地址将包发往本机另一网卡,该网卡根据路由表继续发送
数据包,这个功能需要手动打开。
修改配置文件:增加一条:
vi/etc/sysctl.confz
net.ipv4.ip_forward=1
[root0Server-]#vi/etc/sysctl.conf
5Systemdefaultsettingslivein/usr/lib/sysctl.d/OO-system.conf.
#Tooverridethosesettings,enternewsettingshere,orinan/etc/sysctl.d/<name>.conff
#
#Formoreinformation,sysctl.conf(5)andsysctl.d(5).
net.ipv4,ip_forward=1
然后输入sysctl-p,使配置生效
[root@Server7#vi/etc/sysctl.conf
[root@Server7#sysctl-p
net.ipv4,ip_fonward=1
[root@Server|
注意:有些centos7.X的版本和centos6.x的版本开启路由转
发的配置文件不一样,如果修改/etc/sysctl.conf不生效的话,需要
修改下面这个配置文件,同样是在结尾增加一条:
net.ipv4.ip_forward=1
[root@Serversysctl.d]#U/etc/sysctl.d/
totalQ
Irwxrwxrvx.1rootroot14Nov2920:5499-sysctl.conf->../sysctl.conf
[rooteServersysctl.d]#|
A结果验证:
源地址1服务器(172.16.202.15)可以通目的地址
(192.168.111.245),源地址2服务器(172.16.202.16)不能通目
的地址
源地址1服务器:
•1192.168.111.63:22•3192.168.111.65:22+
64bytesfrom192.168.111,245:icmp_seq=1787ttl=127tirae-G.507ms
64bytesfrom192.168.111,245:icmp_seq=1783ttl=127time=0.427ms
64bytesfrom192.168.111,245:icmp_seq=1789ttl=127time=0.489ms
64bytesfrom192.168.111,245:icmp_seq=1793ttl=127time-Q.462ms
64bytesfrom192.168.111,245:icmp_seq=1791ttl=127time=0.409ms
64bytesfrom192.168.111,245:icmp_seq=1792ttl=127time=0.441ms
64bytesfrom192.168.111,245:icmp_seq=1793ttl=127time=0.466ms
64bytesfrom192.168.111,245:icmp_seq=1794ttl=127time=0.425ms
64bytesfrom192.168.111,245:icmp_seq=1795ttl=127time=0.440ms
54bytesfrom192.108.111.245:icmp_seq=1795ttl=127time=0.441ms
64bytesfrom192.168.111,245:icmp_seq=1797ttl=127time=G.441ms
64bytesfrom192.168.111,245:icmp_seq=1793ttl-127tirae-0.509ms
64bytesfrom192.168.111,245:icmp_seq=1799ttl=127time=0.470ms
64bytesfrom192.168.111.245:icmp_seq=1803ttl=127time=0.450ms
64bytesfrom192.168.111,245:icmp_seq=1801ttl=127time=0.4Q2ms
64bytesfrom192.168.111,245:icmp_seq=1802ttl=127time=0.454ms
64bytesfrom192.168.111,245:icmp_seq=1803ttl=127time=0.465ms
64bytesfrom192.168.111,245:icmp_seq=1804ttl=127time=0.365ms
64bytesfrom192.168.111,245:icmp_seq=1805ttl=127time=0.420ms
64bytesfrom192.168.111,245:icmp_seq=1803ttl-127tine-0.443ms
64bytesfrom192.168.111,245:icmp_seq=1807ttl-127time=0.453ms
64bytesfrom192.168.111,245:icmp_seq-18Q3ttl-127timc-O.536ms
Y
---192.168.111.245pingstatistics---
1808packetstransmitted,1726received,+82errors,4雷packetloss,time1807Q00ms
rttmin/avg/max/mdev=G.321/0.446/1.015/0.339ms
[root0host-172-16-2O2-157#|
源地址2服务器:
[root!?localhost~]犹ipr
defaultvia172.16.2虎.254devethlprotostaticmetric101
172.16.202.0/24devethlprotokerne1scope1inksrc172.16.202.16metric10
19Z.168.111.Z45via172.16.20Z.14deuethl
[root©localhostping192.168.111.Z45
PIMG192.168.111.Z45(192.168.111.Z45)56(84)bytesofdata.
如果源地址2服务器(172.16.202.16)也需要和目的地址服务
器(192.168.111.245)通信,只需要在iptables服务器上添加一条
nat规则即可
iptables-tnat-APOSTROUTING-s172.16.202.16/32-d
192.168.111.245/32-jSNAT-to192.168.111.63
[root@localhost-]#ipaddr
1:lo:<LOOPBACK,UP,LOWER_UP>mtu65536qdiscnoqueuestateUNKNCWN
link/loopback00:00:00:00:00:00brd00:00:00:GO:00:00
inet127.0.0.1/8scopehostto
valid_lftforeverpreferred_Utforever
inet6::1/128scopehost
foreverpreferred_l^tforever
2:ethO:<BRDADCAST,MULTICAST,UP,L0WER_UP>mtu1500qdiscpfifojaststateUPqlen10Q0
link/etherfa:16:3e:8b:3c:63brdff:ff:H:ff:ff:ff
3:ethl:<BROADCAST,MULTICAST,UP,LCWER^UP>iitu1500qdiscpfifo_faststateUPqlen1000
link/etherfa;16:3e:c3:9b:G2brd仟:ff:ff:ff:ff:ff
inet172.16.202.16/24brd172.16.202.255scopeglobalethl
valid_Utforeverpreferred_Utforever
inet6fe80::f816:3eff:fec3:9b02/64scopelink
validjftforeverpreferred_Utforever
[rootelocalhost-]#ping192.168.111.245
PING192.168.111.245(192.168.111,245)56(84)bytesofdata.
64bytesfrom192.168.111.245:icmp_seq=lttl=127time=0.327ms
64bytesfrom192.168.111,245:icmp_seq=2ttl=127time=0.346ms
64bytesfrom192.168.111,245:icmp_seq=3ttl=127time=0.323ms
64bytesfrom192.168.111.245:icmp_seq=4ttl=127time=0.413ms
64bytesfrom192.168.111,245:icmp_seq=5ttl=127time=0.373ms
64bytesfrom192.168.
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 公司代冷藏合同范例
- 中学生预防拐骗安全教育
- 典当合同标准文本
- 大数据分析服务合作合同
- 书籍运输合同标准文本
- 租赁合同定金协议书详细版
- l编纂合同标准文本
- 制砂厂工人合同标准文本
- 农场搭建包工合同范例
- 党建广告合同标准文本
- 四年级下册英语课件:Unit 4 There are seven days in a week-Lesson 19人教精通版
- 年产300吨莲子蛋白粉工厂的设计
- 千分尺公开课教案
- 加油站承重罐区安全风险及管理
- 箱变施工安全文明保证措施
- 三体系管理手册全文
- 擦窗机安全技术交底
- 基于分形理论的雷电先导三维建模与仿真
- 模具钳工试题及答案
- 公司控制权法律意见书三篇
- 自动控制系统的代数稳定判据PPT课件
评论
0/150
提交评论