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

2016年2月14日日曜日

VPSでSoftEther VPNを使って自宅LANに外部から接続する

2016.02.18 スクリプトvpnserver.shに不備があったので修正。末尾に追記あり。

自宅(大阪の方)のインターネット環境をSoftbank Airに変えた。
ところが、Softbank Airの機器(Airターミナル)はポート開放ができないので、自宅のVPNサーバー(SoftEther VPN Server)に外から接続できなくなってしまった。
どうしたもんか、と色々調べていたら、似たような境遇の方がいて(Softbank Air導入期。VPSでVPNを使って自宅LANへアクセスしてみた。 | しま★りん.blog @ayurina)、この記事が大変参考になったので、同じような構成を組んでみることにした。
具体的には
  • VPSを借りて、そこにSoftEther VPN Serverを立てる。
  • 自宅サーバーにはSoftEther VPN Bridgeを入れて、VPS上のSoftEther VPN Serverにカスケード接続する。
という構成で、自宅LANをVPSまで伸ばそうというわけである。
外部からVPN接続する時は、VPS上のVPN Serverに対して接続しに行く。ここを経由することによって、外部からも自宅LANに入れるようになる。
構成を図に示すと、下のようになる。赤い太い線がVPNトンネル、緑の細い線がL2の論理接続を示す。
Fig.1 VPNネットワーク構成
図内の各機器の接続は、以下のようになる。
  • おうちサーバー上の仮想HUB"BRIDGE"とVPS上の仮想HUB"DEFAULT"の間は、SoftEther VPNによりL2のトンネルが形成される。
  • おうちサーバー(及び自宅内の他のデバイス。図では省略)は、仮想HUB"BRIDGE"経由でVPS上の仮想HUB"DEFAULT"とL2接続する。
  • VPSのOSは、TAPインターフェイス"tap_vpn"を介して仮想HUB"DEFAULT"とL2接続する(Linuxの場合、物理NIC"eth0"は仮想HUBと接続できない。SoftEther VPNマニュアル 3.6.9 tap デバイスの使用参照)。
  • 外部から接続する場合は、そのデバイスのVPNクライアント機能(Windowsの場合はMS-SSTP、iOSやAndroidの場合はL2TP over IPsec)で仮想HUB"DEFAULT"との間にトンネルを作って通信を行う。
細かいところは、以下の本文中で説明する。
なお、VPSにはDigitalOceanを使うことにした。

2013年5月17日金曜日

自前でWevDAVサーバを立てて、DropboxをWebDAV化する

さくら VPS に Dropbox をインストールして WebDAV 化する | 澍法雨に感動した。一言で言うと、LinuxサーバをDropboxのWevDAVゲートウェイにするという技である。記事タイトルにはさくらVPSとあるが、別にさくらVPSでなくても、普通のLinuxサーバでよい。
この手を使えば、OtixoとかDropDavとかの有料サービスを使わなくても、DropboxにWebDAV経由でアクセスできる。
WebDAVの何がイイかって、普通のDropboxクライアントアプリと違ってPCのローカルにファイルが残らないし、Proxyだって超えられちゃう。
Windows7ならWebDAVをネットワークドライブとしてマウントできるので、使い勝手もローカルフォルダと同じ。こいつぁすげえ。
早速、手持ちのCentOSサーバでやってみた。

2013年2月22日金曜日

CloudStackはCentOSベースの仮想アプライアンスと相性悪い

CloudStackにCentOS6.2ベースの仮想アプライアンスを入れて運用を始めた時の話。

まず、予備知識のおさらい。
CloudStackにCentOS6系のテンプレートを作成する際には、事前に
/etc/udev/rules.d/70-persistent-net.rules
を削除しておくのがお約束である。これをやっておかないと、テンプレートからインスタンスを作成した時に、NICを認識できなかったり、eth0のはずのNICがeth1やeth2として認識されたりと、色々な問題が起こる。
うっかり70-persistent-net.rulesを削除せずにテンプレートを作ってしまった場合、インスタンス作成後にファイルの中身を直してあげれば復旧可能である。

また、CloudStackにはインスタンスのSnapshotを取る機能があるが、そのSnapshotを復元するためには、Snapshotを元にしてテンプレートを作成し、そのテンプレートからインスタンスを作成するという手順を踏む必要がある。ここが素のHypervisorと違うところである。
すなわち、複製目的でテンプレートを作る時ばかりでなく、システム状態のバックアップを取る目的でSnapshotを取る際にも、
/etc/udev/rules.d/70-persistent-net.rules
を削除する必要がある。

で、仮想アプライアンスである。
今回私が取り扱ったそいつは、CentOSベースであるものの、好き勝手にいじれないように、CLIで使用できるコマンドはガチガチに制限されている(製品オリジナルのコマンドしか使えない)し、ファイルシステムの操作など一切できない。まあ、仮想アプライアンスって、そういうものである。
で、ファイルシステムが操作できないということは、
/etc/udev/rules.d/70-persistent-net.rules
を消したり編集することが一切できないのである。
これは困る。

実際にSnapshot作成⇒テンプレート作成⇒インスタンス作成を何度もやってみたところ、毎回結果が変わる。ほとんどの場合、NICの順番がおかしくなる(eth0とeth1が入れ替わるなど)。で、何度も試していると、たまに元通りのNICの順番になってくれることがある。なんだこの運ゲー。

以上、CloudStackと仮想アプライアンスの相性は決してよくない、というお話。

2012年9月12日水曜日

logstash 1.1.1で複数のサーバからApacheログを収集する

前回の続き。
前回は同一サーバ上のApacheログを直接読み込んでlogstashに貯め込む構成を作ったので、今回は次のステップとして、複数サーバのApacheログをlogstashで収集する構成を作ってみる。
…といっても、まずはひとつのサーバ上で試してみることとする。

公式ページのCentralized Setup with Event Parsingを参考にする。

動作させるコンポーネントとデータの流れは、こんな感じ。
Figure.1 logstashのアーキテクチャ

2012年9月11日火曜日

logstash1.1.1でApacheのログを集めてみる

先日のfluentd+MongoDBに続き、OSSのログ収集&検索ソリューション、logstashを試してみた。
前提と仕様
今回はひとまず、同一サーバ上のApacheのログを収集し検索することを目標とする。
環境はCentOS 5.5。

2012年9月7日金曜日

fluentd+MongoDBで集めたApacheログの検索システムをRailsで試作

Apacheのアクセスログをfluentdで集めてきてMongoDBに突っ込んで、Webで検索するシステムの試作品を作ったので、作業ログを残す。
WebにはRuby on Railsを使うことにした。
Ruby on Railsのインストール手順は、本Postでは省略。
前提と仕様
今回はテスト用のため、fluentdで集めるのは同一サーバ上のApacheのアクセスログのみ。
環境はCentOS 5.5。
とりあえず、検索条件としてクライアントIPアドレスと期間を指定できるようにしてみる。検索条件の入力省略も許容する。
クライアントIPアドレスには正規表現を使えるようにする。

2012年7月13日金曜日

ownCloud 4.0.4+MySQLで日本語ファイル名を扱うとクライアントアプリが落ちる現象を解決

現象のあらまし
タイトル通りなのだが、MySQLを使うようセットアップしたownCloudに対して、Windows版のクライアントアプリを利用して日本語(マルチバイト文字)を含むファイルを保存しようとすると、クライアントアプリがクラッシュしてしまう。
Figure.1 ownCloudアプリがクラッシュ

2012年7月9日月曜日

ownCloudのDBをSQLiteからMySQLに変更

dsp74118の補完庫: 自前でDropBoxもどきを作れるownCloudを入れてみた の続き。
導入した時、「少人数で使うし、DBはSQLiteでいいだろー 」と思っていたのだが、今朝になってやたらとSQLiteのアクセス制御に起因すると思われるエラーを吐きまくるようになった。
少し調べてみたが、どうもownCloud側の作り(SQLite周り)があまりよくないっぽいので、SQLiteをやめてMySQLを使うことにした。

2012年7月3日火曜日

2012年6月15日金曜日

ubuntu 11.04のgdm/Xのnolisten tcpを消す

ubuntuのgdmはデフォルトでnolisten tcpが有効なので、このままではxdmcpで接続できない。
で、こいつを無効化するのにどこをいじればよいかというと、
/usr/share/gdm/gdm.schemas
の DisallowTCP を false にする必要がある。
フォーラムにも記事があった。
[SOLVED] disabling nolisten tcp in 11.04 gdm/X - Ubuntu Forums

後は、xdmcpをEnableにして。
$ sudo vi /etc/gdm/custom.conf
[xdmcp]
Enable=true
gdmをリスタートすればよい。
$ sudo service gdm restart

2011年9月22日木曜日

2011年8月4日木曜日

Ubuntu 11.04にVMware Toolsをインストール

少しだけハマったので自分用にメモ。

■その1
カーネルヘッダのバージョンが合わないっつって

The directory of kernel headers (version @@VMWARE@@ UTS_RELEASE) does not match your running kernel (version -2.6.38-8-generic)

と怒らられるので、version.hを編集する。

#define LINUX_VERSION_CODE 132646
#define KERNEL_VERSION(a,b,c) (((a) << 16) + ((b) << 8) + (c))
#define UTS_RELEASE "2.6.38-8-generic"

と最後の1行を追加して保存。

■その2
カーネルヘッダのディレクトリに autoconf.h が無い、つって

The path /usr/src/linux-headers-2.6.38-8-generic/include is a kernel header file directory, but it does not contain the file linux/autoconf.h as expected.

と怒られるので

$ cd /usr/src/linux-headers-2.6.38-8-generic/include/linux
$ ln -s ../generated/autoconf.h .

でシンボリックリンクを作成して解決。