防火墙是什么,防火墙又称为

  防火墙是什么,防火墙又称为

  防火墙是整个数据包进入主机之前的第一级。防火墙主要由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方案。

防火墙是什么,防火墙又称为