ねずみの横穴

我出来損ナイノ編程者為リ

おうち使いのLinuxのファイアウォールのインバウンドとアウトバウンド

概略


大体ファイアウォールの設定ではインバウンドは固く閉じて、アウトバウンドは緩いことが多い。

リバースシェルとか緩めのアウトバウンドを使用した攻撃もあるので、そいつに対抗するべくキチンとアウトバウンドも閉めておく。

WindowsmacはOSがファイアウォールを持っていたり、Nortonやesetのようなセキュリティソフトがそこそこいい感じにファイアウォールを設定してくれているが、Linuxはおそらく自力で頑張らなきゃいけない。

家庭用のルータにもファイアウォール(パケットフィルタリングとか名前ついてたりもする)がついているが、正直若干ザル感が否めない。

とりあえずおうちでLinuxと言ったらUbuntuなのでDebian系のフロントエンドufwを使ってみる。

コマンド類は最後に列挙します。

実践


とりあえず全部閉じ

まずは全部閉じても大丈夫。必要なものだけ開いていこう。

使うものだけ開けるって言っても・・・

使用するポートだけ開けるのが基本なのは言うまでもないが、じゃあ何を使うんだ。

・HTTP(S):80/tcp, 443/tcp

 →aptを使用したアップデートやパッケージのインストールに使用する。ネットサーフィンもこいつがないと話にならない。

DNS:53/udp

 →名前解決に使う子。こいつもないとネットに繋がらん・・・訳ではないがネットサーフィンは難しいと思う。何気にプロトコルudp

・Git:9418/tcp

 →開発大好きな方なら開けなきゃアカン。

VPN

 →最近いろんな人がいろんな目的で使い始めたVPN。この子も使うなら開けてあげなきゃいけない。ポートはモノによって異なるので、うまく開けてあげよう。

ログ取り

個人ではあんまり使わん気もするがとりあえず取っとく。

ufwの有効化

当然有効化しないといけないが、ufwコマンドのenableだけだとufwのサービスまでは自動起動してくれないらしい。 systemdでもenableしてあげよう。

コマンド

上記の通り、基本全拒否した後に必要なものを許可する。最後にログと有効化をしておしまい。

# デフォルト全拒否
sudo ufw default deny incoming
sudo ufw default deny outgoing

# HTTP(S)
sudo ufw allow out 80/tcp
sudo ufw allow out 443/tcp
sudo ufw allow out 53/udp

# Git
sudo ufw allow out git

# ログON
sudo ufw logging on

# 有効化
sudo ufw enable

# systemctlで念押し
sudo systemctl enable ufw

余談


もしかしてこの設定をルータのファイアウォールに設定してやれば最強じゃない?と思ってやったらiPadがネットに繋がんなくなった。

ルータにも設定するなら「Apple ソフトウェア製品で使われている TCP および UDP ポート」あたりを見て適切に開いてあげる必要がありそう。

ただ、家庭用のルータだとあまり多くのルールを設定できず、不完全になってしまう可能性が高いのでやるならラズパイあたりをファイアウォール化して噛ませるのが無難か。