Installation d'OpenVPN
(mutt n'est pas obligatoire, juste utile pour envoyer par email les fichiers de config)
AVOIR UN SERVEUR SMTP FONCTIONNEL !!!!
apt-get install openvpn openssl mutt zip
Après :
cd /etc/openvpn
cp -r /usr/share/doc/openvpn/examples/easy-rsa/2.0 ./easy-rsa
cd easy-rsa
nano vars
Modifier les variables en bas du fichier vars :
export KEY_COUNTRY="US"
export KEY_PROVINCE="CA"
export KEY_CITY="SanFrancisco"
export KEY_ORG="Fort-Funston"
export KEY_EMAIL="me@myhost.mydomain"
Après :
source vars
./clean-all
Cette commande va créer une clef d'authentification pour votre serveur VPN. Cette clef doit rester secrète !!!
./build-ca OpenVPN
Taper sur Entrée a chaque fois pour les variables.
Country Name (2 letter code) [FR]:
State or Province Name (full name) [AU]:
Locality Name (eg, city) [******]:
Organization Name (eg, company) [****.net]:
Organizational Unit Name (eg, section) [changeme]:
Common Name (eg, your name or your server's hostname) [changeme]:
Name [changeme]:
Email Address [mail@host.domain]:
Vous pouvez changer "server" par ksxxxx.kimsufi.com ou autre :
./build-key-server server
Taper sur Entrée a chaque fois pour les variables et aussi pour password, company name :
Country Name (2 letter code) [FR]:
State or Province Name (full name) [AU]:
Locality Name (eg, city) [*****]:
Organization Name (eg, company) [***.net]:
Organizational Unit Name (eg, section) [changeme]:
Common Name (eg, your name or your server's hostname) [server]:
Name [changeme]:
Email Address [mail@host.domain]:
Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:
Et taper "y" pour ses questions :
Certificate is to be certified until Jan 8 19:15:38 2024 GMT (3650 days)
Sign the certificate? [y/n]:y
1 out of 1 certificate requests certified, commit? [y/n]y
Ensuite la vous pouvez laisser HOME ou PC-BUREAU :
./build-key HOME
Reproduire la meme chose "Entrée", "y". a la fin vérifier a chaque fois que la database a été créer :
Write out database with 1 new entries
Data Base Updated
Dernière étapes :
./build-dh
Nouvel étape, création des fichiers ta.key et crl.pem :
openvpn --genkey --secret keys/ta.key
touch /etc/openvpn/crl.pem
Configuration :
Configuration du fichier coté serveur :
nano /etc/openvpn/openvpn.conf
et copier/coller :
dev tun
proto tcp
port 8876
ca /etc/openvpn/easy-rsa/keys/ca.crt
cert /etc/openvpn/easy-rsa/keys/server.crt
key /etc/openvpn/easy-rsa/keys/server.key
dh /etc/openvpn/easy-rsa/keys/dh1024.pem
tls-auth /etc/openvpn/easy-rsa/keys/ta.key 0 # ajout pour multiple client
#crl-verify /etc/openvpn/crl.pem # ajout pour révocation
cipher AES-256-CBC # ajout pour un meilleur cryptage
user nobody
group nogroup
server 10.8.0.0 255.255.255.0
persist-key
persist-tun
status /var/log/openvpn-status.log
verb 3
client-to-client
push "redirect-gateway def1"
#set the dns servers
push "dhcp-option DNS 8.8.8.8"
push "dhcp-option DNS 8.8.4.4"
log-append /var/log/openvpn
comp-lzo
Pour Openvpn coté Windows :
nano /etc/openvpn/easy-rsa/keys/client.ovpn
et copier/coller :
dev tun
client
proto tcp
remote ksxxxx.kimsufi.com 8876
resolv-retry infinite
nobind
persist-key
persist-tun
ca ca.crt
cert HOME.crt
key HOME.key
tls-auth ta.key 1 # modif
cipher AES-256-CBC # modif
comp-lzo
verb 3
Il faut compresser ca.crt, ta.key, HOME.crt, HOME.key et client.ovpn qui sont vos fichiers de configuration pour votre ordinateur :
cd keys
zip HOME.zip ca.crt ta.key HOME.crt HOME.key client.ovpn
mv HOME.zip /home/<username>/torrents
et télécharger l'archive avec Cakebox sur votre pc, extraire l'archive ici C:\Program Files (x86)\OpenVPN\config
On vas activer l’IP forwarding et rentrer des règles avec iptables automatiquement sans script grâce a ex_rat
chmod 755 /etc/rc.local
nano /etc/rc.local
et coller a la fin :
# add iptables rule for openvpn
echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE
exit 0
Allez verifier dans /etc/sysctl.conf que la ligne net.ipv4.ip_forward n'est pas commenter "#net.ipv4.ip_forward" :
nano /etc/sysctl.conf
Effacer le symbole # devant
Et si on essayé de lancer OpenVPN ???

avec le sourire svp !!
/etc/init.d/openvpn start
/etc/rc.local &
tail -f /var/log/openvpn
pour les curieux novices la troisième commande sert juste a voir les log en direct. Ctrl + z pour stopper les logs en live
Problème/Remerciement
Bonus :
Et en prime un script pour créer/supprimer automatiquement et envoyer les fichiers de configuration d'OpenVPN via e mail.
créer le fichier ou vous voulez,si vous souhaitez envoyer la configuration par e mail (
AVOIR UN SERVEUR SMTP FONCTIONNEL !!!!!) ou avoir utilisé le __[TUTO] Sécurisation & logs__ qui utilise déjà postfix :
cd /home/<username>
wget http://www.ratbox.nl/md/ovpn.sh
chmod +x ovpn.sh
L'ensemble du script:
#!/bin/bash
#
# V2.1 du script pour créer ou supprimer automatiquement des certificats
# et des clefs pour les clients OpenVPN
# Auteurs: ex_rat & yonea11
# Adapté au tuto OpenVPN de mondedie.fr - [url]http://bit.ly/1njZ0lO[/url]
#
# Copier en: /home/<user>/ovpn.sh
# Rendre exécutable: chmod +x ovpn.sh
# Executer: ./ovpn.sh
# Initialisation des variables
# Couleurs
JA='\e[1;33m'
VE='\e[1;32m'
RO='\e[1;31m'
NE='\e[0;39m'
# Contrôle droits utilisateur
if [ ! "`whoami`" = "root" ]; then
echo -e $RO"Vous devez être root pour exécuter ce script !"$NE
exit 1
fi
# Titre script
clear
echo "========================="
echo -e $JA"Utilitaire Client OpenVPN"$NE
echo "========================="
echo ""
# Menu de départ
PROMPT=$(echo -e $JA"Entrez votre choix:"$NE)
PS3="$PROMPT "
options=("Création Client" "Suppression Client" "Sortir")
select opt in "${options[@]}"
do
case $opt in
"Création Client")
# Récupération IP serveur et port openvpn
IP=$(ifconfig eth0 | egrep -o '([0-9]{1,3}\.){3}[0-9]{1,3}' | sed -n '1p')
PO=$(sed -n '/port/p' /etc/openvpn/openvpn.conf | cut -c 6-9)
# Nom du client OpenVPN
echo ""
echo -n -e $JA"Nom du certificat: (ex: client4 ou bob):" $NE
read CN
# Création des certificats
cd /etc/openvpn/easy-rsa/
source ./vars
KEY_CN=$CN ./pkitool $CN
mkdir $CN
# Création du fichier de configuration ovpn pour les clients Windows
echo "client
dev tun
proto tcp
#
remote $IP $PO
#
resolv-retry infinite
nobind
persist-key
persist-tun
ca ca.crt
cert $CN.crt
key $CN.key
tls-auth ta.key 1
cipher AES-256-CBC
comp-lzo
verb 3" > $CN/$CN.ovpn
# Création de l'archive avec tous les fichiers
cp keys/{ca.crt,$CN.crt,$CN.key,ta.key} $CN/
zip -r $CN.zip $CN
mv $CN.zip /var/www
echo ""
echo -e $JA"Votre fichier zip est disponible ici:"$NE
echo -e $VE"http://$IP/$CN.zip"$NE
echo ""
# Demande envoi mail
echo -n -e $JA"Voulez-vous envoyer le fichier $CN.zip par mail ? y/n:" $NE
read ouinon
if [ "$ouinon" = "y" ] || [ "$ouinon" = "Y" ]; then
echo ""
echo -n -e $JA"Entrez l'adresse mail du destinataire:" $NE
read mail
echo "Configuration d'OpenVPN" | mutt -s "OpenVPN fichier client $CN" -a /var/www/$CN.zip -- $mail < /dev/null
CR=$?
if [ "$CR" = 0 ]; then
echo -e $VE"Le fichier a bien été envoyé."$NE
echo ""
else echo -e $RO"Le fichier n'a pas pu être envoyé."$NE
echo ""
fi
fi
if [ "$ouinon" = "n" ] || [ "$ouinon" = "N" ]; then
echo ""
fi
# Demande suppression
echo -n -e $JA"Voulez-vous supprimer le fichier $CN.zip sur le serveur ? y/n:" $NE
read ouinon
if [ "$ouinon" = "y" ] || [ "$ouinon" = "Y" ]; then
sleep 3
rm /var/www/$CN.zip
fi
# Contrôle suppression
if [ -f /var/www/$CN.zip ]; then
echo -e $RO"Le fichier n'a pas été supprimé en /var/www/."$NE
echo -e $RO"Pensez à le faire pour votre sécurité !"$NE
else echo -e $VE"Le fichier a bien été supprimé."$NE
fi
echo ""
exit 0
break
;;
"Suppression Client")
# Supression des certificats
echo ""
echo -n -e $JA"Nom du certificat à supprimer: (ex: client4 ou bob):" $NE
read CN
echo ""
echo -n -e $JA"Êtes-vous sûr de vouloir supprimer le client $CN ? y/n" $NE
read ouinon
if [ "$ouinon" = "y" ] || [ "$ouinon" = "Y" ]; then
cd /etc/openvpn/easy-rsa/
source ./vars
./revoke-full $CN
cp keys/crl.pem /etc/openvpn/
rm -rf $CN
# Contrôle suppression 1
CR=$?
if [ "$CR" = 0 ]; then
echo ""
echo -e $VE"La révocation du client $CN a été effectué avec succès."$NE
else echo ""
echo -e $RO"La révocation du client $CN n'a pas pu être effectuée."$NE
echo -e $RO"Vérifiez le nom du client à supprimer."$NE
echo ""
exit 1
fi
fi
cd keys
rm -rf $CN.crt $CN.csr $CN.key
# Contrôle suppression 2
if [ -f /etc/openvpn/easy-rsa/keys/$CN.key ]
then echo -e $RO"La suppression des certificats n'a pas pu être effectuée."$NE
else echo -e $VE"La suppression des certificats a été effectué avec succès."$NE
fi
echo ""
exit 0;
if [ "$ouinon" = "n" ] || [ "$ouinon" = "N" ]; then
echo -e $RO"Aucune suppression de client n'a été faite."$NE
fi
echo ""
exit 0
break
;;
"Sortir")
break
;;
*) echo -e $RO"Option invalide"$NE;;
esac
done
Pour ajouter ou supprimer un user taper :
./ovpn.sh
Rappel:
Pour récupérer le zip avec les fichiers de configuration utiliser Cakebox ou le Ftp
Le fichier zip a supprimer pour plus de sécurité !!
rm /home/<username>/torrents/nom_du_zip.zip
Installation d'exim4 :
Et oui encor des truc a installer

Pfff.... Maintenant nous allons installer et configurer exim4 en smarthost pour qu'il utilise Gmail comme serveur relai, pour pouvoir envoyer nos fichier zip

ouiouioui!!! on approche du bout...
Pour commencer il faut aller s'inscrire sur Gmail si vous avez déjà votre compte rester ICI... !!
Installation :
apt-get install exim4
Configuration :
dpkg-reconfigure exim4-config
Une jolie page bleu vas apparaitre !!!!
Type de configuration : Envoi par relais << smarthost >> - pas de courrier local
Nom de courrier du systeme : ksxxxxx.kimsufi.com
Autres destinations dont le courrier doit être accepté : EFFACER
Liste d'adresse IP ou Exim sera en attente de conexions SMTP entrantes : 127.0.0.1
Autres destinations dont le courrier doit être accepté : EFFACER
Nom de domaine visibles pour les utilisateurs locaux : ksxxxxxx.kimsufi.com
Nom réseau ou adresse IP du système << smarthost >> : smtp.gmail.com:465
Faut-il minimiser les requêtes DNS (connexions à la demande) : NON
Faut-il séparer la configuration dans plusieurs fichiers : OUI <= des avis sur cet étape ??
On vas modifier le fichier password :
nano /etc/exim4/passwd.client
Coller :
gmail-smtp.l.google.com:yourMail@gmail.com:PASSWORD
*.google.com:yourMail@gmail.com:PASSWORD
smtp.gmail.com:yourMail@gmail.com:PASSWORD
on relance exim4 :
/etc/init.d/exim4 restart
Installer mailx pour tester :
apt-get install mailx
Envoi d'un mail :
mail -s "test YESSSS" monadresse@FAI.com
Ecrivez le corp du message et pour l'envoyer sauter une ligne et faite un "point" "." et Entrée!
root@ks3295691:/etc# mail -s "test YESSSS" adresse@mail.fr
taper ici votre texte mouahahaha !!!
.
EOT
root@ks3295691:/etc#
En cas d’échec un fichier log est la :
tail -f /var/log/exim4/mainlog
Voila c'est ici que nous nous quittons !!!!
J’espère que tout marche, pour ma part je l'ai installer sur un kimsufi avec debian7 tout fraichement installé, et coté client win8 (pas encor passé a 8.1) j’attends vos retour avec impatience !!!!
Problème/Remerciement c'est ici !!!