Spring naar de inhoud

Blacklist voor 3CX IP PBX op basis van landencode

3CX beveiliging

Blue hacker - multiple monitors
Blue hacker – multiple monitors – Pixabay

In mijn lokaal netwerk heb ik een actieve VoIP server gebaseerd op 3CX.
Zoals zoveel andere IP PBX-systemen wordt ook deze op zijn publieke poorten via geautomatiseerd SIP scanning en brute-force campagnes bestookt. Hierbij zijn er frequent pogingen door externe bronnen om zichzelf te registreren. Om gratis te kunnen bellen bijvoorbeeld, of via deze weg Social Engineering te kunnen uitvoeren of ander hackmethodes aan te grijpen. De Global IP blacklist voorkomt gelukkig al voor het merendeel de lokale toegang.

De 3CX Voip PBX heeft standaard een efficiënte methode ingebouwd om onregelmatige verzoeken te blokkeren. Eén van de security mogelijkheden is Anti-Hacking die volledig op maat ingesteld kan worden met verschillende parameters. Parameters zoals aantal foutieve authenticaties, Challenge Requests, de tijdsinterval voor Black Listing en Security Barrier. Het moet natuurlijk wel een werkbaar systeem blijven voor de vertrouwde externe en mobiele gebruikers waardoor het niet al te strikt ingesteld wordt. Het kan dus wel degelijk voorkomen dat vanuit verschillende landen malafide systemen op de poorten van de IP PBX blijven ‘beuken’ en daardoor een overbodige last leggen op het systeem.

Dat ‘beuken’ kan voorkomen worden door aan de bron, de firewall, al de toegang te ontzeggen. Door op de firewall al in te stellen dat verschillende landen of zelfs hele continenten via de WAN geen toegang krijgen tot het interne netwerk en DMZ is al veel druk van de ketel te halen.
Zo hebben continenten Azië, Oceanië, Afrika en Zuid-Amerika geen toegang tot mijn netwerk. Maar grote delen van Europa en Noord-Amerika hebben dat wel. Al was het maar om de servers van Google niet te beperken tot Europa om de Google ranking van mijn website niet te hinderen.

IP Blacklist

Dan kijk ik naar een alternatief: individuele toegang tot IP PBX verschaffen op basis van lokale blacklist. Dat kan door gebruik te maken van de 3CX import optie van de ingebouwde blacklist. Daarvoor maak ik meerdere lijsten aan met landen die reeds eerder geblokkeerd werden door het detectiesysteem. Van belang is uiteraard om enkel die landen op te nemen waarvan geweten is dat interne (mobiele) medewerkers zich daar nooit bevinden. Onze buurlanden Nederland, Frankrijk, Groothertogdom Luxemburg en Duitsland zijn daarom al uitgesloten van deze IP block.

Er bestaan verschillende aanbieders van gratis database bestanden (CSV) die IP to Country informatie kant-en-klaar aanleveren. Ik geef er hier twee mee:

De IP to Country Lite database van DP-IP is behoorlijk uitgebreid en informatief, vooral in zijn MMDB formaat. Spijtig genoeg is deze vrij omslachtig te gebruiken voor wat ik nodig had door de noodzaak van conversie. Daarom gebruik ik de bestanden van IP2Location.

De 3CX IP PBX aanvaard uitsluitend het CIDR-formaat voor import. Daarom is soms een conversie nodig van CSV-bestanden. Bij IP2Location hoef ik dat niet te doen aangezien CIDR daar een keuze is bij het output-formaat. Heeft u dat toch nodig dan kan u een conversietool vinden op https://www.ipconvertertools.com/iprange2cidr#

Kies op de pagina Block Visitors by Country van IP2Location het land dat u wil blokkeren en selecteer het CIDR output formaat. Ik kies hier voor United Kingdom of Great Britain and Northern Ireland en IPv4. Men kan meerdere landen gelijktijdig kiezen in één lijst.
Unzip het bestand en verwijder de bovenste zes informatieve lijnen in het tekstbestand en bewaar het. Hierna moeten we het tekstbestand via Excel omzetten naar een CSV-bestand. Behoud hierbij de waarden als tekst. Hierna voeg ik bijkomende informatie toe. O.a. hoofdingen, vervaldatums en beschrijvingen.
Kopieer de eerste vervaldatum in heel de kolom. Doe hetzelfde met de beschrijving in de derde kolom. Dit moet het eindresultaat zijn.

CSV IP Block


Converteer naar JSON-formaat

Bewaar opnieuw als CSV-bestand. Hierna kunnen we het omzetten naar een JSON-formaat met een online tool te vinden op https://www.convertcsv.com/csv-to-json.htm.

  • In stap 1 kies ik als input Choose File. Wacht enige seconden totdat bijkomende informatie verschijnt over het bestand zoals Header Fields en Records. Hiermee weet ik dat het bestand goed gelezen werd.
  • Controleer onder stap 2 bij Choose input options dat er een vink staat bij First row is column names.
  • Behoud de standaard waarden van stap 3 en 4.
  • Onder stap 5, Generate output, is een voorbeeld output, standaard in JSON-formaat.
  • Klik op Download Result om de output te bekomen.

Controleer het JSON-bestand met een programma zoals Notepad++. Als alles goed is kan het gebruikt worden om te importeren in 3CX.

Importeer JSON-bestand

Ga in de 3CX console naar Security, IP Blacklist. Klik op Import en selecteer het nieuwe bestand. Geef het importproces enige tijd. Omvangrijke lijsten (bijvoorbeeld Verenigde staten van Amerika) hebben tijd nodig. Als u melding krijgt 3CX Management console is not responding wacht dan nog enkele seconden en klik dan op OK. Het totaal van verschillende landen kan omvangrijk worden. Mijn blacklist beslaat door de importbestanden bijna 8000 pagina’s.

Daniël Van Dromme
Daniël Van Dromme

Mijn naam is Daniël Van Dromme, ICT Consultant bij Peritus Consult en System Engineer bij Lab9 Pro Antwerpen. Ik ben een Systems Integrator en Infrastructure Architect met meer dan 25 jaar professionele ervaring.
Mijn mening is mijn eigen mening en de visie van Peritus Consult, niet de mening van mijn werkgever Lab9 Pro.