GNU/Linux >> Belajar Linux >  >> Debian

Kannel SMS Gateway di Debian 10/11

Kannel:

Kannel adalah WAP open source dan SMS gateway untuk jaringan GSM. Selain itu, Kannel dapat mengirim/menerima SMS menggunakan Modem GSM Serial atau USB. Ini dapat diakses melalui HTTP API dan dapat digunakan dalam mengirim SMS massal, OTP, dll.

Jadi, Kannel memiliki tiga program utama yang disebut kotak:bearerbox , kotak sms , wapbox .

  • Antarmuka Bearerbox menuju ponsel. Ia menerima pesan WAP dan SMS dari telepon dan mengirimkannya ke kotak lain.
  • SMSbox menangani fungsionalitas gerbang SMS.
  • WAPbox menangani fungsionalitas gerbang WAP.

Dimungkinkan untuk memiliki beberapa kotak SMS dan beberapa kotak WAP pada host yang berbeda yang memungkinkannya menangani beban yang lebih besar.

Kannel juga mendukung integrasi database dan mendukung mysql , pgsql , sdb , mssql , sqlite3 , peramal , redis dan cassandra .

Kannel memiliki berbagai dukungan Modem GSM; apalagi Modem GSM apa pun yang dapat diakses melalui port Serial atau USB dengan driver yang tepat dan mendukung perintah AT akan digunakan dengan Kannel.

Bersiap untuk menginstal Kannel SMS Gateway:

Di sini kita akan menginstal Kannel SMS Gateway versi stabil terbaru 1.4.5 dari file tar sumber di Debian 10 (buster) . Di sini kita akan mengkonfigurasi komponen inti:bearerbox dan kotak sms yang digunakan untuk SMS Gateway.

IP Host SMS-GW 192.168.10.38
IP Host Klien Windows 192.168.10.31
IP Host Klien Linux 192.168.10.37
Model Modem GSM Modem USB Huawei E303 3G/GSM

Periksa rilis OS

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

Keluaran:

Hubungkan USB Modem dengan Linux Host dan Periksa apakah modem mendeteksi dengan mengeluarkan lsusb perintah

root@sms-gw:~# lsusb

Keluaran:

Modem telah terdeteksi di Bus 2.

Sekarang kita harus mencari TTY modem yang terhubung

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

Keluaran:

Kami melihat modem terhubung di /dev/ttyUSB0 dan /dev/ttyUSB1 .Biasanya baud rate modem tersebut adalah 9600 atau 115200.

Ada alat yang berguna wvdial , untuk mengidentifikasi TTY USB dan kecepatan baud untuk Modem. panggilanwv biasanya digunakan sebagai dialer PPP baris perintah untuk menggunakan Internet Seluler.

Instal wvdial untuk menemukan USB TTY dan baud rate untuk Modem.

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

Masalah wvdialconf perintah untuk menemukan TTY dan kecepatan Baud Modem

root@sms-gw:~# wvdialconf

Keluaran:

Dari output kami menemukan bahwa modem terhubung di /dev/ttyUSB0 dan baud rate id 9600. wvdialconf juga menulis konfigurasi modem dasar di /etc/wvdial.conf berkas.

Sekarang instal dependensi yang diperlukan untuk 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 

Memasang Kannel SMS Gateway:

Unduh tarball sumber dari https://kannel.org/download/1.4.5/gateway-1.4.5.tar.gz

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

Buka tar file dan masuk ke direktori sumber

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

Jalankan konfigurasi file dengan awalan direktori home kannel dan start-stop-deamon, di sini kita menggunakan /usr/local/kannel sebagai direktori home kannel

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

Kami juga dapat menonaktifkan wapbox karena kami tidak akan menggunakannya

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

Setelah berhasil menyelesaikan konfigurasi skrip dijalankan, kompilasi paket

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

Instal program dengan file data dan dokumentasi

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

Ini akan menginstal binari, perpustakaan, dan dokumen yang diperlukan di direktori yang berbeda di /usr/local/kannel/ lokasi.

Catatan: Jika mengalami masalah saat membuat kita dapat membersihkan atau menghapus dan memulai dari awal. Untuk membersihkan jalankan make clean , untuk uninstall jalankan make uninstall perintah.

Sekarang buat dll , lari dan log direktori

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

Buat file konfigurasi kannel /usr/local/kannel/etc/kannel.conf dengan konten di bawah ini

##INTI 
kelompok =inti
port admin =13000
smsbox-port =13001
password-admin =sms-gw-admin-passwd
status-password =sms-gw-status-passwd
admin-deny-ip ="*.*.*.*"
admin-allow-ip ="*.*.*.*"
box-deny-ip ="*.*.*.*"
box-allow-ip ="*.*.*.*"
tingkat log =0
log-file ="https://1118798822.rsc.cdn77.org/var/log/kannel/kannel.log"
dlr-penyimpanan =internal
sms-kirim ulang-coba lagi =1

##SMSC
grup =smsc
smsc =at
smsc-id =smsc01
diperbolehkan-smsc-id =smsc01
pilihan-smsc-id =smsc01
tipe modem =Huawei
perangkat =/dev/ttyUSB0
kecepatan =9600
alt-charset ="GSM"
penyangga sim =benar
file-log =/var/log/kannel/smsc01-gsm1.log
tingkat log =0

##MODEM
grup =modem
id =Huawei
aktifkan-mms =benar
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
kecepatan =9600
deteksi-string ="huawei"

##SMSBOX
grup =kotak sms
bearerbox-host =localhost
sendsms-port =13013
pengirim global =13013
mo-recode =benar
sendsms-chars ="0123456789 +-"
log-file ="https://1118798822.rsc.cdn77.org/var/log/kannel/smsbox.log"
tingkat log =0
access-log ="https://1118798822.rsc.cdn77.org/var/log/kannel/access.log"

##SMS-USER
grup =sendsms-pengguna
user-deny-ip ="*.*.*.*"
user-allow-ip ="*.*.*.*"
nama pengguna =kannel
kata sandi =kannelpasswd
default-smsc =smsc01
gabungan =1
pesan maks =10

##SMS-SERVICE
grup =layanan sms
kata kunci =default
get-url =" "http://%S"
menerima-x-kannel-header =benar
pesan maks =10
gabungan =benar
tangkap semua =benar
hilangkan-kosong =benar

Catatan: dapatkan-url config direktif di sms-serice group menunjukkan gaya panggilan API HTTP dari server HTTP jarak jauh. Contoh:untuk server PlaySMS jarak jauh

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

Buat init skrip untuk memulai/menghentikan kotak kannel sebagai /etc/init.d/kannel

#!/bin/bash 
# Memulai/menghentikan kotak Kannel:Satu kotak pembawa dan satu kotak SMS.

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

PENGGUNA=kannel
VERSI=""

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

kasus "$1" di
Mulailah)
echo -n "Memulai gateway WAP:bearerbox"
$SSD --start --quiet --pidfile $PIDFILES/kannel_bearerbox.pid --exec $RB -- --pidfile $PIDFILES/kannel_bearerbox.pid $BB -- $CONF
echo -n "kotak sms"
$SSD --start --quiet --pidfile $PIDFILES/kannel_smsbox.pid --exec $RB -- --pidfile $PIDFILES/kannel_smsbox.pid $SB -- $CONF
tidur 3
gema "."
;;

berhenti)
echo -n "Menghentikan gerbang WAP:"
echo -n "kotak sms"
$SSD --stop --quiet --pidfile $PIDFILES/kannel_smsbox.pid --exec $RB
echo -n "kotak pembawa"
$SSD --stop --quiet --pidfile $PIDFILES/kannel_bearerbox.pid --exec $RB
gema "."
;;

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

isi ulang)
# Kami belum memiliki dukungan untuk ini.
keluar 1
;;

mulai ulang | paksa-muat ulang)
$0 berhenti
tidur 3
$0 mulai
;;

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

esac

keluar 0

Catatan: Script di atas adalah default init.d skrip untuk Kannel. Konfigurasi ini sesuai untuk situs kecil yang menjalankan Kannel pada satu mesin. Harap pastikan bahwa binari Kannel dapat ditemukan di $BOXPATH atau di tempat lain di sepanjang $PATH . run_kannel_box harus di $BOXPATH .

Buat /etc/init.d/kannel file dapat dieksekusi

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

Mulai kannel

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

Keluaran:

Centang kannel bearerbox dan kotak sms status mendengarkan

Periksa status Kannel dari dalam kotak Linux

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

Gunakan http://192.168.10.38:13000/status?password=sms‑gw‑admin‑passwd URL dari browser mesin klien windows untuk memeriksa status

Mengirim SMS menggunakan Kannel SMS Gateway:

Kami dapat mengirim SMS dari browser mesin klien mana pun menggunakan URL. Contoh:

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

Halaman web menunjukkan kode balasan SMS Push 0:Diterima untuk pengiriman , yang menunjukkan bahwa Kannel telah menerima SMS untuk pengiriman ke penerima

Mengirim SMS dari kotak Linux menggunakan curl

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

Keluaran:

Kirim SMS menggunakan teks SMS dari file menggunakan curl

root@host1:~# echo "SMS dari file menggunakan 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]

Mengirim SMS dengan piping output ke curl

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

SMS Diterima oleh Perangkat Seluler

Catatan: Ada beberapa kode balasan SMS Push dari Kannel

Kode Status Badan Pesan Artinya
202 0:Diterima untuk pengiriman SMS telah diterima dan dikirimkan ke driver SMSC
202 3:Antri untuk pengiriman nanti Kotak pembawa menerima dan menyimpan pesan dalam antrian untuk dikirimkan nanti
4xx (bervariasi) Ada yang salah dalam permintaan atau konfigurasi Kannel, periksa permintaan dan konfigurasi Kannel.
503 Kegagalan sementara, coba lagi nanti Terjadi kegagalan sementara, coba lagi nanti.

Memeriksa Log:

Kami akan menemukan inti Kannel bearerbox masuk /var/log/kannel/kannel.log berkas.

/var/log/kannel/access.log file log permintaan akses yang berhasil dari klien.

Contoh Log:

/var/log/kannel/smsbox.log mencatat permintaan klien dan komunikasi dengan bearerbox.

Log terkait Modem GSM akan ditemukan di /var/log/kannel/smsc01-gsm1.log berkas.

Log Tingkat Keparahan:

tingkat log config direktif di setiap grup konfigurasi di kannel.conf file mendefinisikan tingkat Keparahan Log untuk grup itu dan masuk sesuai dengan log-file diberikan dalam grup . Level Log adalah:

0> debug
1> info
2> peringatan
3> kesalahan
4> panik

Kiat Keamanan:

  • admin-deny-ip dan admin-allow-ip arahan menentukan daftar alamat IP yang diizinkan atau dilarang untuk mengakses portal admin kannel. Setiap daftar dapat memiliki beberapa alamat yang dipisahkan oleh “;” , “*” mewakili semua angka dalam oktet. Contoh:jika kita ingin mengizinkan 192.168.10.31 dan localhost dapat mengakses portal admin dan semua alamat IP lainnya harus diblokir maka arahan konfigurasi akan seperti di bawah ini

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

  • Demikian pula box-deny-ip dan box-allow-ip arahan menentukan daftar alamat IP yang diizinkan untuk mengakses bearerbox . Ini berguna ketika kita menggunakan beberapa smsbox . Kami akan membuat daftar smsbox Alamat IP di box‑allow‑ip untuk mengakses bearerbox program.
  • ip-penyangkal-pengguna dan pengguna-izinkan-ip digunakan untuk mengizinkan/menolak alamat IP pengguna.
  • Lebih baik menggunakan direktif tolak daripada mengizinkan alamat IP selektif untuk setiap jenis kontrol akses.
  • Gunakan nama pengguna/sandi yang sangat aman untuk semua opsi nama pengguna/sandi yang ditampilkan di kannel.conf berkas.

Referensi:

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


Debian
  1. Cara menginstal Webmin di Debian 10/11

  2. Amankan Apache2 dengan Let's Encrypt SSL di Debian 10/11

  3. Amankan Nginx dengan Let's Encrypt SSL di Debian 10/11

  1. Cara menginstal desktop XFCE di Debian 10/11

  2. Instal server Wireguard di Debian 10/11

  3. Instal server OpenVPN di Debian 10/11

  1. Cara menginstal KDE plasma di Debian 10/11

  2. Instal WordPress dengan Nginx di Debian 10/11

  3. Instal Server OpenVPN di Debian 11/Debian 10