2013年6月9日日曜日

FreeBSDで起動時に我武者羅に SSHを公開する。



用途「 遠隔地のFreeBSDマシンが HDD障害などで起動しなくなった時に、USBメモリから起動して、遠隔からSSHで入る」


USB起動ディスクを作るのは前回示した通り。


あとは、 なんのNICが刺さってるかわからないマシンで、いわゆる「BBルータ」の後ろにいるマシンに繋ぎたい。


結論から書くとこれをrc.localにつっこむ



ifconfig -l | tr " " "\n"|grep -v lo0 |xargs -n 1 dhclient


ifconfig |grep "inet 192"|awk '{print $2}' |sort |uniq |cat -n|awk '{print "/usr/local/bin/upnpc -a "$2" 22 8"$1"22 tcp"}' | sh



miniupnpcがインストールしてあることが前提なので注意。


これで適当に、 8122 ,8222,8322番のポートにSSHが公開されるようになるはず。


やっていることは、1行目で、 NICの一覧を取得してそれぞれにDHCPクライアントを実行しています。


2行目は、192.から始まるアドレスの22(SSH)ポートをUPnP を使ってルータの外に公開しています。





現実的な運用としては更に、自分のサイトにpingを打ち続けるなどの対処をしておいてIPアドレスを自分の端末から調べられるようにしておいたほうが無難ですね。





0 件のコメント:

コメントを投稿