Taille: 11651
Commentaire:
|
← Version 19 à la date du 2016-11-24 15:55:37 ⇥
Taille: 3635
Commentaire:
|
Texte supprimé. | Texte ajouté. |
Ligne 21: | Ligne 21: |
* Mettre en place des règles de filtrage au niveau du firewall avec les objectifs suivants : * Autoriser le trafic interserveur IAX uniquement entre les serveurs VoIP de l'Agence se trouvant * Réfuser tout traffic SIP et RTP ne provenant pas de notre réseau local |
|
Ligne 22: | Ligne 25: |
* Mettre en place des règles de filtrage au niveau du firewall avec les objectifs suivants : * Autoriser le trafic interserveur IAX uniquement entre les serveurs VoIP de l'Agence se trouvant dans le fichier '''/etc/asterisk/auf/extensions-canon.global''' * Réfuser tout traffic SIP et RTP ne provenant pas de notre réseau local |
== Fichiers et scripts à utiiser == * script python de generation des regles : [[attachment:voip-gen-iptables]] * Fichiers contenant la liste des serveurs : [[attachment:liste-des-serveurs]] /!\ NB : Certains resolutions d'adresses echouent pour quelques domaines . Il faudra donc revoir la config dns de ces serveurs; Soit ces serveurs n'existent plus , ou il y a un soucis avec la config * voip.ifi.auf.org * voip.hcmv.vn.auf.org * voip.la.auf.org * ifemaurice.no-ip.org * voip.cf.auf.org * voip.soa.cm.auf.org * voip.cg.auf.org * voip.cd.auf.org == Utilisation des fichiers == * Creez le dossier /etc/voip et copiez y le fichier contenant la liste des serveurs {{{ mkdir -p /etc/voip wget --user-agent="Client-wget" -O /etc/voip/liste-des-serveurs "https://wiki.auf.org/wikiteki/Am%C3%A9liorationS%C3%A9curit%C3%A9Septembre2016/VoIP?action=AttachFile&do=get&target=liste-des-serveurs" }}} * Recuperer le script de génération du fichiers de regles iptables et le rendre executable |
Ligne 26: | Ligne 47: |
wget --user-agent="Client-wget" -O /usr/local/bin/voip-gen-iptables "https://wiki.auf.org/wikiteki/Am%C3%A9liorationS%C3%A9curit%C3%A9Septembre2016/VoIP?action=AttachFile&do=get&target=voip-gen-iptables" chmod +x /usr/local/bin/voip-gen-iptables }}} * Modifier les variables definies dans le script python {{{ VOIP_LOCAL=" " # à changer par l'adresse IP de votre serveur de téléphonie |
|
Ligne 27: | Ligne 54: |
#!/bin/sh # adresse IP du serveur VoIP local : voip.sn.auf.org VOIP_LOCAL="213.154.65.75/32" # adresse de votre serveur local INTERFACE_INTERNET="sonatel" # Nom de votre interface reliée à internet LOCAL_NET="10.196.1.0/24" # Réseau local RPV PORT_IAX="4569" PORT_SIP_RTP="5060,61001:62000" ALL_PORT="4569,5060,61001:62000" ## Autorisation des serveur de VoIP de l'agence à communiquer ## avec notre serveur depuis l'exterieur seulement en IAX |
INTERFACE_INTERNET=" " # A changer avec le nom de votre interface reliée à internet |
Ligne 38: | Ligne 56: |
/sbin/iptables -N VoIPForward ### tout ce qui concerle se serveur VoIP ##regle pour voip-nomade.ca.auf.org /sbin/iptables -A VoIPForward -d "$VOIP_LOCAL" -s 199.84.140.31/32 -i "$INTERFACE_INTERNET" -p udp -m udp --dport "$PORT_IAX" -j ACCEPT |
LOCAL_NET=" " # A changer avec votre Réseau local où se trouvent vos clients VoIP |
Ligne 42: | Ligne 58: |
##regle pour voip.ca.auf.org /sbin/iptables -A VoIPForward -d "$VOIP_LOCAL" -s 199.84.140.6/32 -i "$INTERFACE_INTERNET" -p udp -m udp --dport "$PORT_IAX" -j ACCEPT ## regle pour auf-bruxelles voip.be.auf.org /sbin/iptables -A VoIPForward -d "$VOIP_LOCAL" -s 194.78.70.74/32 -i "$INTERFACE_INTERNET" -p udp -m udp --dport "$PORT_IAX" -j ACCEPT ## regle pour auf-paris voip.fr.auf.org /sbin/iptables -A VoIPForward -d "$VOIP_LOCAL" -s 37.71.66.187/32 -i "$INTERFACE_INTERNET" -p udp -m udp --dport "$PORT_IAX" -j ACCEPT ## regle pour auf-rabat-bm voip-bm.ma.auf.org /sbin/iptables -A VoIPForward -d "$VOIP_LOCAL" -s 41.142.252.29/32 -i "$INTERFACE_INTERNET" -p udp -m udp --dport "$PORT_IAX" -j ACCEPT ## regle pour auf-rabat voip.ma.auf.org /sbin/iptables -A VoIPForward -d "$VOIP_LOCAL" -s 41.140.254.253/32 -i "$INTERFACE_INTERNET" -p udp -m udp --dport "$PORT_IAX" -j ACCEPT ## regle pour auf-alger voip.dz.auf.org /sbin/iptables -A VoIPForward -d "$VOIP_LOCAL" -s 196.20.71.90/32 -i "$INTERFACE_INTERNET" -p udp -m udp --dport "$PORT_IAX" -j ACCEPT ## regle pour auf-tunis voip.tn.auf.org /sbin/iptables -A VoIPForward -d "$VOIP_LOCAL" -s 196.203.111.226/32 -i "$INTERFACE_INTERNET" -p udp -m udp --dport "$PORT_IAX" -j ACCEPT ## regle pour auf-portvilla voip.vu.auf.org /sbin/iptables -A VoIPForward -d "$VOIP_LOCAL" -s 202.80.47.126/32 -i "$INTERFACE_INTERNET" -p udp -m udp --dport "$PORT_IAX" -j ACCEPT ## regle pour auf-bap voip.vn.auf.org /sbin/iptables -A VoIPForward -d "$VOIP_LOCAL" -s 118.70.216.122/32 -i "$INTERFACE_INTERNET" -p udp -m udp --dport "$PORT_IAX" -j ACCEPT ## regle pour auf-cnfhanoi voip.vn.refer.org /sbin/iptables -A VoIPForward -d "$VOIP_LOCAL" -s 118.70.205.161/32 -i "$INTERFACE_INTERNET" -p udp -m udp --dport "$PORT_IAX" -j ACCEPT ## regle pour auf-danang voip.danang.vn.auf.org /sbin/iptables -A VoIPForward -d "$VOIP_LOCAL" -s 113.160.226.118/32 -i "$INTERFACE_INTERNET" -p udp -m udp --dport "$PORT_IAX" -j ACCEPT ## regle pour auf-hcmv voip.hcmv.auf.org #/sbin/iptables -A VoIPForward -d "$VOIP_LOCAL" -s /32 -i "$INTERFACE_INTERNET" -p udp -m udp --dport "$PORT_IAX" -j ACCEPT ## regle pour auf-cnfhcmv voip.hcmv.vn.refer.org /sbin/iptables -A VoIPForward -d "$VOIP_LOCAL" -s 118.69.235.251/32 -i "$INTERFACE_INTERNET" -p udp -m udp --dport "$PORT_IAX" -j ACCEPT ## regle pour auf-khppenh voip.kh.auf.org /sbin/iptables -A VoIPForward -d "$VOIP_LOCAL" -s 119.82.249.194/32 -i "$INTERFACE_INTERNET" -p udp -m udp --dport "$PORT_IAX" -j ACCEPT ## regle pour auf-antenne-vientiane voip.la.auf.org #/sbin/iptables -A VoIPForward -d "$VOIP_LOCAL" -s /32 -i "$INTERFACE_INTERNET" -p udp -m udp --dport "$PORT_IAX" -j ACCEPT ## regle pour auf-cnf-vientiane voip.la.refer.org #/sbin/iptables -A VoIPForward -d "$VOIP_LOCAL" -s /32 -i "$INTERFACE_INTERNET" -p udp -m udp --dport "$PORT_IAX" -j ACCEPT ## regle pour auf-ifmt voip.ifmt.auf.org /sbin/iptables -A VoIPForward -d "$VOIP_LOCAL" -s 202.62.106.116/32 -i "$INTERFACE_INTERNET" -p udp -m udp --dport "$PORT_IAX" -j ACCEPT ## regle pour auf-dakar voip.sn.auf.org /sbin/iptables -A VoIPForward -d "$VOIP_LOCAL" -s 213.154.65.75/32 -i "$INTERFACE_INTERNET" -p udp -m udp --dport "$PORT_IAX" -j ACCEPT ## regle pour auf-nouakchott voip.mr.auf.org /sbin/iptables -A VoIPForward -d "$VOIP_LOCAL" -s 82.151.64.110/32 -i "$INTERFACE_INTERNET" -p udp -m udp --dport "$PORT_IAX" -j ACCEPT ## regle pour auf-bamako voip.ml.auf.org /sbin/iptables -A VoIPForward -d "$VOIP_LOCAL" -s 196.200.90.104/32 -i "$INTERFACE_INTERNET" -p udp -m udp --dport "$PORT_IAX" -j ACCEPT ## regle pour auf-conakry voip.gn.auf.org /sbin/iptables -A VoIPForward -d "$VOIP_LOCAL" -s 41.79.237.78/32 -i "$INTERFACE_INTERNET" -p udp -m udp --dport "$PORT_IAX" -j ACCEPT ## regle pour auf-abidjan voip.ci.auf.org /sbin/iptables -A VoIPForward -d "$VOIP_LOCAL" -s 105.235.109.202/32 -i "$INTERFACE_INTERNET" -p udp -m udp --dport "$PORT_IAX" -j ACCEPT ## regle pour auf-ouagadougou voip.bf.auf.org /sbin/iptables -A VoIPForward -d "$VOIP_LOCAL" -s 212.52.136.3/32 -i "$INTERFACE_INTERNET" -p udp -m udp --dport "$PORT_IAX" -j ACCEPT ## regle pour auf-niamey voip.ne.auf.org /sbin/iptables -A VoIPForward -d "$VOIP_LOCAL" -s 41.138.49.69/32 -i "$INTERFACE_INTERNET" -p udp -m udp --dport "$PORT_IAX" -j ACCEPT ## regle pour auf-lome voip.tg.auf.org /sbin/iptables -A VoIPForward -d "$VOIP_LOCAL" -s 41.207.188.13/32 -i "$INTERFACE_INTERNET" -p udp -m udp --dport "$PORT_IAX" -j ACCEPT ## regle pour auf-cotonou voip.bj.auf.org /sbin/iptables -A VoIPForward -d "$VOIP_LOCAL" -s 81.91.236.20/32 -i "$INTERFACE_INTERNET" -p udp -m udp --dport "$PORT_IAX" -j ACCEPT ## regle pour auf-alexandrie voip.eg.auf.org /sbin/iptables -A VoIPForward -d "$VOIP_LOCAL" -s 62.241.132.3/32 -i "$INTERFACE_INTERNET" -p udp -m udp --dport "$PORT_IAX" -j ACCEPT ## regle pour auf-tripoli voip.lb.refer.org /sbin/iptables -A VoIPForward -d "$VOIP_LOCAL" -s 193.227.182.218/32 -i "$INTERFACE_INTERNET" -p udp -m udp --dport "$PORT_IAX" -j ACCEPT ## regle pour auf-beyrouth voip.lb.auf.org /sbin/iptables -A VoIPForward -d "$VOIP_LOCAL" -s 193.227.161.1/32 -i "$INTERFACE_INTERNET" -p udp -m udp --dport "$PORT_IAX" -j ACCEPT ## regle pour auf-ife ifemaurice.no-ip.org #/sbin/iptables -A VoIPForward -d "$VOIP_LOCAL" -s /32 -i "$INTERFACE_INTERNET" -p udp -m udp --dport "$PORT_IAX" -j ACCEPT ## regle pour auf-caimaurice voip.mu.auf.org /sbin/iptables -A VoIPForward -d "$VOIP_LOCAL" -s 202.123.31.34/32 -i "$INTERFACE_INTERNET" -p udp -m udp --dport "$PORT_IAX" -j ACCEPT ## regle pour auf-antananarivo1 voip1.mg.auf.org /sbin/iptables -A VoIPForward -d "$VOIP_LOCAL" -s 41.242.100.205/32 -i "$INTERFACE_INTERNET" -p udp -m udp --dport "$PORT_IAX" -j ACCEPT ## regle pour auf-antananarivo2 voip.mg.auf.org /sbin/iptables -A VoIPForward -d "$VOIP_LOCAL" -s 41.242.101.69/32 -i "$INTERFACE_INTERNET" -p udp -m udp --dport "$PORT_IAX" -j ACCEPT ## regle pour auf-moroni voip.km.auf.org /sbin/iptables -A VoIPForward -d "$VOIP_LOCAL" -s 197.255.232.42/32 -i "$INTERFACE_INTERNET" -p udp -m udp --dport "$PORT_IAX" -j ACCEPT ## regle pour auf-bangui voip.cf.auf.org #/sbin/iptables -A VoIPForward -d "$VOIP_LOCAL" -s /32 -i "$INTERFACE_INTERNET" -p udp -m udp --dport "$PORT_IAX" -j ACCEPT ## regle pour auf-yaounde voip.cm.auf.org /sbin/iptables -A VoIPForward -d "$VOIP_LOCAL" -s 195.24.196.117/32 -i "$INTERFACE_INTERNET" -p udp -m udp --dport "$PORT_IAX" -j ACCEPT ## regle pour auf-libreville voip.ga.auf.org /sbin/iptables -A VoIPForward -d "$VOIP_LOCAL" -s 41.159.138.46/32 -i "$INTERFACE_INTERNET" -p udp -m udp --dport "$PORT_IAX" -j ACCEPT ## regle pour auf-brazzaville voip.cg.auf.org #/sbin/iptables -A VoIPForward -d "$VOIP_LOCAL" -s /32 -i "$INTERFACE_INTERNET" -p udp -m udp --dport "$PORT_IAX" -j ACCEPT ## regle pour auf-kinshasa voip.cd.auf.org #/sbin/iptables -A VoIPForward -d "$VOIP_LOCAL" -s /32 -i "$INTERFACE_INTERNET" -p udp -m udp --dport "$PORT_IAX" -j ACCEPT ## regle pour auf-bujumbura voip.bi.auf.org /sbin/iptables -A VoIPForward -d "$VOIP_LOCAL" -s 196.2.10.106/32 -i "$INTERFACE_INTERNET" -p udp -m udp --dport "$PORT_IAX" -j ACCEPT ## regle pour auf-tirana voip.al.auf.org /sbin/iptables -A VoIPForward -d "$VOIP_LOCAL" -s 95.107.161.110/32 -i "$INTERFACE_INTERNET" -p udp -m udp --dport "$PORT_IAX" -j ACCEPT ## regle pour auf-bg1 voip.bg.auf.org /sbin/iptables -A VoIPForward -d "$VOIP_LOCAL" -s 212.50.14.89/32 -i "$INTERFACE_INTERNET" -p udp -m udp --dport "$PORT_IAX" -j ACCEPT ## regle pour auf-bg2 voip.centrefrancophone-bg.org /sbin/iptables -A VoIPForward -d "$VOIP_LOCAL" -s 69.13.75.195/32 -i "$INTERFACE_INTERNET" -p udp -m udp --dport "$PORT_IAX" -j ACCEPT ## regle pour auf-chisinau voip.md.auf.org /sbin/iptables -A VoIPForward -d "$VOIP_LOCAL" -s 217.12.117.149/32 -i "$INTERFACE_INTERNET" -p udp -m udp --dport "$PORT_IAX" -j ACCEPT ## regle pour auf-erevan voip.am.auf.org /sbin/iptables -A VoIPForward -d "$VOIP_LOCAL" -s 109.68.125.242/32 -i "$INTERFACE_INTERNET" -p udp -m udp --dport "$PORT_IAX" -j ACCEPT ## regle pour auf-bucarest voip.ro.auf.org /sbin/iptables -A VoIPForward -d "$VOIP_LOCAL" -s 82.78.68.163/32 -i "$INTERFACE_INTERNET" -p udp -m udp --dport "$PORT_IAX" -j ACCEPT ## regle pour auf-tbilissi voip.ge.auf.org /sbin/iptables -A VoIPForward -d "$VOIP_LOCAL" -s 217.147.230.215/32 -i "$INTERFACE_INTERNET" -p udp -m udp --dport "$PORT_IAX" -j ACCEPT ## regle pour auf-pap voip.ht.auf.org /sbin/iptables -A VoIPForward -d "$VOIP_LOCAL" -s 190.115.164.157/32 -i "$INTERFACE_INTERNET" -p udp -m udp --dport "$PORT_IAX" -j ACCEPT ##### Autorisation des ports SIP et RTP seulement aux hôtes locaux ################## /sbin/iptables -A VoIPForward -d "$VOIP_LOCAL" -s "$LOCAL_NET" -p udp -m multiport --dports "$PORT_SIP_RTP" -j ACCEPT ### Fermeture de tout les ports SIP, IAX et RTP ############ /sbin/iptables -A VoIPForward -d "$VOIP_LOCAL" -p udp -m multiport --dports "$ALL_PORT" -j REJECT --reject-with icmp-port-unreachable |
}}} * Executer le script python et rediriger la sortie standard (stdout) vers un fichier regles, que vous allez rendre executable {{{ /usr/local/bin/voip-gen-iptables>/usr/local/bin/regles chmod+x /usr/local/bin/regles }}} * Une fois le fichier de regles generés, vous n'aura plus qu'a l'executer sur votre serveur de filtrage et rendre persistant les règles même apres le redemarrage {{{ /usr/local/bin/regles iptables-save >/etc/network/fw }}} |
Ligne 193: | Ligne 71: |
# si ça ne concerne pas les serveurs VoIP, retour au niveau supérieur /sbin/iptables -A VoIPForward -j RETURN |
|
Ligne 197: | Ligne 76: |
}}} | == Action corrective N°2 == * Configuration des restrictions au niveau du fichier de configuration des comptes SIP. Dans la section general du fichier '''/etc/asterisk/auf/sip-general.local''' on pourra ajouter le réseau que nous autorisons ; |
Ligne 199: | Ligne 79: |
== Action corrective N°2 == * Configuration des restrictions au niveau du fichier de configuration des comptes SIP. Dans la section general du fichier '''/etc/asterisk/sip.conf''' on pourra ajouter le réseau que nous autorisons ; |
Sommaire
Amélioration sécurité : Rendre la ToIP accessible uniquement à nos usagers
Ressources
MassambaGaye : pilotage
- RTR, RTL : Adaptation des systèmes locaux
Objectifs
- fermer les accès SIP externes par défaut
- filter les accès IAX en fonction des adresses IP de nos serveurs
- Limiter les appels vers le RTP à nos téléphones locaux
Rappels des ports VoIP utilisé
- 5060 UDP : SIP registration, utilisé pour l'enregistrement destelephones
- 4569 UDP : IAX2 registration, utilisé entre serveurs asterisk
- 61001 - 62000 UDP : Trafic voix RTP
Action corrective N°1
- Mettre en place des règles de filtrage au niveau du firewall avec les objectifs suivants :
- Autoriser le trafic interserveur IAX uniquement entre les serveurs VoIP de l'Agence se trouvant
- Réfuser tout traffic SIP et RTP ne provenant pas de notre réseau local
Fichiers et scripts à utiiser
script python de generation des regles : voip-gen-iptables
Fichiers contenant la liste des serveurs : liste-des-serveurs
NB : Certains resolutions d'adresses echouent pour quelques domaines . Il faudra donc revoir la config dns de ces serveurs; Soit ces serveurs n'existent plus , ou il y a un soucis avec la config
- voip.ifi.auf.org
- voip.hcmv.vn.auf.org
- voip.la.auf.org
- ifemaurice.no-ip.org
- voip.cf.auf.org
- voip.soa.cm.auf.org
- voip.cg.auf.org
- voip.cd.auf.org
Utilisation des fichiers
- Creez le dossier /etc/voip et copiez y le fichier contenant la liste des serveurs
mkdir -p /etc/voip wget --user-agent="Client-wget" -O /etc/voip/liste-des-serveurs "https://wiki.auf.org/wikiteki/Am%C3%A9liorationS%C3%A9curit%C3%A9Septembre2016/VoIP?action=AttachFile&do=get&target=liste-des-serveurs"
- Recuperer le script de génération du fichiers de regles iptables et le rendre executable
wget --user-agent="Client-wget" -O /usr/local/bin/voip-gen-iptables "https://wiki.auf.org/wikiteki/Am%C3%A9liorationS%C3%A9curit%C3%A9Septembre2016/VoIP?action=AttachFile&do=get&target=voip-gen-iptables" chmod +x /usr/local/bin/voip-gen-iptables
- Modifier les variables definies dans le script python
VOIP_LOCAL=" " # à changer par l'adresse IP de votre serveur de téléphonie INTERFACE_INTERNET=" " # A changer avec le nom de votre interface reliée à internet LOCAL_NET=" " # A changer avec votre Réseau local où se trouvent vos clients VoIP
- Executer le script python et rediriger la sortie standard (stdout) vers un fichier regles, que vous allez rendre executable
/usr/local/bin/voip-gen-iptables>/usr/local/bin/regles chmod+x /usr/local/bin/regles
- Une fois le fichier de regles generés, vous n'aura plus qu'a l'executer sur votre serveur de filtrage et rendre persistant les règles même apres le redemarrage
/usr/local/bin/regles iptables-save >/etc/network/fw
Action corrective N°2
Configuration des restrictions au niveau du fichier de configuration des comptes SIP. Dans la section general du fichier /etc/asterisk/auf/sip-general.local on pourra ajouter le réseau que nous autorisons ;
[general] ................. ................. ................. ;on interdit d'abord l'accès SIP à tous deny=0.0.0.0/0.0.0.0 ;on autorise enfin notre réseau local uniquement permit=10.196.1.0/255.255.255.0 ................. .................
- NB : Il est possible d'avoir plusieurs lignes permit