Systemverwaltungshandbuch: IP Services

ProcedureSo schützen Sie ein VPN mit einem IPsec-Tunnel im Tunnelmodus über IPv4

Im Tunnelmodus bestimmt das innere IP-Paket die IPsec-Richtlinie, die dessen Inhalte schützt.

Dieses Verfahren ergänzt das unter So sichern Sie Datenverkehr zwischen zwei Systemen mit IPsec beschriebene Verfahren. Dieses Setup wird unter Beschreibung der Netzwerktopologie für IPsec-Aufgaben zum Schützen eines VPN beschrieben.


Hinweis –

Führen Sie die Schritte dieses Verfahrens auf beiden Systemen aus.


Sie verbinden nicht nur zwei Systeme, sondern zwei Intranets, die mit diesen zwei Systemen verbunden sind. Die Systeme in diesem Verfahren arbeiten als Gateways.

Bevor Sie beginnen

Sie müssen sich in der globalen Zone befinden, um die IPsec-Richtlinie für das System oder für eine gemeinsame IP-Zone zu konfigurieren. Für eine exklusive IP-Zone konfigurieren Sie die IPsec-Richtlinie in der nicht-globalen Zone.

  1. Nehmen Sie über die Systemkonsole die Rolle eines Primäradministrators an, oder melden Sie sich als Superuser an.

    Die Rolle des Primäradministrators enthält das Primary Administrator-Profil. Informationen zum Erstellen von Rollen und Zuweisen von Rollen zu Benutzern finden Sie in Kapitel 2, Working With the Solaris Management Console (Tasks) in System Administration Guide: Basic Administration.


    Hinweis –

    Eine remote Anmeldung führt zu sicherheitskritischem Datenverkehr, der abgehört werden könnte. Auch wenn Sie eine remote Anmeldung schützen, wird die Sicherheit des Systems auf die Sicherheit der remoten Anmeldesitzung reduziert. Verwenden Sie den Befehl ssh für eine sichere Remoteanmeldung.


  2. Kontrollieren Sie den Paketfluss vor der Konfiguration von IPsec.

    1. Stellen Sie sicher, dass IP-Weiterleitung und dynamisches IP-Routing deaktiviert sind.


      # routeadm
      Configuration       Current         Current
             Option       Configuration  System State
      --------------------------------------------------
      IPv4 forwarding     disabled           disabled
         IPv4 routing     default (enabled)   enabled
      …

      Wenn IP-Weiterleitung und dynamisches IP-Routing aktiviert sind, können diese Funktionen wie folgt deaktiviert werden:


      # routeadm -d ipv4-routing -d ipv4-forwarding
      # routeadm -u
      

      Durch Deaktivieren der IP-Weiterleitung wird verhindert, dass Pakete über dieses System von einem Netzwerk zu einem anderen weitergeleitet werden. Eine Beschreibung des Befehls routeadm finden Sie in der Manpage routeadm(1M).

    2. Aktivieren Sie das IP Strict Destination Multihoming.


      # ndd -set /dev/ip ip_strict_dst_multihoming 1
      

      Durch Aktivieren von IP Strict Destination Multihoming wird sichergestellt, dass Pakete für eine der Zieladressen auf dem System bei der richtigen Zieladresse eintreffen.

      Wenn das Strict Destination Multihoming aktiviert ist, müssen Pakete, die an einer bestimmten Schnittstelle eintreffen, an eine der lokalen IP-Adressen dieser Schnittstelle adressiert sein. Alle anderen Pakete, auch solche, die an andere lokale Adressen des Systems adressiert sind, werden abgeworfen.


      Achtung – Achtung –

      Der Multihoming-Wert wird beim Booten des Systems auf den Standardwert zurückgesetzt. Informationen zum dauerhaften Ändern des Wertes finden Sie unter So verhindern Sie IP-Spoofing.


    3. Deaktivieren Sie die meisten Netzwerkservices – wenn möglich, alle Netzwerkservices.


      Hinweis –

      Wenn Ihr System mit dem SMF-Profil „limited“ installiert wurde, können Sie diesen Schritt überspringen. Netzwerkservices, mit Ausnahme der Solaris Secure Shell, sind deaktiviert.


      Durch Deaktivieren der Netzwerkservices wird verhindert, das IP-Pakete Schaden an einem System anrichten können. Beispielsweise könnten ein SNMP-Daemon, eine telnet-Verbindung oder eine rlogin-Verbindung ausgenutzt werden.

      Wählen Sie eine der folgenden Optionen:

      • Wenn Sie das Solaris 10 11/06-Release oder eine aktuellere Version ausführen, rufen Sie das SMF-Profil „limited“ auf.


        # netservices limited
        
      • Alternativ können Sie die Netzwerkservices einzeln deaktivieren.


        # svcadm disable network/ftp:default
        # svcadm disable network/finger:default
        # svcadm disable network/login:rlogin
        # svcadm disable network/nfs/server:default
        # svcadm disable network/rpc/rstat:default
        # svcadm disable network/smtp:sendmail
        # svcadm disable network/telnet:default
        
    4. Stellen Sie sicher, dass die meisten Netzwerk-Services deaktiviert sind.

      Stellen Sie sicher, dass die Loopback-Mounts und der ssh-Service ausgeführt werden.


      # svcs | grep network
      online         Aug_02   svc:/network/loopback:default
      …
      online         Aug_09   svc:/network/ssh:default
  3. Fügen Sie zwischen den beiden Systemen zwei SAs hinzu.

    Wählen Sie eine der folgenden Optionen:

  4. Fügen Sie eine IPsec-Richtlinie hinzu.

    Geben Sie die IPsec-Richtlinie für das VPN in die Datei /etc/inet/ipsecinit.conf ein. Informationen zur Verstärkung der Richtlinie finden Sie in Beispiel 20–12. Zusätzliche Beispiele finden Sie unter Beispiele für den Schutz eines VPN mit IPsec mithilfe von Tunneln im Tunnelmodus.

    Bei dieser Richtlinie ist der IPsec-Schutz zwischen Systemen im lokalen LAN und mit der internen IP-Adresse des Gateway nicht erforderlich, daher wird eine bypass-Anweisung hinzugefügt.

    1. Auf dem enigma-System geben Sie den folgenden Eintrag in die ipsecinit.conf-Datei ein:


      # LAN traffic to and from this host can bypass IPsec.
      {laddr 10.16.16.6 dir both} bypass {}
      
      # WAN traffic uses ESP with AES and SHA-1.
      {tunnel ip.tun0 negotiate tunnel} 
       ipsec {encr_algs aes encr_auth_algs sha1 sa shared}
    2. Auf dem partym-System geben Sie den folgenden Eintrag in die ipsecinit.conf-Datei ein:


      # LAN traffic to and from this host can bypass IPsec.
      {laddr 10.1.3.3 dir both} bypass {}
      
      # WAN traffic uses ESP with AES and SHA-1.
      {tunnel ip.tun0 negotiate tunnel} 
       ipsec {encr_algs aes encr_auth_algs sha1 sa shared}
  5. (Optional) Überprüfen Sie die Syntax der IPsec-Richtliniendatei.


    # ipsecconf -c -f /etc/inet/ipsecinit.conf
    
  6. Um den Tunnel zu konfigurieren und ihn mit IPsec zu schützen, folgen Sie den Schritten für die jeweilige Solaris-Version:

  7. Konfigurieren Sie den Tunnel, ip.tun0, in der Datei /etc/hostname.ip.tun0.

    Für die Datei gilt folgende Syntax:


    system1-point system2-point tsrc system1-taddr tdst system2-taddr router up
    1. Fügen Sie auf dem System enigma den folgenden Eintrag in die hostname.ip.tun0-Datei ein:


      10.16.16.6 10.1.3.3 tsrc 192.168.116.16 tdst 192.168.13.213 router up
    2. Fügen Sie auf dem System partym den folgenden Eintrag in die hostname.ip.tun0-Datei ein:


      10.1.3.3 10.16.16.6 tsrc 192.168.13.213 tdst 192.168.116.16 router up
  8. Schützen Sie den Tunnel mit der von Ihnen erstellten IPsec-Richtlinie.


    # svcadm refresh svc:/network/ipsec/policy:default
    
  9. Um den Inhalt der Tunnelkonfigurationsdatei in den Systemkern einzulesen, starten Sie die Netzwerk-Services neu.


    # svcadm restart svc:/network/initial:default
    
  10. Aktivieren Sie die IP-Weiterleitung für die hme1-Schnittstelle.

    1. Fügen Sie auf dem System enigma den Routereintrag in die /etc/hostname.hme1-Datei ein.


      192.168.116.16 router
    2. Fügen Sie auf dem System partym den Routereintrag in die /etc/hostname.hme1-Datei ein:


      192.168.13.213 router

    IP-Weiterleitung bedeutet, dass alle Pakete, unabhängig vom Absender weitergeleitet werden. Darüber hinaus bedeutet IP-Weiterleitung, dass Pakete, die diese Schnittstelle verlassen, möglicherweise von einem anderen Absender stammen. Um ein Paket erfolgreich weiterzuleiten, müssen sowohl die empfangende als auch die übertragende Schnittstelle die IP-Weiterleitung aktiviert haben.

    Da die Schnittstelle hme1 innerhalb des Intranets liegt, muss die IP-Weiterleitung für hme1 aktiviert sein. Da ip.tun0 die zwei Systeme über das Internet miteinander verbindet, muss die IP-Weiterleitung für ip.tun0 aktiviert sein.

    Jedoch wurde die IP-Weiterleitung für die Schnittstelle hme0 deaktiviert, um zu verhindern, dass ein Angreifer von außen Pakete in das geschützte Intranet einleitet. außen bezieht sich in diesem Fall auf das Internet.

  11. Stellen Sie sicher, dass die Routing-Protokolle die Standardroute nicht innerhalb des Intranets bekannt geben.

    1. Fügen Sie auf dem System enigma die private-Flag in die /etc/hostname.hme0-Datei ein.


      10.16.16.6 private
    2. Fügen Sie auf dem System partym die private-Flag in die /etc/hostname.hme0-Datei ein.


      10.1.3.3 private

    Auch wenn die IP-Weiterleitung für die Schnittstelle hme0 deaktiviert wurde, kann eine Routing-Protokoll-Implementierung die Schnittstelle noch immer bekannt geben. Beispielsweise könnte das in.routed-Protokoll bekannt geben, dass hme0 in der Lage ist, Pakete an ihre Peers im Intranet weiterzuleiten. Durch Einstellen des Schnittstellen-Flags private werden diese Advertisement-Nachrichten verhindert.

  12. Fügen Sie manuell eine Standardroute über die hme0-Schnittstelle hinzu.

    Die Standardroute muss ein Router mit direktem Zugriff auf das Internet sein.

    1. Auf dem System enigma können Sie die folgende Route hinzufügen:


      # route add default 192.168.116.4
      
    2. Auf dem System partym fügen Sie die folgende Route hinzu:


      # route add default 192.168.13.5
      

      Auch wenn die Schnittstelle hme0 nicht zum Intranet gehört, muss hme0 über das Internet auf ihr Peer-System zugreifen können. Um ihren Peer zu finden, benötigt die Schnittstelle hme0 Informationen zum Internet-Routing. Das VPN-System erscheint dem restlichen Internet gegenüber als Host und nicht als Router. Aus diesem Grund können Sie einen Standard-Router verwenden, um das Router-Erkennungsprotokoll zum Finden eines Peer-Systems auszuführen. Weitere Informationen entnehmen Sie bitte den Manpages route(1M) and in.routed(1M).

  13. Zum Schluss wechseln Sie zu Schritt 22, um ein Routingprotokoll auszuführen.

  14. Konfigurieren Sie den Tunnel ip.tun0.


    Hinweis –

    Durch die folgenden Schritte wird ein Tunnel auf einem System konfiguriert, auf dem eine ältere Version als Solaris 10 4/09 ausgeführt wird.


    Verwenden Sie ifconfig-Befehle, um eine Point-to-Point-Schnittstelle zu erzeugen:


    # ifconfig ip.tun0 plumb
    
    # ifconfig ip.tun0 system1-point system2-point \
    tsrc system1-taddr tdst system2-taddr
    
    1. Auf dem System enigma geben Sie die folgenden Befehle ein:


      # ifconfig ip.tun0 plumb
      
      # ifconfig ip.tun0 10.16.16.6 10.1.3.3 \
      tsrc 192.168.116.16 tdst 192.168.13.213
      
    2. Auf dem System partym geben Sie die folgenden Befehle ein:


      # ifconfig ip.tun0 plumb
      
      # ifconfig ip.tun0 10.1.3.3 10.16.16.6  \
      tsrc 192.168.13.213 tdst 192.168.116.16
      
  15. Schützen Sie den Tunnel mit der von Ihnen erstellten IPsec-Richtlinie.


    # ipsecconf
    
  16. Aktivieren Sie den Router für den Tunnel.


    # ifconfig ip.tun0 router up
    
  17. Aktivieren Sie die IP-Weiterleitung für die Schnittstelle hme1.


    # ifconfig hme1 router
    

    IP-Weiterleitung bedeutet, dass alle Pakete, unabhängig vom Absender weitergeleitet werden. Darüber hinaus bedeutet IP-Weiterleitung, dass Pakete, die diese Schnittstelle verlassen, möglicherweise von einem anderen Absender stammen. Um ein Paket erfolgreich weiterzuleiten, müssen sowohl die empfangende als auch die übertragende Schnittstelle die IP-Weiterleitung aktiviert haben.

    Da die Schnittstelle hme1 innerhalb des Intranets liegt, muss die IP-Weiterleitung für hme1 aktiviert sein. Da ip.tun0 die zwei Systeme über das Internet miteinander verbindet, muss die IP-Weiterleitung für ip.tun0 aktiviert sein.

    Jedoch wurde die IP-Weiterleitung für die Schnittstelle hme0 deaktiviert, um zu verhindern, dass ein Angreifer von außen Pakete in das geschützte Intranet einleitet. außen bezieht sich in diesem Fall auf das Internet.

  18. Stellen Sie sicher, dass die Routing-Protokolle die Standardroute nicht innerhalb des Intranets bekannt geben.


    # ifconfig hme0 private
    

    Auch wenn die IP-Weiterleitung für die Schnittstelle hme0 deaktiviert wurde, kann eine Routing-Protokoll-Implementierung die Schnittstelle noch immer bekannt geben. Beispielsweise könnte das in.routed-Protokoll bekannt geben, dass hme0 in der Lage ist, Pakete an ihre Peers im Intranet weiterzuleiten. Durch Einstellen des Schnittstellen-Flags private werden diese Advertisement-Nachrichten verhindert.

  19. Fügen Sie manuell eine Standardroute über hme0 hinzu.

    Die Standardroute muss ein Router mit direktem Zugriff auf das Internet sein.

    1. Auf dem System enigma können Sie die folgende Route hinzufügen:


      # route add default 192.168.116.4
      
    2. Auf dem System partym fügen Sie die folgende Route hinzu:


      # route add default 192.168.13.5
      

      Auch wenn die Schnittstelle hme0 nicht zum Intranet gehört, muss hme0 über das Internet auf ihr Peer-System zugreifen können. Um ihren Peer zu finden, benötigt die Schnittstelle hme0 Informationen zum Internet-Routing. Das VPN-System erscheint dem restlichen Internet gegenüber als Host und nicht als Router. Aus diesem Grund können Sie einen Standard-Router verwenden, um das Router-Erkennungsprotokoll zum Finden eines Peer-Systems auszuführen. Weitere Informationen entnehmen Sie bitte den Manpages route(1M) and in.routed(1M).

  20. Stellen Sie sicher, dass das VPN nach einem erneuten Booten gestartet wird. Dazu fügen Sie einen Eintrag in die /etc/hostname.ip.tun0-Datei ein.


    system1-point system2-point tsrc system1-taddr tdst system2-taddr router up
    1. Fügen Sie auf dem System enigma den folgenden Eintrag in die hostname.ip.tun0-Datei ein:


      10.16.16.6 10.1.3.3 tsrc 192.168.116.16 tdst 192.168.13.213 router up
    2. Fügen Sie auf dem System partym den folgenden Eintrag in die hostname.ip.tun0-Datei ein:


      10.1.3.3 10.16.16.6 tsrc 192.168.13.213 tdst 192.168.116.16 router up
  21. Konfigurieren Sie die Schnittstellendateien so, dass die korrekten Parameter an den Routing-Daemon übergeben werden.

    1. Ändern Sie auf dem System enigma die /etc/hostname. Schnittstelle-Dateien.


      # cat /etc/hostname.hme0
      ## enigma
      10.16.16.6 private

      # cat /etc/hostname.hme1
      ## enigma
      192.168.116.16 router
    2. Ändern Sie auf dem System partym die /etc/hostname. Schnittstelle-Dateien.


      # cat /etc/hostname.hme0
      ## partym
      10.1.3.3 private

      # cat /etc/hostname.hme1
      ## partym
      192.168.13.213 router
  22. Führen Sie ein Routingprotokoll aus.


    # routeadm -e ipv4-routing
    # routeadm -u
    

    Eventuell müssen Sie das Routing-Protokoll konfigurieren, bevor Sie es ausführen können. Weitere Informationen finden Sie unter Routing-Protokolle in Oracle Solaris. Anweisungen finden Sie unter So konfigurieren Sie einen IPv4-Router.


Beispiel 20–10 Erstellen temporärer Tunnels beim Testen

In diesem Beispiel testet der Administrator die Tunnelerstellung auf einem Solaris 10 4/09-System. Später verwendet der Administrator das unter So schützen Sie ein VPN mit einem IPsec-Tunnel im Tunnelmodus über IPv4 Verfahren zur dauerhaften Einrichtung der Tunnel. Während des Testens führt der Administrator eine Reihe von Schritten auf den Systemen system1 und system 2 aus.



Beispiel 20–11 Erstellen eines Tunnels für eine frühere Version eines Solaris-Systems mithilfe der Befehlszeile

In Solaris 10 7/07 wurde die Syntax des ifconfig-Befehls vereinfacht. In diesem Beispiel testet der Administrator die Tunnelerstellung auf einem System, auf dem eine ältere Version als Solaris 10 7/07 ausgeführt wird. Mithilfe der ursprünglichen Syntax des ifconfig-Befehls kann der Administrator identische Befehle auf den beiden kommunizierenden Systemen verwenden. Später wandelt der Administrator die Tunnel nach der unter So schützen Sie ein VPN mit einem IPsec-Tunnel im Tunnelmodus über IPv4 erläuterten Verfahrensweise in dauerhafte Tunnel um.

Während des Testens führt der Administrator folgende Schritte auf den Systemen system1 und system 2 aus.



Beispiel 20–12 Erfordern einer IPsec-Richtlinie auf allen Systemen in einem LAN

In diesem Beispiel wandelt der Administrator die bypass-Richtlinie, die in Schritt 4 konfiguriert wurde, in einen Kommentar um und verstärkt somit den Schutz. Bei dieser Richtlinienkonfiguration muss jedes System im LAN IPsec aktivieren, um mit dem Router kommunizieren zu können.


# LAN traffic must implement IPsec.
# {laddr 10.1.3.3 dir both} bypass {}

# WAN traffic uses ESP with AES and SHA-1.
{tunnel ip.tun0 negotiate tunnel} ipsec {encr_algs aes encr_auth_algs sha1}


Beispiel 20–13 Verwenden von IPsec, um Telnet-Verkehr anders als SMTP-Verkehr zu schützen

In diesem Beispiel schützt die erste Regel den telnet-Datenverkehr an·Port 23 mit Blowfish und SHA-1. Die zweite Regel schützt den SMTP-Datenverkehr an Port 25 mit AES und MD5.


{laddr 10.1.3.3 ulp tcp dport 23 dir both} 
  ipsec {encr_algs blowfish encr_auth_algs sha1 sa unique}
{laddr 10.1.3.3 ulp tcp dport 25 dir both} 
 ipsec {encr_algs aes encr_auth_algs md5 sa unique}


Beispiel 20–14 Verwenden eines IPsec-Tunnels im Tunnelmode, um den Teilnetz-Verkehr anders als den restlichen Netzwerkverkehr zu schützen

Die folgende Tunnelkonfiguration schützt den gesamten Verkehr aus dem Teilnetz 10.1.3.0/24 über den Tunnel:


{tunnel ip.tun0 negotiate tunnel laddr 10.1.3.0/24} 
  ipsec {encr_algs aes encr_auth_algs sha1 sa shared}

Die folgende Tunnelkonfiguration schützt Verkehr aus dem Teilnetz 10.1.3.0/24 an andere Teilnetze über den Tunnel. Teilnetze, die mit 10.2.x.x beginnen, befinden sich hinter dem Tunnel.


{tunnel ip.tun0 negotiate tunnel laddr 10.1.3.0/24 raddr 10.2.1.0/24} 
  ipsec {encr_algs blowfish encr_auth_algs sha1 sa shared}

{tunnel ip.tun0 negotiate tunnel laddr 10.1.3.0/24 raddr 10.2.2.0/24} 
  ipsec {encr_algs blowfish encr_auth_algs sha1 sa shared}

{tunnel ip.tun0 negotiate tunnel laddr 10.1.3.0/24 raddr 10.2.3.0/24} 
  ipsec {encr_algs aes encr_auth_algs sha1 sa shared}