ずぼら社会人のてきとう伝記

その時その時の気分を何となく適当に綴っていきます。

【ラズパイ備忘録】ルータとラズパイ間でVPNを張ってみる(ラズパイ側準備編その1)

お疲れ様です。S-denです。

 

今回は題名の通りルータとラズパイ間でVPNを張ろうとしたときに、

色々分かったこと、分からなかったことを残していきます。

 

ラズパイ側のセッティングとして、Ingenious様の記事

Raspberry Pi L2TP/IPsec VPNクライアントの構築 | Ingenious

を参考にさせて頂きました。

この場をお借りしてお礼申し上げます。

 

利用想定の一例として、

 本社-支社間で何かしらのトラブルによって通信不可となったときに

 本社の人間が支社に設置済みのラズパイにリモートで接続、

 ラズパイ本体から支社のネットワーク機器にシリアル/telnet等で状態確認を行える。

といった環境を作ってみようと思っています。

 

〇環境------------------------------------------------

ラズパイ

・機種:Raspberry Pi 3 Model B Plus Rev 1.3

・OS:Raspbian GNU/Linux 9.13(stretch) armv7l

・Kernel:4.19.66-v7+

--------------------------------------------------------

 

・パッケージのインストール

ラズパイにstronGswan,xl2tpd,ike-scanをそれぞれインストールします。

pi@raspberrypi:~ $sudo apt install strongswan xl2tpd ike-scan

 

私の環境での各パッケージのversionはそれぞれ下記のとおりです。

pi@raspberrypi:~ $ ipsec --version
Linux strongSwan U5.5.1/K4.19.66-v7+
Institute for Internet Technologies and Applications
University of Applied Sciences Rapperswil, Switzerland
See 'ipsec --copyright' for copyright information.

 

pi@raspberrypi:~ $ xl2tpd -v

xl2tpd version:  xl2tpd-1.3.8

 

pi@raspberrypi:~ $ ike-scan --version
ike-scan 1.9.4

Copyright (C) 2003-2009 Roy Hills, NTA Monitor Ltd.
ike-scan comes with NO WARRANTY to the extent permitted by law.
You may redistribute copies of ike-scan under the terms of the GNU
General Public License.
For more information about these matters, see the file named COPYING.

$Id$
$Id$
$Id$
$Id$
$Id$

 

ここまでの操作は参考記事とほぼ同じでしたが、

参考記事と私の環境とで差があったせいか

この後の手順にてエラーがありましたので、それを中心にまとめます。

 

IPsecアルゴリズム確認用のシェルスクリプト作成

内容は参考記事と同じなので割愛します。

 

シェルスクリプトの実行(エラー発生その1)

作成したシェルスクリプトを実行すると以下の表示が・・・

pi@raspberrypi:~ $ sudo ./ike-scan.sh 1.1.1.1 | grep SA=
sudo: unable to execute ./ike-scan.sh: No such file or directory

エラーの内容を検索してみると「改行文字がLinux環境に適していない」とのことだったため、

改めて手打ちしてみたが結果変わらず。

 

さらに調べるとどうやらシェルスクリプトの指定場所?が間違っていたらしく、

シェルスクリプトの内容を

#!/usr/bin/sh

から

#!/bin/bash

に変更することで何とか動作しました。

 

Linux初心者のため何故これで動作できるようになったかは不明です・・・。

/bin/bashに変更したのも何となくてきとうにやっただけなので、

詳しい方いましたら教えてください・・・。

 

シェルスクリプトの実行(エラー発生その2)

シェルスクリプトを実行すると、以下の結果が表示されました。

ike-scan --trans=7/256,7,3,21 -M 1.1.1.1
ERROR: Could not bind network socket to local port 500
Only one process may bind to the source port at any one time.
ERROR: bind: Address already in use

ここで、「1.1.1.1」は自宅で作ったクローズの検証環境で割り当てた

VPNサーバ想定のアドレスです。

 

エラーの内容を見るとどうやらVPNで張るためのポート500番が既に使用されている様子でした。

しかし、「netstat」で結果を見てもポート500は表示されず・・・。

 

ただ、ポート500はIPsecでISAKMPで使用されるポートなので、

もしかしてラズパイがIPsecを張ろうとしているのでは?と思い

色々コマンドをtabキーを駆使して探してみると

sudo ipsec stop

なるものを発見。

 

pi@raspberrypi:~ $ sudo ipsec stop
Stopping strongSwan IPsec...

 

実行後に再度スクリプトを実行するとエラーを吐かずに無事に実行できました。

 

netstat」でポート500が使われているように見えなかった理由が分からない・・・。

Linux勉強しなきゃ・・・。詳しい人いましたら教えてください・・・。

 

次回からはVPNサーバ側のセッティングを進めたいと思います。

というより、VPNサーバ側のほうがかなり難しそう・・・多分無理かも?

 

以上、S-denでした。