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

CentOS6.6のIPv6を無効化する手順を備忘録として 2015年12月03日

Internet/Networking/Web Technology/Installation

とある要件でCentOS6.6のNICのIPv6を無効化する必要が生じた。というより最初からIPv6の必要はなかったから無効化しておけばよかったんだけど。

んで、参考にしたのは以下のサイトあたり。


CentOS 6でIPv6を無効にするには « smilemark blog
CentOS 6 でも /etc/sysctl.d/ は使える(ipv6 無効化とか) – Qiita
CentOS 7でIPv6を無効化する | 俺的備忘録 〜なんかいろいろ〜

この辺のサイトを見ていたが、それぞれにIPv6の無効化の仕方が違う。で、最終的に無効化はできたんだけどその手順を備忘録としてメモしておきます 。無効化出来ていない場合、IPv6での接続要求などに変わらず応答してSESSION ESTABLISHEDになるのでnetstat -an で見てIPv6アドレスが表示&ESTABLISHEDなどになってる場合はやはりうまくいってない。

/etc/sysctl.conf に以下の設定を追加します。

net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1

その後、再起動>入れてもダメ。

ハイ、次。以下を実施。

service ip6tables stop
chkconfig ip6tables off

現行のDaemonを落とすだけではダメ。

echo “install ipv6 /bin/true” >> /etc/modprobe.d/disable-ipv6.conf

vi /etc/sysconfig/network
NETWORKING=yes
NETWORKING_IPV6=no
HOSTNAME=centos
GATEWAY=192.168.1.1

NETWORKING_IPV6=no となっていることを確認。なければ追記する。

# vi /etc/sysconfig/network-scripts/ifcfg-eth0
EVICE=eth0
HWADDR=00:22:19:0C:87:B7
TYPE=Ethernet
UUID=706f5c09-52b0-4c40-a4c3-3aaa48a8508f
ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=static
IPADDR=192.168.1.2
NETMASK=255.255.255.0
GATEWAY=192.168.1.1
BROADCAST=192.168.1.255
IPV6INIT=no

IPV6INIT=no となっていることを確認。なければ追記する。

これを入れて再起動。。。ハイ。ifconfig の実行結果にもIPv6の情報は表示されないし、netstat -anでもIPv6でのConnectionは何も表示されなくなりました。とりあえずこれで大丈夫でしょう。

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~ へ続く。

Ableton Live 9とLemur w/ Live Controlの設定 2015年03月28日

Ableton Live 9でサンプリングだけでトラック制作というテーマの動画を見て、ちょっと触ってみたくなりAbleton Live 9をインストールして、iPadをAbletonのMIDIコントローラとして使おうと思い、LemurにLive Controlのモジュールをロードさせてつなげる方法をやってみたが、思いの外ややこしかったので、備忘録がてらその手順をメモしときます。

ちなみに僕の環境はMac mini/Mac OSX Yosemite 10.10.2(言語:英語)、Ableton Live 9は9.1.7(言語:日本語)の実はトライアルバージョンです。

1. 最初にまずMacにはAbleton Live 9がインストールされていること

2. iPadにApp StoreからLemurをインストール

3. 以下のURLのMac OSX用のLemur Installerをダウンロード。

https://liine.net/en/downloads/lemur

Screen Shot 2015-03-29 at 16.38.08

ダウンロードしたdmgファイルをダブルクリックして、中のInstaller.mpkgをダブルクリックしてLemurのMac用プログラムをインストール、インストールが終わったらLemur Daemonを立ち上げておく。

Untitled

4. 以下のURLからMac OSX用のLIVECONTROL MANUAL INSTALLをダウンロード。

https://liine.net//en/products/lemur/premium/livecontrol-2/
※ ややこしいのはこのURLにリンクのあるインストールマニュアルのPDFとインストーラ
に同梱されているReadmeでインストール手順が異なること。。。

Screen Shot 2015-03-29 at 16.43.19

zipファイルを展開、中の”LiveControl_2_1_31″のフォルダを、Applicationフォルダ内のAbleton Live 9のアイコンを右クリックして”Show Package Contents”を選択し、さらにContents/App-Resources/MIDI Remote Scriptsまでたどり、このフォルダ内に”LiveControl_2_1_31″のフォルダをペースト。なのでパスは

Applications/Ableton Live 9.app/Contents/App-Resources/MIDI Remote Scripts

となる。

5. iPadをUSBケーブルでMacにつなぎiTunesを立ち上げる。iTunes 上でiPadを選択して、設定でAppsを開いて下までスクロール、アプリとのドキュメント共有画面で左側のペインでLemurを選んで右のフォームに4.で展開したzipファイルの中に入っていたLiveControl_2_1_31.jzmlをドラッグ&ドロップ。

Screen Shot 2015-03-29 at 16.47.57

Screen Shot 2015-03-29 at 16.47.49

6. iPad でLemurを立ち上げ右上の設定アイコンからProjectでLiveControl_2_1_31を選択。やっとLiveControlの画面が出てくる。

7. 次にSettingsの中のMore SettingsでMIDI TARGETを

MIDI0
From: Daemon Output 0
To: Daemon Input 0

を選択する。MacにLemur Daemonが立ち上がってたら上記が選択可能になるはず。

8. Ableton Live 9の環境設定から左のメニューでMIDI Syncを選び、

コントロールサーフェス:Live Control 2 1 31
入力:Daemon Input 0
出力:Daemon Output 0
テイクオーバーモード:なし
Input: Live Control_2_1_31 input (Daemon) トラック:オン 同期:オフ リモート:オフ
Output: Live Control_2_1_31 Output (Daemon) トラック:オフ 同期:オン リモート:オフ

※ 他のMIDI Portは一応すべてオフにしてます。

これで一応Lemur on iPadとAbleton Liveが繋がりました。。。結構ややこしい。これ、英語わからん人、コンピュータ詳しくない人は場合によってはLemur購入したけど繋がらなくて泣いてる人とか居るんちゃうかな??

さてこれからまたAbleton Liveの使い方とLemurでどこまでできるのかを見ていかないといけません。。