一、防火墙简介
- 介绍:
防火墙是整个数据包进入主机前的第一道关卡。是一种位于内部网络与外部网络之间的网络安全系统,是一项信息安全的防护系统,依照特定的规则,允许或是限制传输的数据通过。防火墙主要通过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策略

- 主机:连接路由器外网,转换到测试端

版权声明:本文为qq_42036824原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。