memcached × iptables

ファイヤーウォール

http / https以外、外部から接続できる状態ではなかったのでファイヤーウォールを設定してなかったのだけど、本番環境にmemcachedを適用することになったのでiptablesの設定をしっかりしておこうと思う。

運用中のiptablesの設定を公開することはできないけど、memcachedのようなミドルウェアを導入する際にファイヤーウォールを設定しないとどういうことになるかを残しておこうと思う。

iptablesとは

iptablesとは、Linuxに最初から入っているファイヤーウォールです。

IPv4用のiptablesとIPv6用のip6tablesがあり、両方に設定する必要がある。

iptables設定 before / after

memcachedを起動させてiptablesを起動せずにローカルからtelnetで接続してみる。

 telnet tulist.jp 11211
 Trying 160.16.114.80...
 Connected to tulist.jp.
 Escape character is '^]'.
 stats items
 END
 quit
 Connection closed by foreign host.

ご覧のとおり接続できてしまう。

サーバー側で、iptablesを起動させて今一度テスト。

 telnet tulist.jp 11211
 Trying 160.16.114.80...
 telnet: connect to address 160.16.114.80: Connection timed out
 Trying 2001:e42:102:1533:160:16:114:80...
 telnet: connect to address 2001:e42:102:1533:160:16:114:80: Network is unreachable

接続ができないことが確認できた。
・・・が、これだけではセキュリティ的に問題がある。

上記確認はvagrantから接続を試みたのだけど、IPv6による接続テストができていない。

ログが取りづらいので省くが、IPv6で接続できるWindows環境からテストするとあっさり接続できてしまう。

こんどは、ip6tablesも起動してWindows環境からテストする。

domainを指定してtelnet接続

 telnet tulist.jp 11211
 接続中: tulist.jp...ホストへ接続できませんでした。 ポート番号 11211: 接続に失敗しました

IPv6を直接指定してtelnet接続

 telnet 2001:e42:102:1533:160:16:114:80 11211
 接続中: 2001:e42:102:1533:160:16:114:80...ホストへ接続できませんでした。 ポート番号 11211: 接続に失敗しました

ともに失敗することを確認。

これで、安心してmemcachedを利用したプログラムを本番に適用できますね!

シェアする

  • このエントリーをはてなブックマークに追加

フォローする