必要なソフトウェアとはファイアウォールとメール送信です。
ファイアウォールのセットアップ
RaspberryPiを直接的・間接的にインターネットに繋ぐ前に、まずファイアウォールをセットアップするのが安全です。私の場合、ufw/iptabesとFail2Banをセットアップしました。
ufwはOS標準のパケットフィルタ"iptables"をコンフィギュレーションするフロントエンドです。
Fail2Banは認証が一定回数失敗した場合に、通信を一定時間遮断します。
sudo apt install ufw
以下のポート以外は閉じます。
- LAN側のSSHポート
- LAN側とひかりモデム・ルーター側のSIPポート
- LAN側とひかりモデム・ルーター側の音声通信(RTP)ポート
- LAN側のFAXサービスポート
- LAN側のFAXで使用するFTPパッシブモードのポート(ユーザーポート)
sudo ufw disable192.168.0.0はLAN側のネットワークアドレスに合わせてください。
sudo ufw reset
sudo ufw default deny
sudo ufw allow from 192.168.0.0/24 to any port 22
sudo ufw allow from 192.168.1.1 to any port 5060
sudo ufw allow from 192.168.0.0/24 to any port 5060
sudo ufw allow from 192.168.1.1 to any port 10000:20000 proto udp
sudo ufw allow from 192.168.0.0/24 to any port 10000:20000 proto udp
sudo ufw allow from 192.168.0.0/24 to any port 4559 proto tcp
sudo ufw allow from 192.168.0.0/24 to any port 1024:65535 proto tcp
sudo ufw enable
192.168.1.1はひかりモデム・ルータのSIPサーバーアドレスです。
sudo apt install fail2ban
コンフィギュレーションファイルはテンプレートをコピーして行います。
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
ファイルパス:/etc/fail2ban/jail.local
定義内容:
SSHログの監視:3回リトライ10分遮断
ファイル内の[sshd]セクションに以下の定義を追加します。
enabled = true
filter = sshd
banaction = iptables-multiport
bantime = 600
maxretry = 3
sudo service fail2ban restart
sudo service fail2ban statusactive (running)であれば起動しています。
sudo systemctl enable fail2ban
メール送信のセットアップ
留守電やFAXの通知をメールで行うため、メール送信ソフトウェアをセットアップします。sudo apt-get install -y ssmtp
ファイルパス:/etc/ssmtp/ssmtp.conf
定義内容:
root=<送信元アカウントアドレス>
mailhub=<送信に利用するSMTPサーバURL>:<ポート番号:587または465>
hostname=<自身のホスト名(FQDN):OSのセットアップで入力した値(hostnameコマンドで確認できます)>
FromLineOverride=YES
RewriteDomain=<送信に利用するSMTPサーバのドメイン(メールアドレスの@より後の部分)>
AuthUser=<アカウントユーザー名:SMTPサーバの認証に使用する値>
Authpass=<アカウントパスワード:SMTPサーバの認証に使用する値>
UseSTARTTLS=YES