Modifications entre les versions 9 et 19 (s'étendant sur 10 versions)
Version 9 à la date du 2016-10-05 08:44:14
Taille: 11651
Éditeur: MassambaGaye
Commentaire:
Version 19 à la date du 2016-11-24 15:55:37
Taille: 3635
Éditeur: MassambaGaye
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 ;

Amélioration sécurité : Rendre la ToIP accessible uniquement à nos usagers

Ressources

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

AméliorationSécuritéSeptembre2016/VoIP (dernière édition le 2016-11-24 15:55:37 par MassambaGaye)