« [公開終了] 新型RSSリーダー「マッシュアップリーダー」 | メイン | スパムサイト作成講座20 - [番外] class=l の謎 »

2007年04月03日

[メモ]専用サーバーを VPN で接続して社内サーバーとして使う あとで読む

もう社内にサーバー置く必要ないんじゃない?とふと思ったので、データセンターの専用サーバーを社内サーバーとしてセットアップしてみました。しかもかなり古典的な方法で。で、そのときのメモ。

社内サーバーといっても、Web でアプリ動かしてファイルサーバーとして動作してるだけ、というのがほとんどだと思うので・・・。

とりあえず実験的に pptpd と samba いれて、データセンターのサーバーを Windows の エクスプローラーから秀丸で開いてみたり・・・いや、意外に便利。普通にサクサク。


メモはいろんな意味でつっこみどころ満載なんですが、実験ということでご容赦いただければ。と。
#なんで samba? とか、○○つかえばいいやん、とか…いろいろご勘弁…というかメモですから、メモ。


※注)リスク承知でなければかなりのバッドノウハウです。。。
 いまどき昔から VPN なんてルーター / FW / S..ther のお仕事ですから・・・

■サーバーを用意する

CentOS 4.4 (kernel 2.6.9) で実験。


■VPNを動作させる・・前に

VPN を動作させる前に MPPE という暗号化モジュールを組み込む必要があります。セキュリティ上の理由により。
kernel 2.6.13 以上で入ってるらしいですが、多分インストールが必要です。

といっても、簡単。

# yum install kernel_ppp_mppe

で 3つくらいインストールするか?と聞かれるので、y を押したら終了。
カーネルパッチですが、CentOS では再起動不要でした。


■pptpd を設定する

VPN には pptpd で接続します。

これもまずは

# yum install pptpd

で pptpd をインストールします。

設定を変更するファイルは 3 つ。
/etc/pptpd.conf, /etc/ppp/options-pptpd, /etc/ppp/chap-secrets です。

■/etc/pptpd.conf

多分デフォルトでうまく設定されているので、ファイルの末尾に

localip 192.168.20.100
remoteip 192.168.20.101-110

のように書けばいいでしょう。localip がサーバー側の VPN アドレス、remoteip が接続するパソコンに割り振られるアドレスです。接続台数は必要以上に多くとらない方がいいと思います。


■/etc/ppp/options.pptpd

このファイル名は /etc/pptpd.conf で設定されています。
基本的にはデフォルトのままで OK なはず。一応次のようになってるか一応確認。

refuse-pap
refuse-chap
refuse-mschap

require-mschap-v2
require-mppe-128

proxyarp
nodefaultroute

最後の nodefaultroute は VPN 接続中も Web ブラウズを快適にするためのちょっとしたコツです。(プロパティ > ネットワーク > インターネットプロトコル > 詳細設定 > 全般 > リモート・・・デフォルトゲートウェイを使う、のチェックを外すことと同義です)

■/etc/ppp/chap-secrets

ユーザー名とパスワードを設定します。
サーバー名は options-pptpd の name で設定した値と同じにする必要があります。

# Secrets for authentication using CHAP
# client server secret IP addresses
pptpduser pptpd "パスワード" *

最後の IP addresses というのは割り当てる IP アドレスのことで、アクセスを制限するとかいう意味ではありません。


■pptpd を動かす

/etc/rc.d/init.d/pptpd start

で pptpd が動きます。あとは windows から仮想プライベートネットワークとして接続すれば OK です。簡単。


■samba を設定する

まずは samba をとってきましょう。

# yum install samba

でOKです。

気休めセキュリティとして /etc/samba/smb.conf に

hosts allow = 192.168.20., 127.0.0.1

のように記述してプライベートアドレス以外からアクセスされないように設定しておきましょう。

あとは

# /etc/rc.d/init.d/smb start

で samba を起動します。

設定するファイルは /etc/samba/smb.conf ですが、なんとなく swat で設定してみることにしましょう。


■swat を使う

# yum install samba-swat

で swat をインストールします。

vi /etc/xinetd.d/swat

で、アクセス許可リストに VPN ネットワーク(設定マシンだけでも可)を追加します

only_from = 127.0.0.1 192.168.20.101

で、xinetd 再起動。

これで vpn 接続したマシンから

http://192.168.20.100:901/

を叩くと swat に接続できるはずです。

swat で password からユーザーアカウントを作成し、その後 homes あたりを設定すれば

\\192.168.20.100\(ユーザー名)

と Windows Explorer から入力すればサーバーのフォルダが見えるようになると思います。ちょっと感動。


■samba での日本語の設定

samba で日本語のファイル名を取り扱えるようにするため、以下の設定を swat で追記しときましょう。
このあたりはあまり詳しくないのですが、さくっとググって

[GLOBALS]

を選択し、

dos charset CP932
unix charset CP932

と追加。
そして SHARES でファイル共有を詳細表示で選択し、 vfs objects のところに cap と入力します。

これで日本語ファイルが 16進数文字列で保存されるようになったと思います。


■iptables の設定

このままだと netbios のポートがダダアキなので、iptables で壁を作りましょう。

Windows ファイル共有なので、念のため ポート 135 ~ 139, 445 の tcp/udp あたりを閉じます。137 は outbound も閉じておきます。

というか、全部 DROP して VPN ポートだけ許可!ですよね。

/sbin/iptables -A INPUT -p tcp --dport 1723 -j ACCEPT
/sbin/iptables -A INPUT -p 47 -j ACCEPT

という感じかと。

ちなみに iptables は上記をコマンドラインでたたいた後、/etc/rc.d/init.d/iptables save; /etc/rc.d/init.d/iptables restart で OK です。


■それからそれから

VPN 張ると何かと便利ですね。
センター側でもルーティング書いて、外側からは PPTPクライアント機能つきのルーターでも置いておけば安価にネットワーク完成です。

開発環境の一つとしてしばらく使ってみようかな、、、合宿効率がさらにアップする予感。


###と、ここまで長文書いてなんか微妙な感じもしてきた・・・いまどき○○ですよね・・・ ^^;


って、悩んでる間に、サーバーセットアップした時間より文章書いてる時間の方が長くなった。なにやってんだ・・・


ま、さくっと実験、メモ書き。微妙だけどせっかくなので晒すだけ晒しときます。。。


投稿者 aka : 2007年04月03日 22:15  / 2007年04月 / サーバー管理

トラックバック

人気ブログランキング - a++ My RSS 管理人ブログ

このエントリーのトラックバックURL:
http://133.242.136.64/mt-tb-sf.cgi/593

コメント

openvpnだね

投稿者 wonda : 日時 2007年08月03日 10:53

コメントしてください

あわせて読みたい




保存しますか?