Même un individu peut se connecter et installer en au moins 7 à 8 heures s'il peut gérer les commandes Linux ✩ °. ⋆⸜ (\ * ॑ ꒳ ॑ \ *) ⸝ Il en coûte 2000 yens par heure pour travailler seul Ensuite, le coût du travail est d'environ 16000 yens ... [Il semble plus efficace de travailler sur plusieurs unités en même temps ... J'ai l'impression qu'il semble qu'une personne puisse travailler sur deux ou trois unités en même temps]
La passerelle IPsec peut être effectuée avec un Raspberry Pi et un ordinateur portable utilisé tant que vous pouvez compiler la source de Strong Swan, donc si vous voulez vraiment garder le réseau dans une zone VPN sécurisée, cette méthode de construction peut être la meilleure, alors essayez-la. J'ai fait! (˶ ・ ᴗ ・) ੭⚐⚑
--Programme IPST: StrongSwan 5.9.0 (compilation des sources) --Récepteur de négociation IPST: Raspberry Pi 3B + / openSUSE 15.1 Leap (aarm64)
CentOS8.1
# vi /etc/selinux/config
/etc/selinux/config
SELINUX=disabled
CentOS8.1
# reboot
--Passerelle d'origine de la négociation IPTI (à droite de la figure ci-dessous, CentOS 8.1):
Côté Internet (eth0): 192.168.1.18
Côté de la zone VPN (eth1): 192.168.5.1
Segment de réseau:
Connexion Internet possible: 192.168.1.0/24 --Raspberry Pi (côté réception de la négociation à gauche de la figure) Segment sécurisé: 192.168.2.0/24
CentOS 8 (Appelant des négociations à droite de la figure) Segment sécurisé: 192.168.5.0/24
Domaine IPST lié:
Section de raccordement: Entre 192.168.1.22 et 192.168.1.18
Coopération VPN: connexion VPN de 192.168.2.0/24 à 192.168.5.0/24
Les autres packages requis sont installés à l'aide des commandes de package standard de la distribution (dnf, apt, etc.) et n'ont pas besoin d'être téléchargés individuellement.
Pour le téléchargement, vous pouvez accéder au site officiel, le télécharger à partir de là et le transférer par FTP, ou vous pouvez l'obtenir avec wget si vous connaissez l'URL du fichier à télécharger, mais la méthode d'acquisition est omise.
Installez chaque distribution avec la machine virtuelle Hyper-V et Raspeye (la compilation source est la même pour les deux)
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++
J'ai installé le zlib avec l'emplacement par défaut. La compilation source est la même pour les machines virtuelles Hyper-V et Raspeye
# cd [Répertoire où se trouvent les fichiers d'archive zlib]
# tar zxvf zlib-1.2.11.tar.gz
# cd zlib-1.2.11/
# ./configure
# make
# make install
Le transfert IP doit être activé pour fonctionner comme une passerelle IPsec, alors activez-le. Dans CentOS 8.1 de la machine virtuelle Hyper-V, activez le transfert en exécutant la commande suivante. Raspeye open SUSE peut être défini dans YaST.
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
[Après cela, activez le transfert IPv4 à partir des paramètres réseau et de sécurité en fonction des paramètres YaST.]
Pour la machine virtuelle Hyper-V et le Raspberry Pi, ** Éteignez l'alimentation une fois ** pour activer le transfert IP + ajoutez un adaptateur réseau. Dans mon cas, Raspai a ajouté un adaptateur LAN filaire pour VPN via USB, et Hyper-V a ajouté un adaptateur réseau dans les paramètres.
Après l'expansion, vérifiez si "eth1" est ajouté, mais bien sûr, l'adresse IP n'a pas encore été attribuée.
# 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 [Adresse MAC de l'adaptateur réseau depuis le début] 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 [Adresse IPv6 de la carte réseau depuis le début] 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 [Adresse MAC de l'adaptateur réseau d'extension] brd ff:ff:ff:ff:ff:ff
inet6 [Adresse IPv6 de l'adaptateur réseau d'extension] 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
Dans le cas de CentOS, la commande est utilisée pour activer le transfert IP, vérifiez donc s'il est activé (ip_forward vaut 1).
CentOS8.1(Hyper-V/x64)
# cat /proc/sys/net/ipv4/ip_forward
1
# sysctl --system
…(Omission)
* Applying /etc/sysctl.d/01-ipv4fwd.conf ...
net.ipv4.ip_forward = 1
…(Omission)
Remarque: Si vous ne l'exécutez pas même si c'est gênant, vous obtiendrez une erreur indiquant qu'il n'y a pas de paquet et la compilation sera arrêtée (´ • ω • ̥`)
CentOS8.1(Hyper-V/x64)
# dnf -y install gmp-devel openssl-devel
openSUSE15.1(RaspberryPi)
# zypper -n install gmp-devel libopenssl-devel
Commun aux machines virtuelles Hyper-V et à Raspeye. Ce processus a pris un certain temps (surtout avec le Raspberry Pi, cela a pris 20-30 minutes)
# cd [strongswan-5.9.0.tar.Répertoire où se trouve gz]
# tar xvzf strongswan-5.9.0.tar.gz
# cd strongswan-5.9.0/
# ./configure --prefix=/usr --sysconfdir=/etc --enable-openssl
# make
# make install
Si vous pouvez compiler sans erreur, l'installation est terminée ♪ (\ * ˘︶˘ \ *) ...: \ * ♡
Lorsque StrongSwan est installé par compilation source, le fichier de configuration est stocké dans /etc/ipsec.conf et les paramètres de connexion IPsec y sont définis.
[Paramètres de base d'Apache]
# vi /etc/ipsec.conf
Le côté qui établit IPsec (celui qui envoie l'établissement), oui, d'abord, configurez CentOS 8.1 d'Hyper-V. Comme décrit dans la section "Conditions du serveur", du côté machine Hyper-V, votre adresse IP sera 192.168.1.18 et le partenaire d'établissement Raspberry Pi sera 192.168.1.22, alors écrivez la paire dans le fichier de configuration.
"Left" écrit les informations de la personne qui négocie l'établissement, et "right" écrit les informations de la personne à établir (à partir du manuel officiel StrongSwan / ConnSection)))
CentOS8.1(Hyper-V/x64)
…
#Ajoutez ce qui suit
conn [Nom distinctif Exemple: linux-2-linux]
authby=secret
auto=start #Envoyer des négociations IPsec
closeaction=restart
dpdaction=restart
left=192.168.1.18 #à gauche se trouve votre propre passerelle IPsec
leftid=192.168.1.18 #ID qui vous identifie pour négocier IPsec
leftsubnet=192.168.5.0/24
right=192.168.1.22 #à droite est la passerelle IPsec de l'autre partie
rightid=192.168.1.22 #ID qui identifie le partenaire de négociation IPsec
rightsubnet=192.168.2.0/24
…
Au fait, pour l'ID, j'ai utilisé l'adresse IP pour plus de simplicité dans mon cas, mais une chaîne de caractères est également OK. Et comme leftsubnet et rightsubnet sont les zones VPN dont vous et l'autre partie êtes responsables, leftsubnet est votre propre zone VPN, donc 192.168.5.0/24, et rightsubnet est la zone VPN Raspeye de l'autre partie, donc 192.168.2.0/ J'ai mis 24.
Ensuite, définissez le SUSE ouvert de Razpai. Comme décrit dans la section "Conditions du serveur", l'adresse IP à établir est 192.168.1.22 et Hyper-V CentOS 8 de l'autre côté à établir est 192.168.1.18, alors qu'est-ce que Hyper-V (CentOS 8)? Écrivez le contenu inverse dans le fichier de configuration.
openSUSE15.1(RaspberryPi)
#Ajoutez ce qui suit
conn [Nom distinctif Exemple: linux-2-linux]
authby=secret
auto=add #Recevoir les négociations IPsec
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
Le fait est qu'en définissant auto = add, il est défini du côté réception de la négociation d'établissement IPsec et le contenu de gauche et de droite est inversé. De cette façon, si les noms distinctifs (la chaîne après conn) correspondent, vous pouvez établir une connexion IPsec.
Par défaut, StrongSwan utilise la méthode PSK et utilise la méthode de chiffrement AES / SHA en standard. S'il est nécessaire de définir d'autres méthodes de cryptage, définissez-les séparément, mais omettez-les ici.
En passant, StrongSwan à ce stade prend en charge NAT-T, et IPsec peut être appliqué à NAT (dans le passé, IPsec ne pouvait pas être appliqué à NAT), donc NAT est utilisé sur Internet. Il semble que même l'espace utilisé peut communiquer sur Internet avec un VPN construit avec StrongSwan (même si je ne l'ai jamais expérimenté ...).
[Paramètres de clé Strong Swan]
# vi /etc/ipsec.secrets
/etc/ipsec.secrets
…
: PSK "[Chaîne appropriée: Exemple ... kazumi75kitty]"
…
Puisque nous utilisons la méthode PSK par défaut, nous la rendrons identique pour les machines virtuelles Hyper-V et Raspeye.
Maintenant que nous avons les paramètres d'environnement nécessaires pour StrongSwan, nous aimerions pouvoir le démarrer. Puisque le script de démarrage est Systemd, créez-le dans / 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
Je n'entrerai pas dans les détails sur les scripts Systemd ici, mais dans strongSwan, le type de service est forking car le démarrage et l'arrêt se font en arrière-plan à partir du processus parent.
Ensuite, le paramètre firewalld accepte IPsec (les données chiffrées elles-mêmes échangées par IPsec et la négociation d'IPsec peuvent être acceptées). Cependant, avec les paramètres ici, la limitation interne de 192.168.1.0/24 n'est pas spécifiée, et si les paquets IPsec peuvent passer d'autres segments de réseau, ils peuvent être reçus. Cependant, si vous prenez des mesures jusque-là, ce sera compliqué, donc pour des raisons de simplicité, nous n'autoriserons qu'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
Cette commande est commune aux machines virtuelles Hyper-V et à Raspeye.
Commençons. Commencez toujours par activer Activer et confirmez que l'état est «Actif» et «En cours d'exécution».
** Tout d'abord, StrongSwan est démarré du côté qui reçoit la négociation d'établissement IPsec, puis il est démarré dans l'ordre du côté qui envoie l'établissement IPsec **. Ici, après le démarrage de StrongSwan de Raspeye, StrongSwan de la machine virtuelle Hyper-V est démarré.
# systemctl start strongswan
# systemctl enable strongswan
# systemctl status strongswan
Vérifiez que la machine virtuelle Hyper-V et Raspeye sont définies sur "Actif" et "En cours d'exécution", et enfin vérifiez si le tunneling IPsec est établi.
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
Le tunnel IPsec a été établi avec succès avec les machines virtuelles Hyper-V et la tarte aux râpes (˶ ・ ᴗ ・) ੭⚐⚑
Dans le fichier de configuration StrongSwan /etc/ipsec.conf, même si vous utilisez une chaîne de caractères au lieu d'une adresse IP avec leftid ou rightid, l'écran de capture sera affiché (\ * ´꒳` \ *)
Peut-être que celui-ci est plus facile à comprendre. Dans l'exemple, "raspberry pi" et "test only @ kazumi-jam" sont distingués.
Il n'y a pas encore d'image facile à comprendre, mais pour les adresses IP gauche et droite dans ipsec.conf, entrez votre propre adresse IP et l'adresse IP de l'autre partie après la conversion NAT telle que vue de vous. À ce moment-là, il est nécessaire que l'identifiant gauche et l'identifiant droit correspondent par paires.
Exemple: 192.168.1.0/24 → Lorsque 192.168.120.0/28 est partitionné par NAT
IPsecGW-1 (dans 192.168.1.0/24) left=192.168.1.22 leftid="gw1" right=192.168.1.18 rightid="gw2" IPsecGW-2 (dans 192.168.120.0/28) left=192.168.120.1 leftid="gw2" right=192.168.120.3 rightid="gw1"
De cette façon, IPsec peut être établi en entrant une adresse IP qui prend en compte NAT, mais je posterai plus de détails plus tard.
Avec l'introduction de Strong Swan, la construction de la passerelle IPsec s'est achevée avec CentOS 8.1 sur Raspberry Pi et Hyper-V. Ensuite, connectez le client et le serveur au VPN connecté à cette passerelle IPsec et essayez de vous connecter l'un à l'autre (˶˙ᵕ˙˶).
Recommended Posts