{"id":965,"date":"2024-12-23T13:55:02","date_gmt":"2024-12-23T06:55:02","guid":{"rendered":"https:\/\/omtel.ltd\/?p=965"},"modified":"2024-12-24T00:35:30","modified_gmt":"2024-12-23T17:35:30","slug":"install-freepbx-17-on-debian-12-with-asterisk-21","status":"publish","type":"post","link":"https:\/\/omtel.ltd\/index.php\/2024\/12\/23\/install-freepbx-17-on-debian-12-with-asterisk-21\/","title":{"rendered":"Install FreePBX 17 on Debian 12 with Asterisk 21"},"content":{"rendered":"<p><strong>Install FreePBX 17 on Debian 12 with Asterisk 21<\/strong><br \/>\nRef : <a href=\"https:\/\/sangomakb.atlassian.net\/wiki\/spaces\/FP\/pages\/10682545\/How+to+Install+FreePBX+17+on+Debian+12+with+Asterisk+21\" target=\"_blank\" rel=\"noopener\">https:\/\/sangomakb.atlassian.net\/wiki\/spaces\/FP\/pages\/10682545\/How+to+Install+FreePBX+17+on+Debian+12+with+Asterisk+21<\/a><\/p>\n<p><strong>\u0e42\u0e1b\u0e23\u0e41\u0e01\u0e23\u0e21\u0e17\u0e35\u0e48\u0e40\u0e01\u0e35\u0e48\u0e22\u0e27\u0e02\u0e49\u0e2d\u0e07<\/strong><\/p>\n<p>1.FreePBX17<br \/>\n2.Asterisk21<br \/>\n3.PHP 8.2<br \/>\n4.Maria DB (v10.11)<br \/>\n5.Node JS (v18.16)<br \/>\n6.64-bit Intel\/AMD (x86_64) platform<br \/>\n7.Linux Debian12 6.1.112-1 (2024-09-30)<\/p>\n<p><strong>1.Prerequisite recommended OS update<\/strong><br \/>\nroot@fs:\/home\/tee# apt-get update<br \/>\nroot@fs:\/home\/tee# apt-get upgrade<br \/>\nroot@fs:\/home\/tee# apt -y install build-essential git curl wget libnewt-dev libssl-dev libncurses5-dev subversion libsqlite3-dev libjansson-dev libxml2-dev uuid-dev default-libmysqlclient-dev htop sngrep lame ffmpeg mpg123<br \/>\nroot@fs:\/home\/tee# apt-get install -y locales<br \/>\nroot@fs:\/home\/tee# sed -i &#8216;s\/^# *\\(en_US.UTF-8\\)\/\\1\/&#8217; \/etc\/locale.gen<br \/>\nroot@fs:\/home\/tee# locale-gen<br \/>\nGenerating locales (this might take a while)&#8230;<br \/>\nen_US.UTF-8&#8230; done<br \/>\nGeneration complete.<br \/>\nroot@fs:\/home\/tee# echo &#8220;export LC_ALL=en_US.UTF-8&#8221; &gt;&gt; ~\/.bashrc<br \/>\nroot@fs:\/home\/tee# echo &#8220;export LANG=en_US.UTF-8&#8221; &gt;&gt; ~\/.bashrc<br \/>\nroot@fs:\/home\/tee# echo &#8220;export LANGUAGE=en_US.UTF-8&#8221; &gt;&gt; ~\/.bashrc<br \/>\nroot@fs:\/home\/tee# locale -a<br \/>\nbash: warning: setlocale: LC_ALL: cannot change locale (en_US.UTF-8): No such file or directory<br \/>\nroot@fs:\/home\/tee# nano \/etc\/default\/locale<br \/>\nLANG=C.UTF-8<br \/>\nLC_CTYPE=en_US.UTF-8<br \/>\nLC_ALL=en_US.UTF-8<br \/>\nroot@fs:\/home\/tee# locale -a<\/p>\n<p>root@fs:\/home\/tee# apt -y install git vim curl wget libnewt-dev libssl-dev libncurses5-dev subversion libsqlite3-dev build-essential libjansson-dev libxml2-dev uuid-dev expect<\/p>\n<p><strong>2.PHP 8.2 Installation<\/strong><br \/>\nroot@fs:\/home\/tee# apt-get install -y build-essential linux-headers-`uname -r` openssh-server apache2 mariadb-server mariadb-client bison flex php8.2 php8.2-curl php8.2-cli php8.2-common php8.2-mysql php8.2-gd php8.2-mbstring php8.2-intl php8.2-xml php-pear curl sox libncurses5-dev libssl-dev mpg123 libxml2-dev libnewt-dev sqlite3 libsqlite3-dev pkg-config automake libtool autoconf git unixodbc-dev uuid uuid-dev libasound2-dev libogg-dev libvorbis-dev libicu-dev libcurl4-openssl-dev odbc-mariadb libical-dev libneon27-dev libsrtp2-dev libspandsp-dev sudo subversion libtool-bin python-dev-is-python3 unixodbc vim wget libjansson-dev software-properties-common nodejs npm ipset iptables fail2ban php-soap<\/p>\n<p>root@fs:\/home\/tee# php -v<br \/>\nPHP 8.2.26 (cli) (built: Nov 25 2024 17:21:51) (NTS)<br \/>\nCopyright (c) The PHP Group<br \/>\nZend Engine v4.2.26, Copyright (c) Zend Technologies<br \/>\nwith Zend OPcache v8.2.26, Copyright (c), by Zend Technologies<\/p>\n<p><strong>3.Asterisk Installation<\/strong><br \/>\nroot@fs:\/home\/tee# cd \/usr\/src<br \/>\nroot@fs:\/usr\/src# wget http:\/\/downloads.asterisk.org\/pub\/telephony\/asterisk\/asterisk-21-current.tar.gz<br \/>\nroot@fs:\/usr\/src# tar xvf asterisk-21-current.tar.gz<br \/>\nroot@fs:\/usr\/src# cd asterisk-21*\/<br \/>\nroot@fs:\/usr\/src\/asterisk-21.6.0#<br \/>\nroot@fs:\/usr\/src\/asterisk-21.6.0# contrib\/scripts\/get_mp3_source.sh<br \/>\nA addons\/mp3<br \/>\nA addons\/mp3\/layer3.c<br \/>\nA addons\/mp3\/interface.c<br \/>\nA addons\/mp3\/MPGLIB_TODO<br \/>\nA addons\/mp3\/mpg123.h<br \/>\nA addons\/mp3\/mpglib.h<br \/>\nA addons\/mp3\/decode_ntom.c<br \/>\nA addons\/mp3\/MPGLIB_README<br \/>\nA addons\/mp3\/common.c<br \/>\nA addons\/mp3\/huffman.h<br \/>\nA addons\/mp3\/tabinit.c<br \/>\nA addons\/mp3\/Makefile<br \/>\nA addons\/mp3\/README<br \/>\nA addons\/mp3\/decode_i386.c<br \/>\nA addons\/mp3\/dct64_i386.c<br \/>\nExported revision 204.<\/p>\n<p>root@fs:\/usr\/src\/asterisk-21.6.0# contrib\/scripts\/install_prereq install<br \/>\nroot@fs:\/usr\/src\/asterisk-21.6.0# .\/configure &#8211;libdir=\/usr\/lib64 &#8211;with-pjproject-bundled &#8211;with-jansson-bundled<\/p>\n<p>root@fs:\/usr\/src\/asterisk-21.6.0# make menuselect<br \/>\nroot@fs:\/usr\/src\/asterisk-21.6.0# make<br \/>\nroot@fs:\/usr\/src\/asterisk-21.6.0# make install<br \/>\nroot@fs:\/usr\/src\/asterisk-21.6.0# make samples<br \/>\nroot@fs:\/usr\/src\/asterisk-21.6.0# make config<br \/>\nroot@fs:\/usr\/src\/asterisk-21.6.0# ldconfig<\/p>\n<p>Create asterisk user and give permission<\/p>\n<p>root@fs:\/usr\/src\/asterisk-21.6.0# groupadd asterisk<br \/>\nroot@fs:\/usr\/src\/asterisk-21.6.0# useradd -r -d \/var\/lib\/asterisk -g asterisk asterisk<br \/>\nroot@fs:\/usr\/src\/asterisk-21.6.0# usermod -aG audio,dialout asterisk<br \/>\nroot@fs:\/usr\/src\/asterisk-21.6.0# chown -R asterisk:asterisk \/etc\/asterisk<br \/>\nroot@fs:\/usr\/src\/asterisk-21.6.0# chown -R asterisk:asterisk \/var\/{lib,log,spool}\/asterisk<br \/>\nroot@fs:\/usr\/src\/asterisk-21.6.0# chown -R asterisk:asterisk \/usr\/lib64\/asterisk<br \/>\nroot@fs:\/usr\/src\/asterisk-21.6.0# sed -i &#8216;s|#AST_USER|AST_USER|&#8217; \/etc\/default\/asterisk<br \/>\nroot@fs:\/usr\/src\/asterisk-21.6.0# sed -i &#8216;s|#AST_GROUP|AST_GROUP|&#8217; \/etc\/default\/asterisk<br \/>\nroot@fs:\/usr\/src\/asterisk-21.6.0# sed -i &#8216;s|;runuser|runuser|&#8217; \/etc\/asterisk\/asterisk.conf<br \/>\nroot@fs:\/usr\/src\/asterisk-21.6.0# sed -i &#8216;s|;rungroup|rungroup|&#8217; \/etc\/asterisk\/asterisk.conf<br \/>\nroot@fs:\/usr\/src\/asterisk-21.6.0# echo &#8220;\/usr\/lib64&#8221; &gt;&gt; \/etc\/ld.so.conf.d\/x86_64-linux-gnu.conf<br \/>\nroot@fs:\/usr\/src\/asterisk-21.6.0# ldconfig<\/p>\n<p><strong>4.Configure Apache web server<\/strong><\/p>\n<p>root@fs:\/usr\/src\/asterisk-21.6.0# sed -i &#8216;s\/\\(^upload_max_filesize = \\).*\/\\120M\/&#8217; \/etc\/php\/8.2\/apache2\/php.ini<br \/>\nroot@fs:\/usr\/src\/asterisk-21.6.0# sed -i &#8216;s\/\\(^memory_limit = \\).*\/\\1256M\/&#8217; \/etc\/php\/8.2\/apache2\/php.ini<br \/>\nroot@fs:\/usr\/src\/asterisk-21.6.0# sed -i &#8216;s\/^\\(User\\|Group\\).*\/\\1 asterisk\/&#8217; \/etc\/apache2\/apache2.conf<br \/>\nroot@fs:\/usr\/src\/asterisk-21.6.0# sed -i &#8216;s\/AllowOverride None\/AllowOverride All\/&#8217; \/etc\/apache2\/apache2.conf<br \/>\nroot@fs:\/usr\/src\/asterisk-21.6.0# a2enmod rewrite<br \/>\nEnabling module rewrite.<br \/>\nTo activate the new configuration, you need to run:<br \/>\nsystemctl restart apache2<br \/>\nroot@fs:\/usr\/src\/asterisk-21.6.0# systemctl restart apache2<br \/>\nroot@fs:\/usr\/src\/asterisk-21.6.0# rm \/var\/www\/html\/index.html<\/p>\n<p><strong>5.Configure ODBC<\/strong><br \/>\nroot@fs:\/usr\/src\/asterisk-21.6.0# cat &lt; \/etc\/odbcinst.ini<br \/>\n[MySQL]<br \/>\nDescription = ODBC for MySQL (MariaDB)<br \/>\nDriver = \/usr\/lib\/x86_64-linux-gnu\/odbc\/libmaodbc.so<br \/>\nFileUsage = 1<br \/>\nEOF<br \/>\nroot@fs:\/usr\/src\/asterisk-21.6.0# cat \/etc\/odbcinst.ini<br \/>\n[MySQL]<br \/>\nDescription = ODBC for MySQL (MariaDB)<br \/>\nDriver = \/usr\/lib\/x86_64-linux-gnu\/odbc\/libmaodbc.so<br \/>\nFileUsage = 1<\/p>\n<p>root@fs:\/usr\/src\/asterisk-21.6.0# cat &lt; \/etc\/odbc.ini<br \/>\n[MySQL-asteriskcdrdb]<br \/>\nDescription = MySQL connection to &#8216;asteriskcdrdb&#8217; database<br \/>\nDriver = MySQL<br \/>\nServer = localhost<br \/>\nDatabase = asteriskcdrdb<br \/>\nPort = 3306<br \/>\nSocket = \/var\/run\/mysqld\/mysqld.sock<br \/>\nOption = 3<br \/>\nEOF<\/p>\n<p><strong>6.Install FreePBX<\/strong><br \/>\nroot@fs:\/usr\/src\/asterisk-21.6.0# cd \/usr\/local\/src<br \/>\nroot@fs:\/usr\/local\/src# wget http:\/\/mirror.freepbx.org\/modules\/packages\/freepbx\/freepbx-17.0-latest-EDGE.tgz<br \/>\nroot@fs:\/usr\/local\/src# tar zxvf freepbx-17.0-latest-EDGE.tgz<br \/>\nroot@fs:\/usr\/local\/src# cd \/usr\/local\/src\/freepbx\/<br \/>\nroot@fs:\/usr\/local\/src\/freepbx# .\/start_asterisk start<br \/>\nSTARTING ASTERISK<br \/>\nAsterisk Started<\/p>\n<p>root@fs:\/usr\/local\/src\/freepbx# .\/install -n<br \/>\nGenerating default configurations&#8230;<br \/>\nFinished generating default configurations<br \/>\nYou have successfully installed FreePBX<\/p>\n<p><strong>7.Get the rest of the modules<\/strong><br \/>\nroot@fs:\/usr\/local\/src\/freepbx# fwconsole ma installall<br \/>\nroot@fs:\/usr\/local\/src\/freepbx# fwconsole reload<br \/>\nReload Started<br \/>\nReload Complete<br \/>\nroot@fs:\/usr\/local\/src\/freepbx# fwconsole restart<br \/>\nRunning FreePBX shutdown&#8230;<\/p>\n<p>Running Asterisk pre from Core module<br \/>\nStopping Call Transfer Monitoring Service<br \/>\nCore FastAGI Server is not running<br \/>\nRunning Asterisk pre from Ucp module<br \/>\nStopping UCP Node Server<br \/>\n[-&gt;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;] 1 sec<br \/>\nStopped UCP Node Server<br \/>\nShutting down Asterisk Gracefully. Will forcefully kill after 30 seconds.<br \/>\nPress C to Cancel<br \/>\nPress N to shut down NOW<br \/>\n[============================] &lt; 1 sec Running FreePBX startup&#8230; Starting Asterisk&#8230; [============================] 2 secs Asterisk Started Running Asterisk post from Core module Starting Call Transfer Monitoring Service Stopping Call Transfer Monitoring Service Restarting Call Transfer Monitoring Service Starting Core FastAGI Server&#8230;<\/p>\n<p>[-&gt;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;] 1 sec<br \/>\nStarted Core FastAGI Server. PID is 95704<br \/>\nRunning Asterisk post from Ucp module<br \/>\nStarting UCP Node Server&#8230;<br \/>\n[-&gt;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;] &lt; 1 sec<br \/>\nStarted UCP Node Server. PID is 95803<\/p>\n<p>&nbsp;<\/p>\n<p><strong>8.Set up systemd (startup script)<\/strong><br \/>\nroot@fs:\/usr\/local\/src\/freepbx# cat &lt; \/etc\/systemd\/system\/freepbx.service<br \/>\n[Unit]<br \/>\nDescription=FreePBX VoIP Server<br \/>\nAfter=mariadb.service<br \/>\n[Service]<br \/>\nType=oneshot<br \/>\nRemainAfterExit=yes<br \/>\nExecStart=\/usr\/sbin\/fwconsole start -q<br \/>\nExecStop=\/usr\/sbin\/fwconsole stop -q<br \/>\n[Install]<br \/>\nWantedBy=multi-user.target<br \/>\nEOF<\/p>\n<p>root@fs:\/usr\/local\/src\/freepbx# cat \/etc\/systemd\/system\/freepbx.service<br \/>\n[Unit]<br \/>\nDescription=FreePBX VoIP Server<br \/>\nAfter=mariadb.service<br \/>\n[Service]<br \/>\nType=oneshot<br \/>\nRemainAfterExit=yes<br \/>\nExecStart=\/usr\/sbin\/fwconsole start -q<br \/>\nExecStop=\/usr\/sbin\/fwconsole stop -q<br \/>\n[Install]<br \/>\nWantedBy=multi-user.target<\/p>\n<p>root@fs:\/usr\/local\/src\/freepbx# systemctl daemon-reload<br \/>\nroot@fs:\/usr\/local\/src\/freepbx# systemctl enable freepbx<br \/>\nCreated symlink \/etc\/systemd\/system\/multi-user.target.wants\/freepbx.service \u2192 \/etc\/systemd\/system\/freepbx.service.<\/p>\n<p><strong>9.Goto URL Web Management<\/strong><br \/>\nUsername &gt;<br \/>\nPassword &gt;<br \/>\nEmail &gt;<br \/>\nSystem name &gt;<\/p>\n<p>[Submit]<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-968\" src=\"http:\/\/omtel.ltd\/wp-content\/uploads\/2024\/12\/Screenshot-2567-12-23-at-13.45.06.png\" alt=\"\" width=\"599\" height=\"406\" srcset=\"https:\/\/omtel.ltd\/wp-content\/uploads\/2024\/12\/Screenshot-2567-12-23-at-13.45.06.png 2322w, https:\/\/omtel.ltd\/wp-content\/uploads\/2024\/12\/Screenshot-2567-12-23-at-13.45.06-300x203.png 300w, https:\/\/omtel.ltd\/wp-content\/uploads\/2024\/12\/Screenshot-2567-12-23-at-13.45.06-1024x694.png 1024w, https:\/\/omtel.ltd\/wp-content\/uploads\/2024\/12\/Screenshot-2567-12-23-at-13.45.06-768x521.png 768w, https:\/\/omtel.ltd\/wp-content\/uploads\/2024\/12\/Screenshot-2567-12-23-at-13.45.06-1536x1041.png 1536w, https:\/\/omtel.ltd\/wp-content\/uploads\/2024\/12\/Screenshot-2567-12-23-at-13.45.06-2048x1388.png 2048w\" sizes=\"auto, (max-width: 599px) 100vw, 599px\" \/><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-981\" src=\"http:\/\/omtel.ltd\/wp-content\/uploads\/2024\/12\/Screenshot-2567-12-23-at-14.00.31-1.png\" alt=\"\" width=\"740\" height=\"463\" srcset=\"https:\/\/omtel.ltd\/wp-content\/uploads\/2024\/12\/Screenshot-2567-12-23-at-14.00.31-1.png 2286w, https:\/\/omtel.ltd\/wp-content\/uploads\/2024\/12\/Screenshot-2567-12-23-at-14.00.31-1-300x188.png 300w, https:\/\/omtel.ltd\/wp-content\/uploads\/2024\/12\/Screenshot-2567-12-23-at-14.00.31-1-1024x641.png 1024w, https:\/\/omtel.ltd\/wp-content\/uploads\/2024\/12\/Screenshot-2567-12-23-at-14.00.31-1-768x480.png 768w, https:\/\/omtel.ltd\/wp-content\/uploads\/2024\/12\/Screenshot-2567-12-23-at-14.00.31-1-1536x961.png 1536w, https:\/\/omtel.ltd\/wp-content\/uploads\/2024\/12\/Screenshot-2567-12-23-at-14.00.31-1-2048x1281.png 2048w\" sizes=\"auto, (max-width: 740px) 100vw, 740px\" \/><\/p>\n<p>Firewall to Our IPPBX Server<\/p>\n<p>root@fs:\/usr\/local\/src\/freepbx# iptables &#8211;version<br \/>\niptables v1.8.9 (nf_tables)<br \/>\nroot@fs:\/usr\/local\/src\/freepbx# iptables -A INPUT -p tcp &#8211;dport 8088 -j ACCEPT # HTTP<br \/>\nroot@fs:\/usr\/local\/src\/freepbx# iptables -A INPUT -p tcp &#8211;dport 22 -j ACCEPT # SSH<br \/>\nroot@fs:\/usr\/local\/src\/freepbx# iptables -A INPUT -p tcp &#8211;dport 443 -j ACCEPT # HTTPS<br \/>\nroot@fs:\/usr\/local\/src\/freepbx# iptables -A INPUT -p udp &#8211;dport 5060 -j ACCEPT # SIP<br \/>\nroot@fs:\/usr\/local\/src\/freepbx# iptables -A INPUT -p udp &#8211;dport 5061 -j ACCEPT # PJSIP<br \/>\nroot@fs:\/usr\/local\/src\/freepbx# iptables -A INPUT -p udp &#8211;dport 10000:20000 -j ACCEPT # RTP<br \/>\nroot@fs:\/usr\/local\/src\/freepbx# iptables -A INPUT -p udp &#8211;dport 5038 -j ACCEPT # AMI<br \/>\nroot@fs:\/usr\/local\/src\/freepbx# iptables -A INPUT -j DROP<\/p>\n<p>root@fs:\/usr\/local\/src\/freepbx# mkdir \/etc\/iptables\/<br \/>\nroot@fs:\/usr\/local\/src\/freepbx# iptables-save &gt; \/etc\/iptables\/rules.v4<\/p>\n<p>root@fs:\/etc\/iptables# iptables -nvL<br \/>\nChain INPUT (policy ACCEPT 0 packets, 0 bytes)<br \/>\npkts bytes target prot opt in out source destination<br \/>\n4 220 ACCEPT 6 &#8212; * * 0.0.0.0\/0 0.0.0.0\/0 tcp dpt:80<br \/>\n29 2012 ACCEPT 6 &#8212; * * 0.0.0.0\/0 0.0.0.0\/0 tcp dpt:9696<br \/>\n0 0 ACCEPT 6 &#8212; * * 0.0.0.0\/0 0.0.0.0\/0 tcp dpt:443<br \/>\n892 531K ACCEPT 17 &#8212; * * 0.0.0.0\/0 0.0.0.0\/0 udp dpt:5060<br \/>\n892 531K ACCEPT 17 &#8212; * * 0.0.0.0\/0 0.0.0.0\/0 udp dpt:5061<br \/>\n0 0 ACCEPT 17 &#8212; * * 0.0.0.0\/0 0.0.0.0\/0 udp dpts:10000:20000<br \/>\n0 0 ACCEPT 6 &#8212; * * 0.0.0.0\/0 0.0.0.0\/0 tcp dpt:5038<br \/>\n2 104 DROP 0 &#8212; * * 0.0.0.0\/0 0.0.0.0\/0<\/p>\n<p>Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)<br \/>\npkts bytes target prot opt in out source destination<\/p>\n<p>Chain OUTPUT (policy ACCEPT 906 packets, 482K bytes)<br \/>\npkts bytes target prot opt in out source destination<\/p>\n<p class=\"p1\"><b>\u0e1a\u0e31\u0e19\u0e17\u0e36\u0e01\u0e01\u0e0e iptables<\/b>:<\/p>\n<p class=\"p1\">\u0e40\u0e1e\u0e37\u0e48\u0e2d\u0e43\u0e2b\u0e49\u0e01\u0e0e\u0e22\u0e31\u0e07\u0e04\u0e07\u0e2d\u0e22\u0e39\u0e48\u0e2b\u0e25\u0e31\u0e07\u0e23\u0e35\u0e1a\u0e39\u0e15\u0e23\u0e30\u0e1a\u0e1a \u0e04\u0e38\u0e13\u0e15\u0e49\u0e2d\u0e07\u0e1a\u0e31\u0e19\u0e17\u0e36\u0e01\u0e01\u0e0e:<\/p>\n<p>root@fs:\/etc\/fail2ban# apt-get install iptables-persistent -y<br \/>\nroot@fs:\/etc\/iptables# sudo netfilter-persistent save<br \/>\nrun-parts: executing \/usr\/share\/netfilter-persistent\/plugins.d\/15-ip4tables save<br \/>\nrun-parts: executing \/usr\/share\/netfilter-persistent\/plugins.d\/25-ip6tables save<br \/>\nroot@fs:\/etc\/iptables# sudo netfilter-persistent reload<br \/>\nrun-parts: executing \/usr\/share\/netfilter-persistent\/plugins.d\/15-ip4tables start<br \/>\nrun-parts: executing \/usr\/share\/netfilter-persistent\/plugins.d\/25-ip6tables start<\/p>\n<p>&nbsp;<\/p>\n<p class=\"p1\"><b>\u0e15\u0e34\u0e14\u0e15\u0e31\u0e49\u0e07 Fail2Ban \u0e40\u0e1e\u0e37\u0e48\u0e2d\u0e40\u0e1e\u0e34\u0e48\u0e21\u0e04\u0e27\u0e32\u0e21\u0e1b\u0e25\u0e2d\u0e14\u0e20\u0e31\u0e22<\/b><\/p>\n<p>Fail2Ban \u0e40\u0e1b\u0e47\u0e19\u0e40\u0e04\u0e23\u0e37\u0e48\u0e2d\u0e07\u0e21\u0e37\u0e2d\u0e0a\u0e48\u0e27\u0e22\u0e1b\u0e49\u0e2d\u0e07\u0e01\u0e31\u0e19\u0e01\u0e32\u0e23\u0e42\u0e08\u0e21\u0e15\u0e35 Brute Force \u0e41\u0e25\u0e30 DDoS \u0e1c\u0e48\u0e32\u0e19\u0e01\u0e32\u0e23\u0e1a\u0e25\u0e47\u0e2d\u0e01 IP \u0e17\u0e35\u0e48\u0e44\u0e21\u0e48\u0e1b\u0e25\u0e2d\u0e14\u0e20\u0e31\u0e22\u0e2d\u0e31\u0e15\u0e42\u0e19\u0e21\u0e31\u0e15\u0e34 \u0e42\u0e14\u0e22\u0e40\u0e09\u0e1e\u0e32\u0e30\u0e01\u0e31\u0e1a\u0e01\u0e32\u0e23\u0e42\u0e08\u0e21\u0e15\u0e35 SIP<\/p>\n<p>root@fs:\/etc\/fail2ban# sudo nano \/etc\/fail2ban\/jail.local<\/p>\n<p>[DEFAULT]<br \/>\nbantime = 10m<br \/>\nfindtime = 10m<br \/>\nmaxretry = 5<\/p>\n<p>[sshd]<br \/>\nenabled = true<br \/>\nport = 9696<br \/>\nlogpath = \/var\/log\/auth.log<br \/>\nmaxretry = 3<\/p>\n<p>[asterisk]<br \/>\nenabled = true<br \/>\nport = 5060,5061<br \/>\nprotocol = udp<br \/>\nlogpath = \/var\/log\/asterisk\/full<br \/>\nmaxretry = 5<\/p>\n<p>root@fs:\/etc\/iptables# systemctl status fail2ban<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Install FreePBX 17 on Debian 12 with Asterisk 21 Ref :  [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[18,11],"tags":[],"class_list":["post-965","post","type-post","status-publish","format-standard","hentry","category-freepbx","category-voip"],"_links":{"self":[{"href":"https:\/\/omtel.ltd\/index.php\/wp-json\/wp\/v2\/posts\/965","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/omtel.ltd\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/omtel.ltd\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/omtel.ltd\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/omtel.ltd\/index.php\/wp-json\/wp\/v2\/comments?post=965"}],"version-history":[{"count":15,"href":"https:\/\/omtel.ltd\/index.php\/wp-json\/wp\/v2\/posts\/965\/revisions"}],"predecessor-version":[{"id":983,"href":"https:\/\/omtel.ltd\/index.php\/wp-json\/wp\/v2\/posts\/965\/revisions\/983"}],"wp:attachment":[{"href":"https:\/\/omtel.ltd\/index.php\/wp-json\/wp\/v2\/media?parent=965"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/omtel.ltd\/index.php\/wp-json\/wp\/v2\/categories?post=965"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/omtel.ltd\/index.php\/wp-json\/wp\/v2\/tags?post=965"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}