Maison / Maîtriser l'ordinateur / Protéger l'astérisque des connexions non autorisées. Configuration de fail2ban pour sécuriser l'astérisque. Définir des autorisations limitées sur les répertoires

Protéger l'astérisque des connexions non autorisées. Configuration de fail2ban pour sécuriser l'astérisque. Définir des autorisations limitées sur les répertoires

Date: 09:56 28/07/2018

Il existe de nombreuses histoires sur Internet concernant les hacks d'astérisques et les sanctions ultérieures de l'opérateur. Quelque part, il y avait une histoire sur une petite entreprise en Australie qui a réussi à voler pour 15 000 à 20 000 $. Je pense que personne ne veut être dans cette situation. Il est bien préférable, sans attendre les ennuis, de prendre un ensemble de mesures qui réduiront considérablement le nombre d'options de piratage et minimiseront le danger.

Port non standard au lieu de 5060

S'il y a une possibilité technique - TOUJOURS remplacer le port standard 5060 par un autre. Plus il est différent de la norme, mieux c'est. Les attaquants trouveront très rapidement votre astérisque en analysant simplement les ports sur une plage d'adresses. Cela se produira très rapidement - les premières tentatives de deviner un mot de passe ont été découvertes en moi déjà 3 jours après la mise en ligne de l'astérisque.
Le port est configuré dans le fichier sip.conf dans la section :

bindport=5060 => bindport=5172

Après de telles actions, le nombre de cueilleurs diminuera à presque zéro.

Configuration d'un pare-feu

Nous interdisons la connexion au port Asterisk de l'extérieur - cela empêchera de deviner les mots de passe. Cependant, certains fournisseurs de téléphonie SIP ne fonctionnent pas s'ils ne peuvent pas atteindre eux-mêmes votre port 5060 - dans ce cas, vous devez autoriser l'accès à ce port depuis le serveur de ce fournisseur. Alors un jour j'ai pensé pendant plusieurs jours pourquoi il n'y avait pas de connexion avec Beeline, puis j'ai ouvert leur accès IP à mon port 5060 et la connexion est apparue.

Désactiver les appels des invités

Si vous n'avez pas besoin de recevoir des appels sans inscription, assurez-vous de désactiver l'option suivante dans sip.conf :
allowguest=yes => allowguest=no ; Autoriser ou rejeter les appels des invités (la valeur par défaut est oui)

Désactiver l'alerte de mot de passe

Presque tout le monde a des comptes astérisques comme 100, 200, 700, etc. Par défaut, l'astérisque donne une erreur de mot de passe incorrect pour un compte existant et une autre pour un compte inexistant. Avec l'aide de spécialistes logiciel de craquage de mot de passe, un attaquant peut rapidement trier tous les numéros courts et deviner les mots de passe uniquement pour les comptes existants qui ont répondu "mauvais mot de passe". Pour éviter cela, nous modifions l'option dans sip.conf :
toujoursauthreject = non => toujoursauthreject = oui
Après un tel réglage, l'astérisque donnera le même rebond pour toute autorisation incorrecte.

Nous utilisons des mots de passe complexes pour les comptes

Tout mot de passe peut être deviné, la seule question est le temps. Étant donné que les appareils SIP sont configurés une fois et pour longtemps, ne lésinez pas sur les mots de passe complexes. Pour ma part, j'utilise des mots de passe longs avec des combinaisons de lettres majuscules et minuscules + chiffres comme ceci : secret=f64GCD74ssdZ42

Supprimez TOUJOURS tous les mots de passe qui correspondent aux connexions. Ce sont les premiers mots de passe utilisés pour les mots de passe.

Utiliser le refus/l'autorisation pour les comptes

Instant obligatoire ! Spécifiez les lignes suivantes pour tous les comptes qui n'impliquent pas une connexion depuis Internet :

Refuser=0.0.0.0/0.0.0.0 permis=10.1.1.1/24 permis=10.1.2.1/24

Où 10.1.1.1,10.1.2.1 sont les plages d'adresses locales à partir desquelles la connexion sera établie. Les connexions provenant d'autres adresses ne seront pas acceptées par astérisque.

Définir une limite d'appel

Limite d'appels=1

N'utilisez pas l'extension par défaut inutilement

Nous n'en avons pas besoin. Tout ce qui devrait être par défaut :

Exten => _X.,1,Raccrocher

Nous ne faisons pas une règle universelle pour tous les appels

Dites non aux règles du formulaire :

Poste => _X.,1,Composer(SIP/$(EXTEN)@opérateur)

Nous écrivons clairement toutes les combinaisons de nombres nécessaires transmises à l'opérateur. S'il n'est pas nécessaire d'utiliser communication internationale- ne lui décris pas du tout les règles. Presque tous les cas de piratage sont utilisés pour les appels vers l'étranger.

;Exten de services d'urgence => _0X,1, Dial(SIP/$(EXTEN)@operator) exten => _0X,n, Raccrocher ;Moscow exten => _8495XXXXXXX,1, Dial(SIP/$(EXTEN)@operator) exten => _8495XXXXXXX,n, Raccrocher poste => _8499XXXXXXX,1, Composez(SIP/$(EXTEN)@opérateur) poste => _8499XXXXXXX,n, Raccrochez poste => _XXXXXXX,1, Composez(SIP/$(EXTEN)@opérateur ) extension => _XXXXXXX,n, Raccrocher

Or, très souvent, on doit faire face à différents types d'attaques contre Astérisque et analogues. Mauvaise configuration et ignorance règles simples entraîner des pertes financières pour l'entreprise qui utilise PBX Astérisque.

Dans cet article, nous verrons les mécanismes de sécurité initiaux Astérisque 13 après l'installation et ne tiendra pas compte des mécanismes de sécurité Linux. Voici quelques règles qui vous aideront à protéger votre système :

1. Mots de passe et connexions résistants au piratage sur tous les périphériques réseau (Asterisk, téléphones IP, passerelles VoIP).

Mots de passe pour les comptes SIP, les administrateurs, les gestionnaires Asterisk et Périphériques réseau doit comporter au moins 13 caractères (lettres, chiffres, caractères spéciaux, changement de casse). N'utilisez pas de logins dans le système tels que administrateur, administrateur, gestionnaire etc.

2. Corrigez la configuration SIP dans Asterisk - sip.conf.

Pour vous protéger contre les scanners, vous devez modifier le port SIP standard, désactiver les appels et les enregistrements des invités, les jeux de chevauchement, vous abonner aux informations d'état des canaux, etc. Description complète paramètres général sip.conf décrit dans l'article. Ci-dessous se trouve le sip.conf que j'ai configuré pour le serveur Asterisk avec des commentaires :
context=default ;Attribuer par défaut un contexte inutilisé pour les appels sortants allowguest=no ;Interdire les connexions invité (sans authentification) match_auth_username=no ;Interdire l'utilisation du champ "username" au lieu de "from" allowoverlap=no ;Interdire les connexions à un seul chiffre dialing;allowtransfer= no ;Désactiver l'utilisation du domaine de transfert=CUCM11.5(1)SU3 ;Utiliser le nôtre Nom de domaine serveur (cachant cet astérisque) ;domainsasrealm=no ;recordonfeature=automixmon bindport=9050 ;Changer le port de signalisation SIP udpbindaddr=0.0.0.0 ;Adresse UDP par défaut tcpenable=yes ;Activer le support TCP (vous avez soudainement Avaya) tcpbindaddr=0.0 .0.0 ; Adresse TCP par défaut ;tlsenable=no ;tlsbindaddr=0.0.0.0 ;tcpauthtimeout = 30 ;tcpauthlimit = 100 ;websocket_enabled = true ;websocket_write_timeout = 100 transport=udp ;transport par défaut srvlookup=yes ;noms DNS ;pedantic=yes ;tos_sip=cs3 ; tos_audio=ef ;tos_video=af41 ;tos_text=af41 ;cos_sip=3 ;cos_audio=5 ;cos_video=4 ;cos_text=3 ;maxexpiry=3600 ;minexpiry=60 ;defaultexpiry= 120 ;submaxexpiry=3600 ;subminexpiry=60 ;mwiexpiry= 3600 ;maxforwards=70 qualifierfreq=60 ;Définir la vérification de la disponibilité de l'hôte sur 60 secondes ;qualifygap=100 ;qualifypeers=1 ;keepalive=60 ;notifymimetype=text/plain ;buggymwi=no ;mwi_from=asterisk ;vmexten=voicemail ;preferred_codec_only=yes disallow=all ;Désactiver tous les codecs allow=a law ;Autoriser Alaw allow=ulaw ;Autoriser Ulaw ;autoframing=yes ;mohinterpret=default ;mohsuggest=default ;parkinglot=plaza language=ru ;Mettre la langue russe dans le système par défaut tonezone=ru ;Définir la zone de tonalité globale en Ru relaxdtmf=yes ; Activer la reconnaissance des signaux DTMF mal reconnus ;trustrpid = no ;sendrpid = yes rpid_update=yes ;Notification immédiate du serveur opposé des changements d'état de la ligne ;trust_id_outbound = no ;prematuremedia=no ;progressinband=no callerid=CUCM11.5(1)SU3 ;Si nous n'avons pas défini CallerID quelque part - nous le rendons symbolique useragent=Cisco-SIPGateway/IOS-12.x ;Et en tant que PBX, nous avons Cisco-SIPGateway ;promiscredir = no ;usereqphone = no dtmfmode=rfc2833 ;Définir le bouton appuyez sur la tonalité sur le téléphone ;compactheaders = yes videosupport=yes ;Activer la prise en charge des appels vidéo ;textsupport=no maxcallbitrate=2048 ;Débit binaire maximal des appels vidéo authfailureevents=yes ;Définir le statut du pair s'il ne peut pas se connecter=rejeté alwaysauthr eject=yes ;Si la demande d'authentification a été rejetée, alors la réponse ne dira PAS que l'utilisateur a été saisi de manière incorrecte, protection de l'énumération des noms d'utilisateur auth_options_requests=yes ;Nous avons besoin d'une autorisation lors de l'envoi d'OPTION et INVITE ;accept_outofcall_message = no ;outofcall_message_context = messages auth_message_requests =yes ;Activer l'authentification de requête MESSAGE ;g726nonstandard = yes ;outboundproxy=proxy.provider.domain:8080 ;supportpath=yes ;rtsavepath=yes ;matchexternaddrlocally = yes ;dynamic_exclude_static = yes ;contactdeny=0. 0.0.0/0.0.0.0 ;contactpermit=172.16.0.0/255.255.0.0 ;contactacl=named_acl_example ;rtp_engine=asterisk ;regcontext=sipregistrations regextenonqualifiify=yes ;Si la qualité est activée pour un pair et qu'elle est abandonnée, * tue cette extension de regcontext ; legacy_useroption_parsing=yes ;send_diversion=no ;shrinkcallerid=yes ;use_q850_reason = no ;refer_addheaders=yes autocreatepeer=no ;Désactiver l'enregistrement UAC sans authentification t1min=200 ;Délai minimum pour les messages vers et depuis l'hôte ;timert1=500 ;timerb= 32000 rtptimeout= 600 ; Abandonner l'appel s'il n'y a pas d'activité de flux multimédia RTP après 600 secondes rtpholdtimeout=300 ; Abandonner l'appel s'il n'y a pas d'activité de flux multimédia RTP en mode Attente après 300 secondes ; session-expires=600 ;session-minse=90 ;session-refresher=uac ;sipdebug = yes ;recordhistory=yes ;dumphistory=yes ;allowsubscribe=no ;subscribecontext = default ;notifyringing = no ;notifyhold = yes ;notifycid = yes callcounter =yes ;Activer les compteurs aux appels t38pt_udptl=yes ;Activer le support de T.38 avec correction d'erreur FEC faxdetect=yes ;Activer la détection CNG et T.38 nat=auto_force_rport,auto_comedia ;Nous trouvons automatiquement Nat et les données multimédias sur le port à partir duquel Asterisk les a reçues et non ce qui a été reçu dans SDP ;media_address = 172.16.42.1 ;subscribe_network_change_event = yes ;icesupport = yes directmedia=no ;Direct le trafic RTP directement entre pairs, en contournant Asterisk ;directrtpsetup=yes ;directmediadeny=0.0.0.0/0 ;directmediapermit=172.16.0.0 /16 ; directmediaacl=acl_example ;ignoresdpversion=yes sdpsession=Appel SIP ;Changer le nom de la session SDP sdpowner=CiscoSystemsSIP-GW-UserAgent ;Changer les champs utilisateur dans la chaîne du propriétaire SDP ;encryption=no ;encryption_taglen=80 ;avpf=yes ;force_avp=yes ;rtcachefriends= oui ;rtsavesysname=oui ;rtupdate=oui ;rtautoclear=oui ;ignoreregexpire=oui ;domain=customer.com,customer-context ;allowexternaldomains=no ;allowexternaldomains=no ;fromdomain=mondomaine.tld ;snom_aoc_enabled = oui jbenable= oui ;Activer l'utilisation jbforce = non jbmaxsize=200 ;Définit la taille maximale du tampon RTP à 200 ms ;jbresyncthreshold = 1000 ;jbimpl = fixe ;jbtargetextra = 40 ;jblog = non

3. Nous utilisons un port IAX non standard.

Pour cela dans le dossier /etc/asterisk/iax.conf dans la section changer le paramètre port de liaison=4569 par paramètre port de liaison=9069

4. Asterisk doit être exécuté en tant qu'utilisateur différent (pas root). Comment faire cela est écrit dans l'article.

5. Définissez les adresses IP ou les réseaux autorisés pour les postes SIP.

deny=0.0.0.0/0.0.0.0 ; Tout refuser permit=10.0.0.0/255.0.0.0 ; Autoriser permis connu=172.20.0.0/255.255.0.0 ; Autoriser permis connu=192.168.0.0/16 ; Autoriser connu

6. Définissez la limite d'appels simultanés.

call-limit=2 ;Mettre la valeur à 2 pour que l'utilisateur puisse effectuer un transfert

7. Configurez différentes règles de routage sortant pour chaque utilisateur.

Il faut supprimer toutes les routes utilisées par défaut et attribuer la vôtre en distinguant les contextes :

  • Ensembles locaux
  • Appels locaux
  • Appels de zones
  • Appels interurbains
  • Appels internationaux
Une liste complète des codes ABC, DEF peut être extraite de la ressource officielle de Rossvyaz.
Pour la route par défaut, faites exten => _X.,1,Raccrocher()

8. Utilisez les tables IP

9. Utilisez Fail2Ban

10. Nous affichons tous les appareils téléphoniques dans un VLAN vocal séparé. Ici, il est nécessaire de forcer les réseauteurs.

11. Nous accordons une attention particulière à la direction internationale 8-10.

Nous définissons uniquement les directions utilisées dans l'organisation et les ajoutons (développons) si nécessaire. Nous faisons également une notification par e-mail si un utilisateur ou un attaquant a utilisé une destination internationale inconnue et fixons une limite à chaque connexion et au nombre d'appels simultanés. Une solution toute faite pour protéger la direction 8-10 est décrite dans l'article.

12. Désactivez les canaux et services inutilisés.

Par exemple, si vous n'utilisez pas le protocole MGCP ou mince, désactivez ces modules dans le fichier /etc/asterisk/modules.conf:
noload => pbx_gtkconsole.so noload => chan_alsa.so noload => chan_console.so noload => res_ari.so noload => chan_dahdi.so noload => codec_dahdi.so noload => res_ari_device_states.so noload => res_ari_applications.so noload = > res_ari_channels.so noload => res_ari_events.so noload => res_ari_playbacks.so noload => res_ari_endpoints.so noload => res_ari_recordings.so noload => res_ari_bridges.so noload => res_ari_asterisk.so noload => res_ari_sounds.so noload => res_pjsip .so noload => cdr_mysql.so noload => res_phoneprov.so noload => cdr_odbc.so noload => cdr_pgsql.so ;===================== = ==== ; PBX -- noload => pbx_ael.so ; Canaux -- noload => chan_mgcp.so noload => chan_skinny.so noload => chan_unistim.so noload => chan_pjsip.so noload => chan_modem.so noload => chan_modem_aopen.so noload => chan_modem_bestdata.so noload => chan_modem_i4l. donc noload => chan_alsa.so noload => chan_oss.so ; Codecs -- noload => codec_lpc10.so ; Formats -- noload => format_au.so noload => format_gsm.so noload => format_h263.so noload => format_ilbc.so noload => format_jpeg.so ; Applications -- noload => app_image.so noload => app_zapateller.so noload => app_zapbarge.so noload => app_zapscan.so noload => res_config_ldap.so

13. Limitez l'accès à distance à l'IP-PBX à l'aide du pare-feu.

Si vous envisagez de fournir accès à distance pour les employés autorisés, il est préférable de l'organiser en utilisant Serveurs VPN(par exemple OpenVPN).

Comme vous le savez, asterisk est une application (serveur) pour la téléphonie IP. C'est-à-dire qu'il permet aux clients qui y sont connectés de s'appeler entre eux et vers le monde extérieur en utilisant (entre autres) des lignes connexion téléphonique. Cela pose les risques suivants :

  1. les clients sont identifiés par login/mot de passe et (généralement) par adresse IP. En parallèle, il est possible de récupérer un mot de passe (plus tôt ou plus tard, selon sa complexité, mais dans tous les cas c'est possible), et bien souvent les restrictions sur les adresses IP sont loin d'être aussi strictes qu'on le souhaiterait (idéalement, chaque client devrait avoir sa propre adresse IP unique)
  2. appels entrants depuis Internet (par exemple, depuis d'autres serveurs asterisk). Avec ces connexions, tout est plus compliqué, car l'astérisque (dans la configuration de base) ne permet pas d'afficher les adresses IP à partir desquelles la connexion est établie.

Le programme fail2ban en conjonction avec un pare-feu (par exemple, iptables) et un astérisque correctement configuré (qui affiche des informations complètes dans les journaux, y compris les adresses IP des clients et d'autres serveurs) peut bloquer efficacement les tentatives de connexion et la devinette de mot de passe.

Avant de commencer la configuration, vous devez installer iptables et fail2ban. De plus, iptables doit déjà être configuré (et autoriser les connexions à l'astérisque) avant que fail2ban puisse être configuré ! Vous pouvez lire comment configurer iptables ici : Configuration d'iptables pour que l'astérisque fonctionne. Vous pouvez également installer fail2ban avant d'installer asterisk lui-même, auquel cas (du moins en théorie) lors de l'installation dernières versions asterisk détecte fail2ban installé et le configure automatiquement. Cependant:

  1. La question de la sécurité de la téléphonie IP n'est pas toujours prise en compte avant l'installation d'asterisk. Autrement dit, vous souhaitez très probablement installer fail2ban sur un système avec un astérisque déjà installé (et configuré).
  2. Dans tous les cas, la configuration automatique ne fonctionne pas du tout, et encore moins fonctionne correctement (et commence à bloquer toutes les attaques contre l'astérisque).

Configuration de la journalisation des astérisques

Tout d'abord, il est logique de configurer la journalisation des astérisques afin que les informations commencent immédiatement à être collectées dans le format et la forme dont nous avons besoin. Pour cela, dans le répertoire de configuration d'asterisk (par défaut c'est /etc/asterisk) trouvez le fichier logger.conf et apportez-y les modifications suivantes : décommentez (enlevez le point-virgule en début de ligne) :

Format de date=%F %T ; Format de date ISO 8601

Ceci est nécessaire pour que l'astérisque écrive la date dans les journaux au format correct :
année-mois-jour heures:minutes:secondes

À partir de la version 10 d'asterisk, vous pouvez activer le cadre de sécurité Asterisk. Pour ce faire, dans le fichier logger.conf, recherchez et décommentez (ou ajoutez) la ligne :

sécurité => sécurité

Cette ligne sur le côté gauche de la flèche indique le nom du fichier dans lequel les événements seront enregistrés et sur le côté droit - les niveaux (types d'événements) qui seront enregistrés. À cet exemple les événements liés au niveau de sécurité (et uniquement eux) seront enregistrés dans un fichier appelé security dans le dossier asterisk log.
Bien sûr, après avoir apporté des modifications, il est nécessaire que l'astérisque relise la configuration. Pour ce faire, vous pouvez soit recharger le service asterisk, soit simplement la configuration du journal (rechargement de l'enregistreur à partir de la CLI asterisk).

Après cela, un fichier nommé security. N'oubliez pas de configurer la rotation des journaux pour ce fichier (comme pour les autres journaux avec astérisque) !

Paramétrage des règles de filtrage

Nous devons maintenant créer un filtre qui extraira les événements potentiellement dangereux du flux de messages général de l'astérisque (nom d'utilisateur/mot de passe incorrect, tentative de connexion à partir d'une adresse IP non autorisée, etc., etc.). Dans le même temps, nous devons non seulement détecter ces événements potentiellement dangereux, mais également isoler à partir de là l'adresse IP à partir de laquelle l'action a été effectuée. Autrement dit, nous ne recherchons pas seulement certaines lignes dans les fichiers d'événements astérisques, mais configurons des règles de filtrage.
Les règles de filtrage peuvent être écrites dans le fichier /etc/fail2ban/filter.d/asterisk.conf. Voici un exemple du contenu de ce fichier :

# Fichier de configuration Fail2Ban # # # $Révision : $250 # # Lire les préfixes communs. Si des personnalisations sont disponibles -- lisez-les depuis # common.local #before = common.conf #_daemon = asterisk # Option : failregex # Notes. : regex pour correspondre aux messages d'échec de mot de passe dans le fichier journal. L'hôte # doit correspondre à un groupe nommé "hôte". La balise " " peut # être utilisée pour la correspondance IP/nom d'hôte standard et n'est qu'un alias pour # (?:::f(4,6):)?(?P \S+) # Valeurs : TEXT # # Asterisk 1.8 utilise Hôte : format de port reflété ici failregex = NOTICE.* .* : échec de l'enregistrement à partir de ".*" pour " :.*" - Mauvais mot de passe NOTICE.* .* : échec de l'enregistrement à partir de ".*" pour " :.* " - Aucun homologue correspondant trouvé AVIS.* .* : L'enregistrement à partir de ".*" a échoué pour " :.*" - Incompatibilité entre le nom d'utilisateur et le nom d'authentification AVIS.* .* : L'enregistrement à partir de ".*" a échoué pour " :.*" - Le périphérique ne correspond pas à ACL NOTICE.* .* : l'enregistrement depuis ".*" a échoué pour " :.*" - Pas un domaine local NOTICE.* .* : l'enregistrement depuis ".*" a échoué pour " :.*" - L'homologue n'est pas censé s'enregistrer NOTICE.* .* : L'enregistrement depuis ".*" a échoué pour " :.*" - Erreur ACL (permit/deny) NOTICE.* .* : L'enregistrement depuis ".*" a échoué pour " " - Mot de passe incorrect AVIS.* .* : L'enregistrement depuis ".*" a échoué pour " " - Aucun pair correspondant n'a été trouvé E.* .* : échec de l'enregistrement à partir de ".*" pour " " - Le périphérique ne correspond pas à ACL NOTICE.* .* : échec de l'enregistrement à partir de ".*" pour " " - Pas un domaine local NOTICE.* .* : enregistrement from ".*" a échoué pour " " - Le pair n'est pas censé s'enregistrer NOTICE.* .* : L'enregistrement depuis ".*" a échoué pour " " - Erreur ACL (permit/deny) NOTICE.* .* : L'enregistrement depuis "\ ".*\".*" a échoué pour " :.*" - Aucun homologue correspondant trouvé AVIS.* .* : L'enregistrement à partir de "\".*\".*" a échoué pour " :.*" - Mauvais mot de passe AVIS. * .* : Pas d'enregistrement pour l'homologue ".*" \(from \) NOTICE.* .* : L'hôte a échoué à l'authentification MD5 pour ".*" (.*) NOTICE.* .* : Impossible d'authentifier l'utilisateur .*@ . * NOTICE.* n'a pas pu s'authentifier en tant que ".*"$ NOTICE.* .* : envoi d'un faux rejet d'authentification pour le périphérique .*\<.>

Dans la version et les versions antérieures, des chaînes comme avi au-dessus de la chaîne sont utilisées, car à partir de la version, des informations sont apparues dans les journaux sur le numéro de port, qui n'est pas présent dans la variante ci-dessus, il prend en compte à la fois les anciennes et les nouvelles versions, vous n'avez donc rien à y changer

Pour la version et supérieure, si vous avez activé ou activé la journalisation, n'oubliez pas de définir des règles de filtrage pour ces journaux

Les règles de filtrage peuvent être écrites dans un fichier. Voici un exemple du contenu de ce fichier

Mise en place d'isolateurs pour

Maintenant, nous devons créer des descriptions des soi-disant isolants pour ceux qui lient nos filtres pour expliquer dans quels fichiers ces lignes doivent être recherchées et ensuite quoi faire

Pour cela, ouvrez le fichier

  1. Assurez-vous qu'il n'y a pas ou non d'autres règles liées à Pour cette année, il suffit de faire une recherche sur la fiche par nom sans vérification des guillemets pour s'assurer que si de telles règles existent pour chacune d'entre elles, la propriété est définie
  2. Si la version est plus petite ou si vous ne souhaitez pas utiliser les journaux, l'utilisation des journaux est fortement recommandée, vous n'aurez alors besoin de créer qu'une seule règle, sinon vous devrez créer les règles

Règle n°

Cette règle doit être créée pour toutes les versions. Vous pouvez créer une nouvelle règle ou modifier l'une des règles existantes, mais désactiver la nouvelle règle, car dans notre exemple, elle sera utilisée conjointement avec sera appelée et sera appliquée au fichier dans lequel tous les principaux types d'événements astérisques sont enregistrés.

настраиваемизоляторыдляосновныхсобытийправиловключенофильтркоторымбудетпользоватьсяправилоназываетсяназваниефильтраэтоимяфайлавкаталогеккакомуфайлулогамастерискаприменятьфильтрдляпоискапотенциальноопасныхсобытийколичествопотенциальноопасныхсобытийнайденныхфильтромдлясрабатываниядействиянакакойпериодвременивсекундахприменятьдействиезакакойпериодвременивсекундахискатьвпотенциальноопасныесобытиячтоделатьеслифильтробнаружилатакузапериодсекундвлогахобнаруженопотенциальноопасныхдействийсодногоадресаблокируемвсепортыдляэтогоипосылаемписьмодлясписокадресовподсетейдлякоторыхвсепотенциальноопасныесобытияигнорируются

Règle n°

Cette règle ne fonctionnera que si la version ou une version plus récente et également si la journalisation est activée, voir ci-dessus. Vous pouvez également créer une nouvelle règle ou modifier l'une des règles existantes mais désactiver la nouvelle règle, car dans notre exemple, elle est utilisée conjointement avec will sera appelée et cette règle sera utilisée pour l'analyse par un fichier dans le répertoire log master des risques

настраиваемизоляторыдлясобытийбезопасностиправиловключенофильтркоторымбудетпользоватьсяправилоназываетсяназваниефильтраэтоимяфайлавкаталогеккакомуфайлулогамастерискаприменятьфильтрдляпоискапотенциальноопасныхсобытийколичествопотенциальноопасныхсобытийнайденныхфильтромдлясрабатываниядействиянакакойпериодвременивсекундахприменятьдействиезакакойпериодвременивсекундахискатьвпотенциальноопасныесобытиячтоделатьеслифильтробнаружилатакузапериодсекундвлогахобнаруженопотенциальноопасныхдействийсодногоадресаблокируемвсепортыдляэтогоипосылаемписьмодлясписокадресовподсетейдлякоторыхвсепотенциальноопасныесобытияигнорируются

lancement

Maintenant, vous devez démarrer ou redémarrer et si cela est nécessaire, par exemple, n'a pas encore été démarré

Pour l'exécuter, vous devez d'abord l'exécuter, exécutez la commande suivante

Pour redémarrer, exécutez la commande suivante

Pour vérifier qu'il a été lancé avec succès et que les règles ont été chargées, exécutez la commande suivante

et s'il y a une deuxième règle

Pour afficher la liste des règles, exécutez la commande suivante

Dans le cas où vous venez d'installer ou n'oubliez pas de vous assurer qu'ils sont configurés pour que vous démarriez automatiquement au démarrage du système

Vérification du travail

L'essentiel dans le processus de vérification est d'avoir un autre ordinateur ou un accès local au serveur à portée de main afin qu'au cas où votre adresse soit bloquée, vous puissiez vous connecter et supprimer ce blocage

Il est nécessaire de vérifier le fonctionnement du lien, car même si vous avez tout configuré ou copié correctement, il peut y avoir de nombreuses combinaisons d'événements à la suite desquelles les serrures que vous avez configurées ne fonctionneront pas

La séquence d'actions pour vérifier le fonctionnement du lien

  1. Assurez-vous que les démarrages sont configurés au démarrage de l'ordinateur
  2. Si vous avez configuré des règles pour celle-ci, nous vous conseillons vivement de tester le fonctionnement de chacune d'entre elles individuellement. Pour cela, désactivez l'une des règles, par exemple
  3. redémarrez vos ordinateurs vérifiez que
    1. les services fonctionnent
    2. une des règles est activée et l'autre est désactivée

      Dans ce cas, pour la règle désactivée, un message apparaîtra

      et pour un message inclus de la forme

  4. Démarrez le client sans le serveur lui-même à partir d'un autre ordinateur et spécifiez des données incorrectes pour l'autorisation. L'adresse de connexion doit être l'adresse du serveur. Essayez de vous connecter une ou plusieurs fois. Le nombre d'autorisations après lesquelles l'adresse est bloquée est spécifié dans le paramètre pour chaque règle séparément.
  5. Si vous avez démarré le client sur le même ordinateur que vous vous êtes connecté au serveur et s'il a été configuré correctement, alors votre adresse est bloquée et vous ne pouvez pas vous connecter au serveur depuis cet ordinateur, vérifiez cela, connectez-vous à un autre ordinateur ou localement et continuez l'exécution les commandes
  6. Exécutez la vue de commande

    pour la règle activée et assurez-vous que l'adresse à laquelle le client s'est connecté est dans la liste des

  7. Maintenant, par analogie avec les actions du paragraphe, débloquez la deuxième règle, par exemple, et bloquez la première
  8. Suivez les étapes de point en point uniquement au lieu de redémarrer l'ordinateur, ce que vous pouvez également faire est suffisant pour redémarrer le service. Après cela, l'adresse de l'ordinateur sur lequel vous avez démarré le client sera immédiatement déverrouillée, mais vous devez démarrer recommencez au point de vérifier le fonctionnement de la seconde règle.
  9. Une fois que vous avez testé les deux règles séparément, n'oubliez pas de vous assurer de les activer à la fois pour les paramètres for et for Après cela, bien sûr, n'oubliez pas de recharger le service
  10. Et le dernier point, si vous avez terminé ou si les points précédents sont assez rapides pendant quelques minutes, alors il peut sembler qu'après avoir activé les deux règles, au redémarrage suivant, vous serez à nouveau bloqué par l'adresse du client qui a été lancé
    Faire attention

gestion des règles

Désactiver temporairement le blocage d'adresse

Pour ce faire, vous devez utiliser le service. Nous allons d'abord afficher une liste de règles sur la console, puis sélectionner celles qui sont nécessaires pour les supprimer de l'interdiction.

Pour afficher une liste de règles, entrez la commande

Vous verrez un message comme celui-ci

Nous sommes intéressés à supprimer de l'interdiction l'adresse, qui, comme nous pouvons le voir, se trouve dans la chaîne de règles sous le nom que nous tapons la commande

En cas d'exécution réussie de la commande, aucun message n'apparaîtra et si nous exécutons à nouveau la commande

nous verrons que l'adresse a disparu du blocage, bien qu'elle reste dans le blocage. En même temps, nous pouvons à nouveau nous connecter au serveur

Désactiver définitivement le blocage d'adresse

Afin de ne pas bloquer une certaine adresse ou plusieurs adresses, quel que soit le nombre de tentatives infructueuses pour deviner le mot de passe et d'autres actions illégales qu'ils ont commises ou il est nécessaire de faire des réglages supplémentaires dans le fichier

Chaque règle de fichier peut contenir un paramètre qui spécifie une liste d'adresses qui sont incluses dans la liste blanche pour cette règle. Puisqu'il peut y avoir deux règles, notez que la vôtre doit être écrite dans les deux règles

Le paramètre a la forme suivante

Autrement dit, vous pouvez prescrire à la fois des sous-réseaux et des adresses individuelles dans ce cas, la liste blanche tombe et

Débloquer l'adresse testée

Lors de la vérification de l'exactitude des paramètres, vous exécutez à plusieurs reprises le client pour tester le travail de blocage des futures attaques sur Internet, et au cours de travaux ultérieurs, vous devrez peut-être également effectuer des actions de temps en temps, les conséquences de qui peut bloquer sur le côté.

Il existe des moyens de résoudre ce problème

  1. Entrez l'adresse dans les règles de la liste Mais parfois, il peut ne pas être souhaitable, par exemple, d'effectuer des tests périodiques de travail
  2. ОбычновремяэтодлительностьинтервалавсекундахзакотороесобытиеатакаподборпаролядолжноповторитьсяразпослечегобанвступитвсилунамногоменьшечемэтовремябанавсекундахпоистечениикоторогоадресудаляетсяизсписказаблокированныхНапримервыставляетсявминутачасЛибочасаденьилидажебольшеИтакдалееПоэтомуимеетсмыслсделатьпаузудлительностьюнеменеечемсмоментапоследнеготестированияизабаниванияВашегоадресапослечегоперезагрузитьсервисПриперезагрузкесервисавсеблокировкианнулируютсяОднакоприпоследующейзагрузкелогианализируютсясноваиесливлогахвтечениебылонеудачныхпопытокподключениясодногоэтотбудетсновазабаненсразупослезапуска

Test de configuration

Vous pouvez vérifier comment le filtre sera appliqué à l'un ou l'autre journal, pour cela, vous pouvez lancer la commande

Où est cet exemple de fichier de chemin avec les journaux qui seront filtrés comme le filtre lui-même qui contient les extraits du message d'erreur qui devraient être dans le journal pour interdire les adresses des attaquants

Et enfin, au lieu de redémarrer avec, vous pouvez exécuter la commande suivante

Liens vers les sources

Les matériaux sont notamment tirés du site officiel de l'expression rationnelle et les règles de l'astérisque sont tirées de la section

La téléphonie peut être bon marché
et fonctionnel !

La société ITCUBE fournit large éventail services d'installation, d'intégration et de configuration de la téléphonie IP

Les services informatiques peuvent être de haute qualité !

chmod 755 install_apf_bfd.sh

./install_apf_bfd.sh

La configuration APF est dans /etc/apf/conf.apf

Pour commencer à modifier un fichier, utilisez la commande suivante :

nano /etc/apf/conf.ap F

Définissez IFACE_IN et IFACE_OUT sur interface réseau en regardant Internet. Pour une interface réseau regardant réseau local, définissez IFACE_TRUSTED.

SET_TRIM="0"

APF a la capacité de prendre en charge la QoS. Pour SIP et IAX, vous devez définir les éléments suivants :

CGU _8="21,20,80,4569,5060,10000_20000"

Si vous modifiez le port SSH, vous devez modifier le fichier conf.apf pour qu'il corresponde à ce nouveau port.

HELPER_SSH_PORT="2222"

Assurez-vous de remplacer 2222 par le numéro de port correct sur lequel vous choisissez de gérer SSH.

Le filtrage du trafic entrant est utilisé pour ouvrir les ports d'accès ; TCP et UDP ont des paramètres distincts. Pour Asterisk (Trixbox), les ports suivants doivent être ouverts ; et TCP et UDP sont répertoriés. Si vous n'utilisez pas TFTP, n'ouvrez pas le port 69. N'oubliez pas de changer le port SSH. Sinon, vous ne pourrez pas accéder; ici, nous utilisons le port 2222 de notre dernier exemple. Nous n'avons pas inclus les ports IAX dans cette configuration. Il existe un moyen simple de s'assurer que seuls certains hôtes peuvent utiliser IAX, ce que nous aborderons plus tard. Ceci est utile si vous utilisez IAX pour faire apparaître des lignes réseau interbureaux qui sont invisibles du monde extérieur.

IG_TCP_CPORTS="2222,69,80,5060,6600,10000_20000"
IG_UDP_CPORTS="69,5060,10000_20000"

Je n'utilise pas de filtrage sortant, il n'est donc pas traité dans cet article. Il est défini sur EGF="0", désactivé par défaut.

Pour voir une liste d'options ligne de commande, exécutez apf sans drapeaux.

#apf
apf(3402): (glob) journal d'état introuvable, créé
APF version 9.6< This email address is being protected from spambots. You need JavaScript enabled to view it. >
Copyright (C) 1999-2007, Réseaux R-fx< This email address is being protected from spambots. You need JavaScript enabled to view it. >
Copyright (C) 2007, Ryan MacDonald< This email address is being protected from spambots. You need JavaScript enabled to view it. >
Ce programme peut être librement redistribué sous les termes de la GNU GPL
utilisation /usr/local/sbin/apf
-s|--start ......................... charge toutes les règles de pare-feu
-r|--restart ....................... arrêter (vider) et recharger les règles de pare-feu
-f|--stop........ ............. arrêter (vider) toutes les règles de pare-feu
-l|--list ......................... liste toutes les règles de pare-feu
-t|--status ....................... afficher le journal d'état du pare-feu
-e|--refresh ....................... rafraîchir et résoudre les noms DNS en confiance
règles
-a HOST CMT|--allow HOST COMMENT ... ajouter un hôte (IP/FQDN) à
allow_hosts.rules et chargez immédiatement la nouvelle règle dans le pare-feu
-d HOST CMT|--deny HOST COMMENTAIRE .... ajouter un hôte (IP/FQDN) à
deny_hosts.rules et chargez immédiatement la nouvelle règle dans le pare-feu
-u|--remove HOST ...................supprime l'hôte de
*_hosts.rules et supprimez immédiatement la règle du pare-feu
-o|--ovars ........................ afficher toutes les options de configuration

Pour démarrer APF, nous utilisons les commandes suivantes :

#apf-s
apf(3445): (glob) activation du pare-feu
apf(3489): (glob) déterminé (IFACE_IN) eth0 a l'adresse 192.168.1.31
apf(3489): (glob) déterminé (IFACE_OUT) eth0 a l'adresse 192.168.1.31
apf(3489): (glob) chargement de preroute.rules http://r-fx.ca/downloads/reserved http://feeds.dshield.org/top10-2.txt
http://www.spamhaus.org/drop/drop.lasso
apf(3489): (sdrop) analyse drop.lasso dans /etc/apf/sdrop_hosts.rules
apf(3489): (sdrop) chargement de sdrop_hosts.rules
apf(3489) : (glob) chargement des ports de dépôt communs
...........coupé pour ce document.........
apf(3489) : suppression d'entrée (glob) par défaut (entrée)
apf(3445): (glob) pare-feu initialisé
apf(3445): (glob) !!MODE DEVELOPPEMENT ACTIVE!! - le pare-feu va vider
toutes les 5 minutes.

Nous pouvons voir qu'APF est opérationnel, téléchargeant certaines règles depuis dshield.org et spamhaus.org. Testons maintenant la connexion au serveur Asterisk (Trixbox) via SSH pour nous assurer que vous avez tout configuré correctement. Si vous ne pouvez pas vous connecter, vous devez attendre 5 minutes, puis APF libérera le blocage. Une fois que vous êtes sûr de pouvoir entrer en SSH, nous pouvons changer DEVEL_MODE = "1" en DEVEL_MODE = "0" dans conf.apf et redémarrer APF. APF démarrera et n'émettra pas d'avertissement qu'il est en DEVELOPMETN_MODE.

APF : réglage supplémentaire

Ce n'est pas la fin de la configuration si vous souhaitez connecter vos serveurs Asterisk (Trixbox) via IAX. Pour ce faire, vous devrez ajouter les ports IAX à conf.apf. Cette option fonctionnera avec des adresses IP statiques ou DynDNS. La commande apf -a permet d'accéder à une adresse IP spécifique. Cela permettra globalement à l'hôte de se connecter à Asterisk (Trixbox) en contournant les règles du pare-feu.

apf-a 192.168.1.216

Cela permettra au système 192.168.1.216 de se connecter à n'importe quel port du serveur protégé par un pare-feu, contournant ainsi les règles du pare-feu. Si vous exécutez APF sur les deux Asterisk (Trixbox), assurez-vous de faire la même chose sur l'autre hôte en utilisant la bonne adresse IP.

APF permet également à l'administrateur système de bloquer un hôte ou un sous-réseau entier. C'est pratique si vous voyez quelqu'un essayer de se connecter à votre machine via FTP, Telnet, SSH, etc. Pour bloquer un hôte spécifique, utilisez ce qui suit : assurez-vous d'utiliser l'adresse IP que vous souhaitez bloquer.

apf-d 192.168.1.216

Pour bloquer un sous-réseau complet (CIDR) :

apf-d 202.86.128.0/24

APF ne prend pas en charge la qualité de service pour les paquets UDP. TCP uniquement. Il existe un moyen simple de résoudre ce problème. /etc/apf/internals a un fichier functions.apf. Nous devons éditer ce fichier manuellement. Il y a plusieurs endroits où nous devons ajouter une seule ligne. Nous recherchons la section TOS_ dans le fichier functions.apf. Il ressemblera à ceci:

si[! "$TOS_0" == "" ] ; alors
pour je dans `echo $TOS_0 | tr "," ""` ; fais
i=`écho $i | tr "_" ":"`
$IPT -t mangle -A PREROUTING -p tcp --sport $i -j TOS --set-tos 0
$IPT -t mangle -A PREROUTING -p udp --sport $i -j TOS --set-tos 0
Fini
Fi

Cette ligne supplémentaire doit être créée pour tous les bits TOS que vous utilisez.

BFD

La détection de force brute (attaque par dictionnaire) est utilisée pour traquer les tentatives de connexion non autorisées.

Le fichier de configuration pour BFD se trouve dans /usr/local/bfd et est nommé conf.bfd. Ce fichier, comme pour APF, contient de nombreux commentaires. Nous allons juste regarder quelques-unes des options de personnalisation.

La première variable de configuration que nous allons examiner est TRIG ; c'est le nombre de tentatives infructueuses avant que l'attaquant ne soit bloqué. La valeur par défaut est 15. Gardez à l'esprit qu'il s'agit du nombre de tentatives non pas à partir d'un compte, mais à partir d'une adresse IP. Donc, si de 1 adresse IP vient 15 tentatives infructueuses connectez-vous en utilisant différents comptes, il sera toujours verrouillé.

BFD a une fonctionnalité intéressante - envoyer des e-mails lorsqu'une force brute est détectée. Pour allumer cette option, définissez EMAIL_ALERTS sur 1 ; n'oubliez pas de spécifier l'adresse à laquelle vous souhaitez recevoir les notifications - EMAIL_ADRESS.

BFD est exécuté par cron toutes les 3 minutes et se trouve dans /etc/cron.d.

Vous pouvez obtenir une liste des adresses IP interdites à l'aide de la commande :

Pour démarrer BFD, utilisez la commande suivante :

bfd-s

Sommaire

Ceci termine l'examen de sécurité d'Asterisk (Trixbox).

Cet article ne couvre que les principes de base de la protection d'Asterisk (Trixbox). Naturellement, la construction de systèmes VoIP sécurisés ne se limite pas à cela.

L'article original se trouve sur le lien