UFW (Uncomplicated Firewall) を理解しておく
UFWとは?
コマンドラインで簡単に設定出来るfirewall。 Ubuntu 8.04 LTSより新しいバージョンならデフォルトでインストールされているので、Ubuntuを利用している場合はこれを利用してfirewallの設定をするのが一般的。
解説
例えば以下の設定があったとする。
$ sudo ufw status verbose Status: active Logging: on (low) Default: deny (incoming), allow (outgoing), disabled (routed) New profiles: skip To Action From -- ------ ---- 22 ALLOW IN Anywhere Anywhere DENY IN 192.168.1.1 80/tcp ALLOW IN Anywhere 22 (v6) ALLOW IN Anywhere (v6) 80/tcp (v6) ALLOW IN Anywhere (v6)
初期設定は、
- 起動中
- 内向きのパケットは全て禁止
- 外向きのパケットは全て許可
フィルタリングルールは上から順に適応されているくので、
- port 22(ssh目的)は許可
- 192.168.1.1からのアクセスは禁止
- port 80(http目的)は許可
という読み方になる。
よく使うコマンド
確認
ルール表示
sudo ufw status
ルール + ステータス
sudo ufw status
設定
ポートで許可 / 禁止
# sudo ufw allow <port>/<optional: protocol> sudo ufw allow 80/tcp sudo ufw deny 80/tcp
IP adressで許可 / 禁止
# sudo ufw allow from <ip address> sudo ufw allow 192.168.1.1 sudo ufw deny 192.168.1.1
編集
連番付きルール表示
sudo ufw status numbered
特定の番号が付いたルールを消す
sudo ufw delete 4
番号指定でルールを追加する
sudo ufw insert 1 allow from <ip address>
ネットワークアドレスでフィルタリングする
sudo ufw deny 192.168.1.0/24
HOST部分を変えながらDOS攻撃してくる場合などの対応のためネットワークアドレスでフィルタリングすることも出来る。
To Action From -- ------ ---- Anywhere DENY IN 192.168.1.0/24
※サブネットマスクで言うと255.255.255.0なので192.168.1.0〜192.168.1.255
設定手順
sudo ufw allow 22 sudo ufw enable sudo ufw deny from 192.168.1.1 sudo ufw allow 80/tcp
22番ポートが閉じたまま接続が切れたらマジ厄介なので先に許可設定したまま ufw を enable にする。