06
--
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
--
>>
<<
--
LATEST ENTRY
CATEGORY
ARCHIVE
PROFILE
SEARCH
RECENT COMMENT
  • 【情報】Excel で スクレイピング 【ぶっこ抜き】
    縫部尚登 (06/17)
  • 【QUICKFIX】 FX自動売買への道 18 【通貨ペアの取得(SecurityListRequest)】
    ganponfx (05/05)
  • 【QUICKFIX】 FX自動売買への道 18 【通貨ペアの取得(SecurityListRequest)】
    まこ (05/05)
  • 【QUICKFIX】 FX自動売買への道 18 【通貨ペアの取得(SecurityListRequest)】
    ganponfx (05/04)
  • 【QUICKFIX】 FX自動売買への道 18 【通貨ペアの取得(SecurityListRequest)】
    ganponfx (05/04)
  • 【QUICKFIX】 FX自動売買への道 18 【通貨ペアの取得(SecurityListRequest)】
    ganponfx (05/04)
  • 【QUICKFIX】 FX自動売買への道 18 【通貨ペアの取得(SecurityListRequest)】
    ganponfx (05/03)
  • 【QUICKFIX】 FX自動売買への道 18 【通貨ペアの取得(SecurityListRequest)】
    まこ (05/03)
  • 【QUICKFIX】 FX自動売買への道 18 【通貨ペアの取得(SecurityListRequest)】
    ganponfx (05/03)
  • エクセルファイルのパスワードを忘れたら・・・
    里奈 (09/09)
MOBILE
qrcode
OTHERS
<< 【カンタン】Excel + MySQL 【データベース接続】 | top | 【MODx】XAMPP + Eclipse + ZendDebugger で MODxの内部探検【ハック】 >>
スポンサーサイト

一定期間更新がないため広告を表示しています

スポンサードリンク | - | | - | - |
【外から】ひかり電話 + OpenVPN + dyndns on Puppy Linux【内に】
Puppy Linux で OpenVPN サーバを構築する手順の続きです

ひかり電話ルータ PR-S300SE も適切に?設定して、外のネットワークから OpenVPN 暗号通信で内部ネットワークに接続できるようにしちゃいます

外部から接続するためのダイナミックDNSの設定とクライアント側の設定もしておきます
 
まずはおさらい?

Puppy を立ち上げて、OpenVPNがキチンと起動していることを確認します
前回設定済みのハズ)

・まずはネットワークデバイスの確認
ちゃんと br0 と tap0 が作成されていて、br0 にIPアドレスが設定されていること
# ifconfig
br0       Link encap:Ethernet  HWaddr 00:FF:AA:EF:02:95
          inet addr:10.10.10.222  Bcast:10.10.10.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:1992 errors:0 dropped:0 overruns:0 frame:0
          TX packets:345 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:341825 (333.8 KiB)  TX bytes:40136 (39.1 KiB)

eth0      Link encap:Ethernet  HWaddr 08:00:27:15:6B:99
          UP BROADCAST RUNNING PROMISC MULTICAST  MTU:1500  Metric:1
          RX packets:9836 errors:1 dropped:0 overruns:0 frame:0
          TX packets:345 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:4795313 (4.5 MiB)  TX bytes:40136 (39.1 KiB)
          Interrupt:11 Base address:0xd020

lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

tap0      Link encap:Ethernet  HWaddr 00:FF:AA:EF:02:95
          UP BROADCAST RUNNING PROMISC MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:1682 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:100
          RX bytes:0 (0.0 B)  TX bytes:343703 (335.6 KiB)

 


・次にネットワークポートも確認
OpenVPN の 1194 が開いていること
# netstat -anp
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 0.0.0.0:1194            0.0.0.0:*               LISTEN      3103/openvpn
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      3067/sshd
tcp        0    300 10.10.10.222:22         10.10.10.3:49894        ESTABLISHED 3110/sshd: spot [pr
Active UNIX domain sockets (servers and established)
Proto RefCnt Flags       Type       State         I-Node PID/Program name    Path
unix  2      [ ]         DGRAM                    826    1754/udevd          @/org/kernel/udev/udevd
unix  3      [ ]         DGRAM                    2691   2701/syslogd        /dev/log
unix  3      [ ]         STREAM     CONNECTED     3230   3110/sshd: spot [pr
unix  3      [ ]         STREAM     CONNECTED     3229   3115/0
unix  2      [ ]         DGRAM                    2711   2716/klogd

 

・プロセスも一応確認
# ps -ef | grep openvpn
nobody    3103     1  0 23:21 ?        00:00:00 /usr/local/sbin/openvpn --daemon --cd /etc/openvpn --config server.conf --writepid /var/run/openvpn/server.pid
root      3238  3177  0 23:58 pts/0    00:00:00 grep openvpn

 



上記のように OpenVPN サーバ側の設定が完了していることを前提とします


●クライアント用の接続証明書を準備
証明書をダウンロードしやすいように zip でまとめておく
# cd  /etc/openvpn/easy-rsa/keys/
# zip  -Dje  /tmp/client1.zip  ./client1.crt  ./client1.key  ./ca.crt
Enter password:          <- ZIP展開用パスワード
Verify password:
  adding: client1.crt (deflated 48%)
  adding: client1.key (deflated 21%)
  adding: ca.crt (deflated 45%)

# ls -l  /tmp/client1.zip
-rw-r--r-- 1 root root 3845 2009-10-29 00:31 /tmp/client1.zip


■OpenVPN に接続するクライアントのインストール&設定
クライアント側はWindows機を利用します
以下サイトより Windows用 OpenVPN インストーラをダウンロード
http://openvpn.net/index.php/open-source/downloads.html

ダウンロードしたら、インストーラを起動してデフォルトのままインストールする
以下はダウンロードからインストールの画面





ダウンロードした openvpn-2.0.9-install.exe のプロパティを更新(ブロックを解除しておく・・NTFSだけ?)












警告がでてもそのままインストールする








●証明書のダウンロード
インストールが終わったらサーバに用意しておいたクライアント証明書のZIPをダウンロードしてきて、OpenVPNをインストールしたフォルダ配下の config フォルダに展開しておく
例では C:¥Program Files¥OpenVPN¥config  

ダウンロードにはSSHで接続できるツールを利用
おすすめは FileZilla http://www.ex.media.osaka-cu.ac.jp/windows/filezilla.html

展開後




●クライアント用設定ファイルの編集
サンプルの設定ファイルをコピーして、証明書と同じフォルダに置く
 C:¥Program Files¥OpenVPN¥sample-config¥client.ovpn を
 C:¥Program Files¥OpenVPN¥config にコピーする

テキストエディタで開いて、以下のように編集
    編集後
        client
        dev tap
        proto tcp
        remote 10.10.10.222 1194
        resolv-retry infinite
        nobind
        persist-key
        persist-tun
        ca ca.crt
        cert client1.crt
        key client1.key
        comp-lzo
        verb 3

IPアドレス、ポート等はOpenVPNのサーバのアドレスに合わせてください


■OpenVPN クライアントの接続試験(ローカル)
編集した C:¥Program Files¥OpenVPN¥config¥client.ovpn ファイルを右クリックして
 [ Start OpenVPN on this config file ] を選択して接続する



開いた DOS窓にクライアント証明書を作成したときのパスワードを入力する



正しいパスワードなら、接続処理が始まり OpenVPNサーバに接続できる・・ハズ




接続出来なかった場合、クライアント設定ファイル client.ovpn  の 接続先サーバのIPアドレス、ポート、TCP/UDPの別、クライアント証明書のファイル名が一致しているか・・などを確認すること

サーバ側のログファイル /var/log/openvpn.log を確認していると接続ログが記録される
何らかのエラーが出ていないかも確認
(サーバ側のログファイルにログが記録される場合は、少なくともサーバまでは要求が届いている・・ハズなので、証明書が怪しい??)


サーバログサンプル
# cat /var/log/openvpn.log
Wed Oct 28 23:21:42 2009 OpenVPN 2.0.9 i686-pc-linux [SSL] [LZO] [EPOLL] built on Oct 13 2009
Wed Oct 28 23:21:42 2009 Diffie-Hellman initialized with 1024 bit key
Wed Oct 28 23:21:42 2009 WARNING: file '/etc/openvpn/keys/server.key' is group or others accessible
Wed Oct 28 23:21:42 2009 TLS-Auth MTU parms [ L:1576 D:140 EF:40 EB:0 ET:0 EL:0 ]
Wed Oct 28 23:21:42 2009 TUN/TAP device tap0 opened
Wed Oct 28 23:21:42 2009 Data Channel MTU parms [ L:1576 D:1450 EF:44 EB:135 ET:32 EL:0 AF:3/1 ]
Wed Oct 28 23:21:42 2009 GID set to nobody
Wed Oct 28 23:21:42 2009 UID set to nobody
Wed Oct 28 23:21:42 2009 Listening for incoming TCP connection on [undef]:1194
Wed Oct 28 23:21:42 2009 TCPv4_SERVER link local (bound): [undef]:1194
Wed Oct 28 23:21:42 2009 TCPv4_SERVER link remote: [undef]
Wed Oct 28 23:21:42 2009 MULTI: multi_init called, r=256 v=256
Wed Oct 28 23:21:42 2009 IFCONFIG POOL: base=10.10.10.230 size=11
Wed Oct 28 23:21:42 2009 IFCONFIG POOL LIST
Wed Oct 28 23:21:42 2009 client2,10.10.10.230
Wed Oct 28 23:21:42 2009 MULTI: TCP INIT maxclients=1024 maxevents=1028
Wed Oct 28 23:21:42 2009 Initialization Sequence Completed
Thu Oct 29 00:57:23 2009 MULTI: multi_create_instance called
Thu Oct 29 00:57:23 2009 Re-using SSL/TLS context
Thu Oct 29 00:57:23 2009 LZO compression initialized
Thu Oct 29 00:57:23 2009 Control Channel MTU parms [ L:1576 D:140 EF:40 EB:0 ET:0 EL:0 ]
Thu Oct 29 00:57:23 2009 Data Channel MTU parms [ L:1576 D:1450 EF:44 EB:135 ET:32 EL:0 AF:3/1 ]
Thu Oct 29 00:57:23 2009 Local Options hash (VER=V4): '3e6d1056'
Thu Oct 29 00:57:23 2009 Expected Remote Options hash (VER=V4): '31fdf004'
Thu Oct 29 00:57:23 2009 TCP connection established with 10.10.10.3:50451
Thu Oct 29 00:57:23 2009 TCPv4_SERVER link local: [undef]
Thu Oct 29 00:57:23 2009 TCPv4_SERVER link remote: 10.10.10.3:50451
Thu Oct 29 00:57:23 2009 10.10.10.3:50451 TLS: Initial packet from 10.10.10.3:50451, sid=7d7d5927 68739958
Thu Oct 29 00:57:23 2009 10.10.10.3:50451 CRL CHECK OK: /C=JP/ST=KANAGAWA/L=KAWASAKI/O=test.org/CN=test.org_CA/emailAddress=test@test.org
Thu Oct 29 00:57:23 2009 10.10.10.3:50451 VERIFY OK: depth=1, /C=JP/ST=KANAGAWA/L=KAWASAKI/O=test.org/CN=test.org_CA/emailAddress=test@test.org
Thu Oct 29 00:57:23 2009 10.10.10.3:50451 CRL CHECK OK: /C=JP/ST=KANAGAWA/L=KAWASAKI/O=test.org/CN=client1/emailAddress=test@test.org
Thu Oct 29 00:57:23 2009 10.10.10.3:50451 VERIFY OK: depth=0, /C=JP/ST=KANAGAWA/L=KAWASAKI/O=test.org/CN=client1/emailAddress=test@test.org
Thu Oct 29 00:57:23 2009 10.10.10.3:50451 Data Channel Encrypt: Cipher 'BF-CBC' initialized with 128 bit key
Thu Oct 29 00:57:23 2009 10.10.10.3:50451 Data Channel Encrypt: Using 160 bit message hash 'SHA1' for HMAC authentication
Thu Oct 29 00:57:23 2009 10.10.10.3:50451 Data Channel Decrypt: Cipher 'BF-CBC' initialized with 128 bit key
Thu Oct 29 00:57:23 2009 10.10.10.3:50451 Data Channel Decrypt: Using 160 bit message hash 'SHA1' for HMAC authentication
Thu Oct 29 00:57:23 2009 10.10.10.3:50451 Control Channel: TLSv1, cipher TLSv1/SSLv3 DHE-RSA-AES256-SHA, 1024 bit RSA
Thu Oct 29 00:57:23 2009 10.10.10.3:50451 [client1] Peer Connection Initiated with 10.10.10.3:50451



クライアントの接続を切るには DOS窓をクリックした後で F4 ボタンを押します



■ひかり電話の設定(PR-S300SE)
無事にクライアントからの接続確認がとれたら、外部から接続できるようにひかり電話ルータを設定します
ひかり電話機のルータをブラウザで開き、[詳細設定]の[静的NAT設定]を開きます
んで、宛先IPアドレスに OpenVPNサーバのIPアドレス
変換対象IPアドレスは [自分のWAN側IPアドレス]を
変換対象プロトコルは TCP
変換対象ポート は 1194 を設定します
(OpenVPNサーバの設定ファイル内容に合わせます)




ついでに現在のWAN側IPアドレスも確認しておきます
ひかり電話ルータの[情報]の[現在の状態]を開き、WAN側IPアドレスの欄を確認
メモしておきます


■OpenVPN クライアントの接続試験(外部から)
クライアントの設定ファイル client.ovpn を開き、 remote に設定したOpenVPNサーバのIPアドレスを、ひかり電話で確認したWAN側IPアドレスに書き換えます
変更前
remote 10.10.10.222 1194
変更後
remote xxx.xxx.xxx.xxx 1194


●クライアント端末を外部ネットワークに接続する
携帯電話やイーモバイル、ウィルコム、野良無線LAN等・・で、クライアント端末を外部のネットワークに接続しておきます


●クライアントからOpenVPNで内部に接続する
外部ネットワークに接続した後、ローカル接続試験と同じようにクライアントの設定ファイル C:¥Program Files¥OpenVPN¥config¥client.ovpn を右クリックして [ Start OpenVPN on this config file ] を選択して接続する

開いたDOS窓でパスワードを入力して、OpenVPNサーバに外部から接続できることを確認する

サーバログサンプル
# tail  -f  /var/log/openvpn.log

Thu Oct 29 01:29:55 2009 MULTI: multi_create_instance called
Thu Oct 29 01:29:55 2009 Re-using SSL/TLS context
Thu Oct 29 01:29:55 2009 LZO compression initialized
Thu Oct 29 01:29:55 2009 Control Channel MTU parms [ L:1576 D:140 EF:40 EB:0 ET:0 EL:0 ]
Thu Oct 29 01:29:55 2009 Data Channel MTU parms [ L:1576 D:1450 EF:44 EB:135 ET:32 EL:0 AF:3/1 ]
Thu Oct 29 01:29:55 2009 Local Options hash (VER=V4): '3e6d1056'
Thu Oct 29 01:29:55 2009 Expected Remote Options hash (VER=V4): '31fdf004'
Thu Oct 29 01:29:55 2009 TCP connection established with 999.999.999.999:1037
Thu Oct 29 01:29:55 2009 TCPv4_SERVER link local: [undef]
Thu Oct 29 01:29:55 2009 TCPv4_SERVER link remote: 999.999.999.999:1037
Thu Oct 29 01:29:55 2009 999.999.999.999:1037 TLS: Initial packet from 999.999.999.999:1037, sid=393278f3 c0d685a0
Thu Oct 29 01:30:01 2009 999.999.999.999:1037 CRL CHECK OK: /C=JP/ST=KANAGAWA/L=KAWASAKI/O=test.org/CN=test.org_CA/emailAddress=test@test.org
Thu Oct 29 01:30:01 2009 999.999.999.999:1037 VERIFY OK: depth=1, /C=JP/ST=KANAGAWA/L=KAWASAKI/O=test.org/CN=test.org_CA/emailAddress=test@test.org
Thu Oct 29 01:30:01 2009 999.999.999.999:1037 CRL CHECK OK: /C=JP/ST=KANAGAWA/L=KAWASAKI/O=test.org/CN=client1/emailAddress=test@test.org
Thu Oct 29 01:30:01 2009 999.999.999.999:1037 VERIFY OK: depth=0, /C=JP/ST=KANAGAWA/L=KAWASAKI/O=test.org/CN=client1/emailAddress=test@test.org
Thu Oct 29 01:30:03 2009 999.999.999.999:1037 Data Channel Encrypt: Cipher 'BF-CBC' initialized with 128 bit key
Thu Oct 29 01:30:03 2009 999.999.999.999:1037 Data Channel Encrypt: Using 160 bit message hash 'SHA1' for HMAC authentication
Thu Oct 29 01:30:03 2009 999.999.999.999:1037 Data Channel Decrypt: Cipher 'BF-CBC' initialized with 128 bit key
Thu Oct 29 01:30:03 2009 999.999.999.999:1037 Data Channel Decrypt: Using 160 bit message hash 'SHA1' for HMAC authentication
Thu Oct 29 01:30:04 2009 999.999.999.999:1037 Control Channel: TLSv1, cipher TLSv1/SSLv3 DHE-RSA-AES256-SHA, 1024 bit RSA
Thu Oct 29 01:30:04 2009 999.999.999.999:1037 [client1] Peer Connection Initiated with 999.999.999.999:1037
Thu Oct 29 01:30:05 2009 client1/999.999.999.999:1037 PUSH: Received control message: 'PUSH_REQUEST'
Thu Oct 29 01:30:05 2009 client1/999.999.999.999:1037 SENT CONTROL [client1]: 'PUSH_REPLY,route-gateway 10.10.10.222,ping 10,ping-restart 120,ifconfig 10.10.10.231 255.255.255.0' (status=1)
Thu Oct 29 01:30:09 2009 client1/999.999.999.999:1037 MULTI: Learn: 00:ff:bb:9c:08:e5 -> client1/999.999.999.999:1037

 
(クライアントのIPアドレスは 999.999.999.999 にマスクしてあります・・)

これが成功すれば、外部からOpenVPNサーバに接続できたと言うことなので、仮想的に内部ネットワークに参加できたことになる

あとはひかり電話の接続のたびに変わる WAN側IPアドレスをいちいち調べなくても良いように、ダイナミックDNSを利用して、IPアドレスではなく「名前」で接続できるようにすればよい

ここで失敗した場合はWAN側IPアドレスの指定が間違っていたか、ひかり電話ルータのNAT設定が上手く出来ていないということ
ひかり電話ルータのセキュリティログを確認して、外部から1194ポート宛にパケットが届いているかを確認すること

届いていなければ、クライアント側の設定を確認
届いていれば、NAT設定を確認 ですかね..



■ダイナミックDNSの設定
ダイナミックDNSとは・・名前の通りダイナミックで動的なDNS・・です
説明は先人の方が上手いので以下を参照してください
http://www.asahi-net.or.jp/~AA4T-NNGK/dyndns.html
http://www.tryhp.net/homeserver05.htm

ここでは DynDNS.com のサービスを利用することにします
他のサービスでも似たようなことが出来るはず
まず DynDNS.com  のサイトに行ってアカウントを作成します


アカウント名とパスワードとメールアドレスを入力して、アカウントを作成


メールが届くのを待つ
メールが届いたら、リンクを開いてアカウント作成完了
Your DynDNS.com Account '**********************' has been created.  You need to visit the
confirmation address below within 48 hours to complete the account creation
process:

https://www.dyndns.com/account/confirm/********************

Our basic service offerings are free, but they are supported by our paid
services.  See http://www.dyndns.com/services/ for a full listing of all of
our available services.

If you did not sign up for this account, this will be the only
communication you will receive.  All non-confirmed accounts are
automatically deleted after 48 hours, and no addresses are kept on file. We
apologize for any inconvenience this correspondence may have caused, and we
assure you that it was only sent at the request of someone visiting our
site requesting an account.

Sincerely,
The DynDNS.com Team
Dynamic Network Services Inc.




アカウント作成が完了したらログイン操作をしておく
ログイン後 [ SERVICES ]を開き、Dynamic DNS サービスを選択する



無料(Free)のDNSサービスを選択する


GetStarted を選択する



DNS名を指定して、IPアドレスを登録して、 [ Add To Cart ]ボタンを押す



登録したいDNS名を確認して、[ NEXT ]ボタンを押す
(料金は 0ドル になってます)


これで、ダイナミックDNSで利用するサーバ名が決まりました。
開いた画面の登録したDNS名を確認して、[ Activate Service ]ボタンを押すとアクティブに(利用できるように)なります


登録したサービスのIPアドレスが、ひかり電話ルータで確認したWAN側IPアドレスになっていることを確認





■ダイナミックDNSの自動更新設定
これでWAN側IPアドレスではなく、登録したDNS名でひかり電話ルータに外部からアクセスできるようになりました
しかし、ひかり電話ルータを再起動したり、接続し直したりした場合などでWAN側IPアドレスが変更されると、やっぱしDNS名では接続できなくなります
そんなことでは困るので、自動で更新するための設定を行っておきます
自動設定はツールを利用しますが、ありがたいことに DynDNS.com が配布してくれてます

DynDNS のサイトにアクセスして[SUPPORT]を開き、左のメニュー帯から[Update Clients]を選択
[ Linux/Unix Clients ]を選択して、 ddclient の Download Now! からダウンロードする



windows 側でダウンロードして OpenVPNサーバに上げても良いし、puppy から wget http://cdn.dyndns.com/ddclient.tar.gz しても良い
 
# cd
# wget http://cdn.dyndns.com/ddclient.tar.gz
--03:07:36--  http://cdn.dyndns.com/ddclient.tar.gz
           => `ddclient.tar.gz'
cdn.dyndns.com をDNSに問いあわせています... 205.234.175.175
cdn.dyndns.com|205.234.175.175|:80 に接続しています... 接続しました。
HTTP による接続要求を送信しました、応答を待っています... 200 OK
長さ: 42,034 (41K) [application/octet-stream]

100%[============================================================================>] 42,034        --.--K/s

03:07:36 (1.28 MB/s) - `ddclient.tar.gz' へ保存完了 [42034/42034]


●ダウンロードしたファイルを展開して各種設定
ダウンロードしたファイルを展開して、ディレクトリ作成、設置などを行う
以下作業は全て root で

ファイルを展開
# tar zxvf ddclient.tar.gz
ddclient-3.7.3/
ddclient-3.7.3/COPYRIGHT
ddclient-3.7.3/COPYING
ddclient-3.7.3/ChangeLog
ddclient-3.7.3/Changelog
ddclient-3.7.3/README
ddclient-3.7.3/README.cisco
ddclient-3.7.3/README.ssl
ddclient-3.7.3/TODO
ddclient-3.7.3/ddclient
ddclient-3.7.3/sample-etc_dhclient-exit-hooks
ddclient-3.7.3/sample-etc_cron.d_ddclient
ddclient-3.7.3/sample-etc_ddclient.conf
ddclient-3.7.3/sample-etc_rc.d_init.d_ddclient
ddclient-3.7.3/sample-etc_ppp_ip-up.local
ddclient-3.7.3/sample-etc_rc.d_init.d_ddclient.redhat
ddclient-3.7.3/sample-etc_rc.d_init.d_ddclient.lsb
ddclient-3.7.3/sample-etc_rc.d_init.d_ddclient.ubuntu
ddclient-3.7.3/sample-etc_dhcpc_dhcpcd-eth0.exe
#


設定ファイルのサンプルを設置、パーミッション変更、所有者変更
# mkdir -p /etc/ddclient
# cp -p ./ddclient-3.7.3/sample-etc_ddclient.conf /etc/ddclient/ddclient.conf
# chmod 400 /etc/ddclient/ddclient.conf
# chown root:root /etc/ddclient/ddclient.conf


設置した設定ファイルを編集する
/etc/ddclient/ddclient.conf を編集

編集後
        daemon=300                            
        mail-failure=root                    
        pid=/var/run/ddclient.pid       
        ssl=yes                                
        use=web, web=checkip.dyndns.org/, web-skip='IP Address'
        login=設定したアカウント名
        password=設定したパスワード
        protocol=dyndns2
        server=members.dyndns.org
        設定したDNS名


実行ファイルを設置 & キャッシュディレクトリ作成
# cp -p ./ddclient-3.7.3/ddclient /usr/local/sbin/
# mkdir -p /var/cache/ddclient/


実行ファイル( /usr/local/sbin/ddclient )を修正
ブリッジデバイスが使われる想定がされていないようなので、修正
元々 ppp0 の部分を修正して、br0 からIPアドレスを取得できるようにする
以下修正例は ddclient バージョン 3.7.3 の場合
バージョンが変わっているときは該当箇所を探して直してください

修正前
315行目: 'if'                  => setv(T_IF,    0, 0, 1, 'ppp0',               undef),

修正後
315行目: 'if'                  => setv(T_IF,    0, 0, 1, 'br0',               undef),


perl で ssl 通信をするためのライブラリインストール
# cpan
〜〜〜 いろいろ聞かれるがほぼデフォルトで、地域はアジアの日本がよいでしょう

cpan> install IO::Socket::SSL
CPAN: Storable loaded ok
Going to read /root/.cpan/Metadata
  Database was generated on Wed, 28 Oct 2009 06:27:03 GMT
Running install for module IO::Socket::SSL
Running make for S/SU/SULLR/IO-Socket-SSL-1.31.tar.gz
LWP not available
CPAN: Net::FTP loaded ok
Fetching with Net::FTP:

~~~  長すぎるので省略
DynDNS からダウンロードした WAN側IPアドレス更新ツールは perl で動くので・・
アカウント名とパスワードを生で送りたくないのでCAPNでSSL用の設定をしておく


起動確認
# /usr/local/sbin/ddclient
# ps -ef |grep ddclient
root      4193     1  4 04:13 pts/0    00:00:00 ddclient - connecting to members.dyndns.org port 443
root      4195  3177  0 04:13 pts/0    00:00:00 grep ddclient

 
ddclient を実行して、ps コマンドの結果で常駐していることを確認する
常駐が確認できればOK

起動していないようであれば、キャッシュディレクトリが作成されていること
設定ファイルのパーミッションが r--------  400 になっていること
設定ファイルの内容に不備がないことなど を確認する


マシン起動時に自動起動設定
/etc/rc.d/rc.local の最終行に以下を追加
echo -e "ddclient start ..." > /dev/console
/usr/local/sbin/ddclient

・・手抜きだけど、、いいよね



■もろもろ最終調整
これでWAN側IPアドレスではなく、登録したDNS名でひかり電話ルータに外部からいつでもアクセスできるようになりました
なのでクライアントの設定ファイルに書いてあるWAN側IPアドレス部分を登録したDNS名に修正しておきます
ついでに試験用に TCP にしておいた設定も UDP に変更しときましょう
ポート番号も変更しておいた方が安全かも?

●クライアント設定ファイルの修正
修正ファイル
C:¥Program Files¥OpenVPN¥sample-config¥client.ovpn

修正前
        proto tcp
        remote 10.10.10.222 1194

修正後
        proto udp
        remote 登録したDNS名 1194


●ひかり電話の設定修正
TCP を UDP にしたりしたので、ひかり電話ルータの設定も変更しておきます
ポート番号も修正している場合はついでにポート番号も

修正前
静的NAT設定: 変換対象プロトコル TCP

修正後
静的NAT設定: 変換対象プロトコル UDP


●サーバの設定ファイルの修正
TCP を UDP にしたりしたので、サーバの設定ファイルも変更しておきます
ポート番号も修正している場合はついでにポート番号も
/etc/openvpn/server.conf を以下のように修正

修正前
proto  tcp

修正後
proto  udp


●再起動
ここまでやればもう完了のはず
再起動後でもちゃんとOpenVPNサーバが起動するか、DynDNSのダイナミックDNSツールが起動するかを確認します
# reboot



 

以上でとりあえずは完了です
サーバを再起動したら外部ネットワークから接続して、キチンと接続できることを確認しておいてください

ひかり電話ルータを「切断しない」設定にしておけば、外部からいつでも内部ネットワークにアクセスできるようになります
証明書を持っていない人はアクセスできないセキュアな通信経路の完成です
セキュリティホールがなければ・・安全なハズ



外部から接続する人が増えたら証明書の追加を行って、
接続する必要の亡くなった人の証明書は「無効化」処理をしておけば、接続できなくなります
( # ./revoke-full   クライアント名  で無効化、更新された crl.pem をコピー設置 )



あとは、OpenVPNに誰かがログインしたらメールを管理者と利用者に送るとかすれば、「不正接続監視」になるかな・・
ま、そのうち・・


 
まこ | puppy | 23:53 | comments(0) | trackbacks(0) |
スポンサーサイト
スポンサードリンク | - | 23:53 | - | - |
Comment









Trackback
URL: