3. Oktober 2025
Weltweit kostenlos telefonieren — mit deinem eigenen Asterisk-Server. Ohne Programmierkenntnisse. Mit den beiliegenden 4 Batch-Dateien installierst du bequem einen vollständigen, erweiterbaren und anpassbaren Asterisk-Telefonserver auf Linux, der für weltweite Gespräche das Internet nutzt. Optional sorgen Fail2Ban und APIBAN für Schutz gegen bösartige SIP-Scanner. Eine zusätzliche Bash-Datei erzeugt QR-Codes für das Softphone Sipnetic (Google Play): QR-Code abfotografieren — Zugangsdaten sind automatisch eingetragen. Bequemer geht’s kaum.
Du kannst wirklich weltweit kostenlos telefonieren. Allerdings nur innerhalb deines eigenen Asterisk-Servers. Es fallen keine Telefongebühren an. Eventuell fallen Gebühren für den geringen Datenstrom des Internetzugang an. Sprachübertragungen benötigt nicht viele Daten. Die Kosten sind meistens vernachlässigbar. Meistens nutzt du aber eine Flatrate oder nutzt kostenlose WLAN-Hotspots. Später kannst du noch Zugänge in die öffentliche Netze einrichten oder dich mit anderen kostenlosen Telefonnetzen verbinden. Die Möglichkeiten von Asterisk sind fast unbegrenzt. Die Tonqualität ist viel besser als bei den meisten Messengerdiensten. Sogar Videotelefonate sind mit entsprechenden Softphones möglich. Zum Einsatz kommt der Video-Codec VP8, den sehr viele Softphones wie zum Beispiel Linphone beherrschen. Und die lästigen Telefonverkäufer haben natürlich keinen Zugang auf deinen eigenen Asterisk-Server.

Alle 4 Bash-Dateien zum Download in einer Zip-Datei:
Asterisk-Installation-mit-Bash-Dateien.zip
Lade die Zip-Datei herunter und entpacke sie. Du brauchst nach und nach alle 4 Bash-Dateien für eine dauerhafte zuverlässige Installation eines Asterisk-Telefonservers. Gehe Schritt für Schritt vor und lies dir die Anleitung sorgfältig durch. Mach dich und andere durch deinen eigenen Telefonserver unabhängig von solchen Messenger-Diensten, die mit deinen Daten Geld verdienen wollen und – schlimmer noch – dich gezielt manipulieren wollen. Spar dir teure Handy-Telefonate. Verzichte auf teure Auslandstelefonate. Mit dem ersparten Geld kannst du lustigere Sachen machen. Später kannst du deine Telefonate sogar verschlüsseln, wenn du willst. Dazu brauchst du Softphones, die das unterstützen.
Hilfefstellung: Wenn du nicht weiter weißt, scheue dich nicht ChatBots wie Claude Sonnet, ChatGPT, Grok oder DeepSeek zu fragen. Sie sind mächtige Werkzeuge, die dir weiterhelfen. Du musst nur versuchen deine Prompts möglichst exakt zu formulieren. Die vier Bash-Dateien sind mit Unterstützung von Claude Sonnet und ChatGPT entstanden und funktionierten erst nach einigen Anläufen.
Voraussetzungen: Geeignet für Linux Debian (Ubuntu, Mint, Raspberry Pi OS) und für Asterisk ab Ver. 16.
Testumgebung: Ubuntu Mate 24.04 und Asterisk 20.
1. Installation und Konfiguration von Asterisk mit der asterisk_basic.sh: Diese Bash-Datei installiert Asterisk und die Konfigurationsdateien pjsip.conf, extensions.conf, rtp.conf und features.conf. Dadurch erhältst du einen lauffähigen Asterisk-Server mit den SIP-Accounts 3001 bis 3006, einer Testnummer 222 für den Echotest und einem Konferenzraum mit der Nummer 600. Die Rufweiterleitung erfolgt mit einem *. Wenn man das Gespräch an die 3006 abgeben möchte, dann tippt man *3006 ein und legt auf. Anzahl der Telefonnummern ist beliebig erweiterbar. In der extensions.conf sind die Wahlregeln für die Nummerngasse 3000 bis 3999 definiert.
Nachfolgend der Inhalt der asterisk_basic.sh: Du musst den Inhalt nicht verstehen. Er soll nur als Beispiel dienen, welche Arbeit er dir abnimmt. Du brauchst keine Ahnung von der Asterisk-Programmierung haben, ist der größte Vorteil.
#!/bin/bash #=============================================================================== # Asterisk Installation & Konfiguration für Debian/Ubuntu/Mint/Raspberry Pi # Basis-Installation OHNE fail2ban und APIBAN # Installiert Asterisk und konfiguriert 6 Teilnehmer (3001-3006) #=============================================================================== set -e # Bei Fehler abbrechen # Farben für Ausgabe RED='\033[0;31m' GREEN='\033[0;32m' YELLOW='\033[1;33m' NC='\033[0m' # No Color echo -e "${GREEN}========================================${NC}" echo -e "${GREEN}Asterisk Basis-Installation${NC}" echo -e "${GREEN}========================================${NC}" echo "" # Root-Rechte prüfen if [ "$EUID" -ne 0 ]; then echo -e "${RED}Bitte als root ausführen (sudo ./install_asterisk_basic.sh)${NC}" exit 1 fi # Lokales Netzwerk automatisch erkennen echo -e "${YELLOW}Erkenne lokales Netzwerk...${NC}" LOCAL_IP=$(ip route get 1.1.1.1 | grep -oP 'src \K\S+') if [ -z "$LOCAL_IP" ]; then echo -e "${RED}Fehler: Konnte lokale IP nicht ermitteln!${NC}" exit 1 fi # Netzwerk-Adresse berechnen (z.B. 192.168.1.0/24 aus 192.168.1.50) IFS='.' read -r -a ip_parts <<< "$LOCAL_IP" LOCAL_NET="${ip_parts[0]}.${ip_parts[1]}.${ip_parts[2]}.0/24" echo -e "${GREEN}✓ Lokale IP: $LOCAL_IP${NC}" echo -e "${GREEN}✓ Lokales Netzwerk: $LOCAL_NET${NC}" # Öffentliche IP ermitteln echo -e "${YELLOW}Ermittle öffentliche IP-Adresse...${NC}" PUBLIC_IP=$(curl -s -4 ifconfig.me) if [ -z "$PUBLIC_IP" ]; then # Fallback zu anderem Dienst PUBLIC_IP=$(curl -s -4 icanhazip.com) fi if [ -z "$PUBLIC_IP" ]; then echo -e "${YELLOW}⚠ Konnte öffentliche IP nicht automatisch ermitteln${NC}" else echo -e "${GREEN}✓ Öffentliche IP: $PUBLIC_IP${NC}" fi echo "" # Externe Adresse abfragen (DynDNS oder statische IP) echo "" echo -e "${YELLOW}========================================${NC}" echo -e "${YELLOW}Externe Adresse Konfiguration${NC}" echo -e "${YELLOW}========================================${NC}" echo "" # Wenn öffentliche IP ermittelt wurde, Option anbieten if [ -n "$PUBLIC_IP" ]; then echo -e "${GREEN}Deine aktuelle öffentliche IP ist: $PUBLIC_IP${NC}" echo "" echo -e "Möchtest du diese IP verwenden?" echo -e " ${GREEN}1)${NC} Ja, verwende $PUBLIC_IP (statische IP)" echo -e " ${GREEN}2)${NC} Nein, ich möchte eine DynDNS-Adresse eingeben" echo "" read -p "Deine Wahl (1 oder 2): " IP_CHOICE echo "" if [ "$IP_CHOICE" = "1" ]; then EXTERNAL_ADDRESS=$PUBLIC_IP echo -e "${GREEN}✓ Verwende öffentliche IP: $EXTERNAL_ADDRESS${NC}" else echo -e "${YELLOW}Bitte gib deine DynDNS-Adresse ein:${NC}" echo -e "${YELLOW}Beispiel: donaldduck.dyndns.org${NC}" echo "" read -p "DynDNS-Adresse: " EXTERNAL_ADDRESS if [ -z "$EXTERNAL_ADDRESS" ]; then echo -e "${RED}Fehler: DynDNS-Adresse darf nicht leer sein!${NC}" exit 1 fi fi else # Wenn öffentliche IP nicht ermittelt werden konnte echo -e "${YELLOW}Bitte gib deine externe Adresse ein:${NC}" echo -e " ${GREEN}Option 1:${NC} DynDNS-Adresse (z.B. donaldduck.dyndns.org)" echo -e " ${GREEN}Option 2:${NC} Statische öffentliche IP (z.B. 203.0.113.42)" echo "" read -p "Externe Adresse: " EXTERNAL_ADDRESS if [ -z "$EXTERNAL_ADDRESS" ]; then echo -e "${RED}Fehler: Externe Adresse darf nicht leer sein!${NC}" exit 1 fi fi # Bestätigung echo "" echo -e "${GREEN}Externe Adresse: $EXTERNAL_ADDRESS${NC}" read -p "Ist das korrekt? (j/n): " CONFIRM if [ "$CONFIRM" != "j" ] && [ "$CONFIRM" != "J" ]; then echo -e "${RED}Installation abgebrochen.${NC}" exit 1 fi echo "" # Systeminformationen echo -e "${YELLOW}System wird aktualisiert...${NC}" apt-get update apt-get upgrade -y # Asterisk installieren echo -e "${YELLOW}Asterisk wird installiert...${NC}" apt-get install -y asterisk # Asterisk stoppen für Konfiguration echo -e "${YELLOW}Asterisk wird gestoppt für Konfiguration...${NC}" systemctl stop asterisk # Backup der Original-Konfigurationen BACKUP_DIR="/etc/asterisk/backup_$(date +%Y%m%d_%H%M%S)" mkdir -p "$BACKUP_DIR" echo -e "${YELLOW}Backup der Original-Konfigurationen nach $BACKUP_DIR${NC}" [ -f /etc/asterisk/pjsip.conf ] && cp /etc/asterisk/pjsip.conf "$BACKUP_DIR/" [ -f /etc/asterisk/rtp.conf ] && cp /etc/asterisk/rtp.conf "$BACKUP_DIR/" [ -f /etc/asterisk/features.conf ] && cp /etc/asterisk/features.conf "$BACKUP_DIR/" [ -f /etc/asterisk/extensions.conf ] && cp /etc/asterisk/extensions.conf "$BACKUP_DIR/" #=============================================================================== # pjsip.conf erstellen #=============================================================================== echo -e "${YELLOW}Erstelle pjsip.conf...${NC}" cat > /etc/asterisk/pjsip.conf << EOF ;=============================================================================== ; PJSIP Configuration für Asterisk 16+ ; Einfache Konfiguration für Telefonie + Videotelefonie über Internet ;=============================================================================== ;------------------------------------------------------------------------------- ; Transport Definition (Netzwerk-Bindung) ;------------------------------------------------------------------------------- [transport-udp] type=transport protocol=udp bind=0.0.0.0:5075 external_media_address=$EXTERNAL_ADDRESS external_signaling_address=$EXTERNAL_ADDRESS local_net=$LOCAL_NET ;------------------------------------------------------------------------------- ; Globale Einstellungen ;------------------------------------------------------------------------------- [global] max_forwards=70 user_agent=Asterisk PBX default_realm=$EXTERNAL_ADDRESS ;------------------------------------------------------------------------------- ; Template für alle Teilnehmer ;------------------------------------------------------------------------------- [teilnehmer-template](!) type=aor max_contacts=1 qualify_frequency=15 default_expiration=300 maximum_expiration=3600 [teilnehmer-auth](!) type=auth auth_type=userpass [teilnehmer-endpoint](!) type=endpoint context=telefone transport=transport-udp ; Codec-Einstellungen disallow=all allow=g722,alaw,ulaw,gsm,vp8 allow_overlap=no allow_transfer=no allow_subscribe=no ; NAT & Media direct_media=no rtp_symmetric=yes force_rport=yes rewrite_contact=yes ice_support=yes ; DTMF dtmf_mode=rfc4733 ; Jitter Buffer (wird von Asterisk core verwaltet) ; Siehe rtp.conf für jbenable, jbmaxsize, etc. ; Session Timers timers=no timers_min_se=90 timers_sess_expires=1800 ; QoS/ToS tos_audio=ef tos_video=af41 cos_audio=5 cos_video=4 ; Video Support webrtc=no ; Falls WebRTC gewünscht: webrtc=yes, use_avpf=yes, media_encryption=dtls ;------------------------------------------------------------------------------- ; Teilnehmer 3001 - Kalle Anka ;------------------------------------------------------------------------------- [3001](teilnehmer-endpoint) auth=3001 aors=3001 callerid="Kalle Anka" <3001> [3001](teilnehmer-auth) username=3001 password=pass3001 [3001](teilnehmer-template) ;------------------------------------------------------------------------------- ; Teilnehmer 3002 - Donald Duck ;------------------------------------------------------------------------------- [3002](teilnehmer-endpoint) auth=3002 aors=3002 callerid="Donald Duck" <3002> [3002](teilnehmer-auth) username=3002 password=pass3002 [3002](teilnehmer-template) ;------------------------------------------------------------------------------- ; Teilnehmer 3003 - Dagobert Duck ;------------------------------------------------------------------------------- [3003](teilnehmer-endpoint) auth=3003 aors=3003 callerid="Dagobert Duck" <3003> [3003](teilnehmer-auth) username=3003 password=pass3003 [3003](teilnehmer-template) ;------------------------------------------------------------------------------- ; Teilnehmer 3004 - Max Mustermann ;------------------------------------------------------------------------------- [3004](teilnehmer-endpoint) auth=3004 aors=3004 callerid="Max Mustermann" <3004> [3004](teilnehmer-auth) username=3004 password=pass3004 [3004](teilnehmer-template) ;------------------------------------------------------------------------------- ; Teilnehmer 3005 - King Kong ;------------------------------------------------------------------------------- [3005](teilnehmer-endpoint) auth=3005 aors=3005 callerid="King Kong" <3005> [3005](teilnehmer-auth) username=3005 password=pass3005 [3005](teilnehmer-template) ;------------------------------------------------------------------------------- ; Teilnehmer 3006 - Adam Smith ;------------------------------------------------------------------------------- [3006](teilnehmer-endpoint) auth=3006 aors=3006 callerid="Adam Smith" <3006> [3006](teilnehmer-auth) username=3006 password=pass3006 [3006](teilnehmer-template) EOF #=============================================================================== # rtp.conf erstellen #=============================================================================== echo -e "${YELLOW}Erstelle rtp.conf...${NC}" cat > /etc/asterisk/rtp.conf << 'EOF' [general] rtpstart=10501 rtpend=10700 jbenable=yes jbmaxsize=200 jbresyncthreshold=1000 jbimpl=adaptive EOF #=============================================================================== # features.conf erstellen #=============================================================================== echo -e "${YELLOW}Erstelle features.conf...${NC}" cat > /etc/asterisk/features.conf << 'EOF' [general] transferdigittimeout => 3 [featuremap] blindxfer => * [applicationmap] EOF #=============================================================================== # extensions.conf erstellen #=============================================================================== echo -e "${YELLOW}Erstelle extensions.conf...${NC}" cat > /etc/asterisk/extensions.conf << 'EOF' ;=============================================================================== ; extensions.conf - Einfacher Dialplan für 3000-3999 ;=============================================================================== [general] static=yes writeprotect=no ;------------------------------------------------------------------------------- ; Kontext: telefone ;------------------------------------------------------------------------------- [telefone] ; Durchwahl 3000-3999 exten => _3XXX,1,Dial(PJSIP/${EXTEN},60,rtT) same => n,Hangup() ; ECHOTEST (HALL, ZEITVERZOEGERUNG DEUTSCH) exten => 222,1,NoOp(ECHOTEST) same => n,Noop(Anruf erfolgt von: "${CALLERID(name)}" <${CALLERID(num)}>) same => n,Answer() ; Abheben same => n,Wait(2) ; Warten same => n,Playback(demo-echotest) ; Ansage same => n,Echo ; Echotest same => n,Playback(demo-echodone) ; Bestaetigung same => n,Hangup() ; Auflegen ; Konferenzraum ohne PIN (z.B. Raum 600 - wähle 600, um beizutreten) exten => 600,1,ConfBridge(600) same => n,Hangup() EOF # Berechtigungen setzen chown asterisk:asterisk /etc/asterisk/*.conf chmod 640 /etc/asterisk/*.conf # Asterisk starten echo -e "${YELLOW}Asterisk wird gestartet...${NC}" systemctl enable asterisk systemctl start asterisk # Kurz warten sleep 3 # Status prüfen if systemctl is-active --quiet asterisk; then echo -e "${GREEN}✓ Asterisk läuft erfolgreich!${NC}" else echo -e "${RED}✗ Fehler: Asterisk konnte nicht gestartet werden${NC}" echo -e "${YELLOW}Prüfe die Logs mit: journalctl -u asterisk -n 50${NC}" exit 1 fi #=============================================================================== # Zusammenfassung #=============================================================================== echo "" echo -e "${GREEN}========================================${NC}" echo -e "${GREEN}Installation erfolgreich abgeschlossen!${NC}" echo -e "${GREEN}========================================${NC}" echo "" echo -e "${YELLOW}Konfigurierte Teilnehmer:${NC}" echo " 3001 - Kalle Anka (Passwort: pass3001)" echo " 3002 - Donald Duck (Passwort: pass3002)" echo " 3003 - Dagobert Duck (Passwort: pass3003)" echo " 3004 - Max Mustermann (Passwort: pass3004)" echo " 3005 - King Kong (Passwort: pass3005)" echo " 3006 - Adam Smith (Passwort: pass3006)" echo "" echo -e "${YELLOW}Besondere Rufnummern:${NC}" echo " 222 - Echotest" echo " 600 - Konferenzraum" echo "" echo -e "${YELLOW}SIP-Server Einstellungen:${NC}" echo " Server: $EXTERNAL_ADDRESS" echo " Port: 5075 (UDP)" echo " Lokales Netzwerk: $LOCAL_NET" echo " Lokale IP: $LOCAL_IP" echo "" echo -e "${RED}WICHTIG - Router Konfiguration:${NC}" echo "" echo -e "${RED}Portweiterleitung im Router einrichten:${NC}" echo " - UDP Port 5075 → Dieser Server (SIP Signaling)" echo " - UDP Ports 10501-10700 → Dieser Server (RTP Media)" echo "" # Prüfen ob es eine DynDNS-Adresse ist (enthält Buchstaben) if [[ "$EXTERNAL_ADDRESS" =~ [a-zA-Z] ]]; then echo -e "${RED}DynDNS im Router konfigurieren:${NC}" echo " - DynDNS-Adresse: $EXTERNAL_ADDRESS" echo " - DynDNS-Dienst einrichten (z.B. DynDNS, No-IP, etc.)" echo "" fi echo "" echo -e "${YELLOW}Nützliche Befehle:${NC}" echo " sudo systemctl status asterisk - Status prüfen" echo " sudo systemctl restart asterisk - Neustart" echo " sudo asterisk -rvvv - Asterisk Konsole" echo " sudo tail -f /var/log/asterisk/messages - Logs anzeigen" echo "" echo -e "${YELLOW}⚠ HINWEIS: Dieser Server ist NICHT durch fail2ban geschützt!${NC}" echo -e "${YELLOW} Für Produktivbetrieb empfohlen: install_asterisk_secure.sh${NC}" echo "" echo -e "${GREEN}Viel Erfolg mit deinem Asterisk-Server!${NC}" echo ""
Die asterisk_basic.sh und die anderen Bash-Dateien musst du noch ausführbar machen: Achte darauf, dass sich dein Linux-Terminal in dem Pfad der Bash-Datei befindet
chmod +x asterisk_basic.sh
und so führst du dies Bash-Datei aus:
./asterisk_basic.sh
Folgende Bedingungen müssen erfüllt sein: Der Linux-Rechner, auf dem du Asterisk installierst, muss entweder eine statische lokale IP besitzen oder du machst einen entsprechenden Eintrag im Router, damit diesem Rechner immer dieselbe lokale IP zugewiesen wird. Dies kann beim Raspberry Pi zum Beispiel der bequemere Weg sein. Der Rechner sollte rund um die Uhr laufen, wenn deine Teilnehmer immer erreichbar sein wollen.
Das Installations-Skript fragt dich danach, ob du die externe IP deines Internetanschlusses verwenden möchtest, was Sinn macht, wenn dieses statisch ist oder ob du einen Dynamischen DNS-Service wie zum Beispiel donaldduck.dyndns.org verwendest, der in deinem Router eingetragen ist.
Hast du einen Zugang über StarLink, kannst du leider nicht ohne weiteres einen eigenen Asterisk-Server betreiben, weil du als Privatnutzer in der Regel deine öffentliche IP mit anderen teilst. Verlege deinen Asterisk-Server auf einem Server in der Cloud, der auf Basis von Linux läuft und du den vollen Zugriff hast.
Folgende Portweiterleitungen und Konfigurationen benötigt dein Router, damit du über das Internet weltweit telefonieren kannst. Dazu musst du die statische IP des Rechners kennen, auf dem dein Asterisk läuft.
Für den SIP-Port: UDP 5075 (ohne dies kein Verbindungsaufbau)
Für RTP: UDP 10501 bis 10700 (ohne dies keine Sprachübertragung)
Dan musst du noch eventuell eine dynamische DNS eintragen, wenn du keine statische öffentliche IP hast wie zum Beispiel donaldduck.dyndns.org. Sie muss nicht von dyndns.org stammen. Es gibt einige kostenlose Anbieter als Alternative.
Falls dein Router SIP ALG kann, musst du dies deaktivieren. Router von Netgear können SIP ALG.
So testest du, ob deine Asterisk-Installation funktioniert:
# So kommst du in die Asterisk-Konsole sudo asterisk -rvvv # Du bist jetzt in der Asterisk-Konsole. # Welche SIP-Accounts sind vorhanden und angemeldet? pjsip transports # Änderungen der pjsip.conf aktivieren pjsip reload
Zugangsdaten der SIP-Acounts: Du hast noch keine Telefone angeschlossen. Am einfachsten ist es Softphones für SIP zu verwenden. Die meisten sind kostenlos im Google Play Store für Android erhältlich (z.B. Zoiper, Linphone, Sipnetic, SessionTalk, PortSip) Du kannst dann mit deinem Smartphone mit anderen Teilnehmern deines Asterisk-Servers kostenlos und weltweit telefonieren. Dur brauchst nur eine Internetverbindung. Diese kann bereitgestellt werden über: WLAN, öffentliche WLAN-Hotspots, mobiler Datenfunk, StarLink und so weiter. Da der Datenstrom beim Telefonieren sehr gering ist, fallen keine oder vernachlässigbar geringe Kosten an.
Für die 3001 zum Beispiel würden folgende Zugangsdaten gelten, die du in dein Softphone einträgst:
Benutzername / Telefonnummer: 3001
Transport: UDP (falls nachgefragt wird
Passwort (Kennwort) : pass3001
Registrar: donaldduck.dyndns.org:5075 (Das ist nur ein fiktives Beispiel, donaldduck.dyndns.org kannst du auch durch die öffentliche IP des Asterisk-Servers ersetzen. Diese sollte statisch sein)
2. Automatisches Eintragen des SIP-Accounts mit QR-Codes für das Softphone Sipnetic: Viele Verzweifeln und Scheitern an der richtigen Konfiguration ihres Softphones. Dabei musst du überhaupt nichts eintippen, wenn du dir das kostenlose Softphone Sipnetic aus dem Google Playstore besorgst.
So einfach geht das: Du bist auf dem Rechner, auf dem dein Asterisk läuft. Führe die sipnetic_qr_generator.sh aus und folge den Anweisungen. Es erzeugt in einem Unterordner QR-Codes für die Telefonnummern deines Asterisk-Servers. Lass dir das Bildchen mit dem QR-Code der gewünschten Telefonnummer anzeigen. Starte Sipnetic auf deinem Smartphone, befolge die Anweisungen und halte die Kamera auf das QR-Code-Bildchen und schon ist der Account registriert.
Du kannst das Bildchen auch einem Freund per E-Mail zuschicken mit der Bitte sich zu registrieren. Das ist kinderleicht und er schafft es, obwohl er Null Ahnung von der ganzen Materie hat. Sie bekommst du in deinem Freundeskreis und in deiner Verwandtschaft viele Teilnehmer, die sogar die für Gruppengespräche die Konferenznummer 600 nutzen können. Alles kostenlos und weltweit. Und du hast deinen eigenen Telefonprovider voll im Griff ohne Spam, ohne Werbung und ohne Datenklau auf deinem Smartphone. Die Sprachqualität ist dank des Audio-Codecs G.722 – überträgt Frequenzen bis zu 8000 Hz – und ist für die meiten Ohren kaum vom UKW-Rundfunk zu unterscheiden.
Du kannst auch in einer FritzBox die Accounts eintragen. Hier ein Beispiel: Wähle „anderer Anbieter“ aus, trage die Zugangsdaten ein und vergesse nicht auf Telefoniegeräte zu gehen, um dort diese Telefonnummer mit einem Telefon zu verknüpfen.

Wenn deine Verwandten eine FritzBox haben, kannst du bei Ihnen Nummern deines eigenen Asterisk-Servers eintragen und immer mit ihnen weltweit kostenlos telefonieren. Wenn sie angerufen werden, merken sie überhaupt über welche „Leitung“ das Gespräch aufgebaut wurde.
Wenn du keine FritzBox hast, dann besorg der eine ältere und schalte sie per Netzwerkkabel hinter deinem Router und wähle „Nutzt Verbindunge eines vorhanden Internetzugangs“ oder so ähnlich. Stecke das Netzwerkkabel in den Port 1 der FritzBox. Ältere FritzBoxen ermöglichen es sogar Wählscheibentelefone anzuschließen. FritzBoxen, die vor etwas 10 Jahren auf dem Markt kamen, können direkt Verbindungen mit DECT-Telefonen aufnehmen.
Komme nicht auf die Idee dieselbe Nummer zum Beispiel gleichzeitig auf mehreren Endgeräten (z.B. auf einem Softphone und der FritzBox zu registrieren. Es treten dann unerwartete Registrierungsfehler auf und du weißt nie welches Endgerät klingeln wird.
Sicherheitsmaßnahmen: Dein Asterisk-Server läuft jetzt einwandfrei. Aber er kann früher oder später von SipScannern angegriffen werden, die deine Telefonnummern für kostenlose Telefonate nutzen wollen. Da dein Asterisk-Server ein geschlossenes System ist, können sie keinen finanziellen Schaden anrichten. Auf jeden Fall solltest du die vorkonfigurierten Passwörter durch starke Passwörter ersetzen. Meistens werden SipScanner von unreifen Kids betrieben, die nicht wissen, was sie anrichten. Oft sind ihre SipScanner fehlerhaft konfiguriert und greifen deinen Asterisk-Server mit Tausenden Anfragen gleichzeitig an, welche die CPU belasten, ohne das Passwörter geknackt werden können. Es gibt zwei effektive Maßnahmen (Fail2Ban und APIBAN), die bei mir seit vielen Jahren zuverlässig funktionieren. Mein Asterisk-Server läuft ohne Wartung jahrelang auf einem Raspberry Pi ununterbrochen durch. Du musst dir also keine Sorgen machen.
3. Fail2Ban installieren: Das machst du mit der install_fail2ban.sh. Wer sich 3 oder 5 Mal mit einem falschen Passwort registrieren will, wird für eine Stunde gesperrt.
So testest du, ob Fail2Ban läuft:
volker@volker-ESPRIMO-Q520:~$ sudo fail2ban-client status sudo fail2ban-client status asterisk [sudo] Passwort für volker: Status |- Number of jail: 2 `- Jail list: asterisk, sshd Status for the jail: asterisk |- Filter | |- Currently failed: 0 | |- Total failed: 0 | `- Journal matches: `- Actions |- Currently banned: 0 |- Total banned: 0 `- Banned IP list: volker@volker-ESPRIMO-Q520:~$
4. APIAN installieren: Das machst du mit apiban_installer.sh. APIBAN liefert einen extrem zuverlässigen Schutz gegen SIP-Scannern, weil es Blacklisten anbietet und automatisch aktualisiert. Diese Blacklisten werden durch weltweite Honey-Pods erzeugt. Dies Blacklists schützen dich im Vorfeld bevor es überhaupt zu einem Angriff kommen kann. Die Installation fragt dich nach deinem APIBAN-Schlüssel, den du dir vorher auf
https://www.apiban.org/getkey.html
besorgst. Du musst deine E-Mail Adresse angeben. Es geht immer nur ein APIBAN-Schlüssel pro E-Mail. Der Schlüssel ist kostenlos und du kannst ihn für mehrere Telefonserver einsetzen.
Läuf bei dir APIBAN? So testest du das:
volker@volker-ESPRIMO-Q520:~$ sudo su root@volker-ESPRIMO-Q520:/home/volker# iptables -L APIBAN -n --line-numbers | grep -v "Chain\|num" | wc -l 1624
Nach einem Tag bereits 1624 IP-Adressen böswilliger Spitzbuben von APIBAN gesperrt! Mehr dazu unter
Die apiban_installer.sh sorgt dafür, dass APIBAN bei einem Neustart des Rechners neu startet, dass die Blacklisten alle 10 Minuten erneuert werden und dass bei über 2500 Einträgen die ältesten Einträge entfernt werden.
Weiterführende Links und Hilfestellungen:
https://elektronikbasteln.pl7.de/asterisk-auf-einem-raspberry-pi
Hier findest du weitere Anregungen, um die fast unendlichen Möglichkeiten von Asterisk nach deinen Wünschen gestalten zu können. In 99% der Fälle wird jedoch meine Installation ausreichend sein.