Hello Bangkok Again 2018年07月11日

20180711-101132-2

さて、つつがなく飛行機はバンコクのドンムアン空港へ到着。イミグレもタクシーもほぼ混むことがなく、スムーズに朝5時ぐらいにラマ3の自宅に到着致しました。まだまだ早朝だったのでそこから一眠り。しかし、東京や大阪の今年の蒸し暑さを経験してからバンコクに来るとバンコクの方が全然過ごしやすい。前々から言ってるけど、バンコクもそれなりに暑いが日陰に入るとだいぶ楽なのだ。日本は日陰であろうがムシムシしていてとても暑くて過ごしにくい。

その後昼飯に自宅でバミーヘン。

20180711-124033-2

20180711-124322-5

うーん。タイの味だ。

その後は色々とバンコクからの日本のコンテンツ視聴のためのテストを。Netflixの日本の契約はそのままにしてこっちに来たけど、タイでもNetflixはすでにサービスを行なっているので同じコンテンツが見れるのかと思いきや、接続元IPかGPSかの現在地情報でコンテンツを切り替えてタイのコンテンツが配信される。日本では検索で出てこなかったタイトルが出て来たり、日本語字幕のない映画が出て来たりと内容が変化していた。契約元の国に紐づいてコンテンツを配信するのではなく、純粋に位置情報で配信内容が決まっているようです。今までにないパターンですな。なので日本のプロキシをかましたら日本のコンテンツも観ることができたので1粒で二度美味しい状態かな?

アマゾンのプライムビデオはそのままでは視聴不可。コンテンツ利用可能地域外と出るのでプロキシを噛ませる。これもプロキシで視聴可能。Youtubeも有料映画などが一部バンコクからそのまま視聴してたら見れないのでプロキシを噛ませたら利用できるようになった。

Radikoはスマホ、タブレットの場合は端末のGPSから位置情報と接続元IPアドレスのGeolocationを見ている模様。PCから聞く分にはGPSがないのでIPアドレスのGeolocation情報のみで判断している模様。一部のVPSレンタル業者のVPSでは実際にVPSが東京にあるのに大阪と認識されて大阪の局しか聞けない状態になっていた。

Radikoにプロキシ噛ませて色々と考えていたが、普通にラジオクラウドはそのままで放送が聞けた。なんだムービーウォッチメンもそのままで聞けるんじゃん、と一安心。

晩飯にはいつものイサーン鍋屋台へ。ビアリオとイサーン飯でかんぱーい。

20180711-194823-2

20180711-195720-7

yamagiwa2000.comのSSL化 2017年08月11日

サイトをホスティングしてるロリポップの無料で利用できるSSLモジュール使ってのSSL化ですが、とりあえず完了。

ロリポップのコンソールから yamagiwa2000.com のSSL保護チェックを入れる
.htaccess を編集して HTTP に来たアクセスは HTTPS に301リダイレクトする
具体的には以下を追記


RewriteEngine on
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

WORDPRESSの設定 > 一般 > WordPressアドレス、サイトアドレスの http://~https://~ に変更

とりあえずこれで大丈夫??一応Googleもこのブログの過去記事をhttpsでインデックスし始めてるからたぶんオーケー。

ここ最近ネットワーク関連の基礎を総ざらえで復習し直して以降、やっぱり楽しくなって少しずつ自分のサイトの強化やプロキシサービスのオペレーションをいろいろ改善したりしてまーす。

Apple Configurator2でApple tvにプロキシを設定する 2016年06月30日

Apple TV 2G (2010)

Apple tvにプロキシを設定するのは未だに通常の設定画面からできないのか??

Apple TV からプロキシ経由でhuluが見れるようになっていた 2013年06月03日

マニュアルを作る必要があったので、家の古いApple tv(2G)に久しぶりに火を入れた。

で、ちょこちょこいじりながらApple tvにプロキシ設定が反映されるかいろいろ確認。

が、自分のApple IDはタイのものだし、huluの日本のアカウントはもう今はないし、動作確認のしようがなかった。とりあえずプロキシサーバー側のログでApple tvがプロキシ経由でサーバと通信できてるか確認したところ、下のPDFに起こしたマニュアルの設定ならちゃんとプロキシを踏んでアクセスできているようでした。

というわけで自分の備忘録として、他にこれを必要とされる方のためにここに置いておくことにします。

Apple Configurator 2 で Apple tv にプロキシを設定する.pdf

socksサーバーをConohaのVPSにインストールする その2 2015年11月27日

google-mini-server-porn_22aug2008_7324

さてsocksサーバー構築の続きです。

しかしまた、socks5のセットアップ情報も日本語では少ない。当然使ってる人が少ないからだろう。とりあえずsocks5のサーバーとしてはdanteというパッケージが有名らしく、それを入れることにする。

Dante – A free SOCKS server
↑ Danteの本家サイト

通常CentOS6でバイナリをインストールする際に使うyumにもdanteは用意されていない。調べてみるとrpmでならバイナリが用意されているようでrpmforgeというrpmのレポジトリをyumに追加してそこからインストール。

[root@localhost ~]# wget http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.3-1.el6.rf.x86_64.rpm
[root@localhost ~]# rpm -ivh rpmforge-release-*.rpm
[root@localhost ~]# yum -y update

% vi /etc/yum.repos.d/rpmforge.repo
### Name: RPMforge RPM Repository for RHEL 6 – dag
### URL: http://rpmforge.net/
[rpmforge]
name = RHEL $releasever – RPMforge.net – dag
baseurl = http://apt.sw.be/redhat/el6/en/$basearch/rpmforge
mirrorlist = http://mirrorlist.repoforge.org/el6/mirrors-rpmforge
#mirrorlist = file:///etc/yum.repos.d/mirrors-rpmforge
enabled = 0
protect = 0
gpgkey = file:///etc/pki/rpm-gpg/RPM-GPG-KEY-rpmforge-dag
gpgcheck = 1

yum -enablerepo=rpmforge info dante*
yum -enablerepo=rpmforge install dante*

これでとりあえずdanteのパッケージはインストール完了。

あとは設定ですが、設定ファイルの構成はシンプル。基本的には/etcの下のsockd.conf と socks.confの2つのファイルをviなどで編集するだけ。さらに今回みたいにインターネット上にサーバーを配置するならユーザー認証で認証されないと接続できないようにすると思うが、基本的にsquidのbasic認証のようにユーザー名とパスワードをsocks用に別途用意するのではなく、ホストに登録されているユーザー名とパスワードを利用するのでsocksを利用するユーザーを新たに用意して、ログインシェルをnullか/sbin/nologinを割り当てておく。

基本的にsocks.confでは

route {
from: 0.0.0.0/0 to: 0.0.0.0/0 via: direct
proxyprotocol: socks_v5 # server supports socks v5.
}

このように from: x.x.x.x/x to: x.x.x.x/x でACL指定(このサーバーはインターネット上にあり、アクセス元もGlobal IPがDHCPで変更されるので特に制限はしない記述)とサーバーでサポートするプロトコルの指定。基本的にこれだけで記載した。

sockd.confは

logoutput: /var/log/sockd.log

ログの出力をファイルに指定して、

internal: x.x.x.x port = 1080
external: x.x.x.x

でPCから接続を受け付けるIP→internal、socksサーバーから出て行く通信の送信元IPアドレス→ externalで指定する。今回はinternal = external というように同じIPになった。仮想IPを割り振ってサーバーを運用してる場合でもこのinternalとexternalに同じようにどんどん併記していけばちゃんと1のアドレスから入った通信は1から出ていき、2のアドレスから入った通信は2から出て行くように動作していた。

# methods for socks-rules.
socksmethod: username none #rfc931

# methods for client-rules.
clientmethod: none

ここに後述する詳細ポリシー設定の際に使用するアクセス方法を記載しておく。ここに書いていないと後のポリシーの記述内で指定しても有効化されない。ちなみにclientmethodの記載はPCからsocksサーバまでの通信、socksmethodに関してはsocksサーバーから外部の宛先までの通信に適用される。

user.privileged: root
user.unprivileged: nobody

これらはsocksのサービスが稼働する際のユーザー権限の設定。でいいはず。

client pass {
from: 0.0.0.0/0 port 1-65535 to: 0.0.0.0/0
log: connect disconnect error
}

socks pass {
from: 0.0.0.0/0 to: 0.0.0.0/0
protocol: tcp udp
user: AAAA
log: connect disconnect error
}

後はこれらのポリシーの設定をしてあげる。先も言ったようにclient passがPCからsocksサーバーまでの通信のポリシー、socks passがsocksサーバーからアクセス先サーバーまでの通信のポリシーとなる。上記ではclient passではすべてのアドレスからすべてのアドレスへすべてのポート番号で許可して、通信のログをちゃんとファイルに出力しますという指定だけしている。

socks passも同じく通信の制限はほとんど課さず。サポートするプロトコルをtcp、udpと指定して同じくログ出力の記述。登録されたユーザーだけが使えるようにsocks pass内にmethod: username を追記して終わりかと思ってたが、なんでかうまく動作しない。数時間トライしたが、最終的にmethod: usernameではなく、user: <ユーザー名> というふうに記載したらとりあえずユーザー認証が正常に動作してくれた。

ffftpでsocksの指定をしてユーザー名、パスワードを設定してちゃんとftpサーバーに接続出来た。socksサーバーのユーザー名、パスワードを削除して接続しようとしても接続失敗するのも確認してとりあえず設定完了。

多分こんな感じでいいはずだ。。。

で、結局テストのみで最終的に使うことなく終わる。勉強する機会を与えて頂いてありがとうございました。。。これがなければ触る機会はなかったな。。。

以下参考にさせてもらいました。

danteでSocks Proxy — command not found:
SOCKSサーバ Dante インストール – moremagicの日記
↑ インストールに関して。日本語サイト。

sockd.conf(5): Dante server config file syntax – Linux man page
↑ 英語サイトだけどconfファイルのオプションの説明詳細が豊富。本家サイトのドキュメントより役に立つ。

socksサーバーをConohaのVPSにインストールする その1 2015年11月26日

server room

今月は自分でやってるVPN・プロキシ関連でインターネット経由での問い合わせがバンバン来た月だった。その中でとある方からのリクエストでクラウドのサーバーにsocks5のプロキシを立てれないか?というご要望。

「socks5?socks5?。。。そういえばブラウザのプロキシ設定の中でそのような言葉を見かけたような。。。」

SOCKS – Wikipedia

そう、個人的な記憶ではWindows / Internet Explorerのプロキシ設定や古くはNetscape、今はMozilla Firefoxなどのブラウザのプロキシ設定の項目で90年代からsocksはすでにあったように思う。20年弱インターネットに触れてきて始めてsocks5の単語を人が話しているのを聞いた(見た)。「こんなもの、誰が使ってんだ??」と思ってたがやっぱり少なからず使ってる人は居るのね。

で、ものの試しにセットアップ。Conohaというこれまた格安でVPSのインスタンスを貸し出してくれるサービスで手馴れているCentOS6.6のVPSを1つ借りてセットアップスタート。

ConoHa

しかし問題は、socks5、自分は今まで使ったことがないだけでなく、全く使い方がわからない、一般的にもどう使われてるのかわからない、という問題が。つまりどのような機能が実現されればOKなのかすら分からなかった。。。

んで、それもまたいろいろ調べて行ったらどうもsquidのようにHTTP/HTTPSのみではなくいろんなプロトコルをこのサーバーが中継してくれる。

[ PC ] <- 1 -> [ SOCKS ] <- 2 -> [ アクセス先サーバー ]

このように1と2の通信は別セッションになってて1はPCとSOCKSサーバー間、2はSOCKSサーバーとアクセス先サーバーの通信となってるところを見ると動作はsquidみたいな感じだが、役割的にはこのSOCKSサーバーを企業LANとインターネットの境界においてFirewallのような役割を持たせるようだ。昔の「アプリケーションゲートウェイ型のFirewall」のイメージか?SOCKS自体は中継のプロトコルとして定義されていてレイヤー5で動作するみたい。通信を行うクライアントのプログラムはSOCKSのプロトコルを実装している必要があるとのこと。

ファイアウォール(パケットフィルタリングとアプリケーションゲートウェイ)、DMZの仕組みや特徴について

んで調べてみるとどうやらWindowsのFTPクライアントであるffftpはFirewall経由でのFTPをサポートしていてそのFirewallにsocks5サーバーを指定できる。なのでとりあえずffftpでこのsocks5サーバーを経由して問題なくFTPでputやgetができればとりあえず動作確認完了ということにしてセットアップを試みるのであります。

長くなったんで ~その2~ へ続く。