JavaScript勉強会

JavaScriptの学習日記

Ubuntuのファイヤーウォール「ufw」

テストサーバーにUbuntuをインストールしました。

Webサーバーを構築するための下準備を進めてみたいと思います。

 

  1. ファイヤーウォール
  2. SSH
  3. Nginx
  4. SSL
  5. MySQL
  6. PHP
  7. Ruby

パッと思いつくところは、こんなものでしょうか?

 

 

Ubuntuファイヤーウォール

CentOSの場合は、ファイヤーウォールとして「iptables」や「firewalld」が用意されています。

Ubuntuの場合は、「ufw」というツールが用意されていました。

 

ufwとは?

himachannel.com

  • iptables(厳密にはNetFilter)のラッパーである
    • ufwでできることはiptablesですべてできるが、ufwでは基本的な設定は非常に単純なコマンドでできる、ということが特徴
    • iptablesの独自利用とは併用しないほうがよい

 

 

ufwの情報源

英語のページは多分読まないと思いますが、トラブル解決で詳細を調べるときに役立つかも?

Uncomplicated Firewall - Wikipedia

 

UncomplicatedFirewall - Ubuntu Wiki

 

www.linux.com

ufwの注意点

iptablesを直接いじるツールが他にあると、ufwで行なった設定とは別のフィルターが働いてしまう場合もあるようです。

 

ngzm.hateblo.jp

UFW と docker の両方を使用するサーバで、UFW で許可していないポート番号がいつのまにか空いてしまった問題に遭遇しました。

docker run の -p や -P オプションでコンテナを起動すると、Docker は、その指定されたポート番号について、ファイアーウォールに穴を開ける処理をします。

どうして UFW で確認できなかったのでしょうか? それは … 直接 iptables のルール一覧を確認すれば分かるかもしれません。

UFW が設定したルールには、"ufw-[hogehoge]" という名前が付いています。一方、"DOCKER" で始まるチェーンも見ることができますが、こちらは明らかに Docker によって追加されたルールですね。

UFW は 自分が設定したルール、すなわち “ufw-[hogehoge]” についてのみ管理対象としているようです。従って、Docker など他のプログラムや、手作業で追加したルールについては関与していません。

 

ufw」でファイヤーウォールの設定をした後、念のためiptablesのルール一覧を直接目視確認して、他のツールの設定と競合していないか?チェックしておく必要がありそうです。

これは盲点ですね?

まあ、それでも直接iptablesをいじるのは面倒なので、ufwでやれることはufwでやった方が楽そうです。

 

ufwの使い方

ufwの基本的な使い方が紹介されていました。

 

jp.linux.com

 

qiita.com

  • ufwは、ターミナル画面でコマンド操作できる。
  • ufwは、「Gufw」というGUIを使うと、ウィンドウ画面で操作できる。

 

ufwGUI「Gufw」

せっかく便利なGUIが用意されているなら、GUIで使ってみたいです。

 

gufw.org

 

ufwのバージョン確認

ufwは、デフォルトでUbuntuにインストールされています。

入っているufwのバージョンを確認してみましょう。

ターミナル画面で、次のコマンドを入力します。

$ ufw version

 

f:id:jsstudy:20180311175521p:plain

 

Ubuntu 16.04 LTSには、ufwのバージョン0.35が入っているようです?

 

ufwのインストール

ufwがなかった場合はインストール作業を行います。

 

www.hiroom2.com

ufwパッケージをインストールします。

$ sudo apt install -y ufw

$ sudo systemctl enable ufw

$ sudo systemctl restart ufw

 

Gufwのインストール

ターミナル画面でufwを操作しても良いのですが、ufw用のGUIがあったので使ってみます。

 

megatron.memo.wiki

sudo apt-get install gufw

ターミナル画面で上記のコマンドを入力します。

 

Gufwの起動

ターミナル画面で「gufw」とコマンドを入力すると、Gufwが起動します。

 

または、「コンピューターの検索」で「gufw」と入力します。Gufwのアイコンが表示されるので、それをクリックします。

 

f:id:jsstudy:20180311183000p:plain

 

次からすぐに呼び出せるように、画面左側のランチャーのアイコンを右クリックして、ランチャーに登録しておきます。

 

f:id:jsstudy:20180311183158p:plain

 

Gufwで「Status」を「オン」に切り替えたら、ファイヤーウォールが有効になります。

 

  • 「ルール」のタブで、必要なフィルターのルールを追加していけばOK。
  • 後で、Nignxなどをインストールしたら、ポートを開けて、アクセスを許可します。

 

まとめ

 

Ubuntuファイヤーウォールは、わりと手軽に使えるので助かりました。