热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Ⅲ第七章学习博客(firewalld,iptables)

Linux修炼之旅第七章!今天来介绍火墙的管理策略firewalld和iptables,介绍两者的基础命令和高级规则。下面我们就开始吧文章目录Linu
Linux修炼之旅第七章!

今天来介绍火墙的管理策略firewalld和iptables,介绍两者的基础命令和高级规则。下面我们就开始吧

文章目录

  • Linux修炼之旅第七章!
  • 一、火墙管理及工具切换
  • 二、firewalld
    • 1.firewalld的开启
    • 2.firewall的图形管理界面
    • 3.关于firewalld的域
    • 4.firewalld的管理命令
      • 关于trusted,block和drop
    • 5.firewalld的高级规则
    • 6.firewalld中的NAT
      • SNAT
      • DNAT
  • 三、iptables
    • 1.iptables命令
    • 2.iptables对于读取规则的优化策略
    • 3.iptables的nat模式
      • snat
      • dnat



实验开始前先配置好实验环境
配置两台主机
一台为双网卡主机
同时拥有172.25.254网段和1.1.1网段
请添加图片描述请添加图片描述

一、火墙管理及工具切换

本章主要介绍两种比较主流的火墙管理方式
iptables和firewalld
相较于firealld,iptables使用起来更复杂,但是管理起来更精确。
两者的使用需要切换
如何切换呢

首先介绍firewalld转换到iptables

dnf install iptables-services -y
systemctl stop firewalld
systemctl disable firewalld
systemctl mask firewalld #冻结火墙服务,如果想重启必须解锁,unmask
systemctl enable --now iptables

然后是iptables转firewalld

dnf install firewalld -y
systemctl stop iptables
systemctl disable iptables
systemctl mask iptables
systemctl enable --now firewalld

二、firewalld

1.firewalld的开启

systemctl stop iptables
systemctl disable iptables
systemctl mask iptables
systemctl unmask firewalld
systemctl enable --now firewalld

2.firewall的图形管理界面

安装
dnf install firewall-config-0.8.0-4.el8.noarch -y
如果没有启用服务清参照上面的开启步骤开启firewall服务
使用指令
firewall-config
请添加图片描述

请添加图片描述firewall的模块在
/usr/lib/firewalld/
firewall的配置在
/etc/firewalld/

3.关于firewalld的域

请添加图片描述关于firewall中的域的解释

trusted #接受所有的网络连接
home #用于家庭网络,允许接受ssh mdns ipp-client samba-client dhcp-client
work #工作网络 ssh ipp-client dhcp-client
public #公共网络 ssh dhcp-client
dmz #军级网络 ssh
block #拒绝所有
drop #丢弃,所有数据全部丢弃无任何回复
internal #内部网络 ssh mdns ipp-client samba-client dhcp-client
external #ipv4网络地址伪装转发 sshd

4.firewalld的管理命令

firewall-cmd --state
##查看火墙状态
firewall-cmd --get-active-zones ##查看当前火墙中生效的域
firewall-cmd --get-default-zone ##查看默认域
firewall-cmd --list-all
##查看默认域中的火墙策略
firewall-cmd --list-all --zone=work ##查看指定域的火墙策略

命令效果
请添加图片描述

关于trusted,block和drop

全信任域

firewall-cmd --set-default-zone=trusted

请添加图片描述

block拒绝所有

firewall-cmd --set-default-zone=block

请添加图片描述

drop丢弃

firewall-cmd --set-default-zone=drop

请添加图片描述
查看所有可以设定的服务

firewall-cmd --get-services

请添加图片描述
指定数据来源访问指定域

firewall-cmd --permanent --add-source=172.25.254.0/24 --zone=block

指定只有172.25.254网段的主机可以访问
请添加图片描述命令中是block,看到的效果与上一布中的bolck效果相同
请添加图片描述
如果想要解除,直接用命令删除即可

firewall-cmd --permanent --remove-source=172.25.254.0/24 --zone=block

请添加图片描述移除后又回到了drop状态
请添加图片描述
关于网卡的指令

firewall-cmd --permanent --remove-interface=ens10 --zone=public #删除指定域的网络接口
firewall-cmd --permanent --add-interface=ens10 --zone=drop
#添加指定域的网络接口
firewall-cmd --permanent --change-interface=ens10 --zone=public #更改网络接口到指定域

如果以上面的代码为实验的话,就不可以通过ssh服务来实验,会导致连接直接断开。
请添加图片描述

5.firewalld的高级规则

高级规则的效果,下面通过一个实验来进行说明
首先在服务主机中开启高级规则,限制除了172网段的80主机以外的主机,任何服务都被拒绝
请添加图片描述现在设定高级规则,满足上述要求
请添加图片描述

1网段的主机本来可以访问,设定完毕后不被允许
请添加图片描述172网段的80主机没问题
请添加图片描述

6.firewalld中的NAT


SNAT

简单来说,就是通过开启地址伪装策略来对访问的用户进行控制,比如1网段的主机通过172网段的服务主机来连接别的172网段主机,那么在172的测试主机上就会显示服务主机的172网段ip,具体实验效果如下:

首先设置1网段的客户主机的网关为服务主机的1网段ip地址为网关
请添加图片描述在服务主机中开启地址伪装策略
firewall-cmd --permanent --add-masquerade
firewall-cmd --reload
请添加图片描述然后用1网段的主机来连接172网段的测试机
请添加图片描述
可以看到记录中连接的主机使服务主机的ip而非真正连接主机的1网段主机
请添加图片描述

DNAT

DNAT的效果则是可以让服务主机变成一个中继站,使连接到服务主机的地址直接跳转到设置好的另一个ip中,下面看看实验效果

设定跳转的地址为1.1.1.200
firewall-cmd --pernament --add-forword-port=port=22:proto=tcp:toport=22:toaddr=1.1.1.200
firewall-cmd --reload
请添加图片描述
可以看到原本访问服务主机,但是自动转到了1.1.1.200主机上

请添加图片描述

三、iptables

实验开始之前先从firewalld切换至iptables,具体步骤见第一节中。
请添加图片描述
开启iptables服务
请添加图片描述

1.iptables命令

iptables-t #指定表名称-n #不做解析-L #查看-A #添加策略-p #协议--dport #目的地端口-s #来源-j #动作ACCEPT #允许DROP #丢弃REJECT #拒绝SNAT #源地址转换DNAT #目的地地址转换-N #新建链-E #更改链名称-X #删除链-D #删除规则-I #插入规则-R #更改规则-P #更改默认规则

iptables -nL
请添加图片描述
上面这个指令可以对状态进行查看,利用这个指令并开启监视,对其他命令进行测试
iptables -D INPUT 2删除INPUT中的第二条规则
请添加图片描述iptables -I -s 172.25.254.80 -j REJECT插入规则
请添加图片描述
iptables -N shy新建链
请添加图片描述iptables -E shy SHY链更名
请添加图片描述iptables -X SHY删除链

请添加图片描述iptables -P INPUT DROP更改默认规则为丢弃
请添加图片描述iptables -P INPUT ACCEPT更改默认规则为通过
请添加图片描述

2.iptables对于读取规则的优化策略

请添加图片描述

3.iptables的nat模式

第二部分的内容中firewall的nat功能相同,介绍iptables下的nat功能

snat

iptables -t nat POSTROUTING -o ens3 -j SNAT --to-source 172.25.254.100
sysctl -a | grep ip_forword
看看开启时候成功
net.ipv4.ipforward=1表示 成功
如果不是1
则编辑文件
vim /etc/sysctl.conf
在最后写入
net.ipv4.ipforward=1
请添加图片描述
请添加图片描述这样就配置好了snat,效果类似于内网可以访问外网了
请添加图片描述

请添加图片描述

dnat

dnat与snat刚好相反,让外网访问内网,只需访问双网卡服务器
配置双网卡服务器
iptables -t nat -A PREROUTING -i ens3 -j DNAT --to-dest 1.1.1.200
查看
iptables -t nat -nL
实验效果
请添加图片描述用172网段的80主机访问双网卡服务器,查看到的是1网段的ip
请添加图片描述


推荐阅读
  • 本文介绍了在rhel5.5操作系统下搭建网关+LAMP+postfix+dhcp的步骤和配置方法。通过配置dhcp自动分配ip、实现外网访问公司网站、内网收发邮件、内网上网以及SNAT转换等功能。详细介绍了安装dhcp和配置相关文件的步骤,并提供了相关的命令和配置示例。 ... [详细]
  • http:my.oschina.netleejun2005blog136820刚看到群里又有同学在说HTTP协议下的Get请求参数长度是有大小限制的,最大不能超过XX ... [详细]
  • imx6ull开发板驱动MT7601U无线网卡的方法和步骤详解
    本文详细介绍了在imx6ull开发板上驱动MT7601U无线网卡的方法和步骤。首先介绍了开发环境和硬件平台,然后说明了MT7601U驱动已经集成在linux内核的linux-4.x.x/drivers/net/wireless/mediatek/mt7601u文件中。接着介绍了移植mt7601u驱动的过程,包括编译内核和配置设备驱动。最后,列举了关键词和相关信息供读者参考。 ... [详细]
  • 本文介绍了在CentOS上安装Python2.7.2的详细步骤,包括下载、解压、编译和安装等操作。同时提供了一些注意事项,以及测试安装是否成功的方法。 ... [详细]
  • 网络请求模块选择——axios框架的基本使用和封装
    本文介绍了选择网络请求模块axios的原因,以及axios框架的基本使用和封装方法。包括发送并发请求的演示,全局配置的设置,创建axios实例的方法,拦截器的使用,以及如何封装和请求响应劫持等内容。 ... [详细]
  • Python中的PyInputPlus模块原文:https ... [详细]
  • 基于PgpoolII的PostgreSQL集群安装与配置教程
    本文介绍了基于PgpoolII的PostgreSQL集群的安装与配置教程。Pgpool-II是一个位于PostgreSQL服务器和PostgreSQL数据库客户端之间的中间件,提供了连接池、复制、负载均衡、缓存、看门狗、限制链接等功能,可以用于搭建高可用的PostgreSQL集群。文章详细介绍了通过yum安装Pgpool-II的步骤,并提供了相关的官方参考地址。 ... [详细]
  • ZSI.generate.Wsdl2PythonError: unsupported local simpleType restriction ... [详细]
  • 本文介绍了Web学习历程记录中关于Tomcat的基本概念和配置。首先解释了Web静态Web资源和动态Web资源的概念,以及C/S架构和B/S架构的区别。然后介绍了常见的Web服务器,包括Weblogic、WebSphere和Tomcat。接着详细讲解了Tomcat的虚拟主机、web应用和虚拟路径映射的概念和配置过程。最后简要介绍了http协议的作用。本文内容详实,适合初学者了解Tomcat的基础知识。 ... [详细]
  • 自动轮播,反转播放的ViewPagerAdapter的使用方法和效果展示
    本文介绍了如何使用自动轮播、反转播放的ViewPagerAdapter,并展示了其效果。该ViewPagerAdapter支持无限循环、触摸暂停、切换缩放等功能。同时提供了使用GIF.gif的示例和github地址。通过LoopFragmentPagerAdapter类的getActualCount、getActualItem和getActualPagerTitle方法可以实现自定义的循环效果和标题展示。 ... [详细]
  • 本文介绍了在Linux下安装和配置Kafka的方法,包括安装JDK、下载和解压Kafka、配置Kafka的参数,以及配置Kafka的日志目录、服务器IP和日志存放路径等。同时还提供了单机配置部署的方法和zookeeper地址和端口的配置。通过实操成功的案例,帮助读者快速完成Kafka的安装和配置。 ... [详细]
  • 本文介绍了Python爬虫技术基础篇面向对象高级编程(中)中的多重继承概念。通过继承,子类可以扩展父类的功能。文章以动物类层次的设计为例,讨论了按照不同分类方式设计类层次的复杂性和多重继承的优势。最后给出了哺乳动物和鸟类的设计示例,以及能跑、能飞、宠物类和非宠物类的增加对类数量的影响。 ... [详细]
  • 本文介绍了如何使用Express App提供静态文件,同时提到了一些不需要使用的文件,如package.json和/.ssh/known_hosts,并解释了为什么app.get('*')无法捕获所有请求以及为什么app.use(express.static(__dirname))可能会提供不需要的文件。 ... [详细]
  • JDK源码学习之HashTable(附带面试题)的学习笔记
    本文介绍了JDK源码学习之HashTable(附带面试题)的学习笔记,包括HashTable的定义、数据类型、与HashMap的关系和区别。文章提供了干货,并附带了其他相关主题的学习笔记。 ... [详细]
  • 本文介绍了贝叶斯垃圾邮件分类的机器学习代码,代码来源于https://www.cnblogs.com/huangyc/p/10327209.html,并对代码进行了简介。朴素贝叶斯分类器训练函数包括求p(Ci)和基于词汇表的p(w|Ci)。 ... [详细]
author-avatar
书友58737112
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有