防火墙是什么,防火墙又称为
防火墙是整个数据包进入主机之前的第一级。防火墙主要由Netfilter和TCPwrappers管理。
1)网络过滤器:包过滤机制
2)TCP包装器:程序管理机制
关于包过滤机制的软件有两个:firewalld和iptables。
两者的区别如下:
一个
2 iptables通过控制端口来控制服务,firewalld通过控制协议来控制端口。
先在firewalld上做个实验吧。Iptables和firewalld只能打开一个。
学习前要了解iptables firewalld内核之间的关系。
(一)
(1)防火墙d
Install: [root @ route ~] # yum安装防火墙d [root @ route ~] # systemctl启动防火墙d [root @ route ~] # systemctl状态firewalldfirewalld . service-firewalld-动态防火墙守护进程Loaded:Loaded(/usr/lib/systemd/system/firewalld . service;Enabled)主动:主动(正在运行)自2017-12-03 21:12:02 EST;49S之前主PID: 2362(防火墙d)c group:/system . slice/firewall d . service2362/usr/唠叨草莓/python-es/usr/唠叨草莓/防火墙d-no fork-no PID 12月03日21: 12: 02 Route Systemd [1]:启动了防火墙d-动态防火墙守护进程。12月03日21:12:45路由systemd[1]:启动防火墙D-动态防火墙守护进程。[root @ route ~] # SystemCTL启用防火墙D[root @ route ~]# Firewall-cmd-state running # #查看防火墙的状态(2)防火墙的图形化管理D:
root@route ~]#防火墙配置
左下角是软件管理的领域,有以下内容:
配置可以临时设置(运行时)和永久设置(永久)。当临时重新加载时,它会返回到原始状态,但永远不会。
服务、港口等。由每个域管理:
请注意,public是防火墙的默认域。
(3)防火墙命令行界面配置防火墙
Firewalld-cmd是命令,firewalld-config是图形。
查看活动区域、默认区域、所有区域:
更改默认区域
测试:将默认区域改为publilc,测试:本来public只允许sshh和dhcpv6-client,现在用ftp测试。
安装vsftpd和lftp,并打开:
在ftp服务器上:
在ftp客户端:
测试结果:ftp客户端访问被拒绝。
注意:
默认区域
的接口(interfaces)、源(sources)、服务(ports)伪装(Forward-ports interface)与firewall-cmd-list-all一起显示。列出服务:
此时,您可以更改与服务相关的配置,服务的配置文件都以。xml:
将源IP172.25.254.250设置为信任
删除:
将eth0添加到trusted,注意:首先从public中删除eth0:
实验:以下关于接口的工作,现在初步的情况是:eth0和eth1在公共域,现在假设eth0是外网开放接口,eth1是内网开放接口,现在eth1加入可信,可以访问内网。
首先将eth1添加到受信任的:
然后将http服务添加到可信:
publlic域默认为ssh连接和dhcpv6-client,所以eth0不具备联网功能:
eth0:172
Eth1:172.25.254.236,注:现实生活中,通常有两个不同的网段。
—实验:我们可以拒绝所有源ip为172.25.254.79的数据包:
此时无效,需要加载。有两种方法:
注意:如果此时179主机通过ssh连接到服务器,如果使用complete,将会中断已有的连接;如果使用- reload,现有连接将不会中断。
(4)防火墙D的直接规则
Firewall-cmd - directget-all-rules # #列出规则Firewall-cmd - directadd-rule IP v4筛选器输入0!-s 172 . 25 . 254 . 79-p TCPdport 80-j accept # # Add rule firewall-cmd - directremove-rule IP v4 filter input 0!-s 172 . 25 . 254 . 79-p TCPdport 80-jaccept # #删除规则如:请求响应阻止79主机访问端口80:
(5)端口转发和地址伪装:
在防火墙服务器上打开伪装:
当端口79登录到主机时,伪装端口79。
当访问本地端口22时,将其传送到主机236:
测试视图;从79台主机使用ssh连接136台主机:
登录是236主机:
观众,着陆器是136。79主持人是伪装的。
(2)电子表格
首先,保持一个干净的环境,关闭防火墙d .安装iptables
(1)理论基础:当主机接收到一个数据包时,该数据包会先在内核空间进行处理。如果发现目的地址是自己,就传送到用户空间,交给相应的应用程序处理。如果目的地不是它自己,数据包将被丢弃或转发。
(iptables实现防火墙功能的原理是:数据包通过内核的过程中有五个关键点,分别是预路由、输入、输出、转发和发布,称为hook函数。IPTables,一个用户空间软件,可以在这五个点写规则,处理传过来的数据包。一般来说,该规则被定义为“如果包头满足这样的条件,则该包将被这样处理”。
iptables中定义了表格,分别代表提供的功能,包括过滤表(用于包过滤)、nat表(用于网络地址转换)、mangle表(用于修改数据包)和raw表(用于数据跟踪)。这些表有一定的优先级:rawmangleNATfilter。
以下是数据包流程图:
首先,数据包经过预路由,链路决定数据包的方向:
1如果目的地址是本地的,就发给INPUT,让INPUT决定是否接收,发给用户空间。过程是-;2.如果满足预路由nat表上的转发规则,它将被转发,然后通过后路由发送出去。流程为:--- 3主机发送数据包时,流程为- (3)写iptables的规则:
基本语法:iptables [-t表][操作命令][链][规则匹配器][-j目标动作] iptables
[-t过滤器]
[-人工智能输入、输出、转发]
[-io接口]
[-p tcp,udp.icmp,所有]
[-s IP/网络]
[sport ports]
[-d IP/网络]
[端口端口]
[-j接受丢弃拒绝重定向伪装日志
DNAT SNAT镜报队列回归端庄冬日】
常见操作命令:
-A在指定链的末尾添加一个规则
-D删除匹配规则。
-R替换匹配规则。
-我在指定位置插入规则。
示例:iptables-I输入1d端口80-j接受
(将规则插入过滤表输入链的第一位)
-L/S列出指定链或所有链的规则。
-F删除指定链或所有链的规则。
-N创建用户定义的链
示例:允许iptables -N
-X删除指定的用户定义链。
-P为指定链设置默认规则策略,这对自定义链没有影响。
示例:iptables -P输出下降
-Z清除指定链或所有链的计数器。
-E更改自定义链的名称。
示例:iptables -E允许不允许
-n ip地址和端口号以数字形式显示。
示例:iptables -Ln
通用规则匹配器的描述
-p tcpudpicmpall匹配协议,all匹配所有协议。
-s addr[/mask]匹配源地址
-d addr[/mask]匹配目标地址。
sport port 1[:port 2]匹配源端口(可以指定连续端口)。
d端口1 [:端口2]匹配目标端口(可以指定连续的端口)
-o接口
匹配出口网卡,仅适用于转发、后路由和输出。
示例:iptables -A FORWARD -o eth0
-i接口
匹配入口网卡,只使用PREROUTING,INPUT和FORWARD。
ICMP-type matches-ICMP-type(使用iptables -p icmp -h查看可用的ICMP类型)
TCP标志掩码组件
匹配TCP标签,mask表示检查范围,comp表示匹配掩码中的哪些标签。
示例:iptables-a forward-p TCPTCP-flags all syn,ACK -j ACCEPT
(表示数据包匹配SYN和ack标签)
目标动作描述
接受允许数据包通过。
丢弃数据包
REJECT丢弃数据包,并将拒绝消息发送给发送方。
源地址转换
Snat(在nat表上)
例如:iptables-t NAT-a过账-d 192 . 168 . 0 . 102-j snat-to 192 . 168 . 0 . 1
目的地址转换
目标地址转换(在nat表上)
示例:iptables-t NAT-a routing-d 202 . 202 . 202 . 2-j dnat-to-destination 192 . 168 . 0 . 102
再直接的
目标端口转换(在nat表上)
示例:iptables-t NAT-d routing-p TCPdport 8080-I eth 2.2-j redirectto 80
庄严的冬日
在包装上做标记。
例如:iptables-t mangle-a routing-s 192 . 168 . 1 . 3-j尊严的冬日-set-lm DDR 60
实验:
1)显示过滤表中所有链的规则,默认为过滤表。
如上,你可以看到过滤器的三个链。
2)检查网表
3)注意:防火墙设置的策略会影响传输率,因为防火墙规则是按顺序读的。
(4)NAT
网络地址转换:网络地址转换
SNAT (snat)是指当数据包从网卡发出时,用指定的IP替换数据包的源地址,使接收方认为数据包的来源是被替换IP的主机。
DNAT(目的地址转换)是指当数据包从网卡发出时,修改数据包的目的IP。意思是如果你想接入A,但是因为网关做了DNAT,所有接入A的包的目的IP全部修改为B,那么你实际上是在接入B。
让我们模拟以下两种转换:
SNAT:
实验准备:
双网卡主机:
单网卡主机:
IP:
网关:
注意:这里的双网卡主机类似于路由器的功能。因此,单个NIC主机的网关必须与本地ip位于同一网段,并且与双NIC主机上的NIC IP相同。
接下来,我们在单个NIC主机上ping网关,以检查实验环境:
说明双网卡主机网卡好。
在SNAT之前,我们的单个NIC主机无法连接到不同网段中的172.25.79.250主机。
如果我们想用一台网卡主机连接不同网段的主机,就必须进行SNAT。在双网卡主机上编写防火墙规则;
iptables-t NAT-a posting-o et h1-j snat-to-source 172 . 25 . 79 . 136检查防火墙规则:
此时仍有一个网表的ip转发功能未开启。打开它:
[root @ route ~]# sysctl-a grep IP _ forward net . IP v4 . IP _ forward=0[root @ route ~]# vim/etc/sysctl . conf
[root @ route ~]# sysctl-pnet . IP v4 . IP _ forward=1此时ping单网卡主机上不同网段的主机发现:
SNAT:局域网共享一个公网IP接入lnternel,
好处如下:
1.保护内网用户的安全,因为总有一些恶意的人在扫描公网地址,由于公网没有路由,内网地址无法被扫描。只能扫描防火墙,从而降低被攻击的可能性。
2.缺少Ipv4地址。很多公司只有一个ipv4地址,但是需要上网的用户有几百个。这时,他们需要使用SNAT。
3.省钱,花钱买公网地址,只需要一个公网ip就可以使用SNAT,可以满足上百人同时上网。
DNAT:
我们在双网卡主机(路由)上写规则:
对于来自eth1接口的数据包,我们将其主机上的目的地址更改为172.25.254.11。
我们在172.25.254.79主机上进行了测试:
使用ssh连接到172.25.254.136:
但是是主机在172.25.254.11登陆:
实现了目的地转换。
DNAT的使用:
DNAT:将内部网服务器发布到互联网
内网有服务器,有两种方式让公共用户访问。
1.配置双网卡,一个内置,一个外置;一般是高流量的web服务器,为了避免占用网关的流量,并没有广泛使用。
2内网web服务器,或者ftp服务器,用户可以在公网上访问,如果不想买公网ip地址,就采用DNAT方案。