UFW(Uncomplicated FireWall) をもっと使ってみる

シェアする

Ubuntu 標準搭載ソフトウェアファイアウォールの UFW です。前回 VPS の設定をしたときに少し使ったけど、もうちょっと覚えたいのでいろいろいじってみた。

Sponsored Links

UFW って何?

Ubuntu の中の人が作った iptables/NetFilter のフロントエンドツールです。iptables の設定結構だるいのでそれを簡単にするために作られたのでしょう。UFW は Uncomplicated FireWall の略で、U は Ubuntu じゃないです。間違えて覚えてました。。。

現在の状態を見る

ufw status で現在の設定を見る事ができます。

$ sudo ufw status
Status: active

To                         Action      From
--                         ------      ----
10022                      LIMIT       Anywhere
80                         ALLOW       Anywhere
9987                       ALLOW       Anywhere
4949                       DENY        Anywhere
10022                      ALLOW       Anywhere (v6)
80                         ALLOW       Anywhere (v6)
9987                       ALLOW       Anywhere (v6)
4949                       DENY        Anywhere (v6)

sshd, WebサーバとTeamSpeakサーバですね。4949 は munin で使ってるポート番号なんだけど間違えて開けたので DENY 設定にしています。delete コマンド今知りました。

ufw の基本

基本的には、「デフォルトでは全て拒否、指定したものだけ許可する」というような動きをします。

$ sudo ufw default DENY

# 全て許可する設定も可能ですが推奨はしません
$ sudo ufw default ALLOW

ufw の有効/無効化

enable, disable をつけるだけです。

enable にするときは ssh を通す設定してないと通信切れるかもしれないという警告出してくれます。マシンが手元にある場合は良いですが VPS などで外部にある場合は通信できなくなると大変ですので気をつけましょう。ちなみにさくらの VPS ではコンソールから入れるのでネットワーク全遮断しても大丈夫、だよね?

$ 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 disable
Firewall stopped and disabled on system startup

許可する通信を設定

ポート番号もしくはサービス名で指定してアクセスを許可できます。

$ sudo ufw allow 22
$ sudo ufw allow ssh

サービス名は /etc/services に記述されているものを使用します。なので使用するポート番号を変えている場合や、ここに無いサービス名の場合はポート番号をそのまま書いたり /etc/services を編集する必要があります。

また、tcpだけ許可するような設定も可能です。

$ sudo ufw allow 80/tcp

ufw ではアプリケーション単位での指定も可能ですがここでは省略します。

接続を拒否

標準では default DENY がついているのであえて指定する必要は無いですが、deny をつけるとその通信を拒否できます。

$ sudo ufw deny 21

設定を削除

引数に delete をつければ設定を削除できます。上記で ufw status して出てきたいらない設定を削除します。

$ sudo ufw delete deny 4949

接続の頻度を制限する

limit コマンドを使用して接続の頻度を指定できます。SSHなどのパスワード認証があるサービスでブルートフォースアタックを防ぐなどの際に便利です。SSHなら公開鍵使ったほうが良いですけどね。

$ sudo ufw limit 22

IPアドレスによる指定を行う

もちろん IP アドレスによる指定もできます。

$ sudo ufw allow from 192.168.0.10

# ネットワークの指定もOK
$ sudo ufw allow from 192.168.0.0/24

IP アドレスとポート番号/サービスの両方を指定

IP アドレスとポート番号/サービスの両方を指定する事も可能です。

$ sudo ufw allow from 192.168.0.l0 to any port ssh
$ sudo ufw allow from 192.168.0.l0 to any port 22

全体的にあんまり細かい設定はできないですが、そういうのが必要無いユーザにはとても便利ですね。

Sponsored Link

シェアする

フォローする