AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 1131592
Accepted
Richard T
Richard T
Asked: 2023-05-21 10:08:48 +0800 CST2023-05-21 10:08:48 +0800 CST 2023-05-21 10:08:48 +0800 CST

Fedora Server 38 作为防火墙/网关的网络问题

  • 772

这个环境几乎所有东西都是双胞胎,包括两个网络服务器/防火墙/网关系统,而且它们的版本已经很老了,所以我决定从其中一个升级Fedora Server 30 to 38。当然,这个想法是将两者都“带入现代时代”,但一次一个。

我的时机很奇怪,因为就在我开始升级的同时,甚至没有接触(物理或电子)另一台服务器,它就决定失败了!所以,现在我有一个“服务器停机”的场景。-呃- 不幸的是,这也意味着我没有可供查看的工作示例。

我没有接触的那个显然有硬件问题,我现在无法解决它们,所以我专注于我已经开始的那个,它现在已经从 Fedora Server 38 的升级/更新中出现了。 . 除了它有一个问题,它不是一个真正的网关!确认!

需要明确的是,从它你可以很好地访问互联网和内部网络。但它并没有通过它传递位。

当然,它都是通用的 Fedora Server(Fedora Core 38,服务器版本进行了任何调整)并且 30 和 38 之间的任何差异都可能是巨大的,尽管这里最重要的是网络。

它有两个 NIC,我按原样配置它们(即 IP 地址、掩码等),实际上安装过程似乎有助于识别哪个 NIC 是内部的,哪个是外部的。我使用了我过去的经验,并且非常确定我做对了。

事实上,一旦启动,我就可以立即通过内部网络通过 ssh 访问该框。而且,好吧,在这样的系统上有很多事情要做,但很快我就了解了这一切的防火墙方面。(那时我没有意识到另一个系统没有响应。)

我做的第一件事是将接口移动到内部和外部区域,然后打开外部区域的伪装。我使用 forward-port 命令等转发邮件等等,最终得到的外部看起来像这样:

# firewall-cmd --zone=external --list-all
external (active)
  target: default
  icmp-block-inversion: no
  interfaces: enp1s0
  sources:
  services: http https ssh
  ports:
  protocols:
  forward: yes
  masquerade: yes
  forward-ports:
        port=25:proto=tcp:toport=25:toaddr=192.168.1.1
  source-ports:
  icmp-blocks:
  rich rules:

另一个,内部:

# firewall-cmd --zone=internal --list-all
internal (active)
  target: default
  icmp-block-inversion: no
  interfaces: enp2s0
  sources:
  services: dhcpv6-client mdns samba-client ssh
  ports:
  protocols:
  forward: yes
  masquerade: no
  forward-ports:
  source-ports:
  icmp-blocks:
  rich rules:

顺便说一句,我没有向内部区域添加任何服务——我猜它们显然只是默认设置。

我花了很多时间在路由上,因为从一开始我就觉得它很麻烦。然而,现在是这样的:

# route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         router           0.0.0.0         UG    100    0        0 enp1s0
router           0.0.0.0         255.255.255.255 UH    100    0        0 enp1s0
192.168.1.1     0.0.0.0         255.255.255.0   U     101    0        0 enp2s0
192.168.1.1     0.0.0.0         255.255.255.0   U     101    0        0 enp2s0

仅供参考,这个版本的 Fedora 不使用 IP 表,而是使用网络管理器——我从一开始就讨厌的工具集,但现在看起来更成熟了。无论如何,在网上可以找到的大多数资料都谈到了这种较旧的策略,但没有任何帮助。但是,此页面为人们指明了正确的总体方向。

更新 1

我得到了显然备份失败的旧硬件。这并不难做到,但它增加了我们的胜算。...我说“我们的”,因为一位同事加入了我的行列;他专注于旧盒子,而我专注于新盒子。

NEITHER 没有将位作为网关/防火墙传递,这让我感到困惑。然而,我的同事提醒说,一个系统已经不能正常工作,可能是由于尝试让特定的 OpenVPN 安装运行失败。既然他做了那项工作,那么,他将继续在那里。

这必须很简单;什么基本原则被忽视了?!

gateway
  • 1 1 个回答
  • 121 Views

1 个回答

  • Voted
  1. Best Answer
    Richard T
    2023-05-22T05:04:09+08:002023-05-22T05:04:09+08:00

    dhcpv6-client事实证明,系统正在阻止除服务、mdns、之外的所有服务的传递samba-client,ssh因为这些服务已经配置为已接受。

    从某种意义上说,它工作正常,只是没有配置为传递所有位。

    任何改变从内部接口接受数据包的防火墙指令,无论是通过 or 命令firewall-cmd还是nmcli通过配置文件(例如/etc/NetworkManager/system-connections/enp1s0.nmconnection.

    实际上,您最快的选择是对内部界面进行以下更改之一:

    1. 将接口置于“受信任”区域,或者;

    2. 启用每个单独的“服务”和/或端口(这对我们这些拥有我们刚刚发明的服务的人来说很烦人——你知道,“黑客”这样做……),或者;

    3. 将内部区域的“目标”设置为“接受”,如下所示:firewall-cmd --zone=internal --set-target=ACCEPT,或;

    请注意,我从未尝试过选项 3,但根据文档,它应该有效。

    在我看来,安全架构存在缺陷,并且鉴于 Network Manager 仍在进行实质性开发,我将发表这些评论,希望能扩展对此事的思考。以机智:

    它已经具备了基础知识,但人为地限制了灵活性,应该加以改进。请注意,它已经必须执行该区域是否恰好被称为“受信任”的布尔检查,因此让“受信任”只是所有区域的单位属性更有意义。这将允许权限是加法的或减法的;如果该位为零,则从不允许任何内容的前提开始,然后列出例外情况,或者如果设置,则使用允许所有内容的前提,然后列出例外情况。这是更好地设计(通常是大型)、复杂的软件包做事的方式,比如BigSur 系统,例如,它恰好提供了这种安全逻辑——加法或减法;您要么全部授予然后显式删除,要么不授予任何特权然后添加一些。它对于系统管理来说要快得多,而且更容易理解,而不是像区域恰好被命名为“受信任”那样出现奇怪的异常。

    但是后来,我读到 Network Manager 的初衷是为不太熟练的普通观众服务,因为 IP 表被认为太难处理了。(虽然 IP 表具有挑战性,但网络管理人员不得不向其复杂的“丰富规则”低头。......但我离题了。

    • 0

相关问题

  • windows下如何强制IE选择网卡?

  • Windows下基于规则的网关选择

  • Skype-SIP 网关

  • 短信到邮件网关

  • 我可以让我的私人 Windows 服务器通过前端(公共)服务器访问互联网吗?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve