一、防火墙简介
- 介绍:
防火墙是整个数据包进入主机前的第一道关卡。是一种位于内部网络与外部网络之间的网络安全系统,是一项信息安全的防护系统,依照特定的规则,允许或是限制传输的数据通过。防火墙主要通过Netfilter与TCPwrappers两个机制来管理的 - 管理防火墙的两种方式 :
(1)firewalld 管理火墙的工具,相对简单
(2)iptables 复杂,功能强大
二、firewalld所有的域
三、firewalld管理防火墙
- 可以通过三种方式来管理firewalld
- 使用命令行工具firewall-cmd
- 使用图形工具firewall-config
- 使用/etc/firewalld/中的配置文件
- 启用firewalld
- systemctl start firewalld 开启火墙
- systemctl stop firewalld 关闭火墙
- systemctl enable firewalld 设置火墙开机自启动
- systemctl disable firewalld 设置火墙开机禁用
- systemctl status firewalld 查看状态
- firewall-cmd常用命令
--get-default-zone 查询当前默认区域。
--set-default-zone= 设置默认区域。此命令会同时更改运行时配置和永久配置。
--get-zones 列出所有可用区域。
--get-services 列出所有预定义服务。
--get-active-zones 列出当前正在使用的所有区域(具有关联的接口或源)及接口和源信息。
--add-source= 将来自IP地址或网络/掩码的所有流量路由到指定区域。
--remove-source= 从指定区域中删除用于路由来自IP地址或网络/掩码的所有流量规则。
--add-interface= 将来自该接口的所有流量到指定区域。
--change-interface= 将接口已有绑定区域而与其他区域关联。
--list-all 列出默认区域的所有配置(接口、源、服务和端口)。
--list-all-zones 列出所有区域的所有配置(接口、源、服务和端口)。
--add-service= 允许区域某服务的流量。
--add-port= 允许区域某端口的流量。
--remove-service= 从区域删除某服务规则。
--remove-port= 从区域删除某端口规则。
--reload 丢弃Runtime配置并应用Permanet配置。
- 查看火墙的状态
- 查看火墙正在使用的域
- 查看火墙默认的域
- 查看火墙所有的域
- 查看work域的信息
- 列出可使用的服务
- 火墙允许http服务
- 火墙删除http服务
- 将指定ip主机加入trusted域
- 将指定ip主机从trusted域删除掉
- 拒绝主机172.25.254.29的所有网络连接(有回应)
- 拒绝主机172.25.254.29的所有网络连接(无回应)
- 将eth0接口从public域 移除
- 添加eth0接口到trusted域
- 直接将eth1从原来的区域转到public这个区域
- 将8080端口加入public域
- 查看firewalld的服务相关配置文件
- 添加一个http8080.xml
修改端口信息
重启服务
修改成功
- 查看firewalld的区域相关配置文件
- 查看默认public域的信息
- 编辑public域配置文件
- 将指定ssh一行删除掉(此处已删除)
- 再次查看默认public域的信息
- firewall-cmd --permanent
–reload 不改变状态的条件下重启防火墙
firewall-cmd --permanent
–complete-reload 状态信息将丢失,当防火墙有问题的时候可以使用
- 临时只接受ip为172.25.254.29的主机访问服务端的网页 (80端口是为http开放的)
- 删除这条规则
四、firewalld管理的地址伪装(SNAT与DNAT)
- 原地址转换(SNAT)
- 给路由器主机添加一个网卡(现在有两个)
设置一个内网与外网
路由器可以ping通主机
开始路由器的路由功能
- 给测试端设置与内网在同一个区域的ip
添加网关(与路由器内网ip一直)
测试:可以ping通路由器内网,也可以ping通主机的网址(路由功能实现)
- 但是,当测试端(1.1.1.229)通过ssh连接主机的时候,显示的却是路由器的外网ip
- 目的地地址转换(DNAT)
- 在路由器主机中添加转换端口——1.1.1.229
- 在主机中连接路由器外网时,自动转换到1.1.1.229
五、 iptables管理防火墙
-
概念:
iptables(网络过滤器)是一个工作于用户空间的防火墙应用软件。
防火墙在做信息包过滤决定时,有一套遵循和组成的规则,这些规则存储在专用的信息包过滤表中,而这些表集成在linux内核中。 -
iptables有三张表五条链:
-
三表:
Filter表:过滤数据包
NAT表:用于网络地址转换(IP、端口)
Mangle表:修改数据包的服务类型、TTL、并且可以配置路由实现QOS -
五链:
INPUT链——进来的数据包应用此规则链中的规则
OUTPUT链——外出的数据包应用此规则链中的规则
FORWARD链——转发数据包时应用此规则链中的规则
PREROUTING链——对数据包作路由选择前应用此链中的规则
POSTROUTING链——对数据包作路由选择后应用此链中的规则 -
首先先把firewalld关闭并冻结
- 安装iptables-services
- 开启服务并设置开机自启动
- 显示iptables中的所有策略(做解析),默认列出filter表
- 显示iptables中的所有策略(不做解析)
- 列出指定nat表信息
- 列出指定mangle表信息
- 刷新火墙的信息(清空策略)
- 注意:此方式,在重启服务后不生效
- 因为这些策略信息都保存在/etc/sysconfig/iptables中
- 所以在刷新之后,要保存火墙的策略
- 修改策略
默认是ACCEPT
修改为DROP
- 新建一个链westos
- 修改链的名称
- 删除链
- 添加ip为172.25.254.29的主机对22端口访问拒绝的策略
- 已有策略的情况下新加策略默认加载最后面
- -I 插入到某一条,默认第一条(-I INPUT 3 表示插入到第三行,不写3的话默认添加到第一个)
- 删除第三条策略
- 修改第二条策略的动作为ACCEPT
- !表示除了的意思
六、iptables管理的地址伪装
- 源地址转换(SNAT)
- 路由器端:添加SNAT策略
- 测试端:在做测试的时候如果测试端ping不通,要查看内核的路由功能是否打开
如果没有打开
则在/etc/sysctl.conf下添加如下内容
重启网络,显示内核的路由功能已开启
测试可以ping通主机
- 测试:连接主机,显示的却是路由器的外网
- 目的地地址转换(DNAT)
- 路由器端:添加DNAT策略
- 主机:连接路由器外网,转换到测试端