下载公众号,seo营销的概念,自己可以做一个网站吗,360搜索首页目录
前言
一、概述
#xff08;一#xff09;、防火墙分类
#xff08;二#xff09;、防火墙性能
#xff08;三#xff09;、iptables
#xff08;四#xff09;、iptables中表的概念
二、iptables规则匹配条件分类
#xff08;一#xff09;、基本匹配条…目录
前言
一、概述
一、防火墙分类
二、防火墙性能
三、iptables
四、iptables中表的概念
二、iptables规则匹配条件分类
一、基本匹配条件
二、显式匹配使用选项及功能
三、iptables规则
三、iptables应用
一、进行标记可在LVS调度器中应用
二、iptables nat表应用案例
四、什么是防火墙
五、FireWalld防火墙的配置
一、Firewalld默认共9个zone
二、端口和服务名称的对应关系
总结 前言
防火墙是一种综合性的技术涉及到计算机网络技术、密码技术、安全技术、软件技术、安全协议、网络标准化组织的安全规范以及安全操作系统等多方面。 一、概述
在计算机领域防火墙是用于保护信息安全的设备其会依照用户定义的规则允许或限制数据的传输。 作用
用于保护内网安全的一种设备
依据规则进行防护
用户定义规则
允许或拒绝外部用户访问
一、防火墙分类 逻辑上划分 防火墙可以大体分为主机防火墙和网络防火墙 主机防火墙 针对于单个主机进行防护 网络防火墙 针对网络进行防护处于网络边缘防火墙背后是本地局域网网络防火墙主外(服务集体)主机防火墙主内(服务个人) 物理上划分 防火墙可分为硬件防火墙和软件防火墙 硬件防火墙 在硬件级别实现防火墙功能另一部分基于软件实现其性能高硬件成本高 软件防火墙 应用软件处理逻辑运行于通用硬件平台之上的防火墙其性能相较于硬件防火墙低成本较低对于 Linux系统已自带直接使用即可
硬件防火墙定义
硬件防火墙是指把具备配置数据包通过规则的软件嵌入硬件设备中为网络提供安全防护的硬件设备。多见于网络边缘。
硬件防火墙作用拓扑图 ups 硬件防火墙品牌Juniper、cisco思科ASA 、华为、天融信等
软件防火墙定义
软件防火墙是单独使用具备配置数据包通过规则的软件来实现数据包过滤。多见于单主机系统或个人计算机。
硬件防火墙与软件防火墙比较
硬件防火墙有独立的硬件设备运算效率较高价格略高可为计算机网络提供安全防护。
软件防火墙必须部署在主机系统之上相较于硬件防火墙运算效率低在一定程度上会影响到主机系统性能一般用 于单机系统或个人计算机中不直接用于计算机网络中。
Web应用防火墙(WAF)
Web应用防火墙是对web防护(网页保护)的安全防护设备(软件)主要用于截获所有HTTP数据或仅仅满足某些规则的 会话。多见于云平台中。 二、防火墙性能 吞吐量 并发连接
新建连接
时延
抖动
三、iptables
iptables是什么
iptables不是防火墙是防火墙用户代理用于把用户的安全设置添加到“安全框架”中 “安全框架”是防火墙“安全框架”的名称为netfilter。
netfilter位于内核空间中是Linux操作系统核心层内部的一个数据包处理模块iptables是用于在用户空间对内核空间的netfilter进行操作的命令行工具。
平常我们使用iptables并不是防火墙的“服务”而服务是由内核提供的。
iptables工作依据 规则(rules)
iptables是按照规则(rules)来办事的而规则就是运维人员所定义的条件规则一般定义为“如果数据包头符合这样的条件就这样处理这个数据包”。
规则存储在内核空间的数据包过滤表中这些规则分别指定了源地址、目的地址传输协议(TCP、UDP、ICMP)和服务类型(HTTP、FTP)等。
当数据包与规则匹配时iptables就根据规则所定义的方法来处理这些数据包比如放行(ACCEPT)、拒绝(REJECT)、 丢弃(DROP)等。
配置防火墙主要工作就是对iptables规则进行添加、修改、删除等。
iptables规则管理 iptables规则显示 netfilter/iptables功能
netfilter/iptables可简称为iptables为Linux平台下的包过滤防火墙是开源的内核自带的可以代替成本较高的 企业级硬件防火墙能够实现如下功能
数据包过滤即防火墙
数据包重定向即转发
网络地址转换即可NAT。
iptables中链的概念
当客户端访问服务器端的web服务时客户端发送访问请求报文至网卡而tcp/ip协议栈是属于内核的一部分所 以客户端的请求报文会通过内核的TCP协议传输到用户空间的web服务而客户端报文的目标地址为web服务器所 监听的套接字(ip:port)上当web服务器响应客户端请求时web服务所回应的响应报文的目标地址为客户端地址 我们说过netfilter才是真正的防火墙属于内核的一部分所以我们要想让netfilter起到作用我们就需要在内 核中设置“关口”所以进出的数据报文都要通过这些关口经检查符合放行条件的准允放行符合阻拦条件的则被 阻止于是就出现了input和output关口然而在iptables中我们把关口叫做“链”。 如果客户端发到本机的报文中包含的服务器地址并不是本机而是其他服务器此时本机就应该能够 进行转发那么这个转发就是本机内核所支持的IP_FORWARD功能此时我们的主机类似于路由器功能所以我们会 看到在iptables中所谓的关口并只有上面所提到的input及output这两个应该还有“路由前”“转发”“路由后”它们所对应的英文名称分别为“PREROUTING”“FORWARD”“POSTROUTING”这就是我们说到的5链。 当我们在本地启动了防火墙功能时数据报文需要经过以上关口根据各报文情况各报名经常 的“链”可能不同如果报文目标地址是本机则会经常input链发往本机用户空间如果报文目标不是本机则会直接 在内核空间中经常forward链和postrouting链转发出去。
有的时候我们也经常听到人们在称呼input为“规则链”这又是怎么回事呢我们知道防火墙的作用在于对经过的数 据报文进行规则匹配然后执行对应的“动作”所以数据包经过这些关口时必须匹配这个关口规则但是关口规则 可能不止一条可能会有很多当我们把众多规则放在一个关口上时所有的数据包经常都要进行匹配那么就形成 了一个要匹配的规则链条因此我们也把“链”称作“规则链”。 INPUT:处理入站数据包
OUTPUT:处理出站数据包
FORWARD:处理转发数据包(主要是将数据包转发至本机其它网卡)
当数据报文经过本机时网卡接收数据报文至缓冲区内核读取报文ip首部发现报文不是送到本机时目的ip 不是本机由内核直接送到forward链做匹配匹配之后若符合forward的规则再经由postrouting送往下一跳或目的主机。
PREROUTING:在进行路由选择前处理数据包修改到达防火墙数据包的目的IP地址用于判断目标主机。
POSTROUTING:在进行路由选择后处理数据包修改要离开防火墙数据包的源IP地址判断经由哪一接口送往下一跳。
iptables链管理方法了解 四、iptables中表的概念
每个“规则链”上都设置了一串规则这样的话我们就可以把不同的“规则链”组合成能够完成某一特定功能集合分类而这个集合分类我们就称为表iptables中共有5张表。security:是后加上的定义强制访问控制规则通常为4表。
filter: 过滤功能确定是否放行该数据包属于真正防火墙内核模块iptables_filter。
nat: 网络地址转换功能修改数据包中的源、目标IP地址或端口内核模块iptable_nat。
mangle: 对数据包进行重新封装功能为数据包设置标记内核模块iptable_mangle。
raw: 确定是否对数据包进行跟踪内核模块iptables_raw。
iptables中表链之间的关系 iptables中表的优先级raw-mangle-nat-filter(由高至低)
二、iptables规则匹配条件分类
一、基本匹配条件 -pprotocal 指定规则协议tcp传输层 udp传输层 icmp网络层 ip网络层 -ssource 指定数据包的源地址 -ddestination 指定目的地址 -i 输入网卡接口lo本地回环ens33 -o 输出网卡接口ens37ens33等 !取反
基本匹配的特点是无需加载扩展模块匹配规则生效。
拒绝icmp的访问ACCEPT为允许
iptables -A INPUT -p icmp -j REJECT 拒绝tcp的访问
iptables -A INPUT -p tcp -j REJECT 拒绝源地址的访问
iptables -A INPUT -s 192.168.238.131 -j REJECT 除了icmp协议可以通信DROP为拒绝但反应较慢
iptables -A INPUT ! -p icmp -i ens33 -j DROP 二、显式匹配使用选项及功能 禁止访问80端口其他都可以 不允许别人Ping我我可以Ping别人
iptables -A INPUT -p icmp --icmp-type 8/0 -j REJECT 多端口multiport
禁止80和20端口访问其他端口允许
iptables -I INPUT -p tcp -m multiport --dports 80,20 -j REJECT 多IP地址iprange
禁止192.168.238.120~192.168.238.130IP的访问 指定访问时间范围time注意时区
iptables -I INPUT -p tcp --dport 80 -m time --weekdays Tus --timestart 10:00:00 --timestop 18:00:00 -j REJECT connlimit了解
连接限制根据每个客户端IP作并发连接数量限制。 limit了解
报文速率限制。
state
追踪本机上的请求和响应之间的数据报文的状态。
状态有五种
NEW 新连接请求 ESTABLISHED 已建立的连接 INVALID 无法识别的连接 RELATED 相关联的连接当前连接是一个新请求 UNTRACKED 未追踪的连接 三、iptables规则
制定iptables规则思路
选择一张表此表决定了数据报文处理的功能
选择一条链此链决定了数据报文流经哪些位置
选择合适的规则此条件决定了对数据做何种条件匹配
选择处理数据报文的动作 拒绝还是允许
制定iptables规则策略
黑名单 没有被拒绝的流量都可以通过这种策略下管理员必须针对每一种新出现的攻击制定新的规则因此不推荐 白名单 没有被允许的流量都要拒绝这种策略比较保守根据需要主机主机逐渐开放目前一般都采用白名单策略推荐
iptables规则中动作
iptables规则中的动作常称为target也分为基本动作和扩展动作。 ACCEPT 允许数据包通过 DROP 直接丢弃数据包不给任何回应信息 REJECT 拒绝数据包通过发送回应信息给客户端 SNAT 源地址转换 数据包从网卡发送出去的时候把数据包中的源地址部分替换为指定的IP接收方认为数据包的来 源是被替换的那个IP主机返回响应时也以被替换的IP地址进行 修改数据包源地址当内网数据包到达防火墙后防火墙会使用外部地址替换掉数据包的源IP地址 目的IP地址不变使网络内部主机能够与网络外部主机通信 MASQUERADE 伪装类似于SNAT适用于动态的、临时会变的ip地址上例如家庭使用的宽带。 用发送数据的网卡上的IP来替换源IP对于IP地址不固定场合使用 DNAT 目标地址转换 数据包从网卡发出时修改数据包中的目的IP表现为你想访问A但因网关做了DNAT把所有 访问A的数据包中的目的IP地址全部修改为B,实际最终访问的是B 改变数据包目的地址当防火墙收到来自外网的数据包后会将该数据包的目的IP地址进行替换 源IP地址不变重新转发到内网的主机 REDIRECT 在本机做端口映射 LOG 在/var/log/message文件中记录日志信息然后将数据包传递给下一条规则
SNAT iptables -t nat -A POSTROUTING -s 192.168.10.0/24 -o eth1 -j SNAT --to-source 202.12.10.100DNAT iptables -t nat -A PREROUTING -d 202.12.10.100 -p tcp --dport 80 -j DNAT --to- destination 192.168.10.254
路由是按照目的地址进行路由选择的因此DNAT是在PREROUTING链上进行的SNAT是在数据包发出的时候进行的因此是在POSTROUTING链上进行的。
iptables基础语法结构
iptables [-t 表名] 管理选项 [链名] [条件匹配] [-j 目标动作或跳转]
不指定表名时默认表示filter表不指定链名时默认表示该表内所有链除非设置规则链的默认策略否则 需要指定匹配条件。 三、iptables应用
服务名iptables-servicesyum
centos7系统中默认存在iptables命令此命令仅为简单查询及操作命令不包含配置文件安装iptables- services后将直接生成配置文件便于配置保存。包含ipv4及ipv6。
保存规则ptables-save /etc/sysconfig/iptables路径可自定义
重载iptables-restore /etc/sysconfig/iptables
不允许通过本地回环网卡访问本机
iptables -I INPUT -i lo -j REJECT 本机无法访问本机 解决办法 一、进行标记可在LVS调度器中应用
详细列表
iptables -t mangle -nL 进行标记 二、iptables nat表应用案例
nat表作用导流
nat表作用位置
KVM或OpenStack中虚拟机或云主机与外部通信
Docker管理的容器与外部通信
开启路由转发功能
SNAT源地址转换、DNAT目标地址转换
案列 实验环境
hd1192.168.238.101、网关192.168.238.100
hd2 192.168.100.101
hd3 192.168.100.100ens33、192.168.238.100ens37
注意为了方便互相验证先在hd1和hd3上先装好httpd服务
步骤
snat
hd1 安装httpd服务启动httpd服务
配置静态IP及网关
创建访问文件 echo hello /var/www/html/index.html可不创建只是为了方便观察 hd2
安装httpd服务启动httpd服务
配置静态IP及网关
创建访问文件 echo OKOK /var/www/html/index.html hd3 添加网卡ens37配置静态IP
开启防火墙的路由转发功能
vim /etc/sysctl.conf sysctl -p 激活
配置防火墙的snat地址转换
iptables -t nat -A POSTROUTING -s 192.168.238.0/24 -o ens37 -j SNAT --to-source 192.168.100.100
到hd1上进行验证 dnat
hd3配置防火墙的dnat地址转换
iptables -t nat -A PREROUTING -d 192.168.100.100 -p tcp -j DNAT --to-destination 192.168.238.101
到hd2上进行验证 四、什么是防火墙
防火墙防范一些网络攻击。有软件防火墙、硬件防火墙之分。
防火墙选择让正常请求通过从而保证网络安全性。 Windows防火墙 传统Linux防火墙 FireWalld防火墙的概念
CentOS6中防火墙叫做iptables
CentOS7中默认使用的防火墙是firewalld
FireWalld增加了区域的概念所谓区域是指firewalld预先准备了几套防火墙策略的集合类似于策略的模板用户可以根据需求选择区域。
FireWalld属于动态防火墙是CentOS7系统中用于对netfilter内核模块用户空间管理工具。FireWalld仅仅替代了iptables service部分其底层还是使用iptables做为防火墙规则管理入口。
常见区域及相应策略规则 trusted 允许所有数据包 home 拒绝流入的流量除非与流出的流量相关允许 ssh,mdns,ippclient,amba-client,dhcpv6-client服务通过 internal 等同于home work 拒绝流入的流量除非与流出的流量相关允许ssh,ipp client,dhcpv6-client服务通过 public 拒绝流入的流量除非与流出的流量相关允许 ssh,dhcpv6-client服务通过 external 拒绝流入的流量除非与流出的流量相关允许ssh服务通 过 dmz 拒绝流入的流量除非与流出的流量相关允许ssh服务通 过 block 拒绝流入的流量除非与流出的流量相关非法流量采取拒 绝操作 drop 拒绝流入的流量除非与流出的流量相关非法流量采取丢 弃操作 运行模式 配置的防火墙策略立即生效但是不写入配置文件 永久模式 配置的防火墙策略写入配置文件但是需要reload 重新加载才能生效
五、FireWalld防火墙的配置
使用systemctl来管理firewalld的服务
语法systemctl [选项] firewalld start 启动指定服务 status检查指定服务的运行状况 reload 重新加载指定服务的配置文件并非所有服务都支持 reload通常使用restart) restart 重启指定服务 stop 停止指定服务
管理firewall配置
查看默认使用的区域 firewall-cmd --get-default-zone
查看所有可用区域 firewall-cmd --get-zones
列出当前使用区域配置 firewall-cmd --list-all 列出所有区域的配置 firewall-cmd --list-all-zones 在public区域添加允许tcp协议的1024端口通过的规则
firewall-cmd --zonepublic --add-port1024/tcp
在public区域去掉允许tcp协议的1024端口通过的规则
firewall-cmd --zonepublic --remove-port1024/tcp
在public区域使用permanent参数永久添加允许1024端口通过的规则
firewall-cmd --permanent --zonepublic --add port1024/tcp 一、Firewalld默认共9个zone
FireWalld不同区域之间的差异主要是每个区域对待数据包的默认行为不同 内部 internal 非军事化 dmz 外部external 家 庭 home 拒 绝 block 默认区域 Firewalld 丢 弃 drop 信 任 trusted 工作区 work
二、端口和服务名称的对应关系
查看端口和服务名称的对应关系 cat /etc/services 新建规则 --add 删除规则 --remove 改变规则 --change 查询规则 --query
--add-interfaceeth0 将网络接口添加到默认的区域内
--add-servicehttp --permanent
添加服务到区域开放列表中注意服务的名称需要与此区域支持的服务列表中的名称一致
--remove-interfaceeth0 将网络接口在默认的区域内删除
--change-interfaceeth1 改变指定的接口到其他区域
--query-masquerade 查询SNAT的状态 总结
首先要了解防火墙的一些概念再去操作要好一些因为操作命令较长不好背记理解了选项的含义会更加得心应手。4表5链和iptables服务需要重点掌握。