[Server & Network General] Ubuntu: ufw(Uncomplicated FireWall)
以下を参考に手を動かして勉強。
※バックナンバーは最新号しか公開されていないようです。
以下で作成した VM で試します。
Contents
概要
- ufw(Uncomplicated FireWall)は、Ubuntuで標準的に利用できる「iptablesを簡単に設定するツール」。
- 「ソフトウェアファイアウォールとしての機能を、できるだけ単純なインターフェースで設定する」という設計思想。
UFW の有効化・無効化・状態確認
有効化
vagrant ssh
でログイン。
$ 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 allow OpenSSH
$ exit
状態確認
vagrant ssh
し直してみる。
$ sudo ufw status
Status: active
To Action From
-- ------ ----
OpenSSH ALLOW Anywhere
OpenSSH (v6) ALLOW Anywhere (v6)
$ sudo ufw status verbose
Status: active
Logging: on (low)
Default: deny (incoming), allow (outgoing), disabled (routed)
New profiles: skip
To Action From
-- ------ ----
22/tcp (OpenSSH) ALLOW IN Anywhere
22/tcp (OpenSSH (v6)) ALLOW IN Anywhere (v6)
無効化
$ sudo ufw disable
Firewall stopped and disabled on system startup
$ sudo ufw status verbose
Status: inactive
ルールの追加・削除
UFW のデフォルト設定
- 入ってくる(incoming)パケットは拒否(deny)
- 出て行く(outgoint)パケットは許可(allow)
ルールの追加
ルールの追加方法は2つ。
ポートを指定。
$ sudo ufw allow 80/tcp
アプリを指定。
$ sudo ufw app list
Available applications:
Apache
Apache Full
Apache Secure
OpenSSH
$ sudo ufw allow Apache
Rule added
Rule added (v6)
ルールの削除
$ sudo ufw delete allow 80/tcp
ルールの確認
概要とルールの確認。
$ sudo ufw app info "Apache Full"
Profile: Apache Full
Title: Web Server (HTTP,HTTPS)
Description: Apache v2 is the next generation of the omnipresent Apache web
server.
Ports:
80,443/tcp
設定ファイル
- ufw コマンドで追加したルールは、次回以降のシステム再起動時も有効。
$ sudo ufw status verbose
Status: active
Logging: on (low)
Default: deny (incoming), allow (outgoing), disabled (routed)
New profiles: skip
To Action From
-- ------ ----
22/tcp (OpenSSH) ALLOW IN Anywhere
80/tcp (Apache) ALLOW IN Anywhere
22/tcp (OpenSSH (v6)) ALLOW IN Anywhere (v6)
80/tcp (Apache (v6)) ALLOW IN Anywhere (v6)
$ exit
logout
Connection to 127.0.0.1 closed.
再起動。
% vagrant reload
% vagrant ssh
再ログイン後に確認。
$ sudo ufw status verbose
Status: active
Logging: on (low)
Default: deny (incoming), allow (outgoing), disabled (routed)
New profiles: skip
To Action From
-- ------ ----
22/tcp (OpenSSH) ALLOW IN Anywhere
80/tcp (Apache) ALLOW IN Anywhere
22/tcp (OpenSSH (v6)) ALLOW IN Anywhere (v6)
80/tcp (Apache (v6)) ALLOW IN Anywhere (v6)
設定ファイルは以下に。
$ ls /lib/ufw/
ufw-init ufw-init-functions user6.rules user.rules
$ ls /etc/ufw/
after6.rules after.init after.rules applications.d before6.rules before.init before.rules sysctl.conf ufw.conf
$ ls /etc/ufw/applications.d/
apache2 apache2-utils.ufw.profile openssh-server
追加で復習
Vagrant のプライベートネットワーク設定
ログアウト後、vagrant halt
で停止。
Vagrantfile を開き、プライベートネットワーク設定のコメントを外す。
config.vm.network "private_network", ip: "192.168.33.10"
Apache をインストール
vagrant up
, vagrant ssh
後、Apache をインストール・スタート。
$ sudo apt-get -y update
$ sudo apt-get -y install apache2
$ sudo service apache2 start
$ ps aux |grep apache2
UFW の動作確認
現在は 80 が通っている。
http://192.168.33.10
へブラウザでアクセス可能。
$ sudo ufw status verbose
Status: active
Logging: on (low)
Default: deny (incoming), allow (outgoing), disabled (routed)
New profiles: skip
To Action From
-- ------ ----
22/tcp (OpenSSH) ALLOW IN Anywhere
80/tcp (Apache) ALLOW IN Anywhere
22/tcp (OpenSSH (v6)) ALLOW IN Anywhere (v6)
80/tcp (Apache (v6)) ALLOW IN Anywhere (v6)
Apache のルールを削除。
http://192.168.33.10
へブラウザでアクセスできない。
$ sudo ufw delete allow Apache
Rule deleted
Rule deleted (v6)
$ sudo ufw status verbose
Status: active
Logging: on (low)
Default: deny (incoming), allow (outgoing), disabled (routed)
New profiles: skip
To Action From
-- ------ ----
22/tcp (OpenSSH) ALLOW IN Anywhere
22/tcp (OpenSSH (v6)) ALLOW IN Anywhere (v6)
UFW を無効化。
http://192.168.33.10
へブラウザでアクセス可能。
$ sudo ufw disable
Firewall stopped and disabled on system startup
$ sudo ufw status verbose
Status: inactive