现阶段常见的防火墙属于具有安全操作系统的防火墙,例如:NETEYE、NETSVREEN、TALENTIT等。
防火墙的基本类型
一、 网络层防火墙←网络层防火墙可视为一种 IP 封包过滤器,运作在底层的 TCP/IP 协议堆栈上。可以以枚举的方式只允许符合特定规则的封包通过,其余的一概禁止穿越防火墙(病毒除外,防火墙不能防止病毒侵入)。这些规则通常可以经由管理员定义或修改,不过某些防火墙设备可能只能套用内置的规则。
二、 应用层防火墙
应用层防火墙是在 TCP/IP 堆栈的“应用运作,您使用浏览器时所产生的数据流或是使用FTP 时的数据流都是属于这一层。应用层防火墙可以拦截进出某应用程序的所有封包,并且封锁其他的封包(通常是直接将封包丢弃)。理论上,这一类的防火可以完全阻绝外部的数据流进到受保护的机器里。
三、数据库防火墙
数据库防火墙是一款基于数据库协议分析与控制技术的数据库安全防护系统。基于主动防御机制,实现数据库的访问行为控制、危险操作阻断、可疑行为审计。数据库防火墙通过 SQL协议分析,根据预定义的禁止和许可策略让合法的 SQL操作通过,阻断非法违规操作,形成数据库的外围防御圈,实现 SQL危险操作的主动预防、实时审计。“数据库防火墙面对来自于外部的入侵行为,提供SQL注入禁止和数据库虚拟补丁包功能。
四、Linux 防火墙
Linux 防火墙在企业应用中非常有用,举例如下:e中小企业与网吧里有 iptables 作为企业的 NAT路由器,可以用来代替传统路由器,而节约成本。“IDC机房一般没有硬件防火墙,IDC机房的服务器可以用Linux 防火墙代替硬件防火墙。“iptables 可以结合squid 作为企业内部上网的透明代理。传统代理需要在浏览器里配置代理服务器信息,而 iprablestsquig 的透明代理则可以把客户端的请求重定向到代理服务器的端口。客户端不要作任何设置,而感觉不到代理的存在。“将 iptables 作为企业 NAT 路由器时,可以使用 iptables 的扩展模块屏蔽 P2P 流量,还可以禁止非法网页。
iptables 可以用于外网 IP 向内网 IP 映射。
iptables 可以轻松防止轻量级 DOS 攻击,比如 ping 攻击及 SYN 洪水攻击。
综述,Iptables 有两种应用模式:主机防火,NAT路由器。
五、防火墙的基本原理←对应下图的字节传输流程,可以分为以下几层:“包过滤(Packet filtering):工作在网络层,仅根据数据包头中的 IP 地址、端口号、协议类型等标志确定是否允许数据包通过。
应用代理(Application Proxy):工作在应用层,通过编写不同的应用代理程序,实现对应用层数据的检测和分析。
状态检测(StatefulInspection):工作在 2~4层,访问控制方式与1同,但处理的对象不是单个数据包,而是整个连接,通过规则表和连接状态表,综合判断是否允许数据包通过。“完全内容检测(Cqmpelete.ContentInspection):工作在 2~7层,不仅分析数据包头信息、状态信息,而且对应用层协议进行还原和内容分析,有效防范混合型安全威胁。
FTP是基于TCP协议的21端口和20都那口,文件共享是基于TCP协议的445端口,远程桌面连接是基于TCP学医的3389端口
很多 Linux 发行版本已经自带了防火墙,通常是 iptables。它很强大并可以自定义,但配置起来有点复杂。幸运的是,有开发者写出了一些前端程序来帮助用户控制防火墙,而不需要写冗长的iptables 规则。←
frewalld.与iptables 关系与区别e
1、firewalld,与 ipables,都不是真正的防火墙,只是用来定义防火墙规则功能的管理工具,将定义好的规则交由内核中的 netflter,来实现真正的防火墙功能。“2、在 RHEL7 里有几种防火墙共存:firewalld、iptables、ektables,默认是使用 firewalld,来管理netfler子系统,不过底层调用的命令仍然是iptables等。
与直接控制 iptables 相比,使用 fewalld,有两个主要区别:←
1、firewalld,使用区域和服务而不是链式规则。←2、frewalld,默认是拒绝的,需要设置以后才能放行。而 iptables 默认是允许的,需要拒绝的才去限制。←
3、firewald,可以动态修改单条规则,而不需要像 iptables 那样,在修改了规则后必须得全部刷新才可以生效。
4、iptables service 在/etc/sysconfig/iptables 中存储配置,而 firewalld 将配置存储在/usr/lib/firewalld/和/etc/firewalld/中的各种 XML文件里。←
不管你的发行版是哪个,都要先激活防火墙才能让它生效,而且需要在启动时加载:$ sude systemctl enable --now firewallde
1、域(zone)←
Firewalld 旨在让防火墙的配置工作尽可能简单。它通过建立域 zone 来实现这个目标。一个域是一组的合理、通用的规则,这些规则适配大部分用户的日常需求。默认况下有九个域。“trusted:接受所有的连接。这是最不偏执的防火墙设置,只能用在一个完全信任的环境中如测试实验室或网络中相互都认识的家庭网络中。“
home、work、internal:在这三个域中,接受大部分进来的连接。它们各自排除了预期不活跃的端口进来的流量。这三个都适合用于家庭环境中,因为在家庭环境中不会出现端口不确定的网络流量,在家庭网络中你一般可以信任其他的用户。
public:用于公共区域内。这是个偏执的设置,当你不信任网络中的其他计算机时使用。只能接收选定的常见和最安全的进入连接。“dmz:DMZ 表示隔离区。这个域多用于可公开访问的、位于机构的外部网络、对内网访问受限的计算机。对于个人计算机,它没什么用,但是对某类服务器来说它是个很重要的选项。external:用于外部网络,会开启伪装(你的私有网络的地址被映射到一个外网IP 地址,并隐藏起来)。跟 DMZ 类似,仅接受经过选择的传入连接,包括SSH。block:仅接收在本系统中初始化的网络连接。接收到的任何网络连接都会被mR-host-prohibited 信息拒绝。这个一个极度偏执的设置,对于某类服务器或处于不信任或不安全的环境中的个人计算机来说很重要。"drop:接收的所有网络包都被丢弃,没有任何回复。仅能有发送出去的网络连接。比这个设置更极端的办法,唯有关闭 WiEi 和拔掉网线。
# 命令获得当前所有域
可以通过firewall-cmd --get-zonese
说明:frewalld.的默认区域是 public,firewalld,默认提供了九个 zone 配置文件:block.xml、dmz.xml、drop.xml、external.xml、home.xml、 internal.xml、 public.xml、 trusted.xml、 work.xml.如下图所示:
2、firewalld 基本指令参数←
1、zone 区域相关指令
2、services服务相关指令
实操演示:
3.2、使用 frewalld,各个区域规则结合配置,调整默认 public 区域拒绝所有流量,但如果来源IP是 192.168.1.0/24 网段则允许
临时移除默认区域的规则策略:
firewall-cmd --remove-service=ssh --remove-service=dhcpv6-client
添加来源是 192.168.1.0/24 网段,临时将其加入白名单(更精细化控制使用富规则):
firewall-cmd --add source=192.168.1.0/24 --zone=trusted
检查当前活动的区域:
firewall-cmd --get-active-zones
查询 public 区域是否允许请求ssh、dhcpv6-client 服务的流量:
firewall-cmd --zone=public --query-service=ssh
firewall-cmd --zone=public --query-service=dhcpv6.client
上述配置均为临时配置,使用 frewall-cmd --reload 临时配置会被清空:
firewall-cmd --get-active-zones 再次查看当前的活动域
1、编辑配置mysql服务
# cp /usr/lib/firewall/services/mysql.xml /etc/firewall/services/
# vim /etc/firewall/services/
修改端口号为53000(在此只是修改防火墙的mysql端口,具体修改应该还在mysql哦欸之中修改端口号,再来firewall修改)
2、配置前查看 public 区域内允许访问的服务
firewall-cmd --zone=public --list-services
3、为 public 区域设置允许访问的 mySQL服务
firewall-cmd --zone=public --add-service=mysql --permanent
4、重新加载配置
firewall-cmd --reload
5、配置后查看 public 区域内允许访问的服务
firewall-cmd --zone=public --list-services
6、移除 mysQL服务防火墙规则
firewall-cmd --zone=public --remove-service=mysql --permanent
firewall-cmd --reload
firewall-cmd --zone=public --list-services
5、frewalld.端日配置策略。
在进行服务配置时,预定义的网络服务可以使用服务名配置,服务所涉及的端口就会自动打开但是,对于非预定义的服务只能手动为指定的区域添加端口。
使用 frewalld.允许客户请求的服务器的 80/tcp,端口,仅临时生效,如添加-permanent 重启后则永久生效
1、临时添加允许放行单个端口
firewall-cmd --add-port=80/tcp
2、临时添加放行多个端口
firewall-cmd --add-port={80/tcp,8080/tcp}
firewall-cmd --list-ports
3、永久添加多个端口,需要添加-permanent,并且需要重载 firewalld
firewall-cmd --add-port={80/tcp,8080/tcp} --permanent
firewall-cmd --reload
firewall-cmd --list-ports
4、移除临时添加的端口规则
firewall-cmd --remove-port={80/tcp,8080/tcp}
5、移除永久添加的端口规则
firewall-cmd --remove-port={80/tcp,8080/tcp} --permanent
firewall-cmd --reload
6、firewalld 富规则配置策略
进入/ekg/firewalld/zones/public.xml 文件查看配置的规则,如下图所示:
标签:iptables,windows,cmd,防火墙,--,Linux,public,firewall From: https://www.cnblogs.com/aidy/p/18095209