3:postfixadminのインストールと設定

ダウンロードはhttps://sourceforge.net/projects/postfixadmin/にReleased /postfixadmin-3.3.2/PostfixAdmin 3.3.2 – bug fix.tar.gzがありましたのが、私がインストールした時は3.2でしたので、この分の設定です。postfixadmin ディレクトリーを保存した所に INSTALL.TXT がありますのでこれに従って設定して行きますが、postfixadminへのアクセスの為にapacheの設定をします。/etc/httpd/conf.d/ にpostfixadmin.conf というファイルを作成
# gedit /etc/httpd/conf.d/postfixadmin.conf

Alias /postfixadmin "/xxxxxxxx/xxxxx/kinryo/postfixadmin/public"

<Location "/postfixadmin">
	Require all denied
	Require ip 127.0.0.1
	Require ip 192.168.xx.xx/24
	Require all granted
</Location>

一部に伏せ字があります。この設定は自分のネットワークからのみアクセスを許可しています。
# systemctl reload httpd
とし、設定を反映。

次はデーターベースの制作 (mysql(mariadb)自体は既にインストール済みです)
データーベースは mysql(mariadb)
其ユーザーは postfixadmin
データーベース名は postfix として作成
# mysql -u root -p
パスワードを入力
MariaDB [(none)]> create database postfix;
MariaDB [(none)]>grant all privileges on postfix.* to postfixadmin@localhost identified by ‘postfixadminのパスワード’;
MariaDB [(none)]>quit
作成したユーザーパスワードでログインできることを確認
# mysql -u postfixadmin -p
パスワードを入力

postfixadminはconfig.inc.phpと同じ場所に config.local.php というファイルを置いておくとデフォルトをオーバーライドしてくれるので、早速作成
# gedit /WEBのルートディレクトリ/postfixadmin/config.local.php


<?php
$CONF['database_type'] = 'mysqli';
$CONF['database_user'] = 'postfixadmin';
$CONF['database_password'] = 'xxxxxxxxxx';
$CONF['database_name'] = 'postfix';

$CONF['configured'] = true;
$CONF['default_language'] = 'ja';
?>

次は、template_c ディレクトリーの作成
# mkdir /WEBのルートディレクトリ/postfixadmin/template_c
postfixadmin ディレクトリー以下のオーナーをapacheにする。
# chown -R apache. /WEBのルートディレクトリ/postfixadmin

そしてブラウザで ドメイン/postfixadmin/setup.phpにアクセス

この画面は全く初めてアクセスすると上の画面とは若干違う(この画面は二回目以降の画面)ここで、管理者に自分のメールアドレスを入力し、設定するパスワードを二回入れ、管理者をクリックすると

赤字の最後の行の $CONF[‘setup_password’] で始まる行をconfig.local.phpにコピー

<?php
$CONF['database_type'] = 'mysqli';
$CONF['database_user'] = 'postfixadmin';
$CONF['database_password'] = 'XXXXXXXXX';
$CONF['database_name'] = 'postfix';

$CONF['configured'] = true;
$CONF['default_language'] = 'ja';

$CONF['setup_password'] = '07dfece4c2cce2b07b8bb1b8b477310b:7ab14259fc21b0e3a79610c5386d3f76a3f06c0a';
?>

これで、 ドメイン/postfixadmin にアクセスすると
そして、メアドとパスワードを入れ、ログインをクリックすると

これで、ドメインやメアドなどが作れる。

カテゴリー: メールサーバーに挑戦 | コメントする

2:dovecotの設定

dovecotの認証はmysql(mariadb)を使います、SSLはletsencryptを使用、ログはデフォルトのmail.logでは無くdovecot.logにする。imapとpop3の設定が入っているが、pop3はファイヤーウォールで禁止しています。SMTP認証もdovecot側でやります。
メールの保存場所には新規に作った50GBの領域である /Mail にドメイン/ユーザー名(メアドの@より前の部分)として保存、ここをアクセスするユーザーは新規にvmailというユーザーを作成し、其UID、GIDを10000とし、このユーザーでメールの保存などをする。
dovecotは、/etc/dovecot/local.conf を作る事でデフォルトの設定を変更できます。
まずはlocal.confを有効にする為に /etc/dovecot.conf の最後に !include_try local.conf を書き入れます。次に /etc/dovecot/conf.d/10-auth.conf を変更
#!include auth-system.conf.ext 先頭に#を入れてコメントアウト(これはシステムのログインを使う場合なので今回はコメントアウト)
!include auth-sql.conf.ext の先頭の#を削除し有効化。
次に、local.confを作成
# gedit /etc/dovecot/local.conf
protocols = imap pop3
listen = *
login_greeting = ready.
syslog_facility = local5
log_path = /var/log/dovecot.log
ssl = yes
ssl_cert = </etc/letsencrypt/live/mail.kinryo.net/fullchain.pem
ssl_key = </etc/letsencrypt/live/mail.kinryo.net/privkey.pem
mail_location = maildir:/Mail/%d/%n
first_valid_uid = 10000
first_valid_gid = 10000
mail_uid = 10000
mail_gid = 10000
#auth_mechanisms = plain
auth_mechanisms = plain login cram-md5
service auth {
     unix_listener /var/spool/postfix/private/auth {
          mode = 0660
          user = postfix
          group = postfix
          }
}
#protocol imap {
#     mail_plugins = quota imap_quota
#}
#protocol pop3 {
#     mail_plugins = quota
#}
#auth_verbose = yes
#auth_debug = yes

quotaは現時点では未使用(将来の為)、最後のauthから始まる二行はデバッグをするときに有効にする。ドメインやユーザーの作成はpostfixadminから行いますが、その際パスワードの暗号化を同じにするために、auth_mechanisms = plain login cram-md5 を入れてあります。ここはcram-md5 だけでいいと思いますが、未検証です。また、postfixadmin側の暗号化をcram-md5にするために、postfixadminの下にある config.inc.phpに
//$CONF[‘encrypt’] = ‘md5crypt’; の下に
$CONF[‘encrypt’] = ‘dovecot:CRAM-MD5’; を記入し保存。これでパスワードの暗号化がcram-md5になる。次にmysql(mariadb)関連の設定
# gedit /etc/dovecot/dovecot-sql.conf.ext
driver = mysql
connect = host=localhost dbname=postfix user=postfix password=xxxxxxx default_pass_scheme = CRAM-MD5
user_query = select concat(‘/Mail/’, maildir) as home, 10000 as uid, 10000 as gid FROM mailbox WHERE username = ‘%u’ AND active = ‘1’;
password_query = SELECT password FROM mailbox WHERE username = ‘%u’ AND active = ‘1’;

次はpostfixadminのインストールと設定。3:postfixadminのインストールと設定を参照

カテゴリー: メールサーバーに挑戦 | コメントする

1:postfixの設定

2021-1-10現在の情報です。現時点でのテストは二つのドメインの内、kinryo.netに関してはほぼテストが終了していますが、kinryokai.netに関してはローカルネットワーク内でのテストのみが終了していますが、グローバルからのテストはまだ出来て居ません。というのも、このドメインは現時点で全く別のホストで現行のメールサーバーが稼働しており、DNSの設定を変更しないとならないのですが、過去のメールのデーターを移し変えていないからです。

postfixはvirtualで複数のメールサーバーを稼動させます。下記に postconf -n の結果を記します。(ご存じだと思いますが、これはデフォルトの設定から変更した部分のみを表示しています)この設定はメイルボックスはMaildir形式(一つのメールが一つのファイル)、ipv6は使はない、スパムやウィルスチェックは centossrv.comを参考に設定、sasl authを導入、その認証は dovecotに委せる(dovecotの設定で出てきますが、認証はmysql(mariadb)を使う)、メールの暗号化は letsencrypt を使う、メイルデーターの保存場所は /Mail (これは移設を簡単にするために、新たに専用の領域を作った。又、新規ユーザーとしてvmailを作成しそのUID、GIDを10000にした。又 /mail以下の所有者をvmailにした。)、バーチャルドメインやバーチャルメイルボックスにはmysql(mariadb)を使う。IPアドレスは伏せ字。
# postconf -n
alias_database = hash:/etc/aliases
alias_maps = hash:/etc/aliases
command_directory = /usr/sbin
config_directory = /etc/postfix
daemon_directory = /usr/libexec/postfix
data_directory = /var/lib/postfix
debug_peer_level = 2
debugger_command = PATH=/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin ddd $daemon_directory/$process_name $process_id & sleep 5
disable_vrfy_command = yes
header_checks = regexp:/etc/postfix/header_checks
home_mailbox = Maildir/
html_directory = no
inet_interfaces = all
inet_protocols = ipv4
local_recipient_maps =
local_transport = virtual
luser_relay = unknown_user@localhost
mail_owner = postfix
mailbox_command = /usr/bin/procmail
mailbox_size_limit = 9663676416
mailq_path = /usr/bin/mailq.postfix
manpage_directory = /usr/share/man
message_size_limit = 52428800
milter_command_timeout = 150
milter_default_action = tempfail
milter_mail_macros = {auth_author} {auth_type} {auth_authen}
milter_protocol = 6
mydestination =
mydomain = kinryo.net
myhostname = mail.kinryo.net
mynetworks = 192.168.X.X/24, 127.0.0.0/8
myorigin = $mydomain
newaliases_path = /usr/bin/newaliases.postfix
queue_directory = /var/spool/postfix
readme_directory = /usr/share/doc/postfix-2.10.1/README_FILES
sample_directory = /usr/share/doc/postfix-2.10.1/samples
sendmail_path = /usr/sbin/sendmail.postfix
setgid_group = postdrop
smtp_tls_ciphers = high
smtp_tls_mandatory_protocols = !SSLv2,!SSLv3
smtp_tls_protocols = !SSLv2,!SSLv3
smtp_tls_security_level = may
smtpd_banner = $myhostname ESMTP unknown
smtpd_client_restrictions = permit_mynetworks, reject_non_fqdn_sender, reject_non_fqdn_recipient, reject_unknown_client, reject_rbl_client all.rbl.jp, reject_rbl_client zen.spamhaus.org, permit
smtpd_helo_required = yes
smtpd_milters = unix:/var/run/milter-manager/milter-manager.sock
smtpd_recipient_restrictions = permit_mynetworks permit_sasl_authenticated reject_unauth_destination
smtpd_sasl_auth_enable = yes
smtpd_sasl_local_domain = $myhostname
smtpd_sasl_path = private/auth
smtpd_sasl_security_options = noanonymous
smtpd_sasl_type = dovecot
smtpd_sender_restrictions = reject_unknown_sender_domain, reject_non_fqdn_sender
smtpd_tls_cert_file = /etc/letsencrypt/live/mail.kinryo.net/fullchain.pem
smtpd_tls_ciphers = high
smtpd_tls_key_file = /etc/letsencrypt/live/mail.kinryo.net/privkey.pem
smtpd_tls_loglevel = 1
smtpd_tls_mandatory_ciphers = high
smtpd_tls_mandatory_protocols = !SSLv2,!SSLv3
smtpd_tls_protocols = !SSLv2,!SSLv3
smtpd_tls_received_header = yes
smtpd_tls_security_level = may
smtpd_tls_session_cache_database = btree:/var/lib/postfix/smtpd_scache
tls_high_cipherlist = kEECDH:+kEECDH+SHA:kEDH:+kEDH+SHA:+kEDH+CAMELLIA:kECDH:+kECDH+SHA:kRSA:+kRSA+SHA:+kRSA+CAMELLIA:!aNULL:!eNULL:!SSLv2:!RC4:!MD5:!DES:!EXP:!SEED:!IDEA:!3DES
unknown_local_recipient_reject_code = 550
virtual_alias_maps = mysql:/etc/postfix/mysql_virtual_alias_maps.cf
virtual_gid_maps = static:10000
virtual_mailbox_base = /Mail
virtual_mailbox_domains = mysql:/etc/postfix/mysql_virtual_domains_maps.cf
virtual_mailbox_limit = 9663676416
virtual_mailbox_maps = mysql:/etc/postfix/mysql_virtual_mailbox_maps.cf
virtual_transport = virtual
virtual_uid_maps = static:10000
尚、smtpd_client_restrictions, smtpd_sender_restrictions, smtpd_recipient_restrictions, は同じような設定が出来るが、勘違いしやすいので、https://www.netmarvs.com/archives/3808 を参考にすると良い。

/etc/postfix/master.cf は
smtp inet n – n – – smtpd
smtps inet n – n – – smtpd
-o smtpd_tls_wrappermode=yes
-o smtpd_sasl_auth_enable=yes
pickup unix n – n 60 1 pickup
cleanup unix n – n – 0 cleanup
qmgr unix n – n 300 1 qmgr
tlsmgr unix – – n 300 1 tlsmgr
rewrite unix – – n – – trivial-rewrite
bounce unix – – n – 0 bounce
defer unix – – n – 0 bounce
trace unix – – n – 0 bounce
verify unix – – n – 1 verify
flush unix n – n 1000? 0 flush
proxymap unix – – n – – proxymap
proxywrite unix – – n – 1 proxymap
smtp unix – – n – – smtp
relay unix – – n – – smtp
showq unix n – n – – showq
error unix – – n – – error
retry unix – – n – – error
discard unix – – n – – discard
local unix – n n – – local
virtual unix – n n – – virtual
lmtp unix – – n – – lmtp
anvil unix – – n – 1 anvil
scache unix – – n – 1 scache

mysql(mariadb)関連。尚、postfixadminのdatabase名:postfix, user名:postfixadmin, パスワードは伏せ字
# cat /etc/postfix/mysql_virtual_alias_maps.cf
user = postfixadmin
password = XXXXXX
hosts = localhost
dbname = postfix
table = alias
select_field = goto
where_field = address

# cat /etc/postfix/mysql_virtual_domains_maps.cf
user = postfixadmin
password = XXXXXX
hosts = localhost
dbname = postfix
table = domain
select_field = domain
where_field = domain
additional_conditions = and active = ‘1’

# cat /etc/postfix/mysql_virtual_mailbox_maps.cf
user = postfixadmin
password = XXXXXX
hosts = localhost
dbname = postfix
table = mailbox
select_field = maildir
where_field = username

 

カテゴリー: メールサーバーに挑戦 | コメントする

CentOS7にphp-imapをインストールする方法(php7.3)

postfixadminをインストール後、setup.phpにアクセスすると二つの問題が表示された。

一つは  Error: Can’t connect to database
Please edit the $CONF[‘database_*’] parameters in config.inc.php.

で、これはデーターベースの設定が間違っているので、チェックするとして

もう一つが   Warning: Depends on: IMAP functions – NOT FOUND
To install IMAP support, install php5-imap
Without IMAP support, you won’t be able to create subfolders when creating mailboxes.

それで、php5-imap をインストールすることにする。

だが、色々やっても何も無いとか、phpのバージョンが違うと言われてしまう。私がインストールしているのはphp7.3.25だ。今更phpのバージョンを下げたくないし、下げるとWEBサーバーに使っているCMSのwordpressの問題が出てきそう。そうだと思い、yumのレポジトリーをチェックすると(/etc/yum.repos.d) remi-php73.repoがあった。これを開くと

[remi-php73]
name=Remi’s PHP 7.3 RPM repository for Enterprise Linux 7 – $basearch
#baseurl=http://rpms.remirepo.net/enterprise/7/php73/$basearch/
#mirrorlist=https://rpms.remirepo.net/enterprise/7/php73/httpsmirror
mirrorlist=http://cdn.remirepo.net/enterprise/7/php73/mirror
enabled=0
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-remi 後略

とゼロ(つまりdisabled)になっているので、

# yum install –enablerepo=remi-php73 php-imap (php5-imapでは無い)

と打ち込むと、php-imap と共にphp-cliやphp-mbstring 等々色んなものがアップデートされた。

 

カテゴリー: Linux運用時のメモ | コメントする

また、AMAZONを騙った危険なメールが来た

このメールは一目で危険なメールだと判る理由は差出人と相手先(受取人)が同じで、自分になっている。こんなメールは送ってない。

何度も言うが、差出人は偽造できる。昔はでたらめなメアドを入れていたが、今ではほとんどのメールサーバーが差出人が存在するかチェックをしているので、でたらめなメアドは使用できなくなってきているので、受取人のメアドと同じにすればこれをかいくぐれるからこのようなことになっている。

まず、あれと思ったら、必ず差出人(送信者)をチェックする事。自分なら記憶がある筈。

上の画像はメールヘッダーと呼ばれている物を詳細に表示したものだが、これは下の赤線のサーバー(cloud-mail.jp がドメインだから、これはアマゾンじゃ無い。)から上の赤線のサーバー経由で私の所に来た。

カテゴリー: 危険メールや手紙、IP | コメントする

また、危険なSMSが来た

少し専門的だが。このドメインのddns.netは固定IPがない人がIPが変更してもトレースしてくれて、WEBなどを公開できるサービスだが、ここを悪用しているな!!

絶対にクリックしてはいけない。ちなみに表示されている電話番号は多分偽造だろう。

カテゴリー: 危険メールや手紙、IP | コメントする

thunderbirdにサーバーにあるディレクトリーが表示されない

linuxのthunderbird(Ver 68.12.0)でメールサーバーにディレクトリーを作成しても表示されない。

下記の様に設定すると表示される様になる。

編集 → アカウント設定 → 左にあるサーバー設定をクリック。右のサーバー設定の右の方にある詳細をクリック。メールユーザー名にある“購読しているフォルダーのみを表示する”のチェックを外す。thunderbirdを再起動すると表示された。

 

カテゴリー: Linux運用時のメモ | コメントする

危険なIPアドレス

今日、メールのログ(/var/log/maillog)をチェックしていたら、ログに 45.125.65.*(実際は二つのIP、書くと避けて送られるので、又このIPは香港に割り当てられいる)から1893回の記録があり、全てログイン失敗になっていた。1回の接続で3つのログが記録されるので、両方のIPで5日間で631回、1日で126回以上のログインが試みられていた。又、141.98.10.*の3つのIPからも583回のログインがあった。これはリトアニアに割り当てられている。ので、この5つのIPを/root/deny_ipとして登録し、設定を反映するために sh iptables.sh を行った。

カテゴリー: 危険メールや手紙、IP | コメントする

CentOS7でショートカットのキーが効かない

状態:全角・半角を押しても日本語や直接入力に切り替わらない。でも右上の “あ” や” _A” をクリックし、入力モードから ひらがなや直接入力を選ぶと変更される。

色々とgoogle先生に聞いて調べたがどれもインストールされていたり、設定されていたりしている!!!なんで変更できない、いちいちクリックするのでは1回で終わらないし、タイピングの途中でマウス操作は煩わしい。色々やって見ると

Alt+@ と Alt+Shift+@ で切り替わった。他の3つは切り替わらない。Altとの組み合わせのみが切り替わる。

原因は未だに不明だが、ともかく Alt+@ で切り替わるので良しとしている。

理由がわかる方がいれば教えてください(下にあるコメントするから)

 

カテゴリー: Linux運用時のメモ | コメントする

今度はAMAZONを騙ったショートメールが来た!!

なんでこんなに変なメールがいっぱい来るの? 

これがその内容である。何度も言うようだが、必ずドメインを確認すること!!

このリンク先のドメインは o1u.top だ。なのでここはアマゾンでは無い!!

アマゾンのドメインは私の知る限り amazon.co.jp か amazon.com である。

ドメインの前にあるuser-amazon はホスト名で誰でも勝手に作れる。でもドメインは登録が必要なので簡単にはごまかせない。e-mailでhtmlを有効にしていたらリンク先に適当な文字を充てられ、リンク先と表示されている文字が違うように出来るが、ショートメールでは出来ないので、リンク先のドメインは表示されているので気を付ければ良いだけ。余談だが o1u なんていかにも怪しげだと思うが。

これでログインしようものなら、あなたのユーザー名(ID)とパスワードは完全に盗まれる。調べてみると、これは中国からだ。中国はこんな輩が多いから、私のサーバーでは中国からのパケットは一切拒否している。

カテゴリー: 危険メールや手紙、IP | コメントする