四种创建防火墙方式

四种给予linux系统的IP方式

1.编辑—虚拟网络—仅主机模式—更改设置—将仅主机模式下的使用本地DHCP服务将IP地址分配给虚拟机取消
第一种

vim  /etc/sysconfig/network-scripts/ifcfg-eno16777736                         #sysconfig系统配置;network-scripts网络脚本;ifcfg-eno网卡配置
      修改BOOTPROTO=none
          NOBOOT=yes                    #让系统文件生效 
      添加IPADDR0(零)=192.168.23.10                    #设置IP地址,需与外部网段相同
          PREFIX0(零)=24                    #设置子网掩码
systemctl  restart  network          #重启网络服务                                    

第二种

nmtui

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述第三种
在这里插入图片描述第四种
在这里插入图片描述在这里插入图片描述

四种创建防火墙方式

防火墙策略可以基于流量的源目地址、端口号、协议、应用等信息来定制,然后防火墙使用预先定制的策略规则监控出入的流量,若流量与某一条策略规则相匹配,则执行相应的处理,反之则丢弃。这样一来,就可以保证仅有合法的流量在企业内网和外部公网之间流动了
在RHEL 7系统中,firewalld防火墙取代了iptables防火墙。iptables与firewalld都不是真正的防火墙,它们都只是用来定义防火墙策略的防火墙管理工具而已,或者说,它们只是一种服务iptables服务会把配置好的防火墙策略交由内核层面的netfilter网络过滤器来处理,而firewalld服务则是把配置好的防火墙策略交由内核层面的nftables包过滤框架来处理。换句话说,当前在Linux系统中其实存在多个防火墙管理工具,旨在方便运维人员管理Linux系统中的防火墙策略,我们只需要配置妥当其中的一个就足够了

iptables

在早期的Linux系统中,默认使用的是iptables防火墙管理服务来配置防火墙
防火墙策略和规则
防火墙策略规则: 防火墙会从上至下的顺序来读取配置的策略规则,在找到匹配项后就立即结束匹配工作并去执行匹配项中定义的行为(即放行或阻止),如果在读取完所有的策略规则之后没有匹配项,就去执行默认的策略。一般而言,防火墙策略规则的设置有两种:一种是“通”(即放行),一种是“堵”(即阻止)。当防火墙的默认策略为拒绝时(堵),就要设置允许规则(通),否则谁都进不来;如果防火墙的默认策略为允许时,就要设置拒绝规则,否则谁都能进来,防火墙也就失去了防范的作用。
防火墙功能的实现: 防火墙使用预先定制的策略规则监控出入的流量,若流量与某一条策略规则相匹配,则执行相应的处理,反之则丢弃。这样一来,就可以保证仅有合法的流量在企业内网和外部公网之间流动了。
规则: iptables服务把用于处理或过滤流量的策略条目称之为规则
规则链: 多条规则可以组成一个规则链,而规则链则依据数据包处理位置的不同进行分类

在进行路由选择前处理数据包(PREROUTING)
处理流入的数据包(INPUT) #外网–>内网,使用最多,增加入侵难度
处理流出的数据包(OUTPUT) #外网<–内网
处理转发的数据包(FORWARD) #通过第三方
在进行路由选择后处理数据包(POSTROUTING)

匹配策略规则采取的动作:

ACCEPT(允许):允许流量通过
LOG(登记):允许流量通过,但记录日志信息
REJECT(拒绝):拒绝流量通过且明确给予拒绝的响应(考试时务必用REJECT,让系统明确知道流量被拒绝)
DROP(丢弃):拒绝流量通过但不响应

iptables常用参数和命令
iptables命令可以根据流量的源地址、目的地址、传输协议、服务类型等信息进行匹配,一旦匹配成功,iptables就会根据策略规则所预设的动作来处理这些流量。另外,再次提醒一下,防火墙策略规则的匹配顺序是从上至下的,因此要把较为严格、优先级较高的策略规则放到前面,以免发生错误

参数作用
-P设置默认策略
-F清空规则链
-L查看规则链
-A在规则链的末尾加入新规则
-I num在规则链的头部加入新规则
-D num删除某一条规则
-s匹配来源地址IP/MASK,加!表示除这个IP外
-d匹配目标地址
-i 网卡名称匹配从这块网卡流入的数据
-o 网卡名称匹配从这块网卡流出的数据
-p匹配地址,如TCP,UDP,ICMP
--dport num匹配目标端口号
–sport nuum匹配来源端口号
-j采取的动作,如ACCEPT,LOG,REJECT,DROP
iptables -L                                                         #查看已有的防火墙规则链
iptables -F                                                         #清空已有的防火墙规则链
iptables -L                                                         #再次查看防火墙规则链,发现之前存在的规则链均已被删除
iptables -P INPUT DROP                                              #把INPUT规则链的默认策略设置为拒绝,规则链的默认拒绝动作只能是DROP,不能是REJECT
iptables -L                                                         #查看规则链,显示Chain INPUT (policy DROP)
iptables -I INPUT -p icmp -j ACCEPT                                 #向INPUT链头部中添加允许ICMP流量进入的策略规则
ping -c 4 192.168.10.10                                             #此时可以ping通,但是其余的ssh什么的是不行的
iptables -D INPUT 1                                                 #删除INPUT规则链的第1条规则(即刚刚允许ICMP那条)
iptables -P INPUT ACCEPT                                            #把INPUT规则链默认策略设置为允许
iptables -L                                                         #查看规则链,显示Chain INPUT (policy ACCEPT),ping,ssh什么的都允许
iptables -I INPUT -s 192.168.10.0/24 -p tcp --dport 22 -j ACCEPT    #将INPUT规则链设置为只允许指定网段的主机访问本机的22端口(必须先指明协议才能指明端口号)
iptables -A INPUT -p tcp --dport 22 -j REJECT                       #向INPUT规则链尾部添加拒绝来自所有主机访问本机22端口的规则(结合上一条规则的效果就是只允许指定网段主机访问本机22端口,拒绝其他主机访问)
iptables -L                                                         #查看已有规则链,此时应有2条,一条允许一条拒绝
iptables -I INPUT -p tcp --dport 12345 -j REJECT                    #向INPUT规则链中添加拒绝所有人访问本机12345端口(tcp+udp)的策略规则
iptables -I INPUT -p udp --dport 12345 -j REJECT
iptables -L
iptables -I INPUT -p tcp -s 192.168.10.5 --dport 80 -j REJECT       #向INPUT规则链中添加拒绝192.168.10.5主机访问本机80端口(Web服务)的策略规则
iptables -L
iptables -A INPUT -p tcp --dport 1000:1024 -j REJECT                #向INPUT规则链中添加拒绝所有主机访问本机1000~1024端口的策略规则
iptables -A INPUT -p udp --dport 1000:1024 -j REJECT
iptables -L
service iptables save                                               #让配置的防火墙策略永久生效(防火墙规则默认会在系统下一次重启时失效)

Firewalld

RHEL 7系统中集成了多款防火墙管理工具,其中firewalld(Dynamic Firewall Manager of Linux systems,Linux系统的动态防火墙管理器)服务是默认的防火墙配置管理工具,它拥有基于CLI(命令行界面)和基于GUI(图形用户界面)的两种管理方式
相较于传统的防火墙管理配置工具,firewalld支持动态更新技术并加入了区域(zone)的概念。简单来说,区域就是firewalld预先准备了几套防火墙策略集合(策略模板),用户可以根据生产场景的不同而选择合适的策略集合,从而实现防火墙策略之间的快速切换。例如,我们有一台笔记本电脑,每天都要在办公室、咖啡厅和家里使用。按常理来讲,这三者的安全性按照由高到低的顺序来排列,应该是家庭、公司办公室、咖啡厅。当前,我们希望为这台笔记本电脑指定如下防火墙策略规则:在家中允许访问所有服务;在办公室内仅允许访问文件共享服务;在咖啡厅仅允许上网浏览。在以往,我们需要频繁地手动设置防火墙策略规则,而现在只需要预设好区域集合,然后只需轻点鼠标就可以自动切换了,从而极大地提升了防火墙策略的应用效率。firewalld中常见的区域名称(默认为public)以及相应的策略规则如表所示
在这里插入图片描述终端管理工具
命令行终端是一种极富效率的工作方式,firewall-cmd是firewalld防火墙配置管理工具的CLI(命令行界面)版本。它的参数一般都是以“长格式”来提供的
在这里插入图片描述使用firewalld配置的防火墙策略有两个模式:

运行时(Runtime)模式:默认的firewall防火墙策略模式,又称为当前生效模式,策略会随着系统的重启会失效。
永久(Permanent)模式:在用firewall-cmd命令正常设置防火墙策略时添加--permanent参数,配置的防火墙策略就可以永久生效。但是,使用永久生效模式设置的策略只有在系统重启之后才能自动生效。如果想让永久模式下配置的策略立即生效,需要手动执行firewall-cmd --reload命令。

firewall防火墙常用配置

firewall-cmd --get-default-zone                                            #查看firewalld服务当前所使用的区域(默认应该是public)
firewall-cmd --get-zone-of-interface=eno16777728                           #查询eno16777728网卡当前在firewalld服务中的区域(默认也应该是public)
firewall-cmd --permanent --zone=external --change-interface=eno16777728    #把firewalld服务中eno16777728网卡的默认区域修改为external,并在系统重启后永久生效。
firewall-cmd --get-zone-of-interface=eno16777728                           #查看eno16777728网卡在当前的区域(应该仍为public)
firewall-cmd --permanent --get-zone-of-interface=eno16777728               #查看eno16777728网卡在永久模式下的区域(应该为external)
firewall-cmd --set-default-zone=public                                     #把firewalld服务的当前默认区域设置为public
firewall-cmd --get-default-zone                                            #查看firewall当前默认区域
firewall-cmd --panic-on                                                    #启动firewalld防火墙服务的应急状况模式,阻断一切网络连接(当远程控制服务器时请慎用)
firewall-cmd --panic-off                                                   #关闭firewall防火墙服务的应急状况模式
firewall-cmd --zone=public --query-service=ssh                             #查询public区域当前是否允许SSH服务的流量(查到为yes)     
firewall-cmd --zone=public --query-service=https                           #查询public区域当前是否允许HTTPS服务的流量(查到为no)
firewall-cmd --zone=public --add-service=https                             #设置public区域当前允许请求HTTPS服务的流量通过
firewall-cmd --permanent --zone=public --add-service=https                 #设置piblic区域允许请求HTTPS服务的流量通过,永久生效
firewall-cmd --reload                                                      #让firewall服务永久模式下的策略设置立即生效
firewall-cmd --permanent --zone=public --remove-service=http               #设置public区域禁止HTTP服务的流量通过,永久生效
firewall-cmd --reload                                                      
firewall-cmd --zone=public -- add-port=8080-8081/tcp                      #设置public区域当前访问8080-8081端口的流量策略设置为允许
firewall-cmd --zone=public --list-ports                                    #查看public区域当前允许通过的端口

添加富规则格式(此规则高于一切规则)

firewall-cmd  --permanent  --zone=public  --add-rich-rule="rule  famliy="ipv4"  source  address="192.168.23.10/24"  service  name="ssh"  reject"

流量转发命令格式

firewall-cmd --permanent --zone=<区域> --add-forward-port=port=<源端口号>:proto=<协议>:toport=<目标端口号>:toaddr=<目标IP地址>

图形管理工具

firewall-cmd  config                              #打开图形化管理命令

在这里插入图片描述

1:选择运行时(Runtime)模式或永久(Permanent)模式的配置。
2:可选的策略集合区域列表。
3:常用的系统服务列表。
4:当前正在使用的区域。
5:管理当前被选中区域中的服务。
6:管理当前被选中区域中的端口。
7:开启或关闭SNAT(源地址转换协议)技术。
8:设置端口转发策略。
9:控制请求icmp服务的流量。
10:管理防火墙的富规则。
11:管理网卡设备。
12:被选中区域的服务,若勾选了相应服务前面的复选框,则表示允许与之相关的流量。
13:firewall-config工具的运行状态

服务的访问控制列表

TCP Wrappers是RHEL 7系统中默认启用的一款流量监控程序,它能够根据来访主机的地址与本机的目标服务程序作出允许或拒绝的操作。换句话说,Linux系统中其实有两个层面的防火墙,第一种是前面讲到的基于TCP/IP协议的流量过滤工具,而TCP Wrappers服务则是能允许或禁止Linux系统提供服务的防火墙,从而在更高层面保护了Linux系统的安全运行。
TCP Wrappers服务的防火墙策略由两个控制列表文件所控制,用户可以编辑允许控制列表文件来放行对服务的请求流量,也可以编辑拒绝控制列表文件来阻止对服务的请求流量。控制列表文件修改后会立即生效,系统将会先检查允许控制列表文件(/etc/hosts.allow),如果匹配到相应的允许策略则放行流量;如果没有匹配,则去进一步匹配拒绝控制列表文件(/etc/hosts.deny),若找到匹配项则拒绝该流量。如果这两个文件全都没有匹配到,则默认放行流量
TCP Wrappers服务常用参数
在这里插入图片描述在配置TCP Wrappers服务时需要遵循两个原则

编写拒绝策略规则时,填写的是服务名称,而非协议名称
建议先编写拒绝策略规则,再编写允许策略规则,以便直观地看到相应的效果

实例:先编辑/etc/host.deny文件,拒绝访问本机sshd服务的所有流量;再编辑/etc/hosts.allow文件,允许指定网段访问本机sshd服务

vim /etc/hosts.deny     #编辑/etc/hosts.deny文件        
sshd:*                  #禁止所有流量访问本机sshd服务
ssh 192.168.10.10       #尝试访问本机sshd服务,发现就算是本机自身也不能访问本机sshd服务
vim /etc/hosts.allow    #编辑/etc/hosts.allow文件
sshd:192.168.10.0/24    #允许指定网段访问本机sshd服务
ssh 192.168.10.10       #尝试访问本机sshd服务,发现可以了
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
第一篇 使用PHP 第1章 PHP快速入门教程 1.1 开始之前:了解PHP 1.2 创建一个示例应用:Bob汽车零部件商店 1.2.1 创建订单表单 1.2.2 表单处理 1.3 在HTML中嵌入PHP 1.3.1 使用PHP标记 1.3.2 PHP语句 1.3.3 空格 1.3.4 注释 1.4 添加动态内容 1.4.1 调用函数 1.4.2 使用date()函数 1.5 访问表单变量 1.5.1 简短、中等以及长风格的表单变量 1.5.2 字符串的连接 1.5.3 变量和文本 1.6 理解标识符 1.7 检查变量类型 1.7.1 PHP的数据类型 1.7.2 类型强度 1.7.3 类型转换 1.7.4 可变变量 1.8 声明和使用常量 1.9 理解变量的作用域 1.10 使用操作符 1.10.1 算术操作符 1.10.2 字符串操作符 1.10.3 赋值操作符 1.10.4 比较操作符 1.10.5 逻辑操作符 1.10.6 位操作符 1.10.7 其他操作符 1.11 计算表单总金额 1.12 理解操作符的优先级和结合性: 1.13 使用可变函数 1.13.1 测试和设置变量类型 1.13.2 测试变量状态 1.13.3 变量的重解释 1.14 根据条件进行决策 1.14.1 if语句 1.14.2 代码块 1.14.3 else语句 1.14.4 elseif语句 1.14.5 switch语句 1.14.6 比较不同的条件 1.15 通过迭代实现重复动作 1.15.1 while循环 1.15.2 for和foreach循环 1.15.3 do...while循环 1.16 从控制结构或脚本中跳出 1.17 使用可替换的控制结构语法 1.18 使用declare 1.19 下一章 第2章 数据的存储与检索 2.1 保存数据以便后期使用 2.2 存储和检索Bob的订单 2.3 文件处理 2.4 打开文件 2.4.1 选择文件模式 2.4.2 使用fopen()打开文件 2.4.3 通过FTP或HTTP打开文件 2.4.4 解决打开文件时可能遇到的问题 2.5 写文件 2.5.1 fwrite()的参数 2.5.2 文件格式 2.6 关闭文件 2.7 读文件 2.7.1 以只读模式打开文件:fopen() 2.7.2 知道何时读完文件:feof() 2.7.3 每次读取一行数据:fgets()、fgetss()和fgetcsv() 2.7.4 读取整个文件:readfile()、fpassthru()和file() 2.7.5 读取一个字符:fgetc() 2.7.6 读取任意长度:fread() 2.8 使用其他有用的文件函数 2.8.1 查看文件是否存在:file_exists() 2.8.2 确定文件大小:filesize() 2.8.3 删除一个文件:unlink() 2.8.4 在文件中定位:rewind()、fseek()和ftell() 2.9 文件锁定 2.10 更好的方式:数据库管理系统 2.10.1 使用普通文件的几个问题 2.10.2 RDBMS是如何解决这些问题的 2.11 进一步学习 2.12 下一章 第3章 使用数组 3.1 什么是数组 3.2 数字索引数组 3.2.1 数字索引数组的初始化 3.2.2 访问数组的内容 3.2.3 使用循环访问数组 3.3 使用不同索引的数组 3.3.1 初始化相关数组 3.3.2 访问数组元素 3.3.3 使用循环语句 3.4 数组操作符 3.5 多维数组 3.6 数组排序 3.6.1 使用sort()函数 3.6.2 使用asort()函数和ksort()函数对相关数组排序 3.6.3 反向排序 3.7 多维数组的排序 3.7.1 用户定义排序 3.7.2 反向用户排序 3.8 对数组进行重新排序 3.8.1 使用shuffle()函数 3.8.2 使用array_reverse()函数 3.9 从文件载入数组 3.10 执行其他的数组操作 3.10.1 在数组中浏览:each()、current()、reset()、end()、next()、pos()和prev() 3.10.2 对数组的每一个元素应用任何函数:array_walk() 3.10.3 统计数组元素个数:count()、sizeof()和array_count_values() 3.10.4 将数组转换成标量变量:extract() 3.11 进一步学习 3.12 下一章 第4章 字符串操作与正则表达式 4.1 创建一个示例应用程序:智能表单邮件 4.2 字符串的格式化 4.2.1 字符串的整理:chop()、ltrim()和trim() 4.2.2 格式化字符串以便显示 4.2.

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值