Proxmox与OPNsense作为防火墙/ GW - 路由问题(Proxmox with OPN

2019-09-28 18:03发布

此设置应根据proxmox,是一个opnsense VM托管在Proxmox本身,这将保护proxmox后面,提供防火墙,普里瓦LAN和DHCP / DNS的虚拟机,并提供一个IPsec连接到LAN访问所有虚拟机/ Proxmox未NAT的。 服务器是典型的HETZNER服务器,所以只有在NIC,但多个IP地址或在此NIC /子网。

由于集群阻滞剂与PCI-直通设置这是我的另类

  1. Proxmox服务器与1 NIC(eth0的)
  2. 3个公共1IPs,IP2 / 3由MAC在数据中心路由(为eth0)
  3. KVM桥接设置了(eth0没有IP,vmbr0桥与IP1为eth0)
  4. 专用LAN上vmbr30,10.1.7.0/24
  5. 在proxmox服务器上的的shorewall

为了更好地勾勒出的设置,我创建这个图纸 :(不知道它的完美,告诉我该怎么改进)

文字描述:

在Proxmox网络接口

auto lo
iface lo inet loopback

auto eth0
iface eth0 inet manual
    pre-up sleep 2

auto vmbr0
# docs at  
iface vmbr0 inet static
    address  External-IP1(148.x.y.a)
    netmask  255.255.255.192

    # Our gateway is reachable via Point-to-Point tunneling
    # put the Hetzner gateway IP address here twice
    gateway  DATACENTER-GW1
    pointopoint DATACENTER-GW1

    # Virtual bridge settings
    # this one is bridging physical eth0 interface
    bridge_ports eth0
    bridge_stp off
    bridge_fd 0
    pre-up sleep 2
    bridge_maxwait 0
    metric 1

    # Add routing for up to 4 dedicated IP's we get from Hetzner
    # You need to

    # opnsense
    up route add -host External-IP2(148.x.y.b)/32 dev vmbr0
    # rancher
    up route add -host External-IP2(148.x.y.c)/32 dev vmbr0

    # Assure local routing of private IPv4 IP's from our
    # Proxmox host via our firewall's WAN port
    up ip route add 10.1.7.0/24 via External-IP2(148.x.y.b) dev vmbr0

auto vmbr30
iface vmbr30 inet static
    address  10.1.7.2
    netmask  255.255.255.0
    bridge_ports none
    bridge_stp off
    bridge_fd 0
    pre-up sleep 2
    metric 1

上的shorewall Proxmox

接口

wan     eth0            detect          dhcp,tcpflags,nosmurfs
wan     vmbr0           detect          bridge
lan     vmbr30          detect          bridge

政策:

lan             lan             ACCEPT          -               -
fw              all             ACCEPT          -               -
all             all             REJECT          INFO               -

OPNsense

  1. WAN是ExternalIP2,附接到与vmbr0 MAC-XX
  2. LAN是10.1.7.1,附接到vmbr30

什么是工作:

  • 基本设置工作正常,我可以用IP2访问opnsense,我可以IP1访问proxmox,我可以在IP3访问牧场主-VM - 这就是不需要任何路由。
  • 我可以与IPSec的移动客户端,以连接OPNsense,从虚拟IP范围172.16.0.0/24提供接入局域网(10.1.7.0/24)
  • 我可以访问10.1.7.1(opnsense),同时用OpenVPN的连接
  • 我可以访问从OPNsense 10.1.7.11 / 10.1.7.151(10.1.7.1)(壳)
  • 我可以访问从othervm 10.1.7.11 / 10.1.7.1(10.1.7.151)(壳)

什么不工作:

一个)连接到10.1.7.11/10.1.7.151或10.1.7.2从IPsec客户端

B)[解决在UPDATE 1]从10.1.7.1连接到10.1.7.2(opnsense)

C)它好像我有asynchron路由,而我可以访问如10.1.7.1:8443我看到很多,如果条目

d)安全局域网共享将包括我统治IPSEC链“从*到LAN接受” - 但是这并没有为我工作,我不得不“从*到*接受”加


问题:

我)我当然要修复A)B)C)d),可能开始理解c)和d)

II),这将有助于在此设置,添加第二个NIC?

III),这可能是因为我激活把net.ipv4.ip_forward的proxmox主机上的问题(不应该说,它是相当路由?)

当我得到这个理顺我很想放在如何运行OPNsense与在Proxmox专用网络设备的全面指导,使用HAproxe + LE通过一些服务于外部世界,并访问使用IPsec私有LAN

UPDATE1:

删除up ip route add 10.1.7.0/24 via IP2 dev vmbr0从vmbr0上proxmox固定的,无论是proxmox可以访问10.1.7.0/24,也可能有来自局域网的网络访问过的问题。

UPDATE2:

我创建了一个更新/修改的设置,在使用PCI-直通。 目标是一致的-它降低了复杂性- 在这里看到

Answer 1:

有些direly需要粗糙基础第一:

  • 有路由,这是IP的报文上三层。
  • 那里的开关,它是MAC的和二层帧。

另外你说的vmbr0 / 1/30,但只有0和30在你的配置所示。 的shorewall不会为你的虚拟机的连接物(iptables的是三层,ebtables将是对比二层,但你的框架应该只是由的shorewall飞,没有得到的HV,而是去到虚拟机的直接。的shorewall只是使用iptables一个前端在背景中)。

有了这样的方式:

通常你不需要在proxmox桥梁任何路由。 桥是一个开关,只要您关注。 vmbr0是你的eth0与链接的虚拟外部桥接(从而创造了一个物理网卡和虚拟接口之间的一个内核的链接,让数据包在所有流动)。 桥还可以在不连接到它在所有的IP上运行。 但有HV可,通常是一个外部IP连接到它。 否则,你就必须建立防火墙网关以及VPN隧道,给vmbr30内部IP,然后你可以建立隧道connnection后,从互联网接入HV的内部IP,但是这只是为了说明现在。

你的IPSec连接问题听起来极像是一个错误配置VPN,同时也是移动IPSEC只是经常在屁股疼痛,由于协议实现不同的工作,OpenVPN的工作好了很多,但你应该知道你对PKI和证书的基础知识实现这一点。 另外,如果opnsense是反直觉的pfsense当谈到openvpns,你可能在漆黑容易刺伤的一个星期。 对于pfsense有一个安装OpenVPN配置出口包,它使生活更轻松相当,不知道这阉一个是可供opnsense了。

它没有那么多像你所说的异步路由,而是像你有一个防火墙的问题,关于第一张照片。 为隧道的防火墙(接口IPSEC或接口的OpenVPN上opnsense,这取决于你碰巧使用隧道),只要把它在IPv4的任何:任何任何:任何,你应该只由隧道的定义进入LAN网反正本身,opnsense会自动只从LAN接口发送数据包时,在第二张照片。

net.ipv4.ip_forward = 1 =使你在哪里激活它的Linux操作系统的接口内核路由的。 您可以通过iptables的做NAT婷的东西,从而有可能进入你的局域网通过理论上使用的外部HV IP上vmbr0,但是这不是你应该发生意外实现,你也许可以再次停用转发没有松动的连接。 至少到HV,我不确定是其他外部IP地址你的额外的路线,但这些应该是可配置从opnsense内以同样的方式直接(创建点至点链接存在,框架将透明地流过vmbr0并为eth0到HETZNER网关)和工作,这将是更清洁。

此外,你不应该让牧场主-VM访问外部直接从而绕过防火墙,我怀疑这是你想要达到的目标。 而把外部IP到opnsense(类型IP别名的虚拟IP),设置1:1个NAT从IP3向牧场主-VM的内部IP,并经由opnsense做防火墙。

一些ASCII艺术的东西怎么可能应该从我可以从你的资料识别到目前为止,为了简洁起见,只接口使用,不区分物理/虚拟服务器之间进行的,并没有点至点链接显示。

[hetzner gw]
  |
  |
  |
[eth0] (everything below happens inside your server)
  ||
  || (double lines here to hint at the physical-virtual linking linux does)
  || (which is achieved by linking eth0 to vmbr0)
  ||
  || +-- HV acess to via IP1 -- shorewall/iptables for hv firewalling 
  || |
[vmbr0]                                                    [vmbr30]
 IP1                                                        | | |
  |                                                         | | |
  |                                                         | | |
[wan nic opn]                                               | | | 
  IP2 on wan directly,                                      | | |
  IP3 as virtual IP of type ip alias                        | | |
  x                                                         | | |
  x (here opn does routing/NAT/tunnel things)               | | |
  x                                                         | | |
  x set up 1:1 NAT IP3-to-10.1.7.11 in opn for full access  | | |
  x set up single port forwardings for the 2nd vm if needed | | |
  x                                                         | | |
[lan nic opn]-----------------------------------------------+ | |
 10.1.7.1                                                     | |
                                                              | |
                                                   +----------+ |
                                                   |            |
                                              [vm1 eth0]   [vm2 eth0]
                                               10.1.7.11    10.1.7.151

如果你想通过防火墙的opnsense HV也一样,这将同时maintainting连接这样做的步骤:

  1. 除去从IP1 [vmbr0]
  2. 把它放在[婉网卡OPN]
  3. 从OPN LAN把内部IP(IP_INT)到[vmbr30]
  4. 设置1:1的IP NAT
  5. 设置的所有防火墙规则
  6. 发誓像地狱,当你打破防火墙并不能达到的HV了
  7. 看到无论您可以通过iKVM的解决方案,希望得到一个公网IP到它访问HV,这样你就可以在proxmox希望能修复或重新安装防火墙使用控制台窗口。


文章来源: Proxmox with OPNsense as Firewall/GW - routing issue