Linux 防火墙与安全管理工具详解
Linux 防火墙与安全管理工具详解
1. Iptables 概述
Iptables 是 Linux 系统中用于控制网络流量的工具,通过定义规则来过滤、转发和修改数据包。其规则可以细致地管理进入和离开系统的数据流。
1.1 三表五链
1.1.1 三表
Iptables 中主要有三种表,每种表用于不同的操作:
filter 表
- 作用:负责数据包的过滤,决定哪些数据包被允许通过。
- 主要链:
- INPUT:处理进入防火墙的数据包。
- OUTPUT:处理从防火墙发出的数据包。
- FORWARD:处理经过防火墙转发的数据包。
nat 表
- 作用:用于网络地址转换,修改数据包的源或目标地址。
- 主要链:
- PREROUTING:在路由决策之前处理数据包。
- POSTROUTING:在数据包离开防火墙之前处理。
- OUTPUT:处理由本机生成的数据包。
mangle 表
- 作用:用于修改数据包的某些特性,例如 TOS、TTL 和标记。
- 主要链:
- PREROUTING:在数据包路由决策前处理。
- POSTROUTING:在数据包离开防火墙前处理。
- INPUT:处理进入防火墙的数据包。
- OUTPUT:处理从防火墙发出的数据包。
- FORWARD:处理转发的数据包。
1.1.2 五链
Iptables 中的五个链分别为:
- INPUT:处理进入防火墙的流量。
- OUTPUT:处理从防火墙出去的流量。
- FORWARD:处理转发流量。
- PREROUTING:所有进入防火墙的数据包首先经过这个链。
- POSTROUTING:所有从防火墙出去的数据包经过这个链。
1.2 Iptables 示例
1.2.1 允许 SSH 访问并拒绝其他流量(filter 表)
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
iptables -A INPUT -j DROP
解析:允许 SSH 访问,所有其他流量将被拒绝。
1.2.2 端口转发示例(nat 表)
iptables -t nat -A PREROUTING -p tcp --dport 80 -j DNAT --to-destination 192.168.1.10:8080
iptables -t nat -A POSTROUTING -j MASQUERADE
解析:将外部访问的 HTTP 流量转发到内部服务器。
1.2.3 修改 TOS 示例(mangle 表)
iptables -t mangle -A OUTPUT -p tcp --dport 80 -j TOS --set-tos 0x10
解析:修改发送到 HTTP 的数据包的 TOS 字段。
2. UFW(Uncomplicated Firewall)
2.1 概述
UFW 是一种用于简化 Iptables 操作的防火墙管理工具,主要用于 Ubuntu 系统。它提供了易于使用的命令行和图形界面。
2.2 主要特点
易于使用:通过简化的命令,使用户能够快速设置防火墙规则。
默认策略:可以轻松设置默认的允许或拒绝规则。
状态管理:支持查看防火墙状态和已配置的规则。
2.3 示例
2.3.1 启用 UFW
ufw enable
2.3.2 允许 SSH
ufw allow ssh
2.3.3 拒绝 HTTP
ufw deny http
3. SELinux(Security-Enhanced Linux)
3.1 概述
SELinux 是一种强制访问控制(MAC)机制,提供额外的安全层,控制系统中进程和对象的交互。它由 NSA 开发,并集成到许多 Linux 发行版中。
3.2 主要特点
细粒度控制:可以根据安全策略精确控制访问权限。
强制执行:不允许绕过设置的安全策略。
上下文管理:每个文件和进程都有安全上下文,以定义访问权限。
3.3 示例
3.3.1 查看 SELinux 状态
sestatus
3.3.2 设置 SELinux 为宽松模式
setenforce 0
3.3.3 设置 SELinux 为强制模式
setenforce 1
4. Firewalld
4.1 概述
Firewalld 是一种动态防火墙管理工具,旨在替代 Iptables。它使用区域和服务的概念来管理规则,允许用户动态地添加和删除规则。
4.2 主要特点
区域管理:根据网络的不同区域(如内部、外部)设置不同的规则。
服务管理:可以使用服务名称来管理规则,而不是使用端口号。
动态更新:支持动态添加、删除规则,无需重启防火墙。
4.3 示例
4.3.1 启动 Firewalld
systemctl start firewalld
4.3.2 允许 SSH 服务
firewall-cmd --add-service=ssh --permanent
firewall-cmd --reload
4.3.3 查看当前规则
firewall-cmd --list-all
Iptables、UFW、SELinux 和 Firewalld 是 Linux 系统中重要的安全管理工具。它们各自有不同的应用场景和特点,能够有效保护系统安全。通过合理配置这些工具,可以实现强大的网络安全策略。
Linux 防火墙与安全管理工具详解的更多相关文章
- Linux 远程数据同步工具详解
一.简介 1 认识 Rsync(remote synchronize)是一个远程数据同步工具,可通过LAN/WAN快速同步多台主机间的文件.Rsync使用所谓的"Rsync算法"来 ...
- 【转】Linux 网络工具详解之 ip tuntap 和 tunctl 创建 tap/tun 设备
原文:https://www.cnblogs.com/bakari/p/10449664.html -------------------------------------------------- ...
- Iperf3网络性能测试工具详解教程
Iperf3网络性能测试工具详解教程 小M 2020年4月17日 运维 本文下载链接 [学习笔记]Iperf3网络性能测试工具.pdf 网络性能评估主要是监测网络带宽的使用率,将网络带宽利用最大化是保 ...
- 【山外笔记-工具框架】iperf3网络性能测试工具详解教程
[山外笔记-工具框架]iperf3网络性能测试工具详解教程 本文下载链接 [学习笔记]iperf3网络性能测试工具.pdf 网络性能评估主要是监测网络带宽的使用率,将网络带宽利用最大化是保证网络性 ...
- LINUX经常使用的命令详解
LINUX经常使用的命令详解 源地址:http://blog.itpub.net/29065182/viewspace-1189162/ 1.man 对你熟悉或不熟悉的命令提供帮助解释 eg:man ...
- linux PHP 编译安装参数详解
linux PHP 编译安装参数详解 ./configure --prefix=/usr/local/php --with-config-file-path=/usr/local/php/etc -- ...
- Linux计划任务Crontab实例详解教程
说明:Crontab是Linux系统中在固定时间执行某一个程序的工具,类似于Windows系统中的任务计划程序 下面通过详细实例来说明在Linux系统中如何使用Crontab 操作系统:CentOS ...
- Linux下tomcat的安装详解
Linux下tomcat的安装详解 来源: ChinaUnix博客 日期: 2007.01.21 22:59 (共有0条评论) 我要评论 一,安装前的准备:1,Linux版本:我的是企业版.(至于红帽 ...
- Linux文件系统的目录结构详解
Linux文件系统的目录结构详解 一.前 言 文章对Linux下所有目录一一说明,对比较重要的目录加以重点解说,以帮助初学者熟练掌握Linux的目录结构. 二.目 录 1.什么是文件系统 2.文件 ...
- Linux驱动开发必看详解神秘内核(完全转载)
Linux驱动开发必看详解神秘内核 完全转载-链接:http://blog.chinaunix.net/uid-21356596-id-1827434.html IT168 技术文档]在开始步入L ...
随机推荐
- java spring boot 权限认证总结瞎记一通,各种 方案。附近如何运行jar包。和如何读配文件
在正式笔之 前先来思考如何将java 的包打包成jar 包同,运行时指定配置,这样运行, 以上问题有空在来研究,有空在来补这个文档 首先呢,先来说说Session 怎么使用,这个在sping boot ...
- 【AppStore】IOS应用上架Appstore的一些小坑
前言 上一篇文章写到如何上架IOS应用到Appstore,其中漏掉了些许期间遇到的小坑,现在补上 审核不通过原因 5.1.1 Guideline 5.1.1 - Legal - Privacy - D ...
- NameCheap域名怎么样,如何注册购买域名?如何解析域名?
Namecheap介绍 Namecheap是一家国外域名注册商和网站托管公司,成立于2000年,提供域名注册.虚拟主机.电子邮件托管.SSL证书.免费的WHOIS保护.CDN.VPS主机和独立服务器. ...
- 【MongoDB】Re04 副本集 ReplicationSet
MongoDB中的副本集(Replica Set)是一组维护相同数据集的mongod服务. 副本集可提供冗余和高 可用性,是所有生产部署的基础. 也可以说,副本集类似于有自动故障恢复功能的主从集群.通 ...
- 【Hibernate】02 快速入门
环境搭建 : Windo7 x64 + IDEA 2018+ JDK 8+ Maven 3.0+ MySQL 5.0+ 创建Hibernate工程: 导入依赖坐标 <dependencies&g ...
- 实现一个终端文本编辑器来学习golang语言:第二章Raw模式下的输入输出
从第二章开始,在每个小节的最后都会有一些代码实操作业,你可以选择自己完成(比较推荐),再对照我的实现方式,当然也可以直接看我的代码实现.不过,之后的各个功能实现,我都会基于我先前的代码实现版本,在它的 ...
- npm WARN config global `--global`, `--local` are deprecated. Use `--location 的解决方法
1.背景 2.解决步骤 2.1.找到nodejs的安装路径 2.2.修改配置文件 将文件里的 prefix-g 改为 prefix --location=global 修改前: 修改后: 点击保存就解 ...
- 卧槽,牛逼!vue3的组件竟然还能“暂停”渲染!
前言 有的时候我们想要从服务端拿到数据后再去渲染一个组件,为了实现这个效果我们目前有几种实现方式: 将数据请求放到父组件去做,并且使用v-if控制拿到子组件后才去渲染子组件,然后将数据从父组件通过pr ...
- Linux-mknod命令
mknod 创建块设备或者字符设备文件.此命令的适用范围:RedHat.RHEL.Ubuntu.CentOS.SUSE.openSUSE.Fedora. 用法: mknod [选项]... 名称 类型 ...
- apr库编译及队列使用笔记
操作系统 :CentOS 7.9_x64 apr库版本:apr-1.7.4 & apr-util-1.6.3 gcc 版本:4.8.5 队列功能在C++或Python等脚本语言里面,是很容易就 ...