百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术文章 > 正文

Linux,操作系统,防火墙,Netfilter,命令及操作

ahcoder 2025-02-21 12:00 31 浏览

Netfilter模块

Netfilter是Linux 2.4.x引入的一个子系统,它作为一个通用的、抽象的框架,提供一整套的hook函数的管理机制,使得诸如数据包过滤、网络地址转换(NAT)和基于协议类型的连接跟踪成为了可能。

Netfilter的架构就是在整个网络流程的若干位置放置了一些检测点(HOOK),而在每个检测点上登记了一些处理函数进行处理。

查看内核启动的参数(查看Netfilter是否启动):cat
/boot/config-3.10.0-957.e17.x86_64

Netfilter(IP层,网络层)的五个HOOK点的位置

1、NF_IP_PRE_ROUTING:刚刚进入网络层的数据包通过此点(刚刚进行完版本号,校验和等检测), 目的地址转换在此点进行;

2、NF_IP_LOCAL_IN:经路由查找后,送往本机的通过此检查点,INPUT包过滤在此点进行;

3、NF_IP_FORWARD:要转发的包通过此检测点,FORWARD包过滤在此点进行;

4、NF_IP_POST_ROUTING:所有马上便要通过网络设备出去的包通过此检测点,内置的源地址转换功能(包括地址伪装)在此点进行;

5、NF_IP_LOCAL_OUT:本机进程发出的包通过此检测点,OUTPUT包过滤在此点进行。

CentOS6&CentOS7

CentOS6的防火墙-->iptables

---->4表13链,链表之间的关系。

---->iptables-save

CentOS7的防火墙-->firewall-cmd

---->firewall-cmd命令

包状态:数据能否穿透防火墙取决于包的状态。

---->数据包发不出

---->数据包回不来

---->通过内核管理的8个选项:包状态、包类型、源和目的端口、源和目的IP、源和目的mac。

---->管理7层防火墙,7层防火墙是在应用层工作的防火墙,它实时监控保护系统各个方面的行为。保护系统的安全运行,有效地保证系统的正常运行,网络系统安全中有良好的表现。

查看命令的软件包:yum provides iptables

读取配置文件:
/etc/sysconfig/iptables-config

firewall服务和firewall命令以及firewall区域

firewall-cmd:

---->firewall,根据区域来判断规则。

---->firewall-cmd --

---->firewall-cmd --get-zones

区域(9个):block(阻塞)、dmz(非军事交战区或隔离区)、drop(丢弃)、external、home、internal、public、trusted、work

drop,接收的任何网络数据包都会被丢弃,没有任何回复,仅能有发送出去的网络连接。

block,接收的任何网络数据包都被 IPv4 的 icmp-host-prohibited 信息和 IPv6 的 icmp6-adm-prohibited 信息所拒绝。

public,在公共区域内使用,不能相信网络内的其他计算机不会对你的计算机造成危害,只能接收经过选取的连接。

external,特别是为路由器启用了伪装功能的外部网,你不能信任来自网络的其他计算机,不能相信他们不会对你的计算机造成危害,只能接收经过选取的连接。

dmz,用于你的非军事区内的电脑,此区域内可公开访问,可以有限地进入你的内部网络,仅仅接收经过选取的连接。

work,用于工作区,你可以基本相信网络内的其他计算机不会危害你的电脑,仅接收经过选取的连接。

home,用于家庭网络,你可以基本相信网络内的其他计算机不会危害你的电脑,仅接收经过选取的连接。

internal,用于内部网络,你可以基本相信网络内的其他计算机不会危害你的电脑,仅接收经过选取的连接。

trusted,可以接收所有的网络连接。

动态管理防火墙:支持zones管理的防火墙,firewall按传入流量划分区域。

逻辑说明:1、如果传入的数据的Saddr,和区域的某个S规则匹配,就把这个包通过这路由;2、接口相同;3、默认区域。

具体操作:

查看所有区域:firewall-cmd --list-all
查看某个区域:firewall-cmd --zone=public--list-all
查看默认区域:firewall-cmd --get-default-zone
查看所有区域(激活的、可用的):firewall-cmd --get-zones
查看正在所用的区域(启用的):firewall-cmd --get-active-zones
查看防火墙的状态:firewall-cmd --state
查看防火墙支持的所有协议:firewall-cmd --get-services
查看协议icmp所支持的类型:firewall-cmd --get-icmptypes
查看网卡在哪个区域:firewall-cmd --get-zone-of-interface=ens33
查询当前区域内支持的服务:firewall-cmd --list-services
查询当前区域内支持的端口:firewall-cmd --list-ports
更改当前区域:firewall-cmd --set-default-zone=internal
某个网卡绑定到区域内:firewall-cmd --zone=work --add-interface=eth1
某个网卡更改绑定到区域:firewall-cmd --zone=work --change-interface=eth1
某个网卡更改移除到区域:firewall-cmd --zone=work --remove-interface=eth1
某个网卡查看绑定某个区域:firewall-cmd --zone=work --query-interface=eth1
区域内允许使用http协议:firewall-cmd --zone=work --add-service=http
区域内移除使用http协议:firewall-cmd --zone=work --remove-service=http
区域内查询使用http协议:firewall-cmd --zone=work --query-service=http
区域内允许使用80端口:firewall-cmd --zone=work --add-port=80/tcp
区域内允许使用20到30端口:firewall-cmd --zone=work --add-port=20-30/tcp
区域内拒绝使用20到30端口(本身不允许):firewall-cmd --zone=work --remove-port=20-30/tcp
上网伪装:
允许work区域访问外网:firewall-cmd --zone=work --add-masquerade
拒绝work区域访问外网:firewall-cmd --zone=work --remove-masquerade
查询work区域访问外网:firewall-cmd --zone=work --query-masquerade
禁止阻塞应答包:firewall-cmd --zone=work --add-icmp-block=ech0-reply
查询阻塞应答包:firewall-cmd --zone=work --query-icmp-block=ech0-reply
移除阻塞应答包:firewall-cmd --zone=work --remove-icmp-block=ech0-reply
禁止阻塞请求包:firewall-cmd --zone=work --add-icmp-block=ech0-request
查询阻塞请求包:firewall-cmd --zone=work --query-icmp-block=ech0-request
移除阻塞请求包:firewall-cmd --zone=work --remove-icmp-block=ech0-request
数据包的转发:
firewall-cmd --zone=work --add-forward-port=[-port]:proto={:toport=port|:toaddr=
} firewall-cmd --reload 端口转发(80端口转到192.168.1.2的8080端口):firewall-cmd --zone=work --add-forward-port=port=80:proto=tcp:toport=8080:toaddr=192.168.1.2 移除端口转发:firewall-cmd --zone=work --remove-forward-port=port=80:proto=tcp:toport=8080:toaddr=192.168.1.2
富策略:策略中的特例
firewall-cmd --zone=public --list-rich-rules
inverse---->取反
语法:
rule family= source adddress= invet=true destination address= invet=true server name=<服务名> port=<服务端口> protocol=  
举例:
从1.1.1.1过来的地址,访问8888端口,转到80端口:
firewall-cmd --permanent --add-rich-rule='rule family=ipv4 source address=1.1.1.1/8 forward-port port=8888 protocol=tcp to-port=80'
阻止可疑的IP地址访问:
firewall-cmd --permanent --add-rich-rule='rule family=ipv4 source address=10.0.0.0/24 drop'
限制某个协议每分钟允许访问3次(限流的作用):
firewall-cmd --permanent --add-rich-rule='rule service name=ssh accept limit value=3/m'
伪装IP,允许192.168.0.0/24访问:
firewall-cmd --permanent -zone=dmz ---add-rich-rule='rule family=ipv4 source address=192.168.0.0/24 masquerade' 
开放服务器的端口:
firewall-cmd --permanent --zone=public --add-port=22/tcp 
firewall-cmd --permanent --zone=public --add-port=100-500/tcp
firewall-cmd --reload

允许某个IP/IP地址段访问某个端口:
firewall-cmd --permanent --add-rich-rule="rule family="ipv4" source address="192.168.1.1" port protocol="tcp" port="8080" accept"
firewall-cmd --reload

限制某个IP访问某个端口:
firewall-cmd --permanent --add-rich-rule="rule family="ipv4" source address="192.168.1.1" port protocol="tcp" port="8080" reject"
firewall-cmd --reload
防火墙的规则文件:
vi /etc/firewalld/zones/public.xml

相关推荐

linux服务器--PVE(一)简介及安装(pve安装ifupdown2)

1.PVE(ProxmoxVirtualEnvironment)简介ProxmoxVirtualEnvironment基于debian,是一个完整的、开源的企业虚拟化服务器管理平台。它在一个平...

手把手教你!如何在 Linux 服务器中搭建 Sentinel 环境?

你在Linux服务器上搭建Sentinel环境时,是不是也遇到过各种报错,要么是启动失败,要么是配置后无法正常访问控制台?看着同事顺利搭建好,自己却一头雾水,别提多着急了!其实,很多互联网大厂...

Linux高性能服务器技术总结(linux高性能服务器编程怎么样)

1服务器简介服务器是提供计算服务的设备,由于服务器需要响应用户请求,因此在处理能力、稳定性、安全性、可扩展性、可管理性等方面提出了较高要求。随着虚拟化技术的进步,云服务器(ECS)已经快速的在...

从 0 到 1:使用 Ansible 自动化运维 Linux 服务器全流程

Ansible是一款强大的IT自动化工具,广泛用于服务器配置管理、软件部署和任务自动化。本文将带你从零开始,学习如何使用Ansible对Linux服务器进行自动化运维,涵盖Ansibl...

诡异!Win11 “此电脑” 莫名现 Linux 图标,啥情况?

我这电脑出了个怪事儿,“此电脑”下面莫名其妙多了个Linux的图标,可我压根儿就没装过Linux系统啊!琢磨了一下,估计是系统可选功能里那个“适用于Linux的Windows子系统”插件搞的鬼。实例系...

Linux基础运维篇:Linux 终端与 Shell 基础(第006课)

一、啥是终端?先搞懂「人和电脑对话的窗口」你可以把终端(Terminal)理解成一个「文字版的电脑操作台」。在Windows里,类似「命令提示符」或PowerShell;在Linux里,...

2025罗技大师系列智「简」大赛-罗技大师系列-MX KEYS S键盘评测

在2025罗技大师系列智「简」大赛中,MXKEYSS键盘凭借其卓越的设计与智能化体验,成为众多创作者的理想之选。本篇文章将深入评测这款键盘的核心功能、使用体验及创新亮点,帮助你了解它如何提升...

Linux编辑命令vim(linux使用vim编辑文件)

1、vi编辑器简介vim是一个全屏幕纯文本编辑器,是vi编辑器的增强版,我们主要讲解的是vim编辑器。可以利用别名让输入vi命令的时候,实际上执行vim编辑器,例如:#定义别名...

全选是ctrl加什么?全选的快捷键是什么介绍

如何高效使用「全选」快捷键(Ctrl+A/A)提升工作效率在日常电脑操作中,"全选"是最基础却至关重要的功能之一。无论您是文字工作者、程序员还是普通用户,掌握全选快捷键都能极大提升操作...

Linux命令大全(linux命令大全书)

个人博客:https://chunyu.work/文章较长,可以收藏备用常用快捷键(1)ctrl+c:停止进程(2)ctrl+l:清屏(3)善于用tab键(4)上下键:查找执行过的命令文件目录类(...

Xshell是做什么用的?Xshell使用教程分享

Xshell是一款功能强大的终端模拟器,支持SSH1,SSH2,SFTP,TELNET,RLOGIN和SERIAL。通过提供业界先进的性能,Xshell包含了其他SSH客户端无法发现的功能和优势,作为...

Java 开发者线上问题排查常用的 15 个 Linux 命令

作为Java开发者,线上环境的问题排查是日常工作的重要组成部分。熟练掌握Linux命令能大幅提升排查效率,快速定位进程异常、日志错误、性能瓶颈等核心问题。本文结合Java应用特点,整理1...

Linux的常用命令就是记不住,怎么办?

1.帮助命令1.1help命令#语法格式:命令--help#作用:查看某个命令的帮助信息#示例:#ls--help查看ls命令的帮助信息#netst...

别再乱学 Linux 了!这 5 个核心技巧,让你效率飙升 10 倍!

在Linux学习的漫漫长路上,不少人犹如在黑暗中摸索的行者,四处碰壁,学习效果却不尽如人意。你是不是也曾在海量的Linux知识面前迷失方向,感觉自己投入了大量时间,却收效甚微?其实,掌握Li...

Linux终端神器Terminator时隔1年回归,2.1.5新版发布

IT之家5月23日消息,科技媒体linuxiac今天(5月23日)发布博文,报道称Terminator在沉寂一年后,最新发布了2.1.5版本,在分割终端窗格时支持克隆SSH...