最近急に自宅のIPがころころ変わるようになって、さくらのVPSでhosts.allowとiptablesで接続元のIP制限をかけてると ssh接続出来なくなるので自動でルールが変更になるように対応。環境はCentOS 5.7です
やりたいこと
- iptablesとhosts.allowの両方で接続元のIPを制限したい
- 自宅に割り当てられているIPが変更になったら自動でルールを変更
前提条件
私はダイナミックDNSを利用して、自宅IPとドメインを紐付けしているので、ISPから割り当てられているIPが変わっても、
ダイナミックDNSで利用しているドメインは変わりません。以前書いているので、参考にしてください。
そのほかにsshd.configやiptablesの設定は完了済みです。
- ダイナミックDNSを利用して自宅サーバにアクセスする | Glide Note - グライドノート
- sshは鍵認証、rootログイン禁止とか設定済み
- iptablesの基本ルールは/etc/sysconfig/iptablesで用意済み
/etc/hosts.allow の動的変更
@tnmtに教えてもらった、hosts.allowのinclude設定を利用して、自宅IPを動的に登録
/etc/hosts.allow にinclude設定
hosts.allowを下記のように設定。hosts.allowを直接変更するのではなく、includeしているファイルに変更をかけます。
cronに下記のように設定。hostコマンドで自宅IPを割り出し、ファイルに書き込み。 hogehoge.comは自分のダイナミックDNSで利用しているドメインを指定
1
|
|
iptablesのルールを動的に追加
下記のようなスクリプトを用意し、これもcronに追加
cronの設定は下記のような感じ
1 2 |
|
これで自宅IPが変わっても、iptablesとhosts.allowで許可されるようになりました。