Configure mailman on Ubuntu 24.04 fresh install

Discussion in 'Installation/Configuration' started by litronics, Oct 3, 2024.

  1. litronics

    litronics New Member

    Hi,
    I am having trouble installing / enabling mailman in ISPconfig.
    The server is a fresh install and I configured the server using the "Perfect Server Automated ISPConfig 3 Intallation".
    When it comes to mailman there is a incompatibility issue with tht APT packages on Ubuntu 24.04 which already is known as issue.
    Installing mailman3 manually following the virtenv guide at "Virtualenv Installation — Mailman Suite 3.3 documentation (mailman3.org)" works and mailman is now running on my server.
    There we come to the next issue. According to the Perfect Server Guide I would need to run the command "newlist mailman" - but newlist has been replaced with "mailman create" in the current version of mailman.
    My qustion is now - how can I confugre ISPConfig to detect mailman and configure it accordingly?

    Here some info about my server:
    Code:
    root@voc01:~# cat htf_report.txt
    
    ##### SERVER #####
    IP-address (as per hostname): ***.***.***.***
    [WARN] could not determine server's ip address by ifconfig
    [INFO] OS version is Ubuntu 24.04.1 LTS
    
    [INFO] uptime:  08:45:33 up 1 day, 17:27,  1 user,  load average: 0.00, 0.04, 0.07
    
    [INFO] memory:
                   total        used        free      shared  buff/cache   available
    Mem:           3.7Gi       3.3Gi       196Mi       134Mi       609Mi       422Mi
    Swap:             0B          0B          0B
    
    [INFO] systemd failed services status:
      UNIT LOAD ACTIVE SUB DESCRIPTION
    
    0 loaded units listed.
    
    [INFO] ISPConfig is installed.
    
    ##### ISPCONFIG #####
    ISPConfig version is 3.2.12p1
    
    
    ##### VERSION CHECK #####
    
    [INFO] php (cli) version is 8.3.12
    [INFO] php-cgi (used for cgi php in default vhost!) is version 8.3.12
    
    ##### PORT CHECK #####
    
    
    ##### MAIL SERVER CHECK #####
    
    [WARN] I found no "smtps" entry in your postfix master.cf
    [INFO] this is not critical, but if you want to offer SSL for smtp (not TLS) connections you have to enable this.
    
    ##### RUNNING SERVER PROCESSES #####
    
    [INFO] I found the following web server(s):
            Apache 2 (PID 40339)
    [INFO] I found the following mail server(s):
            Postfix (PID 40256)
    [INFO] I found the following pop3 server(s):
            Dovecot (PID 40288)
    [INFO] I found the following imap server(s):
            Dovecot (PID 40288)
    [INFO] I found the following ftp server(s):
            PureFTP (PID 40392)
    
    ##### LISTENING PORTS #####
    (only           ()
    Local           (Address)
    ***.***.***.***:8000            (32744/python3)
    [localhost]:953         (40513/named)
    [localhost]:953         (40513/named)
    [localhost]:11211               (706/memcached)
    [localhost]:53          (40513/named)
    [localhost]:53          (40513/named)
    ***.***.***.***:53              (594/systemd-resolve)
    [localhost]:6379                (739/redis-server)
    [anywhere]:3306         (39862/mariadbd)
    [anywhere]:993          (40288/dovecot)
    [anywhere]:995          (40288/dovecot)
    [localhost]:10023               (737/postgrey)
    [localhost]:8024                (480701/python3)
    [localhost]:8001                (32731/python3)
    [anywhere]:587          (40256/master)
    [anywhere]:465          (40256/master)
    [localhost]:11333               (40268/rspamd:)
    [localhost]:11332               (40268/rspamd:)
    [localhost]:11334               (40268/rspamd:)
    [localhost]:5432                (18186/postgres)
    [anywhere]:143          (40288/dovecot)
    ***.***.***.***:53              (40513/named)
    ***.***.***.***:53              (40513/named)
    [anywhere]:25           (40256/master)
    [anywhere]:21           (40392/pure-ftpd)
    [anywhere]:4190         (40288/dovecot)
    [anywhere]:110          (40288/dovecot)
    ***.***.***.***:53              (594/systemd-resolve)
    *:*:*:*::*:8080         (40339/apache2)
    *:*:*:*::*:8081         (40339/apache2)
    *:*:*:*::*:11333                (40268/rspamd:)
    *:*:*:*::*:11332                (40268/rspamd:)
    *:*:*:*::*:11334                (40268/rspamd:)
    *:*:*:*::*:5432         (18186/postgres)
    *:*:*:*::*:10023                (737/postgrey)
    *:*:*:*::*:3306         (39862/mariadbd)
    *:*:*:*::*:53           (40513/named)
    *:*:*:*::*:53           (40513/named)
    *:*:*:*::*:993          (40288/dovecot)
    *:*:*:*::*:995          (40288/dovecot)
    *:*:*:*::*:6379         (739/redis-server)
    *:*:*:*::*:587          (40256/master)
    *:*:*:*::**:*:*:*::*53          (40513/named)
    *:*:*:*::**:*:*:*::*53          (40513/named)
    *:*:*:*::*:443          (40339/apache2)
    *:*:*:*::*:465          (40256/master)
    [localhost]43           (40288/dovecot)
    *:*:*:*::*:25           (40256/master)
    *:*:*:*::*:21           (40392/pure-ftpd)
    *:*:*:*::*:22           (1/init)
    *:*:*:*::*:953          (40513/named)
    *:*:*:*::*:953          (40513/named)
    *:*:*:*::*1:53          (40513/named)
    *:*:*:*::*1:53          (40513/named)
    *:*:*:*::*:4190         (40288/dovecot)
    *:*:*:*::*:80           (40339/apache2)
    *:*:*:*::*:11211                (706/memcached)
    [localhost]10           (40288/dovecot)
    
    
    
    
    ##### IPTABLES #####
    Chain INPUT (policy DROP)
    target     prot opt source               destination
    ufw-before-logging-input  0    --  [anywhere]/0            [anywhere]/0
    ufw-before-input  0    --  [anywhere]/0            [anywhere]/0
    ufw-after-input  0    --  [anywhere]/0            [anywhere]/0
    ufw-after-logging-input  0    --  [anywhere]/0            [anywhere]/0
    ufw-reject-input  0    --  [anywhere]/0            [anywhere]/0
    ufw-track-input  0    --  [anywhere]/0            [anywhere]/0
    
    Chain FORWARD (policy DROP)
    target     prot opt source               destination
    ufw-before-logging-forward  0    --  [anywhere]/0            [anywhere]/0
    ufw-before-forward  0    --  [anywhere]/0            [anywhere]/0
    ufw-after-forward  0    --  [anywhere]/0            [anywhere]/0
    ufw-after-logging-forward  0    --  [anywhere]/0            [anywhere]/0
    ufw-reject-forward  0    --  [anywhere]/0            [anywhere]/0
    ufw-track-forward  0    --  [anywhere]/0            [anywhere]/0
    
    Chain OUTPUT (policy ACCEPT)
    target     prot opt source               destination
    ufw-before-logging-output  0    --  [anywhere]/0            [anywhere]/0
    ufw-before-output  0    --  [anywhere]/0            [anywhere]/0
    ufw-after-output  0    --  [anywhere]/0            [anywhere]/0
    ufw-after-logging-output  0    --  [anywhere]/0            [anywhere]/0
    ufw-reject-output  0    --  [anywhere]/0            [anywhere]/0
    ufw-track-output  0    --  [anywhere]/0            [anywhere]/0
    
    Chain ufw-after-forward (1 references)
    target     prot opt source               destination
    
    Chain ufw-after-input (1 references)
    target     prot opt source               destination
    ufw-skip-to-policy-input  17   --  [anywhere]/0            [anywhere]/0            udp dpt:137
    ufw-skip-to-policy-input  17   --  [anywhere]/0            [anywhere]/0            udp dpt:138
    ufw-skip-to-policy-input  6    --  [anywhere]/0            [anywhere]/0            tcp dpt:139
    ufw-skip-to-policy-input  6    --  [anywhere]/0            [anywhere]/0            tcp dpt:445
    ufw-skip-to-policy-input  17   --  [anywhere]/0            [anywhere]/0            udp dpt:67
    ufw-skip-to-policy-input  17   --  [anywhere]/0            [anywhere]/0            udp dpt:68
    ufw-skip-to-policy-input  0    --  [anywhere]/0            [anywhere]/0            ADDRTYPE match dst-type BROADCAST
    
    Chain ufw-after-logging-forward (1 references)
    target     prot opt source               destination
    LOG        0    --  [anywhere]/0            [anywhere]/0            limit: avg 3/min burst 10 LOG flags 0 level 4 prefix "[UFW BLOCK] "
    
    Chain ufw-after-logging-input (1 references)
    target     prot opt source               destination
    LOG        0    --  [anywhere]/0            [anywhere]/0            limit: avg 3/min burst 10 LOG flags 0 level 4 prefix "[UFW BLOCK] "
    
    Chain ufw-after-logging-output (1 references)
    target     prot opt source               destination
    
    Chain ufw-after-output (1 references)
    target     prot opt source               destination
    
    Chain ufw-before-forward (1 references)
    target     prot opt source               destination
    ACCEPT     0    --  [anywhere]/0            [anywhere]/0            ctstate RELATED,ESTABLISHED
    ACCEPT     1    --  [anywhere]/0            [anywhere]/0            icmptype 3
    ACCEPT     1    --  [anywhere]/0            [anywhere]/0            icmptype 11
    ACCEPT     1    --  [anywhere]/0            [anywhere]/0            icmptype 12
    ACCEPT     1    --  [anywhere]/0            [anywhere]/0            icmptype 8
    ufw-user-forward  0    --  [anywhere]/0            [anywhere]/0
    
    Chain ufw-before-input (1 references)
    target     prot opt source               destination
    ACCEPT     0    --  [anywhere]/0            [anywhere]/0
    ACCEPT     0    --  [anywhere]/0            [anywhere]/0            ctstate RELATED,ESTABLISHED
    ufw-logging-deny  0    --  [anywhere]/0            [anywhere]/0            ctstate INVALID
    DROP       0    --  [anywhere]/0            [anywhere]/0            ctstate INVALID
    ACCEPT     1    --  [anywhere]/0            [anywhere]/0            icmptype 3
    ACCEPT     1    --  [anywhere]/0            [anywhere]/0            icmptype 11
    ACCEPT     1    --  [anywhere]/0            [anywhere]/0            icmptype 12
    ACCEPT     1    --  [anywhere]/0            [anywhere]/0            icmptype 8
    ACCEPT     17   --  [anywhere]/0            [anywhere]/0            udp spt:67 dpt:68
    ufw-not-local  0    --  [anywhere]/0            [anywhere]/0
    ACCEPT     17   --  [anywhere]/0            ***.***.***.***          udp dpt:5353
    ACCEPT     17   --  [anywhere]/0            ***.***.***.***      udp dpt:1900
    ufw-user-input  0    --  [anywhere]/0            [anywhere]/0
    
    Chain ufw-before-logging-forward (1 references)
    target     prot opt source               destination
    
    Chain ufw-before-logging-input (1 references)
    target     prot opt source               destination
    
    Chain ufw-before-logging-output (1 references)
    target     prot opt source               destination
    
    Chain ufw-before-output (1 references)
    target     prot opt source               destination
    ACCEPT     0    --  [anywhere]/0            [anywhere]/0
    ACCEPT     0    --  [anywhere]/0            [anywhere]/0            ctstate RELATED,ESTABLISHED
    ufw-user-output  0    --  [anywhere]/0            [anywhere]/0
    
    Chain ufw-logging-allow (0 references)
    target     prot opt source               destination
    LOG        0    --  [anywhere]/0            [anywhere]/0            limit: avg 3/min burst 10 LOG flags 0 level 4 prefix "[UFW ALLOW] "
    
    Chain ufw-logging-deny (2 references)
    target     prot opt source               destination
    RETURN     0    --  [anywhere]/0            [anywhere]/0            ctstate INVALID limit: avg 3/min burst 10
    LOG        0    --  [anywhere]/0            [anywhere]/0            limit: avg 3/min burst 10 LOG flags 0 level 4 prefix "[UFW BLOCK] "
    
    Chain ufw-not-local (1 references)
    target     prot opt source               destination
    RETURN     0    --  [anywhere]/0            [anywhere]/0            ADDRTYPE match dst-type LOCAL
    RETURN     0    --  [anywhere]/0            [anywhere]/0            ADDRTYPE match dst-type MULTICAST
    RETURN     0    --  [anywhere]/0            [anywhere]/0            ADDRTYPE match dst-type BROADCAST
    ufw-logging-deny  0    --  [anywhere]/0            [anywhere]/0            limit: avg 3/min burst 10
    DROP       0    --  [anywhere]/0            [anywhere]/0
    
    Chain ufw-reject-forward (1 references)
    target     prot opt source               destination
    
    Chain ufw-reject-input (1 references)
    target     prot opt source               destination
    
    Chain ufw-reject-output (1 references)
    target     prot opt source               destination
    
    Chain ufw-skip-to-policy-forward (0 references)
    target     prot opt source               destination
    DROP       0    --  [anywhere]/0            [anywhere]/0
    
    Chain ufw-skip-to-policy-input (7 references)
    target     prot opt source               destination
    DROP       0    --  [anywhere]/0            [anywhere]/0
    
    Chain ufw-skip-to-policy-output (0 references)
    target     prot opt source               destination
    ACCEPT     0    --  [anywhere]/0            [anywhere]/0
    
    Chain ufw-track-forward (1 references)
    target     prot opt source               destination
    
    Chain ufw-track-input (1 references)
    target     prot opt source               destination
    
    Chain ufw-track-output (1 references)
    target     prot opt source               destination
    ACCEPT     6    --  [anywhere]/0            [anywhere]/0            ctstate NEW
    ACCEPT     17   --  [anywhere]/0            [anywhere]/0            ctstate NEW
    
    Chain ufw-user-forward (1 references)
    target     prot opt source               destination
    
    Chain ufw-user-input (1 references)
    target     prot opt source               destination
    ACCEPT     6    --  [anywhere]/0            [anywhere]/0            tcp dpt:21
    ACCEPT     6    --  [anywhere]/0            [anywhere]/0            tcp dpt:22
    ACCEPT     6    --  [anywhere]/0            [anywhere]/0            tcp dpt:25
    ACCEPT     6    --  [anywhere]/0            [anywhere]/0            tcp dpt:53
    ACCEPT     6    --  [anywhere]/0            [anywhere]/0            tcp dpt:80
    ACCEPT     6    --  [anywhere]/0            [anywhere]/0            tcp dpt:110
    ACCEPT     6    --  [anywhere]/0            [anywhere]/0            tcp dpt:143
    ACCEPT     6    --  [anywhere]/0            [anywhere]/0            tcp dpt:443
    ACCEPT     6    --  [anywhere]/0            [anywhere]/0            tcp dpt:465
    ACCEPT     6    --  [anywhere]/0            [anywhere]/0            tcp dpt:587
    ACCEPT     6    --  [anywhere]/0            [anywhere]/0            tcp dpt:993
    ACCEPT     6    --  [anywhere]/0            [anywhere]/0            tcp dpt:995
    ACCEPT     6    --  [anywhere]/0            [anywhere]/0            tcp dpt:3306
    ACCEPT     6    --  [anywhere]/0            [anywhere]/0            tcp dpt:4190
    ACCEPT     6    --  [anywhere]/0            [anywhere]/0            tcp dpt:8080
    ACCEPT     6    --  [anywhere]/0            [anywhere]/0            tcp dpt:8081
    ACCEPT     6    --  [anywhere]/0            [anywhere]/0            multiport dports 40110:40210
    ACCEPT     17   --  [anywhere]/0            [anywhere]/0            udp dpt:53
    ACCEPT     6    --  [anywhere]/0            [anywhere]/0            tcp dpt:8001
    ACCEPT     6    --  [anywhere]/0            [anywhere]/0            tcp dpt:8000
    
    Chain ufw-user-limit (0 references)
    target     prot opt source               destination
    LOG        0    --  [anywhere]/0            [anywhere]/0            limit: avg 3/min burst 5 LOG flags 0 level 4 prefix "[UFW LIMIT BLOCK] "
    REJECT     0    --  [anywhere]/0            [anywhere]/0            reject-with icmp-port-unreachable
    
    Chain ufw-user-limit-accept (0 references)
    target     prot opt source               destination
    ACCEPT     0    --  [anywhere]/0            [anywhere]/0
    
    Chain ufw-user-logging-forward (0 references)
    target     prot opt source               destination
    
    Chain ufw-user-logging-input (0 references)
    target     prot opt source               destination
    
    Chain ufw-user-logging-output (0 references)
    target     prot opt source               destination
    
    Chain ufw-user-output (1 references)
    target     prot opt source               destination
    
    
    
    
    ##### LET'S ENCRYPT #####
    acme.sh is installed in /root/.acme.sh/acme.sh
    
    
    Code:
    root@voc01:~# service mailman3 status
    ● mailman3.service - GNU Mailing List Manager
         Loaded: loaded (/etc/systemd/system/mailman3.service; enabled; preset: enabled)
         Active: active (running) since Tue 2024-10-01 18:55:51 CEST; 1 day 14h ago
        Process: 32715 ExecStart=/opt/mailman/venv/bin/mailman start (code=exited, status=0/SUCCESS)
       Main PID: 32717 (python3)
          Tasks: 17 (limit: 4499)
         Memory: 1010.8M (peak: 1.0G)
            CPU: 21min 33.792s
         CGroup: /system.slice/mailman3.service
                 ├─ 32717 /opt/mailman/venv/bin/python3 /opt/mailman/venv/bin/master -C /etc/mailman3/mailman.cfg
                 ├─ 32731 /opt/mailman/venv/bin/python3 /opt/mailman/venv/bin/runner -C /etc/mailman3/mailman.cfg --runner=>
                 ├─ 32776 /opt/mailman/venv/bin/python3 /opt/mailman/venv/bin/runner -C /etc/mailman3/mailman.cfg --runner=>
                 ├─ 32777 /opt/mailman/venv/bin/python3 /opt/mailman/venv/bin/runner -C /etc/mailman3/mailman.cfg --runner=>
                 ├─480695 /opt/mailman/venv/bin/python3 /opt/mailman/venv/bin/runner -C /etc/mailman3/mailman.cfg --runner=>
                 ├─480700 /opt/mailman/venv/bin/python3 /opt/mailman/venv/bin/runner -C /etc/mailman3/mailman.cfg --runner=>
                 ├─480701 /opt/mailman/venv/bin/python3 /opt/mailman/venv/bin/runner -C /etc/mailman3/mailman.cfg --runner=>
                 ├─480702 /opt/mailman/venv/bin/python3 /opt/mailman/venv/bin/runner -C /etc/mailman3/mailman.cfg --runner=>
                 ├─480703 /opt/mailman/venv/bin/python3 /opt/mailman/venv/bin/runner -C /etc/mailman3/mailman.cfg --runner=>
                 ├─480704 /opt/mailman/venv/bin/python3 /opt/mailman/venv/bin/runner -C /etc/mailman3/mailman.cfg --runner=>
                 ├─480705 /opt/mailman/venv/bin/python3 /opt/mailman/venv/bin/runner -C /etc/mailman3/mailman.cfg --runner=>
                 ├─480706 /opt/mailman/venv/bin/python3 /opt/mailman/venv/bin/runner -C /etc/mailman3/mailman.cfg --runner=>
                 ├─480707 /opt/mailman/venv/bin/python3 /opt/mailman/venv/bin/runner -C /etc/mailman3/mailman.cfg --runner=>
                 ├─480708 /opt/mailman/venv/bin/python3 /opt/mailman/venv/bin/runner -C /etc/mailman3/mailman.cfg --runner=>
                 ├─480709 /opt/mailman/venv/bin/python3 /opt/mailman/venv/bin/runner -C /etc/mailman3/mailman.cfg --runner=>
                 └─480710 /opt/mailman/venv/bin/python3 /opt/mailman/venv/bin/runner -C /etc/mailman3/mailman.cfg --runner=>
    
     
  2. till

    till Super Moderator Staff Member ISPConfig Developer

    Mailman cannot be installed on an Ubuntu 24.04 ISPConfig server, and that's why the auto-installer does not install it. Mailman 3 is not supported by ISPConfig, and Mailman 2 is not available on Ubuntu 24.04.
     
    ahrasis likes this.
  3. litronics

    litronics New Member

    Thanks Till,
    this clarifies my issues.
    However, are there plans to update ISPconfig zu support mailman3 on later OS releases?
    Just wondering as it seems that mailman2 is not further developed since December 2021.
     
  4. till

    till Super Moderator Staff Member ISPConfig Developer

    Mailman 3 is basically completely different software, which means we would have to build a new mailing list function in ISPConfig for it from scratch. As mailing lists are rarely used today, I'm not sure if it makes sense to invest that much money in developing it, as less than 0.1% of ISPConfig users would likely ever use it.
     
    ahrasis and Strontium like this.
  5. Wade John Beckett

    Wade John Beckett Member HowtoForge Supporter

    Hello.
    I trust you are well.

    Just to touch on this, if I wanted to install mailman on Debian 12 with ISPConfig would it work?
     
  6. till

    till Super Moderator Staff Member ISPConfig Developer

    No, Mailman 2 is not available on the latest Debian and Ubuntu versions.
     
  7. kevinrb

    kevinrb New Member HowtoForge Supporter

    Will Mailman3 coexist with ISPConfig on the same server. Accepting of course that ISPConfig would not be managing Mailman. Only acting as the SMTP gateway.
    Or some configuration like this.
     
  8. kevinrb

    kevinrb New Member HowtoForge Supporter

    Also, Mailman2 is available as source. Could it be installed this way and integrated with ISPConfig?
    Any special configuration or location needed?
     
  9. till

    till Super Moderator Staff Member ISPConfig Developer

    This should be ok.

    I have not tested that. It might work as long as your manually built version uses the exact same paths and config files as the original one from Debian and Ubuntu.
     
  10. kevinrb

    kevinrb New Member HowtoForge Supporter

    I have looked at and installed a few mailing list options. In the end Mailman3 has been installed from the Debian built packages.
    The integration with Postfix has been a little tricky. eg. The domain CATCHALL hijacks the mailing list name. So no catchall is available. And because of the virtual mailboxes the Mailman3 workaround of using a domain alias was used, see doc reference below.
    In the Postfix MAIN.CF file several references to "mailman" existed which seem to be from the ISPConfig install even though the --no-mailman option was used during server creation.

    These parameters were added to main.cf:
    transport_maps =
    hash:/var/lib/mailman3/data/postfix_lmtp
    relay_domains =
    hash:/var/lib/mailman3/data/postfix_domains
    virtual_alias_maps =
    hash:/var/lib/mailman3/data/postfix_vmap

    Per the Mailman3 documentation:
    https://docs.mailman3.org/projects/...n/docs/mta.html#unusual-postfix-configuration

    QUESTION:
    How do I preserve these entries from being overwritten by ISPConfig. Or will they have to be reentered following updates etc.?

    Otherwise ISPConfig and Mailman3 seem to be coexisting well enough.
     
  11. ahrasis

    ahrasis Well-Known Member HowtoForge Supporter

    You do mean install it manually yourself right? Mailman3 is not supported and may not be supported.

    Only if the file or the line(s) in the file that is not touched by ISPConfig or it is one the config that you can customized and put in conf-custom folder.
     

Share This Page