防火墙 | 常见命令 | Linux | 开启与关闭端口 | firewall与iptables

2024-02-05 23:18

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

文章目录

  • firewall与iptables区别
    • 官网的解释:
  • firewall基础使用
    • 常用指令
    • 配置firewalld-cmd
    • 信任级别
    • firewall开启和关闭端口
    • 管理服务
    • 配置 IP 地址伪装
    • 端口转发
    • systemctl
  • iptables基础使用
    • 持久化

firewall与iptables区别

CentOS默认安装了firewalld,在 RHEL7 系统中,firewall 取代了 iptables。在 service 层面,两者是平级的,firewall 还是调用了 iptables 的 command,去执行内核的 netfilter。

官网的解释:

firewalld 和 iptables service 之间最本质的不同是:

  • iptables service 在 /etc/sysconfig/iptables 中储存配置,而 firewalld 将配置储存在 /usr/lib/firewalld/ 和 /etc/firewalld/ 中的各种 XML 文件里。要注意,当 firewalld 在Red Hat Enterprise Linux上安装失败时, /etc/sysconfig/iptables 文件就不存在。

  • 使用 iptables service,每一个单独更改意味着清除所有旧有的规则和从 /etc/sysconfig/iptables里读取所有新的规则,然而使用 firewalld 却不会再创建任何新的规则;仅仅运行规则中的不同之处。因此,firewalld 可以在运行时间内,改变设置而不丢失现行连接。

  • 使用 iptables tool 与内核包过滤对话也是如此。
    在这里插入图片描述

firewall基础使用

  • 官网
    4.5. 使用防火墙 Red Hat Enterprise Linux 7 | Red Hat Customer Portal
  • 安装
yum install firewalld

常用指令

  • 使用 systemctl 命令,可实现 firewall 的启动、停止、重启、查看状态、以及开机自启动的开关,命令样式如下
systemctl start/stop/restart/status/enable/disable firewalld
  • firewall开启常见端口命令:
firewall-cmd --zone=public --add-port=80/tcp --permanent
firewall-cmd --zone=public --add-port=53/udp --permanent
  • firewall关闭常见端口命令:
firewall-cmd --zone=public --remove-port=80/tcp --permanent
firewall-cmd --zone=public --remove-port=53/udp --permanent
  • 批量添加区间端口
firewall-cmd --zone=public --add-port=4400-4600/udp --permanentfirewall-cmd --zone=public --add-port=4400-4600/tcp --permanent

配置firewalld-cmd

查看版本: firewall-cmd --version
查看帮助: firewall-cmd --help
显示状态: firewall-cmd --state
查看所有打开的端口: firewall-cmd --zone=public --list-ports
更新防火墙规则: firewall-cmd --reload
更新防火墙规则,重启服务: firewall-cmd --completely-reload
查看已激活的Zone信息:  firewall-cmd --get-active-zones
查看指定接口所属区域: firewall-cmd --get-zone-of-interface=eth0
拒绝所有包:firewall-cmd --panic-on
取消拒绝状态: firewall-cmd --panic-off
查看是否拒绝: firewall-cmd --query-panic

信任级别

通过Zone的值指定

drop: 丢弃所有进入的包,而不给出任何响应 
block: 拒绝所有外部发起的连接,允许内部发起的连接 
public: 允许指定的进入连接 
external: 同上,对伪装的进入连接,一般用于路由转发 
dmz: 允许受限制的进入连接 
work: 允许受信任的计算机被限制的进入连接,类似 workgroup 
home: 同上,类似 homegroup 
internal: 同上,范围针对所有互联网用户 
trusted: 信任所有连接

firewall开启和关闭端口

以下都是指在public的zone下的操作,不同的Zone只要改变Zone后面的值就可以
添加:

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

管理服务

以smtp服务为例, 添加到work zone
添加:

firewall-cmd --zone=work --add-service=smtp

查看:

firewall-cmd --zone=work --query-service=smtp

删除:

firewall-cmd --zone=work --remove-service=smtp

配置 IP 地址伪装

查看:

firewall-cmd --zone=external --query-masquerade

打开:

firewall-cmd --zone=external --add-masquerade

关闭:

firewall-cmd --zone=external --remove-masquerade

端口转发

打开端口转发,首先需要打开IP地址伪装

firewall-cmd --zone=external --add-masquerade

转发 tcp 22 端口至 3753:

firewall-cmd --zone=external --add-forward-port=22:porto=tcp:toport=3753

转发端口数据至另一个IP的相同端口:

firewall-cmd --zone=external --add-forward-port=22:porto=tcp:toaddr=192.168.1.112

转发端口数据至另一个IP的 3753 端口:

firewall-cmd --zone=external --add-forward-port=22:porto=tcp::toport=3753:toaddr=192.168.1.112

systemctl

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

iptables基础使用

  • 安装
yum install iptables-services
  • 使用 systemctl 命令,可实现 iptables/ip6tables 的启动、停止、重启、查看状态、以及开机自启动的开关,命令样式如下:
systemctl start/stop/restart/status/enable/disable iptables
  • 放开端口
iptables -I INPUT -p tcp --dport 8080 -j ACCEPT  # linux iptables开放端口命令
  • ip过滤,禁止192.168.200.113 IP地址的所有类型数据接入
iptables -A INPUT ! -s 192.168.200.113 -j DROP
  • 开发端口范围
iptables -I INPUT -p tcp --dport 22:80 -j ACCEPT  #开放22-80范围的端口
  • 不允许80端口流出
iptables -I OUTPUT -p tcp --dport 80 -j DROP
  • 保存配置
iptables-save > /etc/iptables.up.rules
iptables-save
service iptables save
  • 读取配置
iptables-restore < /etc/iptables.up.rules
  • 配置后需要重启iptables
systemctl restart iptables
  • 查看规则是否生效
iptables -L –n

持久化

(ubuntu)
使用 iptables-persistent
1)安装iptables-persistent
sudo apt-get install iptables-persistent
2)持久化规则
sudo netfilter-persistent save
sudo netfilter-persistent reload

这篇关于防火墙 | 常见命令 | Linux | 开启与关闭端口 | firewall与iptables的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

Linux samba共享慢的原因及解决方案

《Linuxsamba共享慢的原因及解决方案》:本文主要介绍Linuxsamba共享慢的原因及解决方案,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录linux samba共享慢原因及解决问题表现原因解决办法总结Linandroidux samba共享慢原因及解决

新特性抢先看! Ubuntu 25.04 Beta 发布:Linux 6.14 内核

《新特性抢先看!Ubuntu25.04Beta发布:Linux6.14内核》Canonical公司近日发布了Ubuntu25.04Beta版,这一版本被赋予了一个活泼的代号——“Plu... Canonical 昨日(3 月 27 日)放出了 Beta 版 Ubuntu 25.04 系统镜像,代号“Pluc

Linux安装MySQL的教程

《Linux安装MySQL的教程》:本文主要介绍Linux安装MySQL的教程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录linux安装mysql1.Mysql官网2.我的存放路径3.解压mysql文件到当前目录4.重命名一下5.创建mysql用户组和用户并修

Linux上设置Ollama服务配置(常用环境变量)

《Linux上设置Ollama服务配置(常用环境变量)》本文主要介绍了Linux上设置Ollama服务配置(常用环境变量),Ollama提供了多种环境变量供配置,如调试模式、模型目录等,下面就来介绍一... 目录在 linux 上设置环境变量配置 OllamPOgxSRJfa手动安装安装特定版本查看日志在

Linux系统之主机网络配置方式

《Linux系统之主机网络配置方式》:本文主要介绍Linux系统之主机网络配置方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、查看主机的网络参数1、查看主机名2、查看IP地址3、查看网关4、查看DNS二、配置网卡1、修改网卡配置文件2、nmcli工具【通用

Linux系统之dns域名解析全过程

《Linux系统之dns域名解析全过程》:本文主要介绍Linux系统之dns域名解析全过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、dns域名解析介绍1、DNS核心概念1.1 区域 zone1.2 记录 record二、DNS服务的配置1、正向解析的配置

java常见报错及解决方案总结

《java常见报错及解决方案总结》:本文主要介绍Java编程中常见错误类型及示例,包括语法错误、空指针异常、数组下标越界、类型转换异常、文件未找到异常、除以零异常、非法线程操作异常、方法未定义异常... 目录1. 语法错误 (Syntax Errors)示例 1:解决方案:2. 空指针异常 (NullPoi

Linux修改pip和conda缓存路径的几种方法

《Linux修改pip和conda缓存路径的几种方法》在Python生态中,pip和conda是两种常见的软件包管理工具,它们在安装、更新和卸载软件包时都会使用缓存来提高效率,适当地修改它们的缓存路径... 目录一、pip 和 conda 的缓存机制1. pip 的缓存机制默认缓存路径2. conda 的缓

C++常见容器获取头元素的方法大全

《C++常见容器获取头元素的方法大全》在C++编程中,容器是存储和管理数据集合的重要工具,不同的容器提供了不同的接口来访问和操作其中的元素,获取容器的头元素(即第一个元素)是常见的操作之一,本文将详细... 目录一、std::vector二、std::list三、std::deque四、std::forwa

Linux修改pip临时目录方法的详解

《Linux修改pip临时目录方法的详解》在Linux系统中,pip在安装Python包时会使用临时目录(TMPDIR),但默认的临时目录可能会受到存储空间不足或权限问题的影响,所以本文将详细介绍如何... 目录引言一、为什么要修改 pip 的临时目录?1. 解决存储空间不足的问题2. 解决权限问题3. 提