fastm3
17/09/2010, 00h13
Bon , il est souvent demandé comment protéger Asterisk pour les postes nomades ou connections "dynamiques".
La solution , c'est un vpn et c'est assez simple même si je ne rentrerai pas dans les details. L'idée est de montrer que cela peut être fait facilement en 10min chrono.
Pour des commerciaux distants équipés de softphone sous windows. pptp est un des plus faciles à déployer car il le client sous Windows est intégré.
On va prendre l'exemple d'un petit serveur asterisk ( tournant sous debian ) derriere un routeur. Le serveur asterisk a pour adresse derriere le routeur 192.168.10.200.
L'ip externe est 82.X.Y.Z
On va supposer qu'il est protégé déja par un script iptables tel que décrit sur http://www.asterisk-france.org/showthread.php/8-Bloquer-les-scans.
Donc a part les ips explicitement autorisees sur le port 5060, personne ne peut accéder à asterisk à partir d'internet, ce qui est voulu.
On va autoriser les postes nomades a le faire néanmoins s'ils se connectent au serveur asterisk par vpn.
Etape 1: Installation et configuration du serveur pptpd sur la machine debian asterisk.
aptitude install pptpdConfiguration pptpd:
dans /etc/pptpd.conf, on ajoute juste les lignes suivantes ( les commerciaux se connectant récupèreront une adresse comprise entre 192.168.12.2 et 192.168.12.23
localip 192.168.12.1
remoteip 192.168.12.2-23on definit les users dans /etc/ppp/chap-secrets
# Secrets for authentication using CHAP
# client server secret IP addresses
fastm3 pptpd mypass *Ca y est le serveur vpn est installé...
Etape 2: Modification du firewall pour permettre aux commerciaux d'acceder a asterisk
dans le script /etc/init.d/firewall, on ajoutera la ligne suivante au debut.
# on autorise tout ce qui vient du subnet pour simplifier
iptables -A INPUT -s 192.168.12.0/24 -j ACCEPT
# on ouvre le port 1723
$IPT -A INPUT -p tcp --dport 1723 -j ACCEPT
# on autorise gre
$IPT -A INPUT -p gre -j ACCEPTSur votre routeur
On forwardera le port 1723 sur l'adresse interne de notre serveur asterisk 192.168.10.200
Etape 3: Config asterisk
Dans sip.conf, vou deviez avoir quelque chose comme cela
nat=yes
externip=82.X.Y.Z
localnet=192.168.10.0/255.255.255.0On rajoute une ligne pour le vpn.
nat=yes
externip=82.X.Y.Z
localnet=192.168.10.0/255.255.255.0
localnet=192.168.12.0/255.255.255.0
Pour les extensions remotes, on les limitera a un acces direct du vpn.
[monextensionremote]
deny=0.0.0.0/0.0.0.0
permit=192.168.12.1/255.255.255.0Etape 4: On redemarre tout pour prendre en compte la config
/etc/init.d/pptpd restart
/etc/init.d/firewall restart
reload asterisk le cas echeant.
Etape 5: Creation sur un poste windows de la connection vpn.
( A ne realiser qu'une seule fois, il faudra verifier qu'elle est active ensuite )
Ici, on le réalise sous windows 7.
Création d'une nouvelle connexion.
21
Connexion espace de travail (vpn)
18
Choix du nom de la connexion et on specifie l'ip externe du serveur vpn.
20
19
Saisie user et mot de passe spécifié dans /etc/ppp/chap-secrets
17
Connecter et hop, la connexion vpn devrait être active. On va néanmoins modifier un peu sa config.
Dans les parametres avancee tcpip v4 de la connection vpn, on decochera la case: Utiliser la passerelle par defaut pour le reseau distant.
Cela signifie que l'acces au net continue a se faire par la connection reseau du commercial. Le vpn ne sera utilisé que pour accéder au serveur asterisk.
Se deconnecter et reconnecter pour rendre le reglages actif. Sans ce changement, vous n'auriez plus de connectivité vers internet, le routage n'etant pas configuré du coté du serveur.
16
A cette étape, on peut pinger 192.168.12.1 ( notre serveur asterisk ) du pc windows.
On retourne sur le serveur asterisk et on peut verifier la connection avec ifconfig.
ifconfig sur le serveur doit montrer la connection ppp
debian:/var/log# ifconfig
ppp0 Link encap:Point-to-Point Protocol
inet addr:192.168.12.1 P-t-P:192.168.12.2 Mask:255.255.255.255
UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1396 Metric:1
RX packets:363 errors:0 dropped:0 overruns:0 frame:0
TX packets:23 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:3
RX bytes:31520 (30.7 KiB) TX bytes:8623 (8.4 KiB)
Etape 5bis: Creation sur l'iphone de la connection vpn
On choisira simplement le type pptp dans la definition du vpn en precisant l'ip externe du serveur vpn soit 82.X.Y.Z dans l'exemple ici ou le nom du host si vous avez enregistré celui-ci dans un dns.
35
Etape 6: Configuration du softphone windows ou iphone.
L'adresse du serveur asterisk sera 192.168.12.1, le reste de la procédure est identique.
Pour le commercial, il a juste a connecter en 1 clic la connexion "VPN Asterisk" avant l'utilisation du softphone. Certains softphones peuvent lancer en même temps la connexion vpn.
Et voila, grâce a l'article précèdent, vous êtes a l'abri des scans. Et grâce a celui-ci, vous pouvez connecter des postes nomades.
Bien sur, il existe d'autres vpn ( OpenVpn ) , des routeurs évolués, mais cette méthode a le mérite d'être très simple et sans matériel réseau spécifique.
Fastm3.
La solution , c'est un vpn et c'est assez simple même si je ne rentrerai pas dans les details. L'idée est de montrer que cela peut être fait facilement en 10min chrono.
Pour des commerciaux distants équipés de softphone sous windows. pptp est un des plus faciles à déployer car il le client sous Windows est intégré.
On va prendre l'exemple d'un petit serveur asterisk ( tournant sous debian ) derriere un routeur. Le serveur asterisk a pour adresse derriere le routeur 192.168.10.200.
L'ip externe est 82.X.Y.Z
On va supposer qu'il est protégé déja par un script iptables tel que décrit sur http://www.asterisk-france.org/showthread.php/8-Bloquer-les-scans.
Donc a part les ips explicitement autorisees sur le port 5060, personne ne peut accéder à asterisk à partir d'internet, ce qui est voulu.
On va autoriser les postes nomades a le faire néanmoins s'ils se connectent au serveur asterisk par vpn.
Etape 1: Installation et configuration du serveur pptpd sur la machine debian asterisk.
aptitude install pptpdConfiguration pptpd:
dans /etc/pptpd.conf, on ajoute juste les lignes suivantes ( les commerciaux se connectant récupèreront une adresse comprise entre 192.168.12.2 et 192.168.12.23
localip 192.168.12.1
remoteip 192.168.12.2-23on definit les users dans /etc/ppp/chap-secrets
# Secrets for authentication using CHAP
# client server secret IP addresses
fastm3 pptpd mypass *Ca y est le serveur vpn est installé...
Etape 2: Modification du firewall pour permettre aux commerciaux d'acceder a asterisk
dans le script /etc/init.d/firewall, on ajoutera la ligne suivante au debut.
# on autorise tout ce qui vient du subnet pour simplifier
iptables -A INPUT -s 192.168.12.0/24 -j ACCEPT
# on ouvre le port 1723
$IPT -A INPUT -p tcp --dport 1723 -j ACCEPT
# on autorise gre
$IPT -A INPUT -p gre -j ACCEPTSur votre routeur
On forwardera le port 1723 sur l'adresse interne de notre serveur asterisk 192.168.10.200
Etape 3: Config asterisk
Dans sip.conf, vou deviez avoir quelque chose comme cela
nat=yes
externip=82.X.Y.Z
localnet=192.168.10.0/255.255.255.0On rajoute une ligne pour le vpn.
nat=yes
externip=82.X.Y.Z
localnet=192.168.10.0/255.255.255.0
localnet=192.168.12.0/255.255.255.0
Pour les extensions remotes, on les limitera a un acces direct du vpn.
[monextensionremote]
deny=0.0.0.0/0.0.0.0
permit=192.168.12.1/255.255.255.0Etape 4: On redemarre tout pour prendre en compte la config
/etc/init.d/pptpd restart
/etc/init.d/firewall restart
reload asterisk le cas echeant.
Etape 5: Creation sur un poste windows de la connection vpn.
( A ne realiser qu'une seule fois, il faudra verifier qu'elle est active ensuite )
Ici, on le réalise sous windows 7.
Création d'une nouvelle connexion.
21
Connexion espace de travail (vpn)
18
Choix du nom de la connexion et on specifie l'ip externe du serveur vpn.
20
19
Saisie user et mot de passe spécifié dans /etc/ppp/chap-secrets
17
Connecter et hop, la connexion vpn devrait être active. On va néanmoins modifier un peu sa config.
Dans les parametres avancee tcpip v4 de la connection vpn, on decochera la case: Utiliser la passerelle par defaut pour le reseau distant.
Cela signifie que l'acces au net continue a se faire par la connection reseau du commercial. Le vpn ne sera utilisé que pour accéder au serveur asterisk.
Se deconnecter et reconnecter pour rendre le reglages actif. Sans ce changement, vous n'auriez plus de connectivité vers internet, le routage n'etant pas configuré du coté du serveur.
16
A cette étape, on peut pinger 192.168.12.1 ( notre serveur asterisk ) du pc windows.
On retourne sur le serveur asterisk et on peut verifier la connection avec ifconfig.
ifconfig sur le serveur doit montrer la connection ppp
debian:/var/log# ifconfig
ppp0 Link encap:Point-to-Point Protocol
inet addr:192.168.12.1 P-t-P:192.168.12.2 Mask:255.255.255.255
UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1396 Metric:1
RX packets:363 errors:0 dropped:0 overruns:0 frame:0
TX packets:23 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:3
RX bytes:31520 (30.7 KiB) TX bytes:8623 (8.4 KiB)
Etape 5bis: Creation sur l'iphone de la connection vpn
On choisira simplement le type pptp dans la definition du vpn en precisant l'ip externe du serveur vpn soit 82.X.Y.Z dans l'exemple ici ou le nom du host si vous avez enregistré celui-ci dans un dns.
35
Etape 6: Configuration du softphone windows ou iphone.
L'adresse du serveur asterisk sera 192.168.12.1, le reste de la procédure est identique.
Pour le commercial, il a juste a connecter en 1 clic la connexion "VPN Asterisk" avant l'utilisation du softphone. Certains softphones peuvent lancer en même temps la connexion vpn.
Et voila, grâce a l'article précèdent, vous êtes a l'abri des scans. Et grâce a celui-ci, vous pouvez connecter des postes nomades.
Bien sur, il existe d'autres vpn ( OpenVpn ) , des routeurs évolués, mais cette méthode a le mérite d'être très simple et sans matériel réseau spécifique.
Fastm3.