Debian Wheezy Proxmox + pfSense



  • Hallo Leute,

    ich habe einen Debian Wheezy Server mit Proxmox am Laufen. Nun wollte ich pfSense als Firewall einbauen und habe diese auch auf einer VM installiert. Nun ist es so, dass pfSense keine Verbindung zum Internet hat. Vielleicht kann mir jemand stichwortartig die Konfiguration sagen. Plan ist folgender:

    
    Server mit Proxmox -> pfSense ->Server mit Proxmox -> virtuelle Maschinen
    

    Sämtlicher Traffic soll quasi zuerst zu pfSense weitergeleitet werden und danach wieder zum Server und dann auf die Maschinen. Kennt vielleicht jemand noch eine andere Möglichkeit? Proxmox und pfSense als 1 "Gesamt-System" funktioniert ja nicht oder?

    Liebe Grüße
    Dietzi



  • Hi dietzi,

    grundsätzlich ist das natürlich möglich - die Frage ist, wie sinnvoll das ganze ist. Bei virtualisierungen den Traffic fünfmal durch das Hostsystem zu schleusen erhöht wahrscheinlich nicht gerade die Sicherheit, ich würde eher dazu tendieren, ein kleines embedded-System zu nehmen und davor zu schalten. Verbraucht kaum Strom, kostet nicht die Welt und macht wirklich Sinn. Aber - spielen kann man ja mal, also die Antwort auf deine Frage..

    du schon mindestens für die Konfiguration ein zweites Netzwerkinterface.

    1. Zuerst konfigurierst du in Proxmox deine Interfaces- vmbr0 brückst du auf deine physikalische Netzwerkkarte, ohne ihr eine Adresse zu verpassen, vmbr1 erstellst du ohne jede Bindung aber mit einer gültigen IP-Adresse innerhalb der Range, die du als LAN planst.
    2. Erstelle deine pfSense-VM und gib ihr mindestens 2 Interfaces - das erste (WAN) verbindest du auf vmbr0, das zweite Interface (LAN) verbindest du auf vmbr1. Deine anderen VMs bekommen alle nur eine Verbindung mit dem virtuellen Netzwerk vmbr1. Hast du mehr als einen Node, erstellst du dieses Netzwerk auf jedem einzelnen, die VMs untereinander sollten dann wie an einem virtuellen, übergreifenden Switch hängen. HA funktioniert dann natürlich (zumindest in der Theorie) auch.
    3. Starte deine pfsense-Vm und konfiguriere sie wie gewohnt.. re0 als WAN, re1 als LAN. Spätestens über die MAC-Adresse solltest du das zuordnen können. VirtIO-Treiber sind nicht standardmässig aktiviert, ich rate dir daher zu IDE-Platten und der Intel E1000-Netzwerkkarte.
    4. Prüfe mit einer Test-VM, sie über den vmbr1 eine Verbindung ins Internet bekommt, dein DHCP (wenn gewünscht) funktioniert.. Und natürlich, ob du deinen Host erreichst.
    5. Jetzt solltest du entweder ein VPN einrichten, um dich von aussen in das LAN zu tunneln oder aber eine Portweiterleitung für den HTTPS-Verkehr auf Port 8006 für die neue Proxmox-Adresse einrichten.
    6. Verändere deine Proxmox-Configuration so, dass das Webinterface nur noch über die LAN-IP erreichbar ist.

    Voila: dein Server ist über die Allgemeine Adresse erreichbar, aber du kommst, wenn du Pech hast, nirgendwo mehr drauf ;)

    Nachtrag: SSH funktioniert natürlich dann auch nur, wenn du entsprechendes Port-Forwarding aktiviert hast.

    Grüße,
    Keychain



  • Ich hab so etwas mal für einen Bekannten auf einem Hetzner Server gebaut. Die Debian Installation selbst (und somit das Proxmox), habe ich dabei aber mit Linux Bordmitteln (+ ufw) gefirewalled. Man kommt ja sonst nicht auf die Proxmox KVM pfSense Konsole, wenn es mal ein Problem mit der pfSense geben sollte…



  • Danke für die Antworten. Nach einigen Tests habe ich es nicht zum Laufen gebracht. Es scheitert an Punkt 1 der Anleitung: wenn ich brücke, dann ist keine IP erreichbar. In pfSense habe ich die externe IP angegeben und ich habe vmbr0 keine IP zugewiesen. eth0 hat auch eine externe IP (nicht die gleiche wie pfSense). Mache ich da was falsch? Iptables ist auf Accept

    Ich habe 2 statische IP's.

    Embeded-System fällt raus. Mein Server steht bei Hetzner. Somit ist es auch kein Problem wenn ich mich aus meinem System aussperre. Hetzner bietet vKVM an und somit komme ich immer wieder auf meinen Server.



  • eth0 hat auch eine externe IP

    Wenn du eine Brücke auf eth0 einrichtest, darf eth0 selbst keine IP haben!
    Ich habe keine Debian. Wenn "keine" nicht geht, dann 0.0.0.0/32 zuweisen.

    Grüße



  • Also müsste /etc/network/interfaces quasi so aussehen?

    # network interface settings
    auto lo
    iface lo inet loopback
    
    auto eth0
    iface eth0 inet static
            address  0.0.0.0
            netmask  0.0.0.0
    
    auto vmbr0
    iface vmbr0 inet static
            address  78.xx.xx.xx
            netmask  255.255.255.0
            bridge_ports eth0
            bridge_stp off
            bridge_fd 0
    
    auto vmbr1
    iface vmbr1 inet static
            address  192.168.1.1
            netmask  255.255.255.0
            bridge_ports none
            bridge_stp off
            bridge_fd 0
    
    


  • Servus dietzi,

    genau an dieser Konstellation habe ich auch sehr lange gebastelt.
    Da meine Linux Kenntnisse noch sehr begrenzt sind, habe ich versucht aus diversen Tutorials, die Herr Google für mich gefunden hat, eine funktionierende Konfiguration zu basteln.
    Nur mit der Standard IP habe ich es nicht geschafft und habe dann aus Zeitgründe noch eine zusätzliche für 1,- EUR/Monat bestellt. Da musst Du Dir übrigens einen guten Grund einfallen lassen, weil der Hetzner / RIPE da mittlerweile ziemlich geizig ist.

    Mit dem Tutorial / Konfig hatte ich dann endlich Erfolg:
    https://gist.github.com/jpawlowski/3331593

    Vielleicht findet sich ja auch noch jemand, der das nur mit einer IP hinbekommt und sein Wissen teilt, aber damit kommst Du zuminest erstmal weiter, wenn Du den EUR investierst.

    Gruß
    Harry



  • Hier die Config von meinem Bekannten.
    Auf der zweiten Public IP läuft das pfSense, die KVM liegt mit ihrem WAN Interface auf vmbr0. Ansonsten ist keine KVM auf vmbr0 gebunden.
    vmbr1 ist die DMZ bzw. LAN Seite von pfSense. Hier wird mit privaten IPs gearbeitet.
    Das Proxmox selbst bzw. die Public IP des Debian kannst Du mit ufw firewallen. Hier habe ich SSH und den Proxmox Port für bestimmte IPs freigeschaltet. z.B. so:

    ufw allow from xxx.xxx.xxx.xxx to xxx.xxx.xxx.131 port 22
    

    Interface Config:

    cat /etc/network/interfaces
    # network interface settings
    auto lo
    iface lo inet loopback
    
    iface eth0 inet manual
    
    auto vmbr0
    iface vmbr0 inet static
            address  xxx.xxx.xxx.131
            netmask  255.255.255.224
            gateway  xxx.xxx.xxx.129
            broadcast  xxx.xxx.xxx.159
            bridge_ports eth0
            bridge_stp off
            bridge_fd 1
            bridge_hello 2
            bridge_maxage 12
            up route add -net xxx.xxx.xxx.128 netmask 255.255.255.224 gw xxx.xxx.xxx.129 eth0
    
    auto vmbr1
    iface vmbr1 inet manual
            bridge_ports none
            bridge_stp off
            bridge_fd 0
    

    Auf der vmbr1 habe ich noch IPv6 ausgeschaltet:

    sysctl -w net.ipv6.conf.vmbr1.disable_ipv6=1
    

    Und IPv4 / IPv6 Routing sollte besser aus sein.



  • Nach tausenden von Reboots und config-Änderungen hab ich es nun endlich geschafft.

    /etc/network/interfaces

    # network interface settings
    auto lo
    iface lo inet loopback
    
    auto eth0
    iface eth0 inet manual
            pointopoint 78.46.66.129
    
    auto vmbr0
    iface vmbr0 inet static
            address  xx.xx.xx.133
            netmask  255.255.255.224
            gateway  xx.xx.xx.129
            bridge_ports eth0
            bridge_stp off
            bridge_fd 0
    
    auto vmbr1
    iface vmbr1 inet manual
            bridge_ports none
            bridge_stp off
            bridge_fd 0
    
    

    vmbr0 ist die Brücke für's WAN - in Proxmox habe ich die seperate MAC (von Hetzner zugewiesen) eingetragen. WAN ist föllig funktionsfähig (ping zu google.de funktioniert)

    vmbr1 ist die Brücke für's LAN.

    In pfSense habe ich für das LAN die IP 192.168.1.1/24 angegeben und kein Gateway.

    ping pfSense zu 192.168.1.9 funktioniert nicht.
    ping 192.168.1.9 zu pfSense funktionert.

    Muss ich noch eine Regel erstellen?

    Edit: Hat sich erledigt. Die Firewall auf dem Client hat den Ping geblockt. Funktioniert jetzt alles perfekt. Danke für die Hilfe


Log in to reply