当方は、一般的なプロバイダーから接続している。
そのためルータを再起動するなどによって PPPoE を再確立した時点で、接続元の IP が変わってしまう。
この影響により、SSH 接続を制限しているサーバに対し、以下の作業を都度行う必要がある。
手順
自分が接続しているマシンのネットワーク IP(グローバル IP、ゲートウェイ IP)を探す。
- IP アドレス確認(CMAN)
AAA.BBB.CCC.DDD
そのIPアドレスの WHOIS 情報を探す
次項は、再接続時の際に「偶然、以前に設定したセグメント内に入る」という可能性を考え、このような作業を追加としている。
個人的な「こだわり」の部分。
これは、全開放に比べたら極めて小さい穴だし、SSH 接続は鍵認証しかできないなど、他の部分でセキュリティレベルは上げるなどの処置を施している。
その点からして、リスクはカバーしてると思う。
あくまで参考程度とすること。十分考慮のうえ注意すること。
熟考せず無為に参考のまま設定すると、セキュリティ的にガバガバになるリスクがある。
参考にしての設定は、あくまで自己責任で。
登録情報からネットワーク IP アドレス(付与されている IP アドレス範囲)を探す。
なるべく広めの IP で SSH ポートを開くため。上位があるなら、なるべく広めに開ける。
AAA.BBB.CCC.EEE/FF
「さくらの VPS」コントロールパネルからコンソールに root ログイン
TeraTerm などで接続できない以上、仮想コンソールを使うしかない。
何番目に SSH 開放 IP アドレス(範囲)を突っ込むか探す。
この辺りは、手探りで探すしかない。
主に利用するコマンドは以下。
- ルールの確認(設定コマンド原文)
# iptables -S
- ルールの確認(設定順番号、表示整形)
# iptables -L --line-numbers
iptables の構成次第によって、追加(挿入)する場所が厳密な場合があったり、何も考えず、最後に追加すればよい場合など、そこは個々の構成に併せて考える。
iptables に追加(挿入)コマンド投入
- 【例1】IP アドレスを範囲(サブネット単位)で SSH 開放する場合
# iptables -I INPUT 5 -s AAA.BBB.CCC.EEE/FF -p tcp
-m state --state NEW -m tcp --dport 22 -j ACCEPT
- 【例2】1つの接続元 IP アドレスだけ SSH 開放する場合
# iptables -I INPUT 5 -s AAA.BBB.CCC.DDD -p tcp
-m state --state NEW -m tcp --dport 22 -j ACCEPT
この状態で Teraterm, WinSCP などから接続確認
TeraTerm などで、以前の通り接続できるか確認。
問題なければ、次項。
sysconfigに設定情報を保存
# service iptables save
念のため、ちゃんと保存されたかの確認もする。
# cat /etc/sysconfig/iptables
参考
- iptables の使い方(Qiita)
- iptables の設定方法(さくらインターネット)
【余談】将来こうしたい
ルーターの切断や再起動した時にしか必要のない作業とはいえ、毎回この設定をするのは、いちいち面倒。
なので、何かしらの自動化を考えている。