ufwでファイアウォール設定、管理
ufwとは
ファイアウォールの設定、管理はiptables
コマンドを用いるが、よりシンプルなufw
コマンドを利用することもできる。
ufwはPythonで書かれたiptablesのフロントエンド。内部的にはiptablesを利用し、iptablesよりも単純なインターフェースを提供している。
インストール
Ubuntuにはパッケージがある。
CentOS用のufwパッケージは存在しないが、ソースコードからインストールできる。
wget https://launchpad.net/ufw/0.35/0.35/+download/ufw-0.35.tar.gz
tar zxf ufw-0.35.tar.gz
cd ufw-0.35
sudo python ./setup.py install
sudo chmod -R g-w /etc/ufw /lib/ufw /etc/default/ufw /usr/sbin/ufw
最後のコマンドは、ufwコマンド実行時に「WARN: /etc/default/ufw is group writable!」という警告が表示されないように実行。
ufwを利用する場合は/lib/ufw/ufw-init
スクリプトを利用するので、iptables
ip6tables
サービスは停止して、自動起動設定を解除する。
sudo service iptables stop
sudo service ip6tables stop
sudo chkconfig --del iptables
sudo chkconfig --del ip6tables
...CentOS 7以降は以下かもしれない(未確認)
sudo systemctl stop firewalld
エディタで/etc/rc.local
を開き(要sudo)
/lib/ufw/ufw-init start
と追記。これでCentOSブート時にufwで設定したパケットフィルタリングが自動的に有効になる。
初期設定
sudo ufw default reject # まず「外部からの通信は拒否する」というデフォルトルールを設定する
sudo ufw allow 22 # ssh接続を許可するため22番ポートを解放
sudo ufw enable # 設定を有効化
その他の設定例
sudo ufw allow 80 # httpのために80番を開ける
sudo ufw allow http # 上記と同じ意味
sudo ufw allow 80/tcp # tcp80番だけ開ける(udpは開けない)
sudo ufw allow 80,443/tcp # コンマ区切りで複数ポート指定
sudo ufw allow 8080:8083/tcp # コロンで範囲指定
ルール設定のシンタックス
前述のような書き方(シンプルシンタックス)の他にフルシンタックスがある。
sudo ufw allow 80/tcp # シンプルシンタックス
sudo ufw allow proto tcp to any port 80 # フルシンタックス
IPアドレスを指定する場合は、上記のto any
をto xxx.xxx.xxx.xxx
としてやれば良い。
またfrom
を用いて接続元IPを指定してルールを追加することもできる。
sudo ufw allow proto tcp from 192.168.0.101 to any port 3306
状態とルール一覧確認
$ sudo ufw status
Status: active
To Action From
-- ------ ----
1337 ALLOW Anywhere
22 ALLOW Anywhere
1337 (v6) ALLOW Anywhere (v6)
22 (v6) ALLOW Anywhere (v6)
sudo ufw satus numbered
とすると番号付きでルール一覧を表示する。
ルール削除
sudo ufw delete 2
のようにufw delete
コマンドにルール番号を渡す。
ルールの優先度と挿入
ufw status numbers
で一覧を表示した際により上にあるルールの方が優先される。
優先度を変えて新しいルールを挿入したい場合はufw insert 番号
として、新しいルールを挿入する。
sudo ufw insert 1 reject from 192.168.179.4 to any port 1337
参考書籍
Ruby on Rails環境構築ガイド, Chapter13 ファイアウォール
- 作者: 黒田努
- 出版社/メーカー: インプレス
- 発売日: 2013/03/22
- メディア: Kindle版
- この商品を含むブログを見る