GNU/Linux >> LINUX-Kenntnisse >  >> Debian

Kannel SMS Gateway auf Debian 10/11

Kanzel:

Kannel ist ein Open-Source-WAP- und SMS-Gateway für GSM-Netze. Darüber hinaus kann Kannel SMS über ein serielles oder USB-GSM-Modem senden/empfangen. Es ist über die HTTP-API zugänglich und kann zum Senden von Massen-SMS, OTP usw. verwendet werden.

Kannel hat also drei Hauptprogramme namens Boxen:bearerbox , smsbox , wapbox .

  • Bearerbox-Schnittstellen zu den Telefonen. Es akzeptiert WAP- und SMS-Nachrichten von den Telefonen und sendet sie an die anderen Boxen.
  • SMSbox verwaltet die SMS-Gateway-Funktionalität.
  • WAPbox verwaltet die WAP-Gateway-Funktionalität.

Es ist möglich, mehrere SMSboxen und mehrere WAPboxen auf verschiedenen Hosts zu haben, wodurch größere Lasten bewältigt werden können.

Kannel unterstützt auch die Datenbankintegration und unterstützt mysql , pgsql , SDB , mssql , sqlite3 , Orakel , redis und kassandra .

Kannel bietet eine breite Palette an Unterstützung für GSM-Modems; Darüber hinaus würde jedes GSM-Modem, das über einen seriellen oder USB-Anschluss mit dem richtigen Treiber zugänglich ist und den AT-Befehl unterstützt, mit Kannel verwendet werden.

Bereiten Sie die Installation von Kannel SMS Gateway vor:

Hier werden wir die neueste stabile Version 1.4.5 des Kannel SMS Gateway aus der Quell-TAR-Datei auf Debian 10 (Buster) installieren . Hier konfigurieren wir die Kernkomponenten:Bearerbox und smsbox das für SMS Gateway verwendet wird.

SMS-GW-Host-IP 192.168.10.38
Host-IP des Windows-Clients 192.168.10.31
Linux-Client-Host-IP 192.168.10.37
GSM-Modemmodell Huawei E303 3G/GSM-USB-Modem

Überprüfen Sie die Betriebssystemversion

root@sms-gw:~# cat /etc/os-release

Ausgabe:

Verbinden Sie das USB-Modem mit dem Linux-Host und prüfen Sie, ob es das Modem erkennt, indem Sie lsusb ausgeben Befehl

root@sms-gw:~# lsusb

Ausgabe:

Das Modem hat Bus 2 erkannt.

Nun müssen wir herausfinden, an welchem ​​TTY das Modem angeschlossen ist

root@sms-gw:~# ls /dev/ttyUSB*

Ausgabe:

Wir sehen, dass das Modem an /dev/ttyUSB0 angeschlossen ist und /dev/ttyUSB1 .Normalerweise beträgt die Baudrate dieser Modems 9600 oder 115200.

Es gibt ein praktisches Tool wvdial , um USB TTY und Baudrate für ein Modem zu identifizieren. wvdial wird normalerweise als Befehlszeilen-PPP-Dialer zur Nutzung des mobilen Internets verwendet.

Installieren Sie wvdial, um USB TTY und die Baudrate für das Modem zu finden.

root@sms-gw:~# apt-get update
root@sms-gw:~# apt-get install -y wvdial

Geben Sie wvdialconf aus Befehl, um die TTY- und Baudrate des Modems zu ermitteln

root@sms-gw:~# wvdialconf

Ausgabe:

Aus der Ausgabe entnehmen wir, dass das Modem an /dev/ttyUSB0 angeschlossen ist und Baudraten-ID 9600. wvdialconf schreibt auch die grundlegende Modemkonfiguration in /etc/wvdial.conf Datei.

Installieren Sie nun die notwendigen Abhängigkeiten für Kannel

root@sms-gw:~# apt-get install -y linux-headers-$(uname -r) build-essential make gcc cpp wget curl libxml2 libxml2-dev bison flex byacc zlib1g-dev libiconv-hook1 libtool

Installation des Kannel SMS Gateway:

Laden Sie den Quell-Tarball von https://kannel.org/download/1.4.5/gateway-1.4.5.tar.gz

herunter
root@sms-gw:~# wget --no-check-certificate https://kannel.org/download/1.4.5/gateway-1.4.5.tar.gz

Entpacken Sie die Datei und geben Sie das Quellverzeichnis ein

root@sms-gw:~# tar -zxf gateway-1.4.5.tar.gz
root@sms-gw:~# cd gateway-1.4.5/

Führen Sie configure aus Datei mit dem Home-Verzeichnis-Präfix Kannel und Start-Stopp-Daemon, hier verwenden wir /usr/local/kannel als Kannel-Home-Verzeichnis

root@sms-gw:~/gateway-1.4.5# ./configure  --enable-start-stop-daemon --prefix=/usr/local/kannel

Wir können auch die wapbox deaktivieren da wir es nicht verwenden werden

root@sms-gw:~/gateway-1.4.5# ./configure  --enable-start-stop-daemon --prefix=/usr/local/kannel  --disable-wap

Nach erfolgreichem Abschluss von Konfigurieren Skript ausführen, Paket kompilieren

root@sms-gw:~/gateway-1.4.5# make

Installieren Sie die Programme mit Datendateien und Dokumentation

root@sms-gw:~/gateway-1.4.5# make install

Es installiert notwendige Binärdateien, Bibliotheken und Dokumente in verschiedenen Verzeichnissen in /usr/local/kannel/ Ort.

Hinweis: Wenn beim make ein Problem auftritt Wir können bereinigen oder deinstallieren und von vorne beginnen. Führen Sie zum Reinigen make clean aus , führen Sie zum Deinstallieren make uninstall aus Befehl.

Erstellen Sie nun etc , laufen und protokollieren Verzeichnisse

root@sms-gw:~# mkdir /usr/local/kannel/etc
root@sms-gw:~# mkdir /usr/local/kannel/run
root@sms-gw:~# mkdir /var/log/kannel/

Erstellen Sie die Kannel-Konfigurationsdatei /usr/local/kannel/etc/kannel.conf mit untenstehendem Inhalt

##CORE
group = core
admin-port = 13000
smsbox-port = 13001
admin-password = sms-gw-admin-passwd
status-password = sms-gw-status-passwd
admin-deny-ip = "*.*.*.*"
admin-allow-ip = "*.*.*.*"
box-deny-ip = "*.*.*.*"
box-allow-ip = "*.*.*.*"
log-level = 0
log-file = "https://1118798822.rsc.cdn77.org/var/log/kannel/kannel.log"
dlr-storage = internal
sms-resend-retry = 1

##SMSC
group = smsc
smsc = at
smsc-id = smsc01
allowed-smsc-id = smsc01
preferred-smsc-id = smsc01
modemtype = Huawei
device = /dev/ttyUSB0
speed = 9600
alt-charset = "GSM"
sim-buffering = true
log-file = /var/log/kannel/smsc01-gsm1.log
log-level = 0

##MODEMS
group = modems
id = Huawei
enable-mms = true
init-string = "ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0;+CNMI=1,3,2,2,1;+CMEE=1;+CPMS=\"SM\",\"SM\",\"SM\";+CMGF=0;+CSCS=GSM
speed = 9600
detect-string = "huawei"

##SMSBOX
group = smsbox
bearerbox-host = localhost
sendsms-port = 13013
global-sender = 13013
mo-recode = true
sendsms-chars = "0123456789 +-"
log-file = "https://1118798822.rsc.cdn77.org/var/log/kannel/smsbox.log"
log-level = 0
access-log = "https://1118798822.rsc.cdn77.org/var/log/kannel/access.log"

##SMS-USER
group = sendsms-user
user-deny-ip = "*.*.*.*"
user-allow-ip = "*.*.*.*"
username = kannel
password = kannelpasswd
default-smsc = smsc01
concatenation = 1
max-messages = 10

##SMS-SERVICE
group = sms-service
keyword = default
get-url = " "http://%S"
accept-x-kannel-headers = true
max-messages = 10
concatenation = true
catch-all = true
omit-empty = true

Hinweis: get-url config-Anweisungen im sms-serice Gruppe geben den HTTP-API-Aufrufstil des Remote-HTTP-Servers an. Beispiel:für entfernten PlaySMS-Server

get-url = "http://PLAYSMS-SERVER-IP/playsms/plugin/gateway/kannel/geturl.php?t=%t&q=%q&a=%aQ=%Q&smsc=%i"

Erstellen Sie init Skript zum Starten/Stoppen der Kannel-Boxen als /etc/init.d/kannel

#!/bin/bash
# Start/stop the Kannel boxes: One bearer box and one SMS box.

BOXPATH=/usr/local/kannel/sbin
PIDFILES=/usr/local/kannel/run
CONFDIR=/usr/local/kannel/etc
CONF=$CONFDIR/kannel.conf

USER=kannel
VERSION=""

RB=$BOXPATH/run_kannel_box$VERSION
BB=$BOXPATH/bearerbox$VERSION
WB=$BOXPATH/wapbox$VERSION
SB=$BOXPATH/smsbox$VERSION
SSD=$BOXPATH/start-stop-daemon$VERSION

PATH=$BOXPATH:$PATH

case "$1" in
start)
echo -n "Starting WAP gateway: bearerbox"
$SSD --start --quiet --pidfile $PIDFILES/kannel_bearerbox.pid --exec $RB -- --pidfile $PIDFILES/kannel_bearerbox.pid $BB -- $CONF
echo -n " smsbox"
$SSD --start --quiet --pidfile $PIDFILES/kannel_smsbox.pid --exec $RB -- --pidfile $PIDFILES/kannel_smsbox.pid $SB -- $CONF
sleep 3
echo "."
;;

stop)
echo -n "Stopping WAP gateway: "
echo -n " smsbox"
$SSD --stop --quiet --pidfile $PIDFILES/kannel_smsbox.pid --exec $RB
echo -n " bearerbox"
$SSD --stop --quiet --pidfile $PIDFILES/kannel_bearerbox.pid --exec $RB
echo "."
;;

status)
CORE_CONF=$(grep -r 'group[[:space:]]*=[[:space:]]*core' $CONFDIR | cut -d: -f1)
ADMIN_PORT=$(grep '^admin-port' $CORE_CONF | sed "s/.*=[[:space:]]*//")
ADMIN_PASS=$(grep '^admin-password' $CORE_CONF | sed "s/.*=[[:space:]]*//")
STATUS_URL="http://127.0.0.1:${ADMIN_PORT}/status.txt?password=${ADMIN_PASS}"
curl $STATUS_URL
;;

reload)
# We don't have support for this yet.
exit 1
;;

restart|force-reload)
$0 stop
sleep 3
$0 start
;;

*)
echo "Usage: $0 {start|stop|status|reload|restart|force-reload}"
exit 1

esac

exit 0

Hinweis: Das obige Skript ist ein Standard-init.d Skript für Kannel. Diese Konfiguration ist für eine kleine Website geeignet, auf der Kannel auf einem einzelnen Computer ausgeführt wird. Bitte stellen Sie sicher, dass die Kannel-Binärdateien in $BOXPATH zu finden sind oder irgendwo anders entlang $PATH . run_kannel_box muss sich in $BOXPATH befinden .

Erstellen Sie die /etc/init.d/kannel ausführbare Datei

root@sms-gw:~# chmod +x /etc/init.d/kannel

Kannel starten

root@sms-gw:~# /etc/init.d/kannel start

Ausgabe:

Kannel Bearerbox überprüfen und smsbox Hörzustand

Überprüfen Sie den Kannel-Status in der Linux-Box

root@sms-gw:~# /etc/init.d/kannel status

Verwenden Sie http://192.168.10.38:13000/status?password=sms-gw-admin-passwd URL vom Browser des Windows-Client-Computers zum Überprüfen des Status

Versenden von SMS mit Kannel SMS Gateway:

Wir können SMS von jedem Client-Computer-Browser mit URL senden. Beispiel:

http://192.168.10.38:13013/cgi-bin/sendsms?username=kannel&password=kannelpasswd&to=01700000000&text=SMS+from+kannel+01

Auf der Webseite wird der SMS-Push-Antwortcode 0:Zur Zustellung akzeptiert angezeigt , was anzeigt, dass Kannel die SMS zur Zustellung an den Empfänger akzeptiert hat

Senden von SMS von der Linux-Box mit curl

root@host1:~# curl "http://192.168.10.38:13013/cgi-bin/sendsms?username=kannel&password=kannelpasswd&to=01700000000&text=SMS+from+kannel+02"

Ausgabe:

Senden Sie SMS mit SMS-Text aus einer Datei mit curl

root@host1:~# echo "SMS from file using curl" > smsfile.txt
root@host1:~# curl "http://192.168.10.38:13013/cgi-bin/sendsms?username=kannel&password=kannelpasswd&to=01700000000" -G --data-urlencode [email protected]

Senden von SMS per Piping Ausgabe an curl

root@host1:~# printf "SMS from output" | curl "http://192.168.10.38:13013/cgi-bin/sendsms?username=kannel&password=kannelpasswd&to=01700000000" -G --data-urlencode text@-

Vom Mobilgerät empfangene SMS

Hinweis: Es gibt einige weitere SMS-Push-Antwortcodes von Kannel

Statuscode Nachrichtentext Bedeutung
202 0:Zur Lieferung angenommen Die SMS wurde akzeptiert und wird an einen SMSC-Treiber weitergeleitet
202 3:Für spätere Lieferung in die Warteschlange gestellt Die Trägerbox akzeptiert und die Nachricht in einer Warteschlange gespeichert, um sie später zuzustellen
4xx (variiert) Irgendetwas stimmte nicht mit der Anfrage oder der Kannel-Konfiguration, überprüfen Sie die Anfrage und die Kannel-Konfiguration.
503 Vorübergehender Fehler, versuchen Sie es später erneut Ein zeitlicher Fehler ist aufgetreten. Versuchen Sie es später noch einmal.

Prüfprotokolle:

Wir werden Kannel Core Trägerbox finden loggt sich in /var/log/kannel/kannel.log ein Datei.

/var/log/kannel/access.log Datei protokolliert erfolgreiche Zugriffsanfragen von Clients.

Beispielprotokoll:

/var/log/kannel/smsbox.log protokolliert Clientanfragen und Kommunikation mit Bearerbox.

Protokolle zum GSM-Modem finden Sie unter /var/log/kannel/smsc01-gsm1.log Datei.

Schweregrad protokollieren:

Protokollebene config-Direktive in jeder Konfigurationsgruppe in kannel.conf Datei definiert den Schweregrad des Protokolls für diese Gruppe und protokolliert entsprechend in log-file in dieser Gruppe gegeben . Protokollebenen sind:

0> debuggen
1> Info
2> Warnung
3> Fehler
4> Panik

Sicherheitstipps:

  • admin-deny-ip und admin-allow-ip Direktiven definieren eine Liste von IP-Adressen, denen der Zugriff auf das Kannel-Admin-Portal erlaubt oder verboten ist. Jede Liste kann mehrere Adressen haben, die durch „;“ getrennt sind. , „*“ steht für alle Zahlen in einem Oktett. Beispiel:Wenn wir 192.168.10.31 zulassen möchten und localhost auf das Admin-Portal zugreifen kann und alle anderen IP-Adressen blockiert werden sollen, dann sehen die Konfigurationsanweisungen wie folgt aus

admin-deny-ip =„*.*.*.*“
admin-allow-ip =„127.*.*.*; 192.168.10.31“

  • Ähnlich box-deny-ip und box-allow-ip Direktiven definieren eine Liste von IP-Adressen, die auf bearerbox zugreifen dürfen . Es ist nützlich, wenn wir mehrere smsbox verwenden . Wir listen die smsbox auf IP-Adressen in box-allow-ip um auf Bearerbox zuzugreifen Programm.
  • user-deny-ip und user-allow-ip werden verwendet, um Benutzer-IP-Adressen zuzulassen/zu verweigern.
  • Es ist besser, die Anweisung deny zu verwenden, als eine selektive IP-Adresse für jede Art der Zugriffskontrolle zuzulassen.
  • Verwenden Sie einen sehr sicheren Benutzernamen/Passwort für alle Benutzernamen/Passwort-Optionen, die in der kannel.conf angezeigt werden Datei.

Referenzen:

  • https://www.kannel.org/download/kannel-userguide-snapshot/userguide.html


Debian
  1. So installieren Sie den XFCE-Desktop unter Debian 10/11

  2. Installieren Sie Wireguard-Server auf Debian 10/11

  3. Installieren Sie den OpenVPN-Server auf Debian 10/11

  4. So installieren Sie KDE-Plasma unter Debian 10/11

  5. Installieren Sie WordPress mit Nginx auf Debian 10/11

So installieren Sie das neueste PHP 8.1 unter Debian 11/10

So installieren Sie das Webmin-Verwaltungstool unter Debian 10/11

So installieren Sie mehrere PHP-Versionen mit Apache unter Debian 11/10

So installieren Sie den SVN-Server unter Debian 11/10

PlaySMS Kannel SMS Gateway-Integration auf NGINX+Debian

So installieren Sie das Zabbix-Überwachungstool unter Debian 11/10