職業プログラマの休日出勤

職業プログラマによる日曜自宅プログラミングや思考実験の成果たち。リアル休日出勤が発生すると更新が滞りがちになる。記事の内容は個人の意見であり、所属している(いた)組織の意見ではない。

iptablesの設定内容を見る

新しくサーバをセットアップするにあたって、sshdのポート番号をデフォルトの22から他のものに変えようとしたところ、外部から接続できない、という症状に見舞われました。
症状から考えれば何らかのファイアウォール装置によって弾かれていることは明らかだったのですが、iptablesの設定内容の確認方法を間違えていたため、無駄な時間を費やしてしまいました。
この記事は、そのときのメモです。


環境情報

正しいやり方

正しいやり方は何通りか考えられますが、root権限で iptables -L または iptables-save を実行するのが手早いでしょう。

例1

$ sudo iptables -L
Chain INPUT (policy ACCEPT)
target     prot opt source               destination         
ACCEPT     all  --  anywhere             anywhere             state RELATED,ESTABLISHED
ACCEPT     icmp --  anywhere             anywhere            
(以下略)

例2

$ sudo iptables-save
# Generated by iptables-save v1.6.0 on Tue May 30 20:58:01 2017
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [332395:196375507]
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
(以下略)

間違えたやり方

非root権限で iptables-save コマンドを実行しました。

イメージ

$ iptables-save

何も出力されません。終了ステータスも0です。


間違えないための知識

例えば、非root権限で iptables -L を実行すると、エラーになります。

$ iptables -L
iptables v1.6.0: can't initialize iptables table `filter': Permission denied (you must be root)
Perhaps iptables or your kernel needs to be upgraded.

手早く手堅く、設定内容を確認したいときは、 iptables -L の方が間違いリスクが低いのでしょう。きっと。
あと、何かを調査する際には複数の調査方法を試してみるべき、ということも言えそうです。


間違いに気づいたときのぼやき



さくらのVPSに限った話

iptablesのデフォルト設定は、ここで掲載されています。
help.sakura.ad.jp


関連してそうな本

Ubuntu 16.04 LTSが全部わかる本

Ubuntu 16.04 LTSが全部わかる本

最近では「全部わかる」といった強い言葉を見かけると、身体が震えるようになってきました😇