連載第23回
2014年2月23日
ファイアウォール とか iptables が意味不明

 その上に20cm以上もの雪に降り積もられてしまう前は、厳しい寒気の中、ベランダの外に放り置かれながらも青々とした肉厚の葉っぱを大きく広げていたカネノナルキは、2週続いての記録的積雪に深刻なダメージを受け、現在このような状態になっています。来週から少しずつ暖かくなってくるようだけれど、こんなふうに黄色く萎れてしまった状態から復活可能なのかどうか、葉はほぼ全滅だがとりあえず「茎はまだ固くて青いから大丈夫!」と信じております。何せこのカネノナルキと、最近通りすがるようになった(全く可愛くない)ノラだけが僕の家族なのです。

 さて。前回ポート番号を変更したことによってCoda 2の設定も修正しておかねばなりません。各種設定を保存している「サイト」を修正するのですが、そこを開いてもグレーになっていて変更出来ないようになっている場合は(前回接続した際の状況を保持しているらしい)、一度ウィンドウ左上にあるアイコンを右クリックして閉じると良いようです(↓画像の上の方)。その後にサイトアイコンを右クリックして「編集」を選び、接続時の諸設定を変更します。SFTPならssh経由なので、前回のyyyyyをポート番号として入力しておきます。

レンタル時はポート全開

 本題です。前回紹介した記事「ポートスキャンツール「Nmap」を使ったセキュリティチェック」に少なからず衝撃を受けつつ、記事中一番気になったのはこの箇所です。

たとえばこの例では、TCPの22番および25番、80番、995番、3000番、8080というポートが検出されており、そのうち22番および25番、80番ポートは外部から接続可能で、サービスがこのポートに対しなんらかの待ち受けを行っているということが分かる。いっぽう、「STATE」が「closed」になっている995番および3000番、8080番については、そのポートへのアクセスは可能だが、そのポートで待ち受けを行っているサービスは存在しない、ということを示している。

 これは他の参考記事を読んでいても薄々気になってはいたのですが、レンタルVPSを借りた時点では全てのポートが外部に向けて開けっ放しになっている…という事のようです。さらに引用させていただくと…

実はこのサーバーでは、ファイアウォール(iptables)を使用し、22番および25番、80番、995番、3000番、8080番以外のポートへの接続を拒否するように設定しており、995番および3000番、8080番への接続自体は可能になっている。ただし、ポートスキャンの実行時にはこれらポートを利用するサーバーアプリケーションは稼働させていなかった。そのため、これらのポートは「closed」と表示されている。

 停止しているサービスは「netstat」でリストアップされないから、表示されていないポート番号は始めから閉じていると思ってしまうのですが、実は使われてないだけで筒抜けの状態であると。そこで「使ってないポートは積極的に閉じましょうよ」という事になる。なるほど…。

ファイアウォール ? iptables ?

 ここまで辿り着いて、次にしなければいけないことが「iptablesによるファイアウォール設定」という事が分かりました。昔からファイアウォールという言葉は、パソコンやサイバーパンク系SFに興味があれば時折耳にすることはあっても、しかしそれを直に触る機会などほとんど無いのではないか。そもそもどんな概念・仕組みなのか、まずはそこから知りたい(iptablesって何?というところで立ち往生してますし)。で、とりあえず検索でヒットした次の記事を読んでみました…が。

ファイアウォール構築(iptables)

 むむむ。全く意味不明ではないか。何となく作業工程の流れはぼんやりと見えるのだけれど、ぼんやりしたままで輪郭がくっきりしないというか。たぶん、部分々々に出てくる用語をまだ立体的に掴みきれてないのだな…。
 小説とか読んでいると、よく知らない言葉や言葉遣いに出くわすけれど、最初は全く意味や使い方が分からなかったフレーズも、出くわす回数を重ねるに連れて何となく使い方を習得できたりします。幼児が言葉を覚えて行く過程と似たものがありますが、様々な状況でそれが登場する場面の体験数を増やして行くと、突然その言葉が立体的に「見えて」自分のものになる瞬間があるというか。それを技術用語にも応用できるのかは分かりませんが、とりあえず検索に引っ掛かった関連記事を片っ端から読みまくることにしました。

今回読んだファイアウォール関連記事リスト

DTI ServersMan@VPS 最初にやったこと(CreativeGear)
iptables(ファイアウォール)設定 – ServersMan@VPS(MAKIZOU.COM)
【セキュリティ】さくらVPSにファイアウォールを適用する。【iptables】(くずのは探偵事務所)
ServersMan@VPS iptablesを設定する(うーたんの小部屋)
CentOS 6.4 ファイアーウォール設定(ServersMan@VPS)(プログラムの書き方を覚える)
ServersMan@VPSでのiptables設定(state版)(誰得UNIX-BLOG)
[Serversman@VPS]エントリープランからサーバーを構築する(3)~iptables設定~(mani-lab)
VPS 借りたら、せめてこれくらいはやっとけというセキュリティ設定(dogmap.jp)
ServersMan VPSでWebサーバー構築#1(CentOS:初期設定)(しゃまとんの種)
ServersMan@VPSのメモ ~ ip6tables ~ (がちゃの紙くず同然なメモ)
Webminでiptablesの設定 (別館 子子子子子子(ねこのここねこ))
俺でも解るIPTABLES
iptablesの設定 入門編 (Murayama blog.)
iptablesによるフィルタ設定 (とみぞーノート)
iptablesによるパケットフィルタリング(コロのLinuxサーバー構築)
iptables(システムエンジニアのスキルアップ)
ファイアウォール(iptables)設定(I T の メ モ)
iptablesの設定(CENTOSでアリソンサーバー)
CentOS/iptables(ひつじ帳)

紆余曲折の後、最高の記事発見

 真夜中にiPadでブラウズしながら全部読みまくってみたものの、しかしやはりどうも掴みきれずモヤモヤ感が残ります。もっと基本的な仕組みというか構造というか、概念っぽいところを説明しているテキストはないものか、と思い悩んでいたところ、遂に自分の求めているイメージのド真ん中ストライクな記事に辿り着きました。

 以上、全て「@IT」さんの記事なのですが、さすが現場のプロによる要点をとらえたテキストが、さらにプロの編集の手によってまとめあげられた記事だけあって、もの凄く滑らかに頭の中へ滑り込んできます。「概念からスタートして、各要点を具体的に説明し、最終的に求められている地点に着地する」という流れが見える文章です。ここでファイアウォールとは関係なく、想定読者に主旨を伝える為の文章作りの技術というか、一般ユーザーの文章とプロのライターの差はどこから生じてくるのかという、本稿とはまた関係の無いことに考えは向かってゆくのでした…。

 と、まあ、2月も残すところ後1週間で終わってしまうし、あまりボンヤリしてもいられないので「ゼロから始めるLinuxセキュリティ」をゆっくり熟読した後、改めてもう一度、上に紹介したユーザー記事を読み直してみることに。たぶん、それまで掴めなかったものが見えてくるのではないかと期待しています。しかし優れた記事に巡り合えても、それを正しく理解してミス無く運用できるかどうかはまた別の問題。つづく。