さくらのVPSにCentOS-8-x86_64-1905-dvd1.iso で minimal インストールした後にメールサーバを構築するための自分用のメモ。
・ネットワーク設定
#-- IPとDNS設定
IPV4_ADDR=X.X.X.X
IPV4_SUBNET=23
IPV4_GATEWAY=X.X.X.X
IPV4_DNS=8.8.8.8
IPV6_ADDR=X:X:X:X:X:X:X:X
IPV6_SUBNET=64
IPV6_GATEWAY=fe80::1
IPV6_DNS=2001:e42::1
#-- ipv4 の設定
nmcli connection modify ens3 connection.autoconnect yes ipv4.address ${IPV4_ADDR}/${IPV4_SUBNET} ipv4.gateway ${IPV4_GATEWAY} ipv4.method manual ipv4.dns ${IPV4_DNS}
#-- ipv6 の設定
nmcli connection modify ens3 ipv6.address ${IPV6_ADDR}/${IPV6_SUBNET} ipv6.gateway ${IPV6_GATEWAY} ipv6.method manual ipv6.dns ${IPV6_DNS}
#-- 設定反映
(nmcli c down ens3; nmcli c up ens3)
#-- dnfのwarning 抑制
LANG=C export LANG
#-- 必要なものをインストール epel-release
dnf install -y bash-completion telnet bind-utils git tar epel-release
#-- selinux 無効化
sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
setenforce 0
・rspamd のインストール (dnf でまだインストールできない)
#-- rspamd
mkdir -p ~/work/git && cd ~/work/git
dnf install -y cmake gcc gcc-c++ make autoconf automake libtool
dnf install -y {luajit,sqlite,openssl,libevent,glib2,libicu,libsodium}-devel
curl -O http://www.colm.net/files/colm/colm-0.13.0.7.tar.gz
tar xvzf colm-0.13.0.7.tar.gz
cd colm-0.13.0.7/
./configure
make
make install
curl -O http://www.colm.net/files/ragel/ragel-7.0.0.12.tar.gz
tar xvzf ragel-7.0.0.12.tar.gz
cd ragel-7.0.0.12
./configure
make
make install
git clone --recursive https://github.com/vstakhov/rspamd.git
mkdir rspamd.build && cd rspamd.build
cmake ../rspamd
make
make install
cat <<'_EOF_'>> /usr/lib/systemd/system/rspamd.service
[Unit]
Description=rapid spam filtering system
After=nss-lookup.target network-online.target
Documentation=https://rspamd.com/doc/
[Service]
LimitNOFILE=1048576
NonBlocking=true
ExecStart=/usr/local/bin/rspamd -c /etc/rspamd/rspamd.conf -f
ExecReload=/bin/kill -HUP $MAINPID
User=_rspamd
RuntimeDirectory=rspamd
RuntimeDirectoryMode=0755
Restart=always
[Install]
WantedBy=multi-user.target
_EOF_
ln -s /usr/local/etc/rspamd /etc/rspamd
#-- userid,gid,home,shell は手動で設定したほうがいい
useradd _rspamd
#-- ここで設定とかする
mkdir /var/log/rspamd && chown _rspamd. /var/log/rspamd
systemctl enable rspamd
systemctl start rspamd
・roundcube のインストールメモ
#-- roundcube のインストール
cd ~/work/git
git clone https://github.com/roundcube/roundcubemail.git
cd ~/work/git/roundcubemail
VERSION=$(git for-each-ref --sort=-taggerdate --format='%(tag)' refs/tags | grep -m 1 "1\.4-")
git checkout ${VERSION}
HTTPS_DOCROOT=/var/www/html/https_root
cp -pr ../roundcubemail ${HTTPS_DOCROOT}/roundcubemail-${VERSION}
ln -s ${HTTPS_DOCROOT}/roundcubemail-${VERSION} ${HTTPS_DOCROOT}/roundcube
#-- roundcube の DB を作成
mysql -e "create database roundcubemail character set utf8 collate utf8_bin;"
#-- database の password は お好みで
mysql -e "create user roundcube@localhost identified by 'roundcube';"
mysql -e "grant all privileges ON roundcube.* TO roundcube@localhost ;"
mysql -e "flush privileges;"
mysql roundcubemail < ${HTTPS_DOCROOT}/roundcube/SQL/mysql.initial.sql
yum install -y php-{pdo,xml,pear,mbstring,intl,gd,mysqlnd,ldap,json,pecl-zip}
dnf install -y php-pear-Auth-SASL php-pear-Net-SMTP
pear install Net_IDNA2-0.2.0
pear install Mail_Mime-1.10.3
#-- ここで設定とかする
dnf install -y npm
npm install -g less
#-- php は 7.2.11, mysql は 8.0.13
他のアプリケーションは dnf でインストールできるのでCentOS7の手順で問題ないはず