Firewalld防火墙 常见命令

2024-08-21 13:48

本文主要是介绍Firewalld防火墙 常见命令,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1、firewalld的基本使用

启动: systemctl start firewalld

查看状态: systemctl status firewalld 

停止: systemctl disable firewalld

禁用: systemctl stop firewalld

 

2.systemctl是CentOS7的服务管理工具中主要的工具,它融合之前service和chkconfig的功能于一体。

启动一个服务:systemctl start firewalld.service

关闭一个服务:systemctl stop firewalld.service

重启一个服务:systemctl restart firewalld.service

显示一个服务的状态:systemctl status firewalld.service

 

在开机时启用一个服务:systemctl enable firewalld.service

在开机时禁用一个服务:systemctl disable firewalld.service

 

查看服务是否开机启动:systemctl is-enabled firewalld.service

查看已启动的服务列表:systemctl list-unit-files|grep enabled

查看启动失败的服务列表:systemctl --failed

 

3.配置firewalld-cmd

查看版本:               firewall-cmd --version

查看帮助:             firewall-cmd --help

显示状态:             firewall-cmd --state

 

查看所有打开的端口:             firewall-cmd --zone=public --list-ports

更新防火墙规则:             firewall-cmd --reload

查看区域信息:                  firewall-cmd --get-active-zones

查看指定接口所属区域:            firewall-cmd --get-zone-of-interface=eth0

 

拒绝所有包:                firewall-cmd --panic-on

取消拒绝状态:             firewall-cmd --panic-off

查看是否拒绝:             firewall-cmd --query-panic

 

暂时开放 ftp 服务 :              firewall-cmd --add-service=ftp

永久开放 ftp 服务 :              firewall-cmd --add-service=ftp --permanent

查询服务的启用状态              firewall-cmd --query-service ftp

开放mysql端口                     firewall-cmd --add-service=mysql
阻止http端口                       firewall-cmd --remove-service=http 

 

firewall-cmd --list-services                          # 查看开放的服务
firewall-cmd --add-port=3306/tcp              # 开放通过tcp访问3306
firewall-cmd --remove-port=80tcp              # 阻止通过tcp访问3306
 

开放postgresql服务                    #firewall-cmd --add-service=postgresql --permanent

重载防火墙 (开放的服务设置完,重载防火墙)                               #firewall-cmd --reload

 

检查防火墙状态            firewall-cmd --state

让设定生效
# systemctl restart firewalld

检查设定是否生效
# iptables -L -n | grep 21

 

那怎么开启一个端口呢

添加

firewall-cmd--zone=public--add-port=80/tcp --permanent    (--permanent永久生效,没有此参数重启后失效)

重新载入

firewall-cmd --reload

查看

firewall-cmd--zone=public--query-port=80/tcp

删除

firewall-cmd--zone=public--remove-port=80/tcp --permanent

 

4.  查看已有规则,查看添加或者删除的端口

firewall-cmd --list-all

[root@localhost ~]# firewall-cmd --list-all
publictarget: defaulticmp-block-inversion: nointerfaces: sources: services: ssh dhcpv6-clientports: 3128/tcp 5432/tcpprotocols: masquerade: noforward-ports: source-ports: icmp-blocks: rich rules: 

添加:

firewall-cmd --zone=public --add-port=6666/tcp --permanent

firewall-cmd --zone=public --add-port=7777/tcp --permanent

firewall-cmd --zone=public --add-port=8888/tcp --permanent

firewall-cmd --zone=public --add-port=9999/tcp --permanent

 

删除:

firewall-cmd --zone= public --remove-port=6666/tcp --permanent

firewall-cmd --zone= public --remove-port=7777/tcp --permanent

firewall-cmd --zone= public --remove-port=8888/tcp --permanent

firewall-cmd --zone= public --remove-port=9999/tcp --permanent

 

添加指定ip访问特定端口规则:

firewall-cmd --permanent --add-rich-rule 'rule family=ipv4 source address=192.168.0.111 port port=8088 protocol=tcp accept'

 

删除指定某个ip访问特定端口规则:

firewall-cmd --permanent --remove-rich-rule="rule family="ipv4" source address="192.168.0.111" port protocol="tcp" port="8088" accept"

 

firewalld and iptables禁止端口转发

禁止某个ip访问

iptables -I INPUT -s 138.138.138.138 -j DROP

firewall  -cmd   --permanent   --add-rich-rule='rule family=ipv4   source   address="138.138.138.138"   drop'

端口转发

iptables   -t   nat   -A   PREROUTING   -p   tcp   --dport   80   -j   REDIRECT --to-port   8080

 

端口转发

端口转发

端口转发可以将指定地址访问指定的端口时,将流量转发至指定地址的指定端口。转发的目的如果不指定ip的话就默认为本机,如果指定了ip却没指定端口,则默认使用来源端口。

如果配置好端口转发之后不能用,可以检查下面两个问题:

  • 比如我将80端口转发至8080端口,首先检查本地的80端口和目标的8080端口是否开放监听了
  • 其次检查是否允许伪装IP,没允许的话要开启伪装IP
# 将80端口的流量转发至8080firewall-cmd --add-forward-port=port=80:proto=tcp:toport=8080# 将80端口的流量转发至firewall-cmd --add-forward-port=port=80:proto=tcp:toaddr=192.168.1.0.1192.168.0.1# 将80端口的流量转发至192.168.0.1的8080端口firewall-cmd --add-forward-port=port=80:proto=tcp:toaddr=192.168.0.1:toport=8080
  • 当我们想把某个端口隐藏起来的时候,就可以在防火墙上阻止那个端口访问,然后再开一个不规则的端口,之后配置防火墙的端口转发,将流量转发过去。
  • 端口转发还可以做流量分发,一个防火墙拖着好多台运行着不同服务的机器,然后用防火墙将不同端口的流量转发至不同机器。

这篇关于Firewalld防火墙 常见命令的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1093331

相关文章

MySQL 索引简介及常见的索引类型有哪些

《MySQL索引简介及常见的索引类型有哪些》MySQL索引是加速数据检索的特殊结构,用于存储列值与位置信息,常见的索引类型包括:主键索引、唯一索引、普通索引、复合索引、全文索引和空间索引等,本文介绍... 目录什么是 mysql 的索引?常见的索引类型有哪些?总结性回答详细解释1. MySQL 索引的概念2

setsid 命令工作原理和使用案例介绍

《setsid命令工作原理和使用案例介绍》setsid命令在Linux中创建独立会话,使进程脱离终端运行,适用于守护进程和后台任务,通过重定向输出和确保权限,可有效管理长时间运行的进程,本文给大家介... 目录setsid 命令介绍和使用案例基本介绍基本语法主要特点命令参数使用案例1. 在后台运行命令2.

Linux如何查看文件权限的命令

《Linux如何查看文件权限的命令》Linux中使用ls-R命令递归查看指定目录及子目录下所有文件和文件夹的权限信息,以列表形式展示权限位、所有者、组等详细内容... 目录linux China编程查看文件权限命令输出结果示例这里是查看tomcat文件夹总结Linux 查看文件权限命令ls -l 文件或文件夹

idea的终端(Terminal)cmd的命令换成linux的命令详解

《idea的终端(Terminal)cmd的命令换成linux的命令详解》本文介绍IDEA配置Git的步骤:安装Git、修改终端设置并重启IDEA,强调顺序,作为个人经验分享,希望提供参考并支持脚本之... 目录一编程、设置前二、前置条件三、android设置四、设置后总结一、php设置前二、前置条件

Debian系和Redhat系防火墙配置方式

《Debian系和Redhat系防火墙配置方式》文章对比了Debian系UFW和Redhat系Firewalld防火墙的安装、启用禁用、端口管理、规则查看及注意事项,强调SSH端口需开放、规则持久化,... 目录Debian系UFW防火墙1. 安装2. 启用与禁用3. 基本命令4. 注意事项5. 示例配置R

Linux系统之lvcreate命令使用解读

《Linux系统之lvcreate命令使用解读》lvcreate是LVM中创建逻辑卷的核心命令,支持线性、条带化、RAID、镜像、快照、瘦池和缓存池等多种类型,实现灵活存储资源管理,需注意空间分配、R... 目录lvcreate命令详解一、命令概述二、语法格式三、核心功能四、选项详解五、使用示例1. 创建逻

C语言进阶(预处理命令详解)

《C语言进阶(预处理命令详解)》文章讲解了宏定义规范、头文件包含方式及条件编译应用,强调带参宏需加括号避免计算错误,头文件应声明函数原型以便主函数调用,条件编译通过宏定义控制代码编译,适用于测试与模块... 目录1.宏定义1.1不带参宏1.2带参宏2.头文件的包含2.1头文件中的内容2.2工程结构3.条件编

MySQL深分页进行性能优化的常见方法

《MySQL深分页进行性能优化的常见方法》在Web应用中,分页查询是数据库操作中的常见需求,然而,在面对大型数据集时,深分页(deeppagination)却成为了性能优化的一个挑战,在本文中,我们将... 目录引言:深分页,真的只是“翻页慢”那么简单吗?一、背景介绍二、深分页的性能问题三、业务场景分析四、

nginx -t、nginx -s stop 和 nginx -s reload 命令的详细解析(结合应用场景)

《nginx-t、nginx-sstop和nginx-sreload命令的详细解析(结合应用场景)》本文解析Nginx的-t、-sstop、-sreload命令,分别用于配置语法检... 以下是关于 nginx -t、nginx -s stop 和 nginx -s reload 命令的详细解析,结合实际应

C#连接SQL server数据库命令的基本步骤

《C#连接SQLserver数据库命令的基本步骤》文章讲解了连接SQLServer数据库的步骤,包括引入命名空间、构建连接字符串、使用SqlConnection和SqlCommand执行SQL操作,... 目录建议配合使用:如何下载和安装SQL server数据库-CSDN博客1. 引入必要的命名空间2.