2022-08-22 18:23:30 +02:00
|
|
|
## OpenSMTPD Admin - Administrative webshell for OpenSMTPD
|
2022-08-18 14:01:52 +02:00
|
|
|
|
2022-08-21 12:35:40 +02:00
|
|
|
Database needed to use SQL with OpenSMTPD
|
2022-08-21 12:38:48 +02:00
|
|
|
|
2022-08-21 12:35:40 +02:00
|
|
|
CREATE DATABASE IF NOT EXISTS `opensmtpd` DEFAULT CHARACTER SET latin1 COLLATE latin1_swedish_ci;
|
|
|
|
USE `opensmtpd`;
|
|
|
|
|
|
|
|
CREATE TABLE `admin` (
|
|
|
|
`username` varchar(255) NOT NULL DEFAULT '',
|
|
|
|
`password` varchar(255) NOT NULL DEFAULT '',
|
|
|
|
`created` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
|
|
|
|
`modified` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
|
|
|
|
`active` tinyint(1) NOT NULL DEFAULT 1
|
|
|
|
) ENGINE=InnoDB DEFAULT CHARSET=latin1 COMMENT='OpenSMTPD Admin - Virtual Admins';
|
|
|
|
|
|
|
|
CREATE TABLE `alias` (
|
|
|
|
`address` varchar(255) NOT NULL DEFAULT '',
|
|
|
|
`goto` text NOT NULL,
|
|
|
|
`domain` varchar(255) NOT NULL DEFAULT '',
|
|
|
|
`created` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
|
|
|
|
`modified` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
|
|
|
|
`active` tinyint(1) NOT NULL DEFAULT 1
|
|
|
|
) ENGINE=InnoDB DEFAULT CHARSET=latin1 COMMENT='OpenSMTPD Admin - Virtual Aliases';
|
|
|
|
|
|
|
|
CREATE TABLE `domain` (
|
|
|
|
`domain` varchar(255) NOT NULL DEFAULT '',
|
|
|
|
`description` varchar(255) NOT NULL DEFAULT '',
|
|
|
|
`aliases` int(10) NOT NULL DEFAULT 0,
|
|
|
|
`mailboxes` int(10) NOT NULL DEFAULT 0,
|
|
|
|
`maxquota` int(10) NOT NULL DEFAULT 0,
|
|
|
|
`transport` varchar(255) DEFAULT NULL,
|
|
|
|
`backupmx` tinyint(1) NOT NULL DEFAULT 0,
|
|
|
|
`created` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
|
|
|
|
`modified` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
|
|
|
|
`active` tinyint(1) NOT NULL DEFAULT 1
|
|
|
|
) ENGINE=InnoDB DEFAULT CHARSET=latin1 COMMENT='OpenSMTPD Admin - Virtual Domains';
|
|
|
|
|
|
|
|
CREATE TABLE `domain_admins` (
|
|
|
|
`username` varchar(255) NOT NULL DEFAULT '',
|
|
|
|
`domain` varchar(255) NOT NULL DEFAULT '',
|
|
|
|
`created` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
|
|
|
|
`active` tinyint(1) NOT NULL DEFAULT 1
|
|
|
|
) ENGINE=InnoDB DEFAULT CHARSET=latin1 COMMENT='OpenSMTPD Admin - Domain Admins';
|
|
|
|
|
|
|
|
CREATE TABLE `log` (
|
|
|
|
`timestamp` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
|
|
|
|
`username` varchar(255) NOT NULL DEFAULT '',
|
|
|
|
`domain` varchar(255) NOT NULL DEFAULT '',
|
|
|
|
`action` varchar(255) NOT NULL DEFAULT '',
|
|
|
|
`data` varchar(255) NOT NULL DEFAULT ''
|
|
|
|
) ENGINE=InnoDB DEFAULT CHARSET=latin1 COMMENT='OpenSMTPD Admin - Log';
|
2022-08-21 12:38:48 +02:00
|
|
|
|
2022-08-21 12:35:40 +02:00
|
|
|
|
|
|
|
Config for OpenSMTPTD, MySQL/MariaDB example:
|
|
|
|
|
|
|
|
# cat /etc/mail/smtpd.conf
|
|
|
|
table credentials mysql:/etc/mail/sql.conf
|
|
|
|
table domains mysql:/etc/mail/sql.conf
|
|
|
|
table userinfo mysql:/etc/mail/sql.conf
|
|
|
|
table virtuals mysql:/etc/mail/sql.conf
|
|
|
|
|
|
|
|
Connecting the database to smtpd:
|
|
|
|
|
|
|
|
# cat /etc/mail/sql.conf
|
|
|
|
host localhost
|
|
|
|
username opensmtpd
|
|
|
|
password RandomString
|
|
|
|
database opensmtpd
|
|
|
|
|
|
|
|
query_alias SELECT goto FROM alias WHERE address=?;
|
|
|
|
query_credentials SELECT username, password FROM mailbox WHERE username=? AND active='1';
|
|
|
|
query_domain SELECT domain FROM domain WHERE domain=? AND active='1';
|
|
|
|
query_userinfo SELECT 501, 501, maildir FROM mailbox WHERE username=? AND active='1';
|