GNU/Linux >> Tutoriels Linux >  >> Cent OS

Comment installer le serveur VPN Softether sur Centos 7

La configuration de votre propre serveur de réseau privé virtuel est un bon moyen d'échapper au blocage et de pouvoir accéder à des sites bloqués dans votre pays. Le choix des packages VPN open source est long mais aujourd'hui nous avons décidé d'essayer Softether venant de l'Université de Tsukuba au Japon. Softether est depuis longtemps un produit propriétaire sous le nom de PacketX et il a été open source il y a quelques années à peine. C'est peut-être la raison pour laquelle il est tellement orienté Windows, l'interface graphique de configuration est uniquement Windows et la connexion à partir de clients Linux nécessite un travail supplémentaire. Nous allons utiliser uniquement Linux et aucune interface graphique ici, alors commençons. Au début, mettons à jour le système, installons les dépendances et désactivons SElinux

yum update
yum -y groupinstall "Development Tools"
yum -y install gcc zlib-devel openssl-devel readline-devel ncurses-devel wget tar dnsmasq net-tools iptables-services system-config-firewall-tui nano iptables-services

sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config

Après cela, redémarrez l'ordinateur pour que selinux s'arrête et que le nouveau noyau démarre si la mise à jour contient un nouveau noyau. Après le démarrage du serveur, désactivez les deux pare-feu car ils peuvent interférer avec les tests. Les règles de pare-feu seront définies une fois que tout sera configuré

systemctl disable firewalld
systemctl stop firewalld
systemctl status firewalld

service iptables save
service iptables stop
chkconfig iptables off

De ces deux lots de commandes, l'un générera une erreur car vous n'exécutez pas deux pare-feu. Ensuite, nous devons cd vers /usr/src, télécharger le Softether, le décompresser et le compiler. Nous utiliserons la version 4.20 de Softether qui est au moment de la rédaction de la dernière version rtm. Il y a aussi la 4.21 mais c'est en beta.

wget www.softether-download.com/files/softether/v4.20-9608-rtm-2016.04.17-tree/Linux/SoftEther_VPN_Server/64bit_-_Intel_x64_or_AMD64/softether-vpnserver-v4.20-9608-rtm-2016.04.17-linux-x64-64bit.tar.gz
tar xzvf softether-vpnserver-v4.20-9608-rtm-2016.04.17-linux-x64-64bit.tar.gz -C /usr/local

cd /usr/local/vpnserver
make

Compile vous posera trois questions à la fin, vous devez répondre à toutes par 1.

Ensuite, nous devons créer un script d'initialisation pour softether, car aucun n'est inclus dans l'installation. Alors lancez vi /etc/init.d/vpnserver et faites coller ce script.

#!/bin/sh
### BEGIN INIT INFO
# Provides: vpnserver
# Required-Start: $remote_fs $syslog
# Required-Stop: $remote_fs $syslog
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Start daemon at boot time
# Description: Enable Softether by daemon.
### END INIT INFO
DAEMON=/usr/local/vpnserver/vpnserver
LOCK=/var/lock/subsys/vpnserver
TAP_ADDR=192.168.7.1

test -x $DAEMON || exit 0
case "$1" in
start)
$DAEMON start
touch $LOCK
sleep 1
/sbin/ifconfig tap_soft $TAP_ADDR
;;
stop)
$DAEMON stop
rm $LOCK
;;
restart)
$DAEMON stop
sleep 3
$DAEMON start
sleep 1
/sbin/ifconfig tap_soft $TAP_ADDR
;;
*)
echo "Usage: $0 {start|stop|restart}"
exit 1
esac
exit 0

Ensuite, vous devez ajouter le bit exécutable au script init et le démarrer pour la première fois à l'ancienne, puis l'activer avec systemd pour qu'il démarre à chaque démarrage.

chmod +x /etc/init.d/vpnserver

/etc/init.d/vpnserver start

systemctl enable vpnserver

Ne vous inquiétez pas qu'il se plaigne de l'interface tap, c'est parce que nous l'avons ajouté au script init et l'avons fait démarrer avec softether mais n'avons pas encore créé l'interface tap dans la configuration softether. Nous y viendrons.

Softether est installé, maintenant nous configurons

Passant à la partie configuration, nous devons démarrer l'utilitaire vpncmd

/usr/local/vpnserver/vpncmd

Appuyez sur 1 pour sélectionner "Gestion du serveur VPN ou du pont VPN", puis lorsqu'il vous demande quel serveur configurer, appuyez simplement sur Entrée et il choisira localhost où vous venez d'installer Softether. Appuyez sur Entrée une fois de plus pour accéder au serveur en tant qu'administrateur. Type suivant

ServerPasswordSet

pour définir le mot de passe administrateur du serveur. Pour utiliser softether, un hub virtuel doit être créé. Nous allons créer un MOB nommé avec la commande suivante

HubCreate MOB

Il vous demandera de définir un mot de passe, que vous utiliserez pour administrer un hub, sans accès à l'ensemble du serveur VPN.

Maintenant, nous devons créer un pont local. C'est plus efficace des moyens, il y a aussi SecureNAT qui est plus facile à configurer mais qui consomme beaucoup de ressources. Nous allons utiliser un pont local et un périphérique de prise, notez qu'avec un pont local, le serveur DHCP doit également être configuré et installé, ce qui fera l'affaire à la fin du didacticiel. Le pont local est donc créé avec la commande suivante :

BridgeCreate /DEVICE:"soft" /TAP:yes MOB

Si la création du périphérique TAP échoue avec un message indiquant des privilèges insuffisants, vous souhaiterez peut-être vérifier si votre contrôleur réseau est défini en mode promiscuité. HyperV et VMware créent par défaut des machines virtuelles sans mode promiscuité. Définissez le mode promiscuité, puis réessayez de créer l'appareil tactile.

Nous devons maintenant créer un utilisateur pour le hub virtuel MOB que nous avons créé. Les utilisateurs sont créés avec la commande UserCreate et vous pouvez afficher la liste des utilisateurs avec la commande UserList. Des utilisateurs peuvent être ajoutés à des groupes et chaque groupe peut avoir un mode d'authentification différent, par exemple Mot de passe, Certificat, RADIUS, NTLM et autres.

Configuration du hub virtuel

Passons maintenant au hub MOB

Hub MOB

et créer un utilisateur

UserCreate test

Nous allons garder les choses simples et utiliser l'authentification par mot de passe, utilisez donc la commande suivante

UserPasswordSet test

Maintenant, nous configurons L2TP/IPSec, travaillez l'invite comme suit, gras est ce que vous devez taper :

VPN Server/MOB>IPsecEnable
IPsecEnable command - Enable or Disable IPsec VPN Server Function
Enable L2TP over IPsec Server Function (yes / no): yes

Enable Raw L2TP Server Function (yes / no): yes

Enable EtherIP / L2TPv3 over IPsec Server Function (yes / no): yes

Pre Shared Key for IPsec (Recommended: 9 letters at maximum): linoxide

Default Virtual HUB in a case of omitting the HUB on the Username: MOB

The command completed successfully.

C'est tout pour IPsec, mais nous voulons aussi avoir d'autres protocoles. Par exemple les protocoles OpenVPN et Microsoft. Nous utilisons ServerCertRegenerate commande pour générer et enregistrer un certificat SSL pour le serveur afin de pouvoir l'utiliser pour les clients OpenVPN et Microsoft. L'argument passé à la commande doit être l'adresse IP de votre serveur ou FQDIN :

ServerCertRegenerate <YOUR SERVER IP or FQDN>

Un nouveau certificat de serveur a été créé, nous devons l'enregistrer dans un fichier :

ServerCertGet ~/cert.cer

Ce certificat peut maintenant être transféré à vos clients. Nous pouvons maintenant activer la fonction SSTP avec cette commande :

SstpEnable yes

Et pour activer OpenVPN :

OpenVpnEnable yes /PORTS:1194

Le port pour OpenVPN peut être modifié à votre guise. Ensuite, nous devons créer une configuration pour le client OpenVPN comme ceci

OpenVpnMakeConfig ~/openvpn_config.zip

VPN sur DNS et VPN sur ICMP

Tapez Hub pour revenir à l'administration de l'ensemble du serveur VPN et pas seulement du hub MOB.

VPN Server/MOB>Hub
Hub command - Select Virtual Hub to Manage
The Virtual Hub selection has been unselected.
The command completed successfully.

Pour éviter au maximum tous les blocages, nous devons également activer le VPN sur ICMP et DNS :

VpnOverIcmpDnsEnable /ICMP:yes /DNS:yes
VpnOverIcmpDnsEnable command - Enable / Disable the VPN over ICMP / VPN over DNS Server Function
The command completed successfully.

Quittez maintenant le vpncmd car nous devons arrêter le vpnserver et configurer dnsmasq

service vpnserver stop

Serveur DHCP, transfert et post-routage

Softether est maintenant configuré, mais comme nous n'utilisons pas SecureNAT et optons plutôt pour un pont local, nous aurons besoin d'un serveur DHCP. Le dnsmasq est déjà installé dans la première étape du tutoriel lorsque nous avons installé les dépendances, nous devons donc maintenant le configurer. Nous devons éditer /etc/dnsmasq.conf ou utiliser la commande echo pour y ajouter les lignes nécessaires. Nous utiliserons cette dernière option et pendant que nous y sommes, nous ferons également écho à ipv4_forwarding.conf

echo interface=tap_soft >> /etc/dnsmasq.conf
echo dhcp-range=tap_soft,192.168.7.50,192.168.7.90,12h >> /etc/dnsmasq.conf
echo dhcp-option=tap_soft,3,192.168.7.1 >> /etc/dnsmasq.conf
echo port=0 >> /etc/dnsmasq.conf
echo dhcp-option=option:dns-server,8.8.8.8 >> /etc/dnsmasq.conf

echo net.ipv4.ip_forward = 1 >> /etc/sysctl.d/ipv4_forwarding.conf

Appliquez ce paramètre en exécutant

sysctl -n -e --system

Vérifiez s'il est appliqué :

cat /proc/sys/net/ipv4/ip_forward

Il devrait afficher 1. S'il affiche 0, faites ceci

echo 1 > /proc/sys/net/ipv4/ip_forward

Activer nat et post-routage :

iptables -t nat -A POSTROUTING -s 192.168.7.0/24 -j SNAT --to-source [YOUR SERVER IP ADDRESS]

iptables-save > /etc/sysconfig/iptables

Redémarrez les serveurs vpn et dhcp avec les commandes suivantes et activez-les à chaque démarrage :

service vpnserver start

systemctl start dnsmasq

systemctl enable dnsmasq

chkconfig vpnserver on

Conclusion

Cela conclut l'installation et la configuration du serveur Softether VPN. Il est configuré avec Local Bridge pour des performances maximales, nous n'avons plus qu'à connecter les clients. Les versions Windows et Android sont simples. Pour Windows, il vous suffit de vous rendre sur le site Softether, de télécharger le client GUI et de vous connecter. Pour Android, vous n'avez même pas besoin de cela, vous avez un client VPN intégré. Mais pour Linux, pour pouvoir vous connecter, vous avez besoin d'un commutateur Virtual Layer-3 sur le serveur et vous devez exécuter dhclient sur l'interface virtuelle du client GNU/ Ordinateur Linux. Dans un futur article, nous nous concentrerons sur ce client Desktop GNU/Linux que les gars de l'Université de Tsukuba n'aiment pas pour une raison quelconque et nécessitent toutes ces étapes supplémentaires.


Cent OS
  1. Comment installer le serveur Minecraft sur CentOS 7

  2. Comment installer Nginx sur CentOS 8

  3. Comment installer PostgreSQL sur CentOS 8

  4. Comment installer le serveur Teamspeak 3 sur CentOS 8

  5. Comment installer ProFTPD sur CentOS 7

Comment installer Shoutcast Server sur CentOS 8

Comment installer Lighttpd sur CentOS

Comment installer un VPN PPTP sur CentOS 6

Comment installer VestaCP sur CentOS 6

Comment installer le serveur VNC sur CentOS 7

Comment installer le serveur Minecraft sur CentOS 6