[Raspberry Pi] ufw で複数インターフェイス (物理 IF と仮想 IF ) に個別のファイアウォール設定をする
まえがき
ラズパイに ufw をインストールしてファイアウォールの設定を行う。このラズパイで SoftEther VPN クライアントを動かしており、仮想 LAN カード (本投稿では仮想 NIC とする) には固定グローバル IP アドレスを設定している。
仮想 NIC へのファイアウォールポリシーと、物理 NIC のファイアウォールポリシーを分け、柔軟に設定する。
ほとんどの内容は、Linux Lite で設定したときの投稿 と同じである。
「ufw をラズパイにインストールする作業内容」と 「ufw で IPv6 をオフ (対象外) にする設定内容」は本投稿からは割愛しているが、実施済みである。
ufw でやりたいことを箇条書きにする
- 特定 IP から物理 NIC への ssh アクセスを許可する
- ssh アクセスのレートリミットを設定する
- 特定 IP から物理 NIC の tcp 7876 のアクセスを許可する
- 特定 IP から物理 NIC の tcp 27876 のアクセスを許可する
- 仮想 NIC への tcp 7874 のアクセスを許可する
- 仮想 NIC への tcp 27874 のアクセスを許可する
- 上記以外の通信を拒否する
設定コマンドを作る
sudo ufw allow in on eth0 from 10.1.0.2 to 172.16.1.3 port ssh sudo ufw limit ssh sudo ufw limit ssh comment 'Rate Limit for ssh server' sudo ufw allow in on eth0 from 10.1.0.2 to 172.16.1.3 port 7876 proto tcp sudo ufw allow in on eth0 from 10.1.0.2 to 172.16.1.3 port 27876 proto tcp sudo ufw allow in on vpn_myipse_nic to ww.xx.yy.zz port 7874 proto tcp sudo ufw allow in on vpn_myipse_nic to ww.xx.yy.zz port 27874 proto tcp
このようにテキストエディタなどに書いてからコピペで 1 行ずつコマンド投入していくのがオススメ。
コマンドを投入する
$ sudo ufw allow in on eth0 from 10.1.0.2 to 172.16.1.3 port ssh Rules updated $ sudo ufw limit ssh Rules updated $ sudo ufw limit ssh comment 'Rate Limit for ssh server' Rules updated $ sudo ufw allow in on eth0 from 10.1.0.2 to 172.16.1.3 port 7876 proto tcp Rules updated $ sudo ufw allow in on eth0 from 10.1.0.2 to 172.16.1.3 port 27876 proto tcp Rules updated $ sudo ufw allow in on vpn_myipse_nic to ww.xx.yy.zz port 7874 proto tcp Rules updated $ sudo ufw allow in on vpn_myipse_nic to ww.xx.yy.zz port 27874 proto tcp Rules updated $
ufw を起動する
$ sudo ufw status Status: inactive $ sudo ufw enable Command may disrupt existing ssh connections. Proceed with operation (y|n)? y Firewall is active and enabled on system startup $ sudo ufw status numbered Status: activeTo Action From
-- ------ ----
[ 1] 172.16.1.3 22/tcp on eth0 ALLOW IN 10.1.0.2 [ 2] 22/tcp LIMIT IN Anywhere # Rate Limit for ssh server [ 3] 172.16.1.3 7876/tcp on eth0 ALLOW IN 10.1.0.2 [ 4] 172.16.1.3 27876/tcp on eth0 ALLOW IN 10.1.0.2 [ 5] ww.xx.yy.zz 7874/tcp on vpn_myipse_nic ALLOW IN Anywhere [ 6] ww.xx.yy.zz 27874/tcp on vpn_myipse_nic ALLOW IN Anywhere $
ロギング設定
$ sudo ufw logging on Logging enabled $ sudo ufw logging medium Logging enabled $