|
|
自宅サーバー |
|
Raspberry Pi 3 (JP) |
Raspberry Pi Type Bもサーバー運用開始から6年を経過しました。
そろそろ寿命かと・・・。
なので、「Raspberry
Pi 3 Model B(JP)」に更新しました。
「Raspberry Pi
4」より消費電力が少なく、日本製なので安心です。
籠の中に鎮座しています。
作業手順(備忘録)です。
■■Raspbianのインストール■■ ------------------------- 以下から「Raspbian Buster with desktop」をダウンロード ↓↓↓ https://www.raspberrypi.org/software/operating-systems/#raspberry-pi-os-32-bit ※ネット情報を参考に作業する ※/boot/ディレクトリに空(から)のSSHファイルを置いてSSHの有効化しておく ------------------------- ■■IPアドレスの検索■■ ------------------------- 以下のバッチファイルでIPアドレスを探します ↓↓↓ ------------------------- ■■SSH接続によりWindowsPCで作業■■ ------------------------- 「Tera Term」によりSSH接続 ↓↓↓ ホスト:バッチファイルで検索したIPアドレス ユーザー名:pi パスワード:raspberry ------------------------- ○rootのパスワード設定 $ sudo passwd root ○パッケージの更新 # apt-get update # apt-get upgrade # apt-get dist-upgrade ○ファームウェアの更新 # rpi-update ○IPアドレスの固定 # nano /etc/dhcpcd.conf ------------------------ 以下を末尾に追記 ↓↓↓ interface wlan0 static ip_address=192.168.24.100/24 static routers=192.168.24.1 static domain_name_servers=192.168.24.1 ------------------------- ○再起動(設定の反映) # reboot ○日本語対応ターミナルのインストール # apt-get install jfbterm ○日本語フォントのインストール # apt-get install ttf-kochi-gothic xfonts-intl-japanese
xfonts-intl-japanese-big xfonts-kaname ○日本語入力メソッドのインストール # apt-get install uim uim-anthy ○hostnameの設定 # nano /etc/hostname -------- murakami-8 -------- ○vsftpdのインストール # apt-get install vsftpd ○vsftpdの設定 # nano /etc/vsftpd.conf ------------------------- 以下のコメントアウトを削除 ↓↓↓ @ローカルユーザーを許可 local_enable=YES A書き込み許可 write_enable=YES Bファイル作成時のパーミッション755 local_umask=022 CASCII モードによるアップロードを 許可 ascii_upload_enable=YES DASCII モードによるダウンロードを 許可 ascii_download_enable=YES ------------------------- ○vsftpdの再起動(設定の反映) # service vsftpd restart ○PHPのインストール # apt-get install php7.2 ○Apacheのインストール # apt-get install apache2 ○拡張子.cgiの有効化 # nano
/etc/apache2/mods-available/mime.conf ------------------------- 219行目のコメントアウトを解除 AddHandler cgi-script .cgi .pl ------------------------- # nano
/etc/apache2/sites-available/000-default.conf ------------------------- 以下のコメントアウトを解除 Include
conf-available/serve-cgi-bin.conf ------------------------- ○CGI実行ディレクトリの変更 # nano /etc/apache2/conf-available/serve-cgi-bin.conf ------------------------- @以下のとおり修正 ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/ ↓↓↓ ScriptAlias /cgi-bin/
/var/www/html/cgi-bin/ A以下のとおり修正 <Directory
"/usr/lib/cgi-bin"> ↓↓↓ <Directory
"/var/www/html/cgi-bin"> ------------------------- ○cgiの有効化 # a2enmod cgid ○Apacheの再起動(設定の反映) # service apache2 restart ○Jcode.pmのインストール # perl -MCPAN -e shell ------------------------- install Jcode exit ------------------------- ○Postfixのインストール # apt-get install postfix ○Postfixの設定 # nano /etc/postfix/main.cf ------------------------- 以下のとおり修正 ↓↓↓ @修正 mynetworks = 127.0.0.0/8,
192.168.24.0/24 A修正 inet_protocols = ipv4 B修正 home_mailbox = Maildir/ C追加 ※SMTP 認証 (SMTP-Auth) の有効化 smtpd_sasl_auth_enable = yes smtpd_sasl_local_domain =
murakami-8.com smtpd_sasl_security_options =
noanonymous smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination smtpd_sasl_type = dovecot smtpd_sasl_path = private/auth ------------------------- ○Postfixの再起動(設定の反映) # service postfix restart ○Dovecotのインストール # apt-get install dovecot-pop3d
dovecot-imapd ○Dovecotの設定 # nano /etc/dovecot/dovecot.conf ------------------------- 以下のとおり修正 ↓↓↓ @修正(IPv4のみ有効) listen = * A追加(平文を許可) disable_plaintext_auth = no ------------------------- ○/etc/dovecot/conf.d/10-mail.confの修正 nano /etc/dovecot/conf.d/10-mail.conf ------------------------- 以下のとおり修正 #mail_location =
mbox:~/mail:INBOX=/var/mail/%u ↓↓↓ mail_location = maildir:~/Maildir ------------------------- ○/etc/dovecot/conf.d/10-auth.confの修正 # nano /etc/dovecot/conf.d/10-auth.conf -------------- #disable_plaintext_auth = yes ↓↓↓ disable_plaintext_auth = no 追加(平文パスワードを利用) ↓↓↓ auth_mechanisms = plain login -------------- ○Dovecotの再起動 # service dovecot restart ○/etc/aliasesの修正 # nano /etc/aliases ------------------------- 以下のとおり入力 postmaster: pi ------------------------- ○Dnsmasqのインストール # apt-get install dnsmasq ○/etc/hostsの設定 # nano /etc/hosts -------------- 127.0.1.1
murakami-8 192.168.24.100 murakami-8.com www.murakami-8.com -------------- ○IPv6アドレスの確認 # ifconfig -------------- inet6の後にある ↓↓↓ 2001:a452:30c5:c700:6c67:34b1:f2c8:5dc9 -------------- ■■NTT西日本のフレッツ光ホームゲートウェイ(PR-500MI)の設定■■ 詳細設定>DNS設定 詳細設定>静的IPマスカレード設定 |
★追加★
ドメイン(murakami-8.com)の信頼性を高めるため、Let’s EncryptのSSL証明書(無料)でSSL(HTTPS)の設定をしました。
■■Raspberry Piの作業■■ ○アプリケーションのインストール(↓) # apt-get install certbot # apt-get install python-certbot-apache ○SSL/TLS証明書の発行 # certbot certonly --webroot -w
/var/www/html -d murakami-8.com -d www.murakami-8.com ○SSL証明書の確認 # ls -l
/etc/letsencrypt/live/murakami-8.com/ # ls -l /etc/letsencrypt/live/www.murakami-8.com/ ○Apacheの設定(/etc/apache2/sites-available/default-ssl.confの修正) # nano
/etc/apache2/sites-available/default-ssl.conf ------------------ 【修正】 ↓↓↓ #SSLCertificateFile /etc/ssl/certs/ssl-cert-snakeoil.pem #SSLCertificateKeyFile /etc/ssl/private/ssl-cert-snakeoil.key SSLCertificateFile
/etc/letsencrypt/live/www.murakami-8.com/fullchain.pem SSLCertificateKeyFile
/etc/letsencrypt/live/www.murakami-8.com/privkey.pem ------------------ ○ApacheのSSL有効化 # a2enmod ssl # a2ensite default-ssl ○Apacheの再起動 # service apache2 restart ○URLの正規化(wwwあり
+ https) .htaccessの ↓↓↓ <IfModule mod_rewrite.c> RewriteEngine On RewriteCond %{HTTP_HOST} !^www\. [NC] RewriteRule ^(.*)$ https://www.%{HTTP_HOST}%{REQUEST_URI}
[R=301,L] RewriteCond %{HTTPS} off RewriteRule ^(.*)$
https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L] </IfModule> ○postfixの設定(/etc/postfix/main.cfの修正) # nano /etc/postfix/main.cf 【修正】 ↓↓↓ #smtpd_tls_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem #smtpd_tls_key_file=/etc/ssl/private/ssl-cert-snakeoil.key smtpd_tls_cert_file =
/etc/letsencrypt/live/murakami-8.com/fullchain.pem smtpd_tls_key_file =
/etc/letsencrypt/live/murakami-8.com/privkey.pem 【追加】 ↓↓↓ smtp_tls_security_level = may ○postfixの設定(/etc/postfix/master.cfの修正) # nano /etc/postfix/master.cf 【修正】コメントアウト(#)を削除 ↓↓↓ smtps inet n - y - - smtpd
-o smtpd_tls_wrappermode=yes ○postfixの再起動 # service postfix restart ○Dovecottの設定(/etc/dovecot/conf.d/10-ssl.confの修正) # nano /etc/dovecot/conf.d/10-ssl.conf 【修正】 ↓↓↓ #ssl_cert =
</etc/dovecot/private/dovecot.pem #ssl_key =
</etc/dovecot/private/dovecot.key ssl_cert =
</etc/letsencrypt/live/murakami-8.com/fullchain.pem ssl_key =
</etc/letsencrypt/live/murakami-8.com/privkey.pem ○Dovecottの再起動 # service dovecot restart ○Cronの設定(毎月1日0時にSSL/TLS証明書を自動更新) # crontab -e ------------------ 【追加】 ↓↓↓ 0 0 1 * * certbot renew ------------------ ○再起動 # reboot ■■NTT西日本のフレッツ光ホームゲートウェイ(PR-500MI)の設定■■ 詳細設定>静的IPマスカレード設定 |
★追加★
なりすましメール対策(SPF、DKIM、DMARC)の設定をしました。送信側です。
■■Raspberry Piの作業■■ ○OpenDkimのインストール # apt-get
install opendkim opendkim-tools # mkdir
/etc/opendkim # mkdir
/etc/opendkim/keys #
opendkim-genkey -D /etc/opendkim/keys/ -d murakami-8.com -s default # chown
-R opendkim:opendkim /etc/opendkim/keys/default.private ○OpenDkim/etc/opendkim.confの設定 # nano /etc/opendkim.conf ------------------------ 以下を編集 ↓↓↓ Domain murakami-8.com KeyFile /etc/opendkim/keys/default.private Selector
default Mode sv Socket inet:8891@localhost ------------------------ ○/etc/opendkim/TrustedHostsの作成 # nano
/etc/opendkim/TrustedHosts ------------------------ 以下を入力 ↓↓↓ 127.0.0.1 ------------------------ ○/etc/postfix/main.cfの設定 # nano
/etc/postfix/main.cf ------------------------ 以下を追加 ↓↓↓ # DKIM milter_protocol
= 2 smtpd_milters
= inet:localhost:8891 non_smtpd_milters
= inet:localhost:8891 milter_default_action
= accept ------------------------ ○サーバの再起動 # service
opendkim start # service
postfix restart ○公開鍵レコードの確認 # cat
/etc/opendkim/keys/default.txt v=DKIM1;
k=rsa; p=***を確認 ■■DNS(TXTレコード)の設定■■ ------------------------ murakami-8.com
IN TXT "v=spf1 +ip4:110.5.27.27 +ip4:192.168.24.0/24 ~all" default._domainkey.murakami-8.com
IN TXT "v=DKIM1; k=rsa; p=***" _adsp._domainkey.murakami-8.com
IN TXT "dkim=unknown" _dmarc.murakami-8.com
IN TXT "v=DMARC1; p=none" ------------------------ ■■Raspberry Piの作業■■ ○DNS(TXTレコード)の反映確認 # dig
default._domainkey.murakami-8.com txt
|
★追加★
なりすましメール対策(SPF)の設定をしました。受信側です。
○postfix-policyd-spf-pythonのインストール # apt-get install
postfix-policyd-spf-python ○/etc/postfix/master.cfの修正 # nano /etc/postfix/master.cf ------------------------- 【追加】 ↓↓↓ ###SPF認証設定### policyd-spf unix - n n - 0 spawn
user=nobody argv=/usr/bin/python3 /usr/bin/policyd-spf
/etc/postfix-policyd-s$ ------------------------- ○/etc/postfix/main.cfの修正 # nano /etc/postfix/main.cf ------------------------- 【修正】 smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination ↓↓↓ smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination, check_policy_service unix:private/policyd-spf 【追加】 ↓↓↓ policyd-spf_time_limit = 3600s ------------------------- ○/etc/postfix-policyd-spf-python/policyd-spf.confの修正 # nano
/etc/postfix-policyd-spf-python/policyd-spf.conf ------------------------- 【修正】 ※最も厳しくします HELO_reject = Fail Mail_From_reject = Fail ↓↓↓ HELO_reject = SPF_Not_Pass Mail_From_reject = SPF_Not_Pass ------------------------- ○設定のチェック(なにも表示されなければOK) # postfix check ○Postfixの再起動 # service postfix restart ○SPF認証の動作確認 # tail -f /var/log/mail.log ※Outlookのメール振分の設定(メッセージヘッダーに「Received-SPF: None」が含まれる場合、「なりすましメール」に移動)をします。 |