ejabberd - xxooxxooxx/xxooxxooxx.github.io GitHub Wiki

captcha

  • Install
apt install gsfonts imagemagick --no-install-recommends
  • ejabberd.yml
.
hosts:
  - "example.com"
captcha_cmd: "/opt/ejabberd-23.04/lib/captcha.sh"
.
listen:
  -
    port: 5666
    ip: "::"
    module: ejabberd_http
    tls: true
    request_handlers:
      .
      "/captcha": ejabberd_captcha
      .
.

tor

  • Install
apt install tor
mkdir /var/lib/tor/hidden_service/
chown -R debian-tor: /var/lib/tor/hidden_service/
chmod 700 /var/lib/tor/hidden_service/
  • /etc/tor/torrc
HiddenServiceDir /var/lib/tor/hidden_service/
HiddenServiceVersion 2
HiddenServicePort 5222 127.0.0.1:5222
HiddenServicePort 5269 127.0.0.1:5269
SocksPort 0
cat /var/lib/tor/hidden_service/hostname

Upgrading/Migrating

/opt/ejabberd-20.07/bin/ejabberdctl backup ejabberd.backup
/opt/ejabberd-20.07/bin/ejabberdctl stop
cp /opt/ejabberd/database/ejabberd@localhost/ejabberd.backup /opt/ejabberd-new/database/ejabberd@localhost/

/opt/ejabberd-new/bin/ejabberdctl start
/opt/ejabberd-new/bin/ejabberdctl restore ejabberd.backup
chown -R ejabberd:ejabberd /opt/ejabberd-new/database
/opt/ejabberd-new/bin/ejabberdctl restart

security

apt install fail2ban
  • /opt/ejabberd/conf/ejabberd.yml
.
    port: 5555
    ip: "::"
    module: ejabberd_http
    tls: true
    request_handlers:
      .
      "/Anyname": ejabberd_web_admin
      .
.
  • /etc/fail2ban/filter.d/ejabberd-admin.conf
[INCLUDES]

before = common.conf
[Definition]

failregex = ^.*@ejabberd_web_admin.*::ffff:<HOST>.*failed with error.*

  • /etc/fail2ban/jail.local
.
[ejabberd-admin]
enabled = true
port = 5555
logpath  = /opt/ejabberd/logs/ejabberd.log
maxretry = 6
bantime = 36000
findtime = 360
.
  • Testing
fail2ban-regex /opt/ejabberd/logs/ejabberd.log /etc/fail2ban/filter.d/ejabberd-admin.conf --print-all-matched
⚠️ **GitHub.com Fallback** ⚠️