“TOP”へMC900432676[1]

自宅サーバー

Raspberry Pi 3 (JP)

 

Raspberry Pi Type Bもサーバー運用開始から6年を経過しました。

そろそろ寿命かと・・・。

なので、「Raspberry Pi 3 Model BJP)」に更新しました。

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アドレスを探します

↓↓↓

IP.bat

-------------------------

 

■■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 EncryptSSL証明書(無料)で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

------------------

 

ApacheSSL有効化

# 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の設定(毎月10時にSSL/TLS証明書を自動更新)

# crontab -e

------------------

【追加】

↓↓↓

0 0 1 * * certbot renew

------------------

 

○再起動

# reboot

 

■■NTT西日本のフレッツ光ホームゲートウェイ(PR-500MI)の設定■■

詳細設定>静的IPマスカレード設定

 

 

★追加★

なりすましメール対策(SPFDKIMDMARC)の設定をしました。送信側です。

■■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=***を確認

 

■■DNSTXTレコード)の設定■■

------------------------

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の作業■■

DNSTXTレコード)の反映確認

# 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」が含まれる場合、「なりすましメール」に移動)をします。