Selbst eine Person kann in mindestens 7 bis 8 Stunden eine Verbindung herstellen und installieren, wenn sie Linux-Befehle ausführen kann. (\ * ॑ ꒳ * \ *) alone Es kostet 2000 Yen pro Stunde, alleine zu arbeiten. Dann betragen die Arbeitskosten ungefähr 16000 Yen ... [Es scheint effizienter zu sein, an mehreren Maschinen gleichzeitig zu arbeiten ... Ich denke, es scheint, dass eine Person gleichzeitig an 2 oder 3 Maschinen arbeiten kann]
Das IPSec-Gateway kann mit einem Raspberry Pi und einem gebrauchten Notebook-PC ausgeführt werden, solange Sie die Quelle von Strong Swan kompilieren können. Wenn Sie das Netzwerk also wirklich in einem sicheren VPN-Bereich halten möchten, ist diese Konstruktionsmethode möglicherweise die beste. Versuchen Sie es also bitte. Ich tat! (˶ ・ ᴗ ・) ੭⚐⚑
--IPST-Programm: StrongSwan 5.9.0 (Quellensammlung) --IPST-Verhandlungsempfänger: Raspberry Pi 3B + / openSUSE 15.1 Leap (aarm64)
CentOS8.1
# vi /etc/selinux/config
/etc/selinux/config
SELINUX=disabled
CentOS8.1
# reboot
IPST-Verhandlungsempfangs-Gateway (links in der Abbildung unten, Raspberry Pi):
Internet-Seite (eth0): 192.168.1.22 --VPN-Bereichsseite (eth1): 192.168.2.1
IPTI-Verhandlungs-Originator-Gateway (rechts in der Abbildung unten, CentOS 8.1):
Internet-Seite (eth0): 192.168.1.18
VPN-Bereichsseite (eth1): 192.168.5.1
Netzwerksegment:
Internetverbindung möglich: 192.168.1.0/24
Himbeer-Pi (Empfangsseite der Verhandlung links in der Abbildung) Sicheres Segment: 192.168.2.0/24 --CentOS 8 (Anrufer der Verhandlungen rechts in der Abbildung) Sicheres Segment: 192.168.5.0/24
IPST-Bereich bezogen: --Tonneling-Abschnitt: Zwischen 192.168.1.22 und 192.168.1.18
VPN-Zusammenarbeit: VPN-Verbindung von 192.168.2.0/24 bis 192.168.5.0/24
Andere erforderliche Pakete werden mit den Standardpaketbefehlen der Distribution (dnf, apt usw.) installiert und müssen nicht einzeln heruntergeladen werden.
Zum Herunterladen können Sie auf die offizielle Website zugreifen, von dort herunterladen und per FTP übertragen oder mit wget abrufen, wenn Sie die URL der Download-Datei kennen, die Erfassungsmethode jedoch weggelassen wurde.
Installieren Sie jede Distribution mit der virtuellen Hyper-V-Maschine und Raspeye (die Quellkompilierung ist für beide gleich).
CentOS8.1(Hyper-V/x64)
# dnf -y install make cmake tar bzip2
openSUSE15.1(RaspberryPi)
# zypper -n install make cmake tar bzip2
CentOS8.1(Hyper-V/x64)
# dnf -y install gcc gcc-c++
openSUSE15.1(RaspberryPi)
# zypper -n install gcc gcc-c++
Ich habe die zlib mit dem Standardspeicherort installiert. Die Quellkompilierung ist für virtuelle Hyper-V-Maschinen und Raspeye identisch
# cd [Verzeichnis, in dem sich zlib-Archivdateien befinden]
# tar zxvf zlib-1.2.11.tar.gz
# cd zlib-1.2.11/
# ./configure
# make
# make install
Die IP-Weiterleitung muss aktiviert sein, um als IPSec-Gateway zu fungieren. Aktivieren Sie sie daher. Aktivieren Sie in CentOS 8.1 der virtuellen Hyper-V-Maschine die Übertragung, indem Sie den folgenden Befehl ausführen. Raspeye open SUSE kann in YaST eingestellt werden.
CentOS8.1(Hyper-V/x64)
# cat /proc/sys/net/ipv4/ip_forward
0
# vi /etc/sysctl.d/01-ipv4fwd.conf
conf:/etc/sysctl.d/01-ipv4fwd.conf(CentOS)
# Controls IP packet forwarding
net.ipv4.ip_forward = 1
openSUSE15.1(RaspberryPi)
# yast
[Aktivieren Sie danach die IPv4-Weiterleitung über die Netzwerk- und Sicherheitseinstellungen gemäß den YaST-Einstellungen.]
Schalten Sie für die virtuelle Hyper-V-Maschine und den Raspberry Pi ** die Stromversorgung einmal aus **, um die IP-Übertragung zu aktivieren, und fügen Sie einen Netzwerkadapter hinzu. In meinem Fall hat Raspai einen kabelgebundenen LAN-Adapter für VPN über USB hinzugefügt, und Hyper-V hat in den Einstellungen einen Netzwerkadapter hinzugefügt.
Überprüfen Sie nach der Erweiterung, ob "eth1" hinzugefügt wurde, aber die IP-Adresse wurde natürlich noch nicht zugewiesen.
# ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
link/ether [MAC-Adresse des Netzwerkadapters von Anfang an] brd ff:ff:ff:ff:ff:ff
inet 192.168.1.18/24 brd 192.168.1.255 scope global noprefixroute eth0
valid_lft forever preferred_lft forever
inet6 [IPv6-Adresse des Netzwerkadapters von Anfang an] scope global dynamic noprefixroute
valid_lft 14373sec preferred_lft 12573sec
3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
link/ether [MAC-Adresse des Nebenstellen-Netzwerkadapters] brd ff:ff:ff:ff:ff:ff
inet6 [IPv6-Adresse des Nebenstellen-Netzwerkadapters] scope link noprefixroute
valid_lft forever preferred_lft forever
# ip route
default via 192.168.1.1 dev eth0 proto static metric 100
192.168.1.0/24 dev eth0 proto kernel scope link src 192.168.1.18 metric 100
Im Fall von CentOS wird der Befehl zum Aktivieren der IP-Weiterleitung verwendet. Überprüfen Sie daher, ob er aktiviert ist (ip_forward ist 1).
CentOS8.1(Hyper-V/x64)
# cat /proc/sys/net/ipv4/ip_forward
1
# sysctl --system
…(Unterlassung)
* Applying /etc/sysctl.d/01-ipv4fwd.conf ...
net.ipv4.ip_forward = 1
…(Unterlassung)
Hinweis: Wenn Sie es nicht ausführen, auch wenn es problematisch ist, wird eine Fehlermeldung angezeigt, dass kein Paket vorhanden ist und die Kompilierung gestoppt wird (´ • ω • ̥`).
CentOS8.1(Hyper-V/x64)
# dnf -y install gmp-devel openssl-devel
openSUSE15.1(RaspberryPi)
# zypper -n install gmp-devel libopenssl-devel
Gemeinsam für virtuelle Hyper-V-Maschinen und Raspeye. Dieser Vorgang dauerte eine ganze Weile (besonders beim Raspberry Pi dauerte es 20-30 Minuten)
# cd [strongswan-5.9.0.tar.Verzeichnis, in dem sich gz befindet]
# tar xvzf strongswan-5.9.0.tar.gz
# cd strongswan-5.9.0/
# ./configure --prefix=/usr --sysconfdir=/etc --enable-openssl
# make
# make install
Wenn Sie fehlerfrei kompilieren können, ist die Installation abgeschlossen ♪ (\ * ˘︶˘ \ *) ...: \ * ♡
Wenn StrongSwan durch Quellkompilierung installiert wird, wird die Konfigurationsdatei in /etc/ipsec.conf gespeichert und die IPSec-Verbindungseinstellungen werden darin festgelegt.
[Apache Grundeinstellungen]
# vi /etc/ipsec.conf
Richten Sie auf der Seite, die IPSec einrichtet (diejenige, die die Einrichtung sendet), zuerst CentOS 8.1 für Hyper-V ein. Wie im Abschnitt "Serverbedingungen" beschrieben, lautet Ihre IP-Adresse auf der Seite des Hyper-V-Computers 192.168.1.18 und der Einrichtungspartner Raspberry Pi lautet 192.168.1.22. Schreiben Sie das Paar also in die Konfigurationsdatei.
"Links" schreibt die Informationen der Person, die das Establishment verhandelt, und "rechts" schreibt die Informationen der Person, die das Establishment einrichten soll (aus dem offiziellen Handbuch von StrongSwan. / ConnSection)))
CentOS8.1(Hyper-V/x64)
…
#Fügen Sie Folgendes hinzu
conn [Distinguished Name Beispiel: Linux-2-linux]
authby=secret
auto=start #IPSec-Verhandlungen senden
closeaction=restart
dpdaction=restart
left=192.168.1.18 #Links ist Ihr eigenes IPSec-Gateway
leftid=192.168.1.18 #ID, die Sie identifiziert, um IPSec auszuhandeln
leftsubnet=192.168.5.0/24
right=192.168.1.22 #rechts ist das IPSec-Gateway der anderen Partei
rightid=192.168.1.22 #ID, die den IPSec-Verhandlungspartner identifiziert
rightsubnet=192.168.2.0/24
…
Übrigens habe ich für die ID in meinem Fall der Einfachheit halber die IP-Adresse verwendet, aber eine Zeichenfolge ist auch in Ordnung. Und da leftsubnet und rightsubnet die VPN-Bereiche sind, für die Sie und die andere Partei verantwortlich sind, ist leftsubnet Ihr eigener VPN-Bereich, also 192.168.5.0/24, und rightsubnet ist der Raspeye-VPN-Bereich der anderen Partei, also 192.168.2.0/ Ich habe 24 eingegeben.
Als nächstes setzen Sie die offene SUSE von Razpai. Wie im Abschnitt "Serverbedingungen" beschrieben, lautet die einzurichtende IP-Adresse 192.168.1.22 und das Hyper-V-CentOS 8 auf der anderen Seite 192.168.1.18. Was ist also Hyper-V (CentOS 8)? Schreiben Sie den umgekehrten Inhalt in die Konfigurationsdatei.
openSUSE15.1(RaspberryPi)
#Fügen Sie Folgendes hinzu
conn [Distinguished Name Beispiel: Linux-2-linux]
authby=secret
auto=add #Erhalten Sie IPSec-Verhandlungen
closeaction=clear
dpdaction=clear
left=192.168.1.22
leftid=192.168.1.22
leftsubnet=192.168.2.0/24
right=192.168.1.18
rightid=192.168.1.18
rightsubnet=192.168.5.0/24
Der Punkt ist, dass durch Setzen von auto = add auf der Empfangsseite der IPSec-Einrichtungsverhandlung festgelegt wird und der Inhalt von links und rechts umgekehrt wird. Auf diese Weise können Sie eine IPSec-Verbindung herstellen, wenn die definierten Namen (die Zeichenfolge nach conn) übereinstimmen.
Standardmäßig verwendet StrongSwan die PSK-Methode und standardmäßig die AES / SHA-Verschlüsselungsmethode. Wenn andere Verschlüsselungsmethoden festgelegt werden müssen, legen Sie diese separat fest, lassen Sie sie hier jedoch weg.
Abgesehen davon ist StrongSwan zu diesem Zeitpunkt NAT-T-kompatibel, und IPSec kann auf NAT angewendet werden (in der Vergangenheit konnte IPSec nicht auf NAT angewendet werden), sodass NAT im Internet verwendet wird. Es scheint, dass mit StrongSwan erstellte VPNs selbst in dem verwendeten Bereich über das Internet kommunizieren können (obwohl ich noch nie damit experimentiert habe ...).
[Starke Swan-Schlüsseleinstellungen]
# vi /etc/ipsec.secrets
/etc/ipsec.secrets
…
: PSK "[Geeignete Zeichenfolge: Beispiel ... kazumi75kitty]"
…
Da wir die Standard-PSK-Methode verwenden, werden wir sie sowohl für virtuelle Hyper-V-Maschinen als auch für Raspeye gleich machen.
Nachdem wir die erforderlichen Umgebungseinstellungen für StrongSwan haben, möchten wir es starten können. Da das Startskript Systemd ist, erstellen Sie es in / etc / systemd / system
# cd /etc/systemd/system
# vi strongswan.service
strongswan.service
[Unit]
Description=strongSwan
[Service]
Type=forking
ExecStart=/usr/sbin/ipsec start
ExecStop=/usr/sbin/ipsec stop
[Install]
WantedBy=multi-user.target
Ich werde hier nicht näher auf Systemd-Skripte eingehen, aber in strongSwan wird der Diensttyp verzweigt, da das Starten und Stoppen im Hintergrund des übergeordneten Prozesses erfolgt.
Als nächstes akzeptiert die Firewall-Einstellung IPSec (die von IPSec ausgetauschten verschlüsselten Daten selbst und die Aushandlung von IPSec können akzeptiert werden). Mit den Einstellungen hier wird jedoch nicht die interne Einschränkung von 192.168.1.0/24 für das Tunneln angegeben. Wenn IPSec-Pakete von anderen Netzwerksegmenten übertragen werden können, können sie empfangen werden. Wenn Sie jedoch bis zu diesem Punkt Maßnahmen ergreifen, wird dies kompliziert. Der Einfachheit halber erlauben wir nur IPSec.
# firewall-cmd --permanent --add-service=ipsec
# firewall-cmd --reload
# firewall-cmd --list-all
public (active)
target: default
icmp-block-inversion: no
interfaces: eth0
sources:
services: cockpit dhcpv6-client ipsec
ports:
protocols:
masquerade: no
forward-ports:
source-ports:
icmp-blocks:
rich rules:
rule family="ipv4" source address="192.168.1.0/24" port port="12345" protocol="tcp" accept
Dieser Befehl gilt sowohl für virtuelle Hyper-V-Maschinen als auch für Raspeye.
Fangen wir an. Beginnen Sie immer mit Aktivieren Aktivieren und bestätigen Sie, dass der Status "Aktiv" und "Wird ausgeführt" lautet.
** Zuerst wird StrongSwan von der Seite gestartet, die die IPSec-Einrichtungsverhandlung empfängt, und dann in der Reihenfolge der Seite, die die IPSec-Einrichtung sendet **. Hier wird nach dem Starten von StrongSwan von Raspeye die virtuelle Maschine von StrongSwan von Hyper-V gestartet.
# systemctl start strongswan
# systemctl enable strongswan
# systemctl status strongswan
Überprüfen Sie, ob die virtuelle Hyper-V-Maschine und Raspeye auf "Aktiv" und "Wird ausgeführt" eingestellt sind, und überprüfen Sie schließlich, ob das IPSec-Tunneling eingerichtet ist.
CentOS8.1(Hyper-V/x64)
# /usr/sbin/ipsec status
Security Associations (1 up, 0 connecting):
linux-2-linux[1]: ESTABLISHED 2 minutes ago, 192.168.1.18[192.168.1.18]...192.168.1.22[192.168.1.22]
linux-2-linux{1}: INSTALLED, TUNNEL, reqid 1, ESP SPIs: ********_i ********_o
linux-2-linux{1}: 192.168.5.0/24 === 192.168.2.0/24
# ip xfrm policy
src 192.168.5.0/24 dst 192.168.2.0/24
dir out priority 375423 ptype main
tmpl src 192.168.1.18 dst 192.168.1.22
proto esp spi 0x******** reqid 1 mode tunnel
src 192.168.2.0/24 dst 192.168.5.0/24
dir fwd priority 375423 ptype main
tmpl src 192.168.1.22 dst 192.168.1.18
proto esp reqid 1 mode tunnel
src 192.168.2.0/24 dst 192.168.5.0/24
dir in priority 375423 ptype main
tmpl src 192.168.1.22 dst 192.168.1.18
proto esp reqid 1 mode tunnel
openSUSE15.1(RaspberryPi)
# /usr/sbin/ipsec status
Security Associations (1 up, 0 connecting):
linux-2-linux[1]: ESTABLISHED 2 minutes ago, 192.168.1.22[192.168.1.22]...192.168.1.18[192.168.1.18]
linux-2-linux{1}: INSTALLED, TUNNEL, reqid 1, ESP SPIs: ********_i ********_o
linux-2-linux{1}: 192.168.2.0/24 === 192.168.5.0/24
# ip xfrm policy
src 192.168.2.0/24 dst 192.168.5.0/24
dir out priority 375423 ptype main
tmpl src 192.168.1.22 dst 192.168.1.18
proto esp spi 0x******** reqid 1 mode tunnel
src 192.168.5.0/24 dst 192.168.2.0/24
dir fwd priority 375423 ptype main
tmpl src 192.168.1.18 dst 192.168.1.22
proto esp reqid 1 mode tunnel
src 192.168.5.0/24 dst 192.168.2.0/24
dir in priority 375423 ptype main
tmpl src 192.168.1.18 dst 192.168.1.22
proto esp reqid 1 mode tunnel
Das IPSec-Tunneling wurde erfolgreich mit virtuellen Hyper-V-Maschinen und Raspetorte (˶ ・ ᴗ ・) ੭⚐⚑ eingerichtet
Selbst wenn Sie in der StrongSwan-Konfigurationsdatei /etc/ipsec.conf eine Zeichenfolge anstelle einer IP-Adresse mit leftid oder rightid verwenden, wird der Erfassungsbildschirm angezeigt (\ * ´꒳` \ *).
Vielleicht ist dieser leichter zu verstehen. Im Beispiel werden "Himbeer-Pi" und "Nur Test @ Kazumi-Marmelade" unterschieden.
Ich habe noch kein leicht verständliches Bild, aber geben Sie für die linke und rechte IP-Adresse in ipsec.conf Ihre eigene IP-Adresse und die IP-Adresse des anderen Teilnehmers nach der NAT-Konvertierung ein, wie Sie sehen. Zu diesem Zeitpunkt ist es erforderlich, dass die linke und die rechte ID paarweise übereinstimmen.
Beispiel: 192.168.1.0/24 → Wenn 192.168.120.0/28 von NAT partitioniert wird
IPsecGW-1 (innerhalb von 192.168.1.0/24) left=192.168.1.22 leftid="gw1" right=192.168.1.18 rightid="gw2" IPsecGW-2 (innerhalb von 192.168.120.0/28) left=192.168.120.1 leftid="gw2" right=192.168.120.3 rightid="gw1"
Auf diese Weise kann IPsec durch Eingabe einer IP-Adresse eingerichtet werden, die NAT berücksichtigt. Weitere Details werde ich jedoch später veröffentlichen.
Mit der Einführung von Strong Swan wurde der Bau des IPsec-Gateways mit CentOS 8.1 auf Raspberry Pi und Hyper-V abgeschlossen. Verbinden Sie als Nächstes den Client und den Server mit dem VPN, das mit diesem IPSec-Gateway verbunden ist, und versuchen Sie, eine Verbindung untereinander herzustellen (˶˙ᵕ˙˶).
Recommended Posts