0x01-Installation
====> CentOS
RPM - Installation Download: HTTPS: //pkgs.org/download/strongswan
wget http://download-ib01.fedoraproject.org/pub/epel/7/x86_64/Packages/s/strongswan-5.7.2-1.el7. x86_64.rpm
RPM -ivh strongswan -. * RPM
oder
-y installiert EPEL-Veröffentlichung yum
yum -y OpenSSL-devel installieren strongSwan
relevante Plug-yum sucht Schwan findet
andere Plug-In ohne, vor allem zu installieren strongSwan-libipsec, scheinbar höher als der Kernel 2.6 gibt es einen Konflikt, zu dem Server führen konnte nicht
libipsec für die Erstellung von ipsec0 Karte und UDP - Kapselung, die hohe Version kernel-netlink
====> Ubuntu
apt -y install openssl libssl-dev strongswan libstrongswan
0x02-Server
====> ipsec.conf
# EAP (Extensible Authentication Portocol) Extensible Authentication Protocol
# IKE / ESP - Authentifizierung Schlüsselaustauschprotokolle und Datenverschlüsselung
# Remote - Server rechts
Seite # links ist ein lokales Lokal
Setup - Konfiguration
charondebug = "cfg 2" # log Vorschläge
UniqueIDs = nie # mehrere Clients an denselben Benutzer verbunden
conn% Standard
IKE = aes128-sha256-ecp256, aes256-sha384-ecp384, aes128-sha256-modp2048, aes128-SHA1-modp2048, aes256-sha384-modp4096, aes256-sha256-modp4096, aes256-SHA1-modp4096, aes128-sha256 -modp1536, aes128-SHA1-modp1536, aes256-sha384-modp2048, aes256-sha256-modp2048, aes256-SHA1-modp2048, aes128-sha256-modp1024, aes128-SHA1-modp1024, aes256-sha384-modp1536, aes256-sha256-modp1536 , aes256-sHA1-modp1536, aes256-SHA384-modp1024, aes256-sha256-modp1024, aes256-sHA1-modp1024!
esp = aes128gcm16-ecp256, aes256gcm16-ecp384, aes128-sha256-ecp256, aes256-sha384-ecp384, aes128-sha256-modp2048, aes128-SHA1-modp2048, aes256-sha384-modp4096, aes256-sha256-modp4096, aes256-sha1- modp4096, aes128-sha256-modp1536, aes128-SHA1-modp1536, aes256-sha384-modp2048, aes256-sha256-modp2048, aes256-SHA1-modp2048, aes128-sha256-modp1024, aes128-SHA1-modp1024, aes256-sha384-modp1536, aes256-sha256-modp1536, aes256-SHA1-modp1536, aes256-sha384-modp1024, aes256-sha256-modp1024, aes256-SHA1-modp1024, aes128gcm16, aes256gcm16, aes128-sha256, aes128-SHA1, aes256-SHA384 aes256-sha256, aes256-sHA1!
keyingtries = 1
conn myVPN
keyexchange = IKEv2
# ike = aes256-AES192-aes128-SHA384-sha256-SHA1-modp3072-modp2048-modp1536-modp1024!
# Esp = aes256-AES192-aes128-SHA384-sha256-SHA1!
Erneuerungs - Schlüssel = keine
Kompresse = no
links =% any
# leftid =% domain.ltd
# leftfirewall = no
leftupdown = / etc / strongswan / strongswan.d / proxyndp.updown
leftsubnet = 0.0.0.0 / 0, :: / 0
leftauth = pubkey
leftsendcert = immer
leftcert = server .cert.pem
rechts =% any
# rightid =% Hostname
rightsourceip = 10.10.2.1 / 24,2001: db8 :: / 96
rightdns = 8.8.8.8,8.8.4.4,2001: 4860: 4860 :: 8888,2001: 4860: 4860 :: 8844
rightsendcert = nie
rightauth = eap-mschapv2
# Tfc =% mtu
eap_identity =% any
dpdaction = klar
dpddelay = 2400s
Fragmentierung = yes
auto = add
====> ipsec.secrets
# Ipsec.conf hängt von einem von zwei Linien von leftauth
: RSA <private_key.file> "über privates Verschlüsselungskennwort"
<Benutzername>: EAP "password"
====> Firewall- und Routing-Weiterleitung
iptables -t nat -A POSTROUTING- es {} IPv4 / 24 -o eth0 -j MASQUERADE
ip6tables -t nat -A POSTROUTING- es {IPv6} / 112 -o eth0 -j MASQUERADE
Und fügen Sie die folgenden drei Zeilen in /etc/sysctl.conf
net.ipv4.ip_forward = 1
net.ipv6.conf.all.forwarding = 1
net.ipv6.conf.all.proxy_ndp = 1
Führen Sie sysctl -p
====> Start / Stopp
ipsec / strongswan Neustart
0x03-Client
====> ipsec.conf
# Ipsec.conf - strongSwan IPsec - Konfigurationsdatei
# Grundkonfiguration
config - Setup
# strictcrlpolicy = yes
UniqueIDs = nie
# Add - Verbindungen hier.
conn Client
keyexchange = IKEv2
# ike = aes256-sha256-modp2048,3des-SHA1-modp2048, aes256-SHA1-modp2048!
# Esp = aes256-sha256,3des-SHA1, aes256-SHA1!
rechts = pub.6tu.me
rightid =% pub.6tu.me
rightsubnet = 0.0.0.0 / 0, :: / 0
rightauth = pubkey
leftsourceip =% config% config6
# leftauth = UAP-mschapv2
leftauth = UAP
eap_identity = user
type = tunnel
auto = add
# Configure LAN Zugang IPsec - Tunnel geht nicht
conn ausnehmen
rechts = 127.0.0.1
leftsubnet = 192.168.0.0 / 24-
rightsubnet = 192.168.0.0 / 24-
des type = Pass - Through -
Auto = Route
====> ipsec.secrets
# Ipsec.conf hängt von einem von zwei Linien von leftauth
: RSA <private_key.file> "über privates Verschlüsselungskennwort"
<Benutzername>: EAP "password"
====> Firewall- und Routing-Weiterleitung
Mit IP -6 Route oder der aktuellen Routing - IP - Route anzuzeigen
IP - Route oder ip Route anzeigen Tabelle 220 Befehlen Ansicht
ip Regel hinzuzufügen von IPv4 {} / 24 Tabelle 1 Haupt PRIO
ip -6 Regel hinzufügen von IPv6 {} / 64 Tabelle 1 Haupt PRIO
====> Start / Stopp
# Systemctl Neustart Netzwerk
ipsec / strongswan Neustart
ipsec / strongswan up / down ccc
0x04 Andere Matters
====> Certificate Authority (nicht zwingend)
yum / apt -y ca-Zertifikate installieren
cp ca.pem / etc / pki / ca-trust / Quelle / Anker /
cp ca.pem / etc / pki / tls / certs /
Update-ca-Trust-Extrakt
====> Referenzen
https://oogami.name/1467/
https://wiki.strongswan.org/projects/strongswan/wiki/IKEv2ClientConfig
https://libreswan.org/wiki/Subnet_to_subnet_VPN
https://wiki.strongswan.org/projects/ strongswan / wiki / VirtualIP
Linux开源VPN之strongSwan
https://www.jianshu.com/p/ce6c545efd8a
https://www.cnblogs.com/Su-per-man/p/9952292.html
https: // blog. csdn.net/puppylpg/article/details/64918562
Hinweis 0x05
====> Konfigurationsoptionen
# Leftauth = pubkey oder UAP, abhängig von dem ausgewählten Gateway - Konfiguration
# leftcert = Zertifikat, nur dann , wenn pubkey = leftauth (EG peerCert.der)
# eap_identity = Benutzername, nur dann , wenn EAP = leftauth (zB Verwendung der Peer)
# = 17/1701 leftprotoport Notwendigkeit Kommentar
# rightprotoport = 17 /% jeder Notwendigkeit Kommentar
des type = Pass - Through
des type = Transport
Auto = Route
Für immer% = keyingtries
dpdaction = Neustart
closeaction = Neustart
====> Fehler Debugging
Nach dem Start der folgenden Fehler führt, wird der Kernel nicht unterstützt IKE, Tunnel. Versuchen Sie modprobe af_key
kein netkey IPsec - Stack erkannt
kein KLIPS IPsec - Stack erkannt
keinen bekannten IPsec - Stack erkannt und ignoriert!
proxyndp.updown Skript, in dem IPv6-Netzwerk verwendet wird, ist nicht gültig
#! / bin / bash IFACE = eth0 # configure mich ADDR = $ {PLUTO_PEER_CLIENT% / * } Fall $ PLUTO_VERB in up-client-v6) echo "für die Proxy - NDP Hinzufügen von $ ADDR über $ IFACE" ip -6 wiehern Proxy $ hinzufügen ADDR dev $ IFACE ;; Down-client-v6) echo "Entfernen Proxy NDP für $ ADDR über $ IFACE" ip -6 wiehern löschen Proxy $ ADDR dev $ IFACE ;; up-Client) echo "Proxy - ARP für $ ADDR über $ IFACE Hinzufügen" ip wiehern hinzufügen Proxy $ ADDR dev $ IFACE ;; Down-Client) echo "Proxy - ARP für $ ADDR über $ IFACE entfernen" ip wiehern löschen Proxy $ ADDR dev $ IFACE ;; esac 2> & 1 | Logger -t proxyndp.updown
Verschiedene Funktionsmodule beschrieben 0x06
Charon: Sieht aus wie Management IKE (Internet Key Exchange) Daemon
strongSwan IPsec Client
charon-cmd charon-systemd
strongSwan IPsec - Client, PKI - Zertifikat Befehl zu digitalen Werkzeugen zu machen, SCEP (Simple Certificate Enrollment Protocol) -Client
strongswan-pki-scepclient strongswan
strongSwan IPsec - Client, swanctl Befehl
strongswan-swanctl
IPsec VPN Haupt
strongswan
strongSwan guard Starter und Konfigurationsdatei Parser
strongswan-Starter
IKE (Internet Key Exchange) Daemon
strongswan-charon strongswan-libcharon
strongSwan charon Bibliothek
libcharon-Standard-Plugins libcharon-extra-Plugins
strongSwan praktische und Verschlüsselungsbibliothek
libstrongswan libstrongswan-Standard-Plugins libstrongswan- Extra-Plugins
Netzwerk - Management Framework Stecker / Steck kann mit Networkinteragieren
Networkmanager -nm-für strongswan für strongswan
TNC (Trusted Network Connect) Trusted Network Connect - Protokoll
das IF-MAP (für die Metadaten - Access Point Interface)
der PDP (Packet Protoco die Data)
base / Client / Server - Dateien
strongSwan-tnc-Basis strongswan-tnc-Client strongswan-tnc-Server
TNC Stecker
strongswan-TNC-ifmap strongswan-tnc -pdp