ISPConfig 3 issueshttps://git.ispconfig.org/ispconfig/ispconfig3/-/issues2023-12-03T19:00:50Zhttps://git.ispconfig.org/ispconfig/ispconfig3/-/issues/6584DNS - any not allowed in also_notify [bind restart fail]2023-12-03T19:00:50ZHannesDNS - any not allowed in also_notify [bind restart fail]## Summary
"any" not allowed in also_notify \[bind restart fail\]
## Steps to reproduce
1. type "any" into DNS-\>some Zone-\> Zone settings -\> Also Notify Field
2. try to restart bind (will fail) with
```plaintext
02-Oct-2023 09:...## Summary
"any" not allowed in also_notify \[bind restart fail\]
## Steps to reproduce
1. type "any" into DNS-\>some Zone-\> Zone settings -\> Also Notify Field
2. try to restart bind (will fail) with
```plaintext
02-Oct-2023 09:34:39.046 config: error: /etc/bind/named.conf.local:4: unable to find primaries list 'any'\
02-Oct-2023 09:34:39.046 general: error: reloading configuration failed: failure
```
## Correct behaviour
Disallow value "any" in field also-notify ("any" in xfer is ok)
## Environment
Ubuntu 22.04 - ISPConfig 2.3.11
```plaintext
Output of the command
```
## Proposed fix
optional, of course.\\
Maybe change the check or write other function for also_notify
```plaintext
Index: interface/lib/classes/validate_dns.inc.php
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
diff --git a/interface/lib/classes/validate_dns.inc.php b/interface/lib/classes/validate_dns.inc.php
--- a/interface/lib/classes/validate_dns.inc.php
+++ b/interface/lib/classes/validate_dns.inc.php (date 1696240257952)
@@ -292,7 +292,7 @@
if($validator['allowempty'] != 'y') $validator['allowempty'] = 'n';
if($validator['allowempty'] == 'y' && $field_value == '') {
//* Do nothing
- } elseif ($field_value == 'any' && $field_name != ) {
+ } elseif ($field_value == 'any' && $field_name != "also_notify") {
//* Do nothing
} else {
//* Check if its a IPv4 or IPv6 address/range
```3.2.12https://git.ispconfig.org/ispconfig/ispconfig3/-/issues/6575Validation bug in DNS DMARC2023-09-14T21:28:18ZPyte CValidation bug in DNS DMARC## Summary
<!-- What is happening and what is wrong with that? -->
When trying to create a DMARC record for a domain where the DKIM is configured via a CNAME record ISPConfig errors with `dmarc_no_dkim_txt`.
As this is a valid setup (see...## Summary
<!-- What is happening and what is wrong with that? -->
When trying to create a DMARC record for a domain where the DKIM is configured via a CNAME record ISPConfig errors with `dmarc_no_dkim_txt`.
As this is a valid setup (see O365 docs for example) the validation function needs to be corrected.
Reference thread in the forums: https://forum.howtoforge.com/threads/configuring-dkim-and-dmarc-with-office-365.91120/#post-449340
## Steps to reproduce
1. Create a CNAME that point to the DKIM Record
2. Trying adding a DMARC Record
3. Result: Error dmarc_no_dkim_txt
## Correct behaviour
The validation should not check, as it is possible that the record is not configured in the same zone.
## Proposed fix
The file in question is interface/web/dns/dns_dmarc_edit.php lines 229-236:
```
// DMARC requieres at least one active dkim-record...
$sql = "SELECT * FROM dns_rr
LEFT JOIN dns_soa ON (dns_rr.zone=dns_soa.id)
WHERE dns_soa.origin = ? AND dns_rr.name LIKE ? AND type='TXT' AND data like 'v=DKIM1;%' AND dns_rr.active='Y'";
$temp = $app->db->queryAllRecords($sql, $soa['origin'], '%._domainkey%');
if (empty($temp)) {
if (isset($app->tform->errorMessage )) $app->tform->errorMessage = '<br/>' . $app->tform->errorMessage;
$app->tform->errorMessage .= $app->tform->wordbook['dmarc_no_dkim_txt'].$email;
}
```3.2.12https://git.ispconfig.org/ispconfig/ispconfig3/-/issues/6573[installer] All ISPConfig files have execute bit set after installation.2023-09-16T14:53:19ZDr. Yves Kreis[installer] All ISPConfig files have execute bit set after installation.All ISPConfig files have execute bit set after installation. This is unnecessary and confusing.
However /usr/local/ispconfig/server/scripts/<ispconfig_patch|vlogger> need execute bit.
Besides /usr/local/ispconfig/interface/lib/config.in...All ISPConfig files have execute bit set after installation. This is unnecessary and confusing.
However /usr/local/ispconfig/server/scripts/<ispconfig_patch|vlogger> need execute bit.
Besides /usr/local/ispconfig/interface/lib/config.inc.php~ isn't protected.3.2.12https://git.ispconfig.org/ispconfig/ispconfig3/-/issues/6572[installer] Undefined variable $issued_successfully2023-09-09T05:38:56ZDr. Yves Kreis[installer] Undefined variable $issued_successfullyOutput from the installer:
```
Do you want a secure (SSL) connection to the ISPConfig web interface (y,n) [y]:
Checking / creating certificate for _hostname_
Using certificate path /etc/letsencrypt/live/_hostname_
Server's public ip(s...Output from the installer:
```
Do you want a secure (SSL) connection to the ISPConfig web interface (y,n) [y]:
Checking / creating certificate for _hostname_
Using certificate path /etc/letsencrypt/live/_hostname_
Server's public ip(s) (_IP_) not found in A/AAAA records for _hostname_: _IP_
Ignore DNS check and continue to request certificate? (y,n) [n]:
PHP Warning: Undefined variable $issued_successfully in /tmp/ispconfig3_install/install/lib/installer_base.lib.php on line 3319
Could not issue letsencrypt certificate, falling back to self-signed.
```3.2.12https://git.ispconfig.org/ispconfig/ispconfig3/-/issues/6568[installer] jailkit php 8.2 references wrong directory2023-09-06T08:49:02ZDr. Yves Kreis[installer] jailkit php 8.2 references wrong directoryIn `install/tpl/jk_init.ini.master` the paths for php 8.2 contains `/usr/lib/php/20210902/` while this should be `/usr/lib/php/20220829/`.In `install/tpl/jk_init.ini.master` the paths for php 8.2 contains `/usr/lib/php/20210902/` while this should be `/usr/lib/php/20220829/`.3.2.12https://git.ispconfig.org/ispconfig/ispconfig3/-/issues/6567[installer] jailkit wrong file backup'ed2023-09-06T08:49:35ZDr. Yves Kreis[installer] jailkit wrong file backup'edDuring the installation of jailkit, a backup of `$config_dir.'/'.$jk_chrootsh.'.master'` is created. However, `$config_dir.'/'.$jk_chrootsh` is overwritten later on, and thus the backup should also be done of that file!During the installation of jailkit, a backup of `$config_dir.'/'.$jk_chrootsh.'.master'` is created. However, `$config_dir.'/'.$jk_chrootsh` is overwritten later on, and thus the backup should also be done of that file!3.2.12https://git.ispconfig.org/ispconfig/ispconfig3/-/issues/6566[installer] rspamd configuration files have execute bit set2023-09-06T08:50:14ZDr. Yves Kreis[installer] rspamd configuration files have execute bit setIn the installer the configuration files (lines 2000 to 2010 & 2020 to 2023 and 2033 to 2038) have the execute bit set and are copied; so they keep the execute bit set afterwards which is bad style. Besides `groups.conf` is listed twice ...In the installer the configuration files (lines 2000 to 2010 & 2020 to 2023 and 2033 to 2038) have the execute bit set and are copied; so they keep the execute bit set afterwards which is bad style. Besides `groups.conf` is listed twice in the first set.3.2.12https://git.ispconfig.org/ispconfig/ispconfig3/-/issues/6565[installer] dovecot does wrong file check2023-09-06T08:50:47ZDr. Yves Kreis[installer] dovecot does wrong file checkIn `configure_dovecot()` the installer is creating `master.cf~2` however the check is for `master.cf`!In `configure_dovecot()` the installer is creating `master.cf~2` however the check is for `master.cf`!3.2.12https://git.ispconfig.org/ispconfig/ispconfig3/-/issues/6564[installer] master.cf changed on Debian 12 aka Bookworm2023-09-06T08:51:16ZDr. Yves Kreis[installer] master.cf changed on Debian 12 aka Bookworm## Summary
master.cf has changed on Debian 12 aka Bookworm. Thus the change of maildrop service in postfix master.cf does not work anymore.
## Steps to reproduce
1. (Auto)Install ISPConfig on Debian 12 aka Bookworm
2. Check /etc/postfix...## Summary
master.cf has changed on Debian 12 aka Bookworm. Thus the change of maildrop service in postfix master.cf does not work anymore.
## Steps to reproduce
1. (Auto)Install ISPConfig on Debian 12 aka Bookworm
2. Check /etc/postfix/master.cf
```
maildrop unix - n n - - pipe
flags=DRXhu user=vmail argv=/usr/bin/maildrop -d ${recipient}
```
## Correct behaviour
```
maildrop unix - n n - - pipe
flags=DRXhu user=vmail argv=/usr/bin/maildrop -d vmail ${extension} ${recipient} ${user} ${nexthop} ${sender}
```
## Environment
Server OS + version: Debian 12 \
ISPConfig version: 3.2dev \
Software version of the related software:
```
postfix 3.7.6-0+deb12u2
```
## Proposed fix
Lines 1365-1367 in install/lib/installer_base.lib.php
```
$content = preg_replace('/flags=(DRX?hu) user=vmail argv=\/usr\/bin\/maildrop -d \${recipient}/',
'flags=$1 user='.$cf['vmail_username'].' argv=/usr/bin/maildrop -d '.$cf['vmail_username'].' \${extension} \${recipient} \${user} \${nexthop} \${sender}',
$content);
```3.2.12https://git.ispconfig.org/ispconfig/ispconfig3/-/issues/6561Database user permissions are not returned as they should be.2023-09-16T14:50:57ZAlexandre Pereira BühlerDatabase user permissions are not returned as they should be.MariaDB 10.3. Debian buster. ISPConfig 3.2.11.
Steps to reproduce.
1) Create a database and user.
2) Create a table.
3) Overflow the database quota.
4) The next day when we increase the database quota.
The user's permissions are not corr...MariaDB 10.3. Debian buster. ISPConfig 3.2.11.
Steps to reproduce.
1) Create a database and user.
2) Create a table.
3) Overflow the database quota.
4) The next day when we increase the database quota.
The user's permissions are not corrected.
They remain the same as when the quota was exceeded.
They look like in the image with the number 2.
![beforequotaexceeded](/uploads/e43065b1c9809d9db19e15afe111ceae/beforequotaexceeded.PNG)
![afterquotaexceeded](/uploads/975ecb97081cdcf10a644cbcdf3d9f9b/afterquotaexceeded.PNG)https://git.ispconfig.org/ispconfig/ispconfig3/-/issues/6560client info is showing the data of all clients2023-09-16T14:51:06ZAlexandre Pereira Bühlerclient info is showing the data of all clientsGood morning,
In the clients grid, when you click on a client, the client info is showing the data of all the clients.
Shouldn't it only show the data of the selected customer?
Thank youGood morning,
In the clients grid, when you click on a client, the client info is showing the data of all the clients.
Shouldn't it only show the data of the selected customer?
Thank you3.2.12https://git.ispconfig.org/ispconfig/ispconfig3/-/issues/6558Add better default values when adding a new spamfilter policy.2023-08-18T14:32:54ZTill BrehmAdd better default values when adding a new spamfilter policy.https://forum.howtoforge.com/threads/error-creating-new-email-spamfilter-policy.90997/https://forum.howtoforge.com/threads/error-creating-new-email-spamfilter-policy.90997/3.2.12https://git.ispconfig.org/ispconfig/ispconfig3/-/issues/6549Switching form tabs does not work when opening website form from dashboard2023-08-04T16:37:15ZTill BrehmSwitching form tabs does not work when opening website form from dashboardhttps://forum.howtoforge.com/threads/possible-interface-issue.90918/#post-448095https://forum.howtoforge.com/threads/possible-interface-issue.90918/#post-4480953.2.11https://git.ispconfig.org/ispconfig/ispconfig3/-/issues/6543mysqldump command has been renamed to mariadb-dump in latest versions2023-12-04T14:34:35ZTill Brehmmysqldump command has been renamed to mariadb-dump in latest versionshttps://forum.howtoforge.com/threads/how-to-upgrade-mariadb-with-ispconfig.89509/#post-447776https://forum.howtoforge.com/threads/how-to-upgrade-mariadb-with-ispconfig.89509/#post-4477763.2.13https://git.ispconfig.org/ispconfig/ispconfig3/-/issues/6540PHP Warnings and issues with character set in MySQL 82023-09-24T11:03:56ZTill BrehmPHP Warnings and issues with character set in MySQL 8https://forum.howtoforge.com/threads/migrate-mysql-to-mariadb.90840/#post-447639https://forum.howtoforge.com/threads/migrate-mysql-to-mariadb.90840/#post-447639https://git.ispconfig.org/ispconfig/ispconfig3/-/issues/6535mail alias on domain alias does not work2023-09-16T14:50:17Zdoekiamail alias on domain alias does not work## Summary
email to an aliased email on an aliased domain does not work
## Steps to reproduce
1. have an email alice@example.com
2. have an email alias bob@example.com => alice@example.com
3. have a domain alias @alternate.com => @examp...## Summary
email to an aliased email on an aliased domain does not work
## Steps to reproduce
1. have an email alice@example.com
2. have an email alias bob@example.com => alice@example.com
3. have a domain alias @alternate.com => @example.com
4. Try to send an email to bob@alternate.com
5. 550 5.1.1 <bob@alternate.com>: Recipient address rejected: User unknown in virtual alias table;
## Correct behaviour
Mail to be send to alice@example.com
## Environment
Debian 11
ISPConfig Version: 3.2.9p1
Apache2.4
## Proposed fix
See the patched query entry in /etc/postfix/mysql-virtual_forwardings.cf
#> postmap -q "bob@alternate.com" mysql:/etc/postfix/mysql-virtual_forwardings.cf
alice@example.com
```
query = SELECT s.destination AS target FROM mail_forwarding AS s
WHERE (s.source = '%s' OR s.source = CONCAT(SUBSTRING_INDEX('%u', '+', 1), '@%d'))
AND s.type IN ('alias', 'forward') AND s.active = 'y' AND s.server_id = 1
UNION
SELECT s.destination AS target FROM mail_forwarding AS s
WHERE s.source = '@%d' AND s.type = 'catchall'
AND s.active = 'y' AND s.server_id = 1
AND NOT EXISTS (
SELECT email FROM mail_user
WHERE (email = '%s' OR email = CONCAT(SUBSTRING_INDEX('%u', '+', 1), '@%d'))
AND EXISTS (
SELECT domain_id FROM mail_domain
WHERE domain = SUBSTRING_INDEX('%s', '@', -1)
AND active = 'y' AND server_id = 1
)
AND server_id = 1
)
AND NOT EXISTS (
SELECT source FROM mail_forwarding
WHERE (source = '%s' OR source = CONCAT(SUBSTRING_INDEX('%u', '+', 1), '@%d'))
AND active = 'y' AND server_id = 1
)
UNION
SELECT s.destination AS target FROM mail_forwarding AS s
INNER JOIN mail_forwarding AS s2
ON ( s2.source = '@%d'
AND s2.type = 'aliasdomain'
AND s2.active = 'y'
AND s2.server_id = 1)
WHERE (s.source = CONCAT(SUBSTRING_INDEX('%u', '+', 1), s2.destination))
AND s.type IN ('alias', 'forward')
AND s.active = 'y'
AND s.server_id = 1
```
PS: This settings (multiple alias) was working under ISPConfig Version: 3.1.12https://git.ispconfig.org/ispconfig/ispconfig3/-/issues/6533Domain module prevents subdomains to be added for domains that exist as website2023-07-28T07:05:34ZTill BrehmDomain module prevents subdomains to be added for domains that exist as websitehttps://forum.howtoforge.com/threads/ispconfig-3-2-10p1-subdomain-for-website.90816/https://forum.howtoforge.com/threads/ispconfig-3-2-10p1-subdomain-for-website.90816/3.2.10p2https://git.ispconfig.org/ispconfig/ispconfig3/-/issues/6530PowerDNS MySQL schema update2023-09-16T14:49:03ZArtur YakupovPowerDNS MySQL schema update
## Summary
Updated MySQL schema for PowerDNS prevents correct work.
/usr/share/pdns-backend-mysql/schema# cat ./4.1.0_to_4.2.0_schema.mysql.sql
ALTER TABLE domains MODIFY notified_serial INT UNSIGNED DEFAULT NULL;
ALTER TABLE records D...
## Summary
Updated MySQL schema for PowerDNS prevents correct work.
/usr/share/pdns-backend-mysql/schema# cat ./4.1.0_to_4.2.0_schema.mysql.sql
ALTER TABLE domains MODIFY notified_serial INT UNSIGNED DEFAULT NULL;
ALTER TABLE records DROP COLUMN change_date;
## Steps to reproduce
Implement PowerDNS with MySQL schema starting from 4.2.0 version of PowerDNS.
## Correct behaviour
Schemas should be compatible
## Environment
Server OS + version: Debian 10 and up
ISPConfig version: 3.9.0 and up
Software version of the related software: PowerDNS 4.2.0 and up
## Proposed fix to ispconfig/server/plugins-available/powerdns_plugin.inc.php
```
58d57
< `change_date` int(11) default NULL,
150c149
< $app->db->query("INSERT INTO powerdns.records (domain_id, name, type, content, ttl, prio, change_date, ispconfig_id) VALUES (?, ?, 'SOA', ?, ?, 0, UNIX_TIMESTAMP(), ?)", $zone_id, $origin, $content, $ttl, $ispconfig_id);
---
> $app->db->query("INSERT INTO powerdns.records (domain_id, name, type, content, ttl, prio, ispconfig_id) VALUES (?, ?, 'SOA', ?, ?, 0, ?)", $zone_id, $origin, $content, $ttl, $ispconfig_id);
184c183
< $app->db->query("UPDATE powerdns.records SET name = ?, content = ?, ttl = ?, change_date = UNIX_TIMESTAMP() WHERE ispconfig_id = ? AND type = 'SOA'", $origin, $content, $ttl, $data["new"]["id"]);
---
> $app->db->query("UPDATE powerdns.records SET name = ?, content = ?, ttl = ? WHERE ispconfig_id = ? AND type = 'SOA'", $origin, $content, $ttl, $data["new"]["id"]);
328d326
< $change_date = time();
331c329
< $app->db->query("INSERT INTO powerdns.records (domain_id, name, type, content, ttl, prio, change_date, ispconfig_id) VALUES (?, ?, ?, ?, ?, ?, ?, ?)", $zone_id, $name, $type, $content, $ttl, $prio, $change_date, $ispconfig_id);
---
> $app->db->query("INSERT INTO powerdns.records (domain_id, name, type, content, ttl, prio, ispconfig_id) VALUES (?, ?, ?, ?, ?, ?, ?)", $zone_id, $name, $type, $content, $ttl, $prio, $ispconfig_id);
394d391
< $change_date = time();
396c393
< $app->db->query("UPDATE powerdns.records SET name = ?, type = ?, content = ?, ttl = ?, prio = ?, change_date = UNIX_TIMESTAMP() WHERE ispconfig_id = ? AND type != 'SOA'", $name, $type, $content, $ttl, $prio, $ispconfig_id);
---
> $app->db->query("UPDATE powerdns.records SET name = ?, type = ?, content = ?, ttl = ?, prio = ? WHERE ispconfig_id = ? AND type != 'SOA'", $name, $type, $content, $ttl, $prio, $ispconfig_id);
```
## Related log entries
16.06.2023-09:46 - WARNING - Falsche Anfrage / Wrong QuerySQL-Query = INSERT INTO powerdns.records (domain_id, name, type, content, ttl, prio, change_date, ispconfig_id) VALUES ('143', '***', 'A', '*****', '3600', '0', 1686897961, '4950') -> 1054 (Unknown column 'change_date' in 'field list')https://git.ispconfig.org/ispconfig/ispconfig3/-/issues/6525php error if function formatBytes get calles with some non numeric value2023-06-10T05:19:08ZHannesphp error if function formatBytes get calles with some non numeric valueOnly happens if something goes wrong somewhere.<br>
Example if email backup has no size written back into DB than if you click on Email Backup Tab the following error occurs<br>
<pre>
[Fri Jun 09 19:44:32.274647 2023] [fcgid:warn] [pi...Only happens if something goes wrong somewhere.<br>
Example if email backup has no size written back into DB than if you click on Email Backup Tab the following error occurs<br>
<pre>
[Fri Jun 09 19:44:32.274647 2023] [fcgid:warn] [pid 1425757:tid 139802577917504] mod_fcgid: stderr: PHP Fatal error: Uncaught TypeError: log(): Argument #1 ($num) must be of type float, string given in /usr/local/ispconfig/interface/lib/classes/functions.inc.php:290
</pre>
Could happens in other (non standard) conditions too.<br><br>
A is_numeric() check or something like this would be useful to make it more failsafe.<br>
<pre>
public function formatBytes($size, $precision = 2) {
if (!is_numeric($size)) {
global $app;
$app->log('Function formatBytes got non nummeric value - check it', LOGLEVEL_ERROR);
return '';
}
$base=log($size)/log(1024);
$suffixes=array('', ' kB', ' MB', ' GB', ' TB');
return round(pow(1024, $base-floor($base)), $precision).$suffixes[floor($base)];
}
</pre>https://git.ispconfig.org/ispconfig/ispconfig3/-/issues/6524DNS Zone list server column empty2023-06-09T14:22:44ZTill BrehmDNS Zone list server column emptyIn DNS zone list, the server column is empty in client view when domain limit module is on.In DNS zone list, the server column is empty in client view when domain limit module is on.3.2.10p1