iptables33

Debian 7.7「wheezy」ファイアウォールiptables/ip6tablesの設定

2014/11/27[公開]

自宅サーバーを実際の運用で公開するにはファイアウォールiptablesの設定はセキュリティ上必須項目ですね。いろいろググッて一番カンタンと思ってる自分のサーバーでの設定方法の記録です。

前提

iPv6については全通信拒否の設定にしておきます、将来iPv6が必要になったら変更できるようにしておきます。

そもそも私の契約しているspaaqs光ホームタイプ(旧USEN)は新規契約受付終了しており、将来にわたってiPv6未対応確定と思われるのでたいして考慮する必要もないのですが…

iptables/ip6tablesの状態を調べる

iptablesはDebianインストール時にインストール済みですが、デフォルトのままでは設定が入っていない状態です。

suコマンドで管理者権限になってから調べて見ます。

INPUTもOUTPUTも全ポート通信許可という状態です。

IPv6の状態も調べる場合は

IPv6も同じく全ポート許可状態です。

iptables-persistentのインストール

iptablesだけで設定を進めることもできますが、それはlinux上級者の話です。ここはiptables-persistentをインストールしたほうが簡単なので迷わずインストールします。

iptables1

IPv4のルールを保存するか聞いてくるので、「はい」で進みます。

iptables2

IPv6も同じく「はい」で進んでインストールを完了させます。

これでサーバー起動時に自動的にiptablesが有効になり、読み込む設定ファイルrules.v4とrules.v6が出来上がっています。

ファイルの場所はDebianならば

  • IPv4の設定ファイルは /etc/iptables/rules.v4
  • IPv6の設定ファイルは  /etc/iptables/rules.v6

これを書き換えていきます。

設定ファイルを書き換える

ファイアウォールのルールを設定するわけですが、ここは上級者ならいかようにも設定できると思いますが、やはりテンプレート的なものがあるようで、WEBサーバー単体の場合、定番の記述方法が Debian wiki にあるので丸々コピペで頂いてしまいます。

Debian Wiki / iptables

https://wiki.debian.org/iptables

WEBサーバー単体の場合 rules.v4

デフォルト状態の/etc/iptables/rules.v4の中身を全部消して、下のように書き換えます。

コピペ用ファイルを用意しています→→rules.v4のサンプル1

下に表示されている記述をコピペすると、iptablesがエラーを出してしまいます。iptablesは相当シビアみたいで、プラグインSyntaxHighlighter Evolvedで表示されたのをそのままコピペだと設定ファイルを読み込むときに失敗します。必ず上のファイルを開いてからコピペしてください。

【2014/12/27追記】プラグインをCrayon Syntax Highlighterに変更しました。

20行目のSSHのポート番号だけは、環境に合わせて変更してください。

入ってくるのはWEBサーバーのポート80と443、SSHのポートを許可、ping許可、こちらから出して戻ってきたものを許可。それ以外は拒否。出ていくのは全部許可。5分以内に連続した不正アタックをログにとる。

 ということになっているようです。

rules.v6も書き換えます。

全通信拒否にするためetc/iptables/rules.v6は、ACCEPTをDROPに変えます。

動作確認

設定が有効になるのはサービス再起動後のようです。

【2015/05/07】Debian8.0 jessieではサーバーの再起動が必要のようです。

エラーが出ずに再起動したら、状態を確認します。

追加で必要なポートを開ける

私の場合は、メールサーバー用のポートを開けています。

コピペ用ファイルを用意しています→→ メールサーバー設定を追加したrules.v4サンプルコピペは必ず上のファイルを開いてからコピペしてください。

追加する行の順番があるようで注意です。お尻に追加するとダメということもあったりします。

最後にひとこと

これでファイアウォールの設定ができました。入ってくるものだけ制限して、出て行くものは制限無し、たとえるならばマンション入口のオートロック的なセキュリティレベルだと思います。あとは、ご自身の環境に合わせてルール作りをしていってください。

こちらの記事もどうぞ

「Debian 7.7「wheezy」ファイアウォールiptables/ip6tablesの設定」への2件のフィードバック

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です