DNSサーバーへのアタックを絶賛受信中(こちらの投稿を参照)なので、DNSサーバーを落とし、53番ポートを閉じたため、独自ドメインを使って自宅サーバーを公開することが一時的にできなくなってしまいました。
しかし、なんとか自分だけでも外部から自宅サーバーにアップされているサンプルサイトをチェックできるようにしたい!
サンプルサイトがひとつだけならばIPアドレスで直接アクセスすればいいわけですが、同一サーバー内に仮想サイトを複数立ち上げていますので、IPアドレスだけでは振り分けができません。
iptablesでポート変換
そこでiptablesコマンドを使ってNATでポートの変換を行うことに挑戦してみました。
例えば、外部ポート12345番への要求を80番へ変更するには…
iptables -t nat -A PREROUTING -p tcp --dport 12345 -j DNAT --to-destination 192.168.x.x:80
という具合です。
↓この参考ページをそのまま受け売りで申し訳ないですが。
ちなみにこの設定は再起動すると消えてしまうので、永続的に使用したい場合には設定内容を保存しなければいけません。保存するファイルは/etc/sysconfig/iptables
です(上記のコマンドで変更が加えられるファイル)。
//iptables設定を保存しましょう /etc/init.d/iptables save
仮想サイトのワナ
LAN内のPCからサーバーの「IPアドレス:12345
」にアクセスしたら、ちゃんとポート変換されたようで目的のページが表示されました。なので、おそらくiptablesによる設定変更はうまくいったと思われます。
しかしWAN側ではそういうわけにはいかないようです。自宅サーバーはBlueOnyxを使っておりまして、仮想サイトにアクセスすると、アドレスバーの表示が設定されたホスト名.ドメイン名(例:myhost.mydomain.net)
に強制的に変わります。現状、DNSサーバーが止まっていますので、このmyhost.mydomain.net
はインターネット上では無効な名前ということなんでしょうか。ページが表示されません。
※この認識で合っているかどうかは不明です。間違っていたらご指摘ください。
なので、我が家みたいにDNSアタックを受けてサーバーを落としている人でなければ、問題ないのかな?
これについてはDNSを復活させたら実験してみよう。
Blueonyxのワナ
それはさておき、さあどうしようかなと悩んでいたら、いつの間にかLAN内部PCからもアクセスできなくなったぞ。あれ?さっきはアクセスできたのに?
もういちどiptablesの設定を確認します。
vi /etc/sysconfig/iptables
あれーー?さっき設定した内容が消えているーーーー。
保存したはずだけど・・・。
↓答えはこちらに書かれておりました。
iptables初期化される – 3sisters project
Blueonyxは1時間ごとにiptablesを初期化しちゃうのか。
ファイルをよく読めば一番最初の行に注意書きされておったわい。反省。
対処方法は上のページでも紹介されているようにあることはあるんですが、私のスキルではまだちょっと難しいので、いつかチャレンジするということで今日のところはあきらめました。
は~、徒労に終わった。
iptables
コマンドについては、↓こちらで詳しく説明されています。