読者です 読者をやめる 読者になる 読者になる

可変長固定長

IT関係の話題が中心

ufw(Uncomplicated FireWall)で簡単にファイアウォールを設定する

ご存知のようにUNIX系のOSにはiptablesという超有名で超強力なファイアウォールが利用できる。ただし、このiptablesは一見さんお断りなことで知られている。つまり、容易には設定させてくれないのだ。

 

 

なんとも設定が難しい。ファイアウォールという性質上、初心者がむやみやたらにいじってセキュリティ上の重大なリスクを負ってしまいたくないというのがエンジニアの本音だろう。とりわけ、ビジネスで利用するなら最もであるが、個人宅で自宅サーバーなんかをしている人にとっては、あんまり面倒なことはしたくないけど、踏み台にされて後でなにかあっても怖い。

 

そこでufw(Uncomplicated FireWall)というものを紹介したい。ufwiptablesの設定をめちゃくちゃ簡単にしてくれる。すこしのコマンドを書くだけで、通したいポートを通す、閉じたいポートを閉じるということが簡単にできてしまうというわけ。個人レベルで使う場合は小規模のそれほど細かい設定が求められないシステムであればこれで十分。

 

 

 

目次

 

 

 

自宅サーバーにファイアウォールを設定する経緯

 

自宅は「Raspberry Pi3 Model B」で自宅サーバーを設定している。ルーターはIOデータの「WN-G300R3」を利用している。このルーターが実は問題があって、ポート開放をうまく設定してくれない。

 

自宅の環境が悪いのかよくわからないが、ラズベリーパイで設定している自宅サーバーをDMZに配置しないと、いくらポート開放しても外部からアクセスさせてくれない。

 

というわけで、DMZに配置することはやむなしとして、ファイアウォールだけはきちんと設定しておこうという趣旨がある。

 

 

 

ファイアウォールのルールを決める

 

ufwのインストール自体は今回は割愛する。apt-getなりyumなりrpmなどからパッケージはインストールできる。難易度もUNIXをさわっているひとなら容易い。

 

ファイアウォールのルールは、まず、外部からの通信をすべて拒否するところから始める。次に解放したいポートを開けていく。今回は、ローカルネットワークからはssh(22)を許可、外部ネットワークからは、http(80)を許可するように設定する。

 

 

 

ufwファイアウォールを設定・有効化

 

早速、上で述べたように外部からはsshとhttpだけ利用できるようにufwを設定していく。コマンドは以下の通り、たったこれだけで設定できる。

 

ufwのストップ

# ufw disable

 

すべての通信を拒否(一番最初にすること)

# ufw default deny

 

ローカルネットワークからsshを通す

# ufw allow from 192.168.1.0/24 to any port 22 proto tcp

 

外部からhttpを通す

# ufw allow 80

 

ufwをスタート

# ufw enable

 

ufwをスタートする際は、もう一度sshが今つないでいるネットワークから接続できるルールになっているか確認しよう。設定にミスがあれば、sshは切断され、二度と接続できなくなってしまうからだ。

 

ufwの設定を確認

# ufw status

Status: active

To Action From

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

22/tcp ALLOW 192.168.1.0/24

80 ALLOW Anywhere

 

 

削除したいポートは、以下のコマンドで削除できる。

# ufw delete allow [ポート番号]