ラベル VPN の投稿を表示しています。 すべての投稿を表示
ラベル VPN の投稿を表示しています。 すべての投稿を表示

2013/07/11

PPTP の接続を維持する

VPSとの間で張っているVPNの接続を維持するために、超安直なスクリプトを作ったんですが、これが可能になったのも 「nmcli」 というコマンドの存在を知ったからなのでした。

nmcli は gnome の network manager を GUI でなく CLI で制御するツールで、先日何かを調べているときに偶然見つけました。 CLI で PPTP の接続を確立するのに pon を使う方法は、これまたずっと以前にどこかで見つけて一応の成功をみました。ところが何か不安定で、しかも VPN のステータスが gnome panel の表示と一致しないのが気持ち悪いなぁと思って使っていませんでした。その点、nmcli なら結果がちゃんと GUI で表示されて便利です。


# nmcli con up id (name) … 接続
# nmcli con down id (name) … 切断

  (name) は、gnome netrwork manager で設定した「名前」そのものを入れればいいそうで、接続を試みている過程はパネル上のアイコンの変化で分かります。うちの環境ではルート権限がないと実行できなかったので、nmcli くらいならいいだろうということで一般ユーザでも実行できるようにしちゃいました。

で、作ったイージーなスクリプトというのは、

(1) VPN 接続してるかどうか確認
(2) 接続確認なら一定時間待機して (1) に戻る
(3) 断線してるなら nmcli con up を実行
(4) 成功しても失敗しても一定時間待機して (1) に戻る

…というものです。

(追記)

で、その後少し内容を変更して、接続のチェックに使うコマンドを ifconfig から nmcli con status に変更したりしました。nmcli の方がややCPUパワーを多く使うような印象です。

#! /bin/sh

# 接続をキープする vpn の id を設定
vpnid="pptphogehoge"

while :
do
    clear
    echo "--------------------------------"
    echo "keeping VPN coneected..."
    echo "--------------------------------"

    echo `date +%F" "%T`

    if nmcli con status  | grep ${vpnid} >/dev/null

    then
        echo "connected."
        echo "--------------------------------"
        echo "sleeping until next check..."
        sleep 60s
    else
        echo "disconected."
        echo "connecting..."
       
        if nmcli con up id ${vpnid}

        then
            echo "connected."
            echo "--------------------------------"
            echo "sleeping until next check..."
            sleep 60s
        else
            echo "disconnected."
            echo "--------------------------------"
            echo "sleeping until next try..."
            sleep 30s
        fi
    fi
done

(追記ここまで)

接続のチェックは VPN サーバから割り当てられたIPアドレスが見えてればいいことにしました。恥部を見られているような感覚です。

■ Creating VPN Connection on Linux (Ubuntu) using command line (PPTP Client for windows VPN Server) … これがきっかけになったページ
http://winlinuxnet.blogspot.jp/2011/07/creating-vpn-connection-on-linux-ubuntu.html

■ Ubuntuでコマンドを使ってVPNクライアント接続する方法
http://netbuffalo.doorblog.jp/archives/4056722.html

■ nmcli from Ubuntu manuals
http://manpages.ubuntu.com/manpages/maverick/man1/nmcli.1.html

■ Gnome NetworkManager を cli から制御する
http://qiita.com/matoken/items/390bf596e0c69810acd9


----
(Jul.11, 2013、 Jul.13, 2013 追記)

2011/07/12

NVR500 は RT58i の後継機

Yamaha NVR500 というルータを買いました。物欲絶賛暴走中だったのと、ぷららフォンで使っているVoIPアダプタが不調なのと、元々 RT58i が欲しいと思っていたのと。RT58i をオークションで入手しようとして1週間くらいウォッチしていたんだけど(だいたい9k~12k円くらい)、パワーアップした後継機が出ていることを知って、NTT X Store で入手しました。送料込みで 29.9k円。

ところがですよ。万能かと思われた同ルータも、泣き所がありました。「PPPoEパススルーがない」んです。メインで使っていた Buffalo WHR-HP-G301NH と Buffalo BHR-4RV を直列つなぎして使ってたんで、ねぇ。BHR-4RV は VPN サーバもクライアントも搭載してるから外したくないけど、この往年の名器も PPPoEパススルーがないから困ったものです。

結局、なんばのビックでハブを買い(1.41k円)、並列つなぎにして解決したのであります。

で、買って2週間経って、やっとまじめに設定して使い始めたのですが、確かに評判通りウェブの設定画面が変わってる…。困ったのが各PCからの PPTP 接続で、つながらないんです。ファイアウォールだろうなぁ、と思ってググってみたら、同じように困ってる方がいらっしゃって、道を見つけてくださってました。

■ RT58i,RT57iのPPTPパススルー設定 (「匠技術研究所の谷山」さん

ウェブのファイアウォールの設定「IPv4静的IPフィルタの一覧」で
フィルタタイプ「pass(ログなし)」
プロトコル「gre」
送信元アドレス「*」
送信元ポート「*」
受信先IPアドレス「192.168.100.0/24」
受信先ポート「*」 
一覧画面に戻ってから「適用」の「入」の方にチェックを入れます。

これで無事、PPTP使えるようになりました。

そうそう、NVR500 は RT58i と共通の機能についてはウェブの画面がほぼ変わらないそうで、今回のようなネット上のノウハウの蓄積がそのまま流用できてしまいます。普通の周辺機器会社にはない、腰の据わった対応です。

次は VPN クライアントの設定の中でIPアドレスやポート番号に従って通信先を振り分けられないか、勉強します。

----

追記:

NVR500のデフォルトのipアドレスは 192.168.100.1 なんですが、これを別のに変更した時に、ユーザ設定がリセットされたみたいで、確認してみたらきれいに消え去っていました。当初、VPNがつながらなくなって接続先に「設定変えた??」とか聞いたけど「別に…」という返事。まさかと思って見てみたら、そういうことでした。要注意です。

----
(Jul.12, 2011、追記:Jul.15, 2011)

楽天モバイルを台湾で使ってみた

GWに、久しぶりに台湾に赴きました。コロナ禍の間に延命していた台湾大哥大と中華電信の回線のうち中華電信の方を失効させてしまい(なぜ中華電信だけ失効したんだろう)、今回の滞在は台湾大哥大と楽天モバイルの2回線で賄うことにしました。テザリングでAndroidスマホ1台とiPad、Ma...