個人的メモ:Raspberry Pi4を元通りにするためのメモ(Dockerいれてネットワーク設定がふっとんだから) その2

その1で OSのインストール、BOOT CONFIGの設定、初期設定(IPアドレスの固定、VNC、SSH、SUパスワードのセット、clam-avのインストール、ufw、NTP、おまじない)、RDP、samba、nginx、Let's Encrypt、SoftEtherの導入が済んだのでつづきをやっていく。


nginxのログローテート

nginxのログは前回の状態だと、worker proccessを動かすユーザの関係上、ログの書き込みが1回ローテートしたら終わってしまうので、なんとかする。

sudo nano /etc/logrotate.d/nginx

で、ログローテーションの設定を開く。末尾に以下を書き足す。

/var/log/nginx/設定したサーバー名/*.log {
        daily
        missingok
        rotate 14
        compress
        delaycompress
        notifempty
        create 777 www-data www-data
        sharedscripts
        prerotate
                if [ -d /etc/logrotate.d/httpd-prerotate ]; then \
                        run-parts /etc/logrotate.d/httpd-prerotate; \
                fi \
        endscript
        postrotate
                invoke-rc.d nginx rotate >/dev/null 2>&1
        endscript
}

おわったら

sudo systemctl restart nginx

数日たった後ログをチェックして書き込みができていたら、OK

rsyslogのログローテート

rsyslog、標準だと1週間でログローテートするっぽくて、データがクソ巨大になるので、1日でローテーションするようにセットする。

/var/log/syslog
/var/log/mail.log
/var/log/kern.log
/var/log/auth.log
/var/log/user.log
/var/log/cron.log
/var/log/rsyslog/(デバイス名)/messages.log  <-とんでくるsyslogがある分だけ追記 messages.logは適宜名前変更
{
        rotate 30 <- 7->30に変更
        daily <- weeklyからdailyに変更
        missingok
        notifempty
        compress
        delaycompress
        sharedscripts
        postrotate
                /usr/lib/rsyslog/rsyslog-rotate
        endscript
}

かきおわったら、

sudo systemctl restart rsyslog

で反映する。
数日後ログチェックしてローテーションできていればOK

telnetとかいれる

なんだかんだいってつかうのでこの手のツールをいれておく

sudo apt-get install telnet
sudo apt-get install dnsutils

メールサーバの設定

ドメインのDNSの設定

これできてないとまじでなんもできないので注意

mail.自分のドメイン.com A 自分のグローバルIP
自分のドメイン.com MX mail.自分のドメイン.com
mail.自分のドメイン.com TXT v=spf1 ip4:自分のグローバルIP ~all
 

mail.のドメインの証明書取得

Let's Encryptでサブドメインの証明書をとる。

sudo certbot --nginx --expand -d example.cleared-4-takeoff.com

Postfix、dovecotのインストール

sudo apt-get install postfix dovecot-core dovecot-imapd dovecot-pop3d libsasl2-modules

Postfix、dovecotの設定

書くのだるすぎるので、ここみて

dovecotはまじで簡単。
PostfixはSSLの設定が鬼門なので注意

saslライブラリが必要なのでつっこむ

sudo apt-get install sasl2-bin


設定後のポートチェック

必要なポートがあいているか確認

SSLうまくいくか確認

メール用のユーザの追加

sudo useradd -m -s /sbin/nologin info //ホームディレクトリつくるけど、sshでログインさせない
sudo passwd info //パスワード設定 二回うちこむ

適当な端末からログイン実行

適当な端末にメール設定して、ログインしてみる。
メールのユーザー名は上でつくったユーザー名
imapサーバ、smtpサーバはmail.自分のドメイン.com

他のアカウントからメール送ってみる
つくったサーバからメール送ってみる

でうまくいくかどうかを確認する

メール転送の設定

info@mail.example.comに届くメールを自分のアカウントに転送する設定

sudo nano /etc/aliases
info: 俺のアドレスの@よりも前
sudo newaliases

これでOK。infoのアカウントにはメールが残らない。
残したい場合は転送先のアカウントの前にバックスラッシュをつける。

結局メールは送信できない

とまぁここまでやって、自分のメールアカウントからinfo、infoから自分のアカウントとかはうまく送信できるが、結局自分のメールアカウントとかから、よそのメールサーバへはメールがおくれない OP25Bまじで意味わからん googleとかで転送たのむと自分のドメインからはおくれないという感じなのでサーバーたてる意味あんまないんだよな このあたりまじで難しくて解説らしい解説もぜんぜんないのでまじで困る有識者たすけて

最後に定期的再起動の追加

ここまでやっていちおう完成かとおもいきや、なんとBookworm全然安定して稼働できない 発熱の問題なのかはわからないけど、やや熱い感じはするし、3日か4日くらい連続稼働するとフリーズしてなんもできなくなってるっぽいので、2日にいっぺん再起動するようにcronを仕込んでおく。
再起動なのでrootのcronに仕込む。

0 1 * * 0,2,4 /sbin/reboot

ほぼ二日おき(日、火、木)の深夜1時にrebootコマンドをたたくようにする。
最後にログがでるようにするために、 /etc/rsyslog.confを確認して、
RULES欄の
cron.*                          -/var/log/cron.log
が、コメントアウトされているかを確認する。

以上おしまい!!!!

これでたぶん自分の想定してるどおり、VPN土台鯖件メールサーバ件HTTPサーバが動くはず……!
うまくいかなかったときは備忘録のためにまた更新します。

この記事が気に入ったらサポートをしてみませんか?