2017年5月7日日曜日

軍艦作る 〜ウォーターライン〜

もうかれこれ10年近く前に、日露戦争の連合旗艦の三笠を作った。
100均でケースを買い、紙粘土を塗装して海を表現。


その後、これまた7〜8年前にフジミ模型 の「大和 最後の出撃直前」をつくった。


こちらも板の上に紙粘土で海を再現。

さて、久しぶりに戦艦つくるぞってことで、空母に挑戦。
タミヤのアメリカ海軍の航空母艦 ヨークタウンを作る。ほぼ1日仕事。


完成。

 

さて、折角、軍艦が揃ってきたので、一気に並べる海を作ろうと思い。
大きなボードと紙粘土を用意して、ひたすら工作。


ボードに紙粘土たっぷり使って、造形をして、これまた100均で購入した青色のスプレーとアクリル塗料の青と白をふんだんに使って海を表現。
左からヨークタウン、三笠、大和を並べた。


いいんだけど、何かパンチが足りない。
ということで、クリアラッカーで光沢を出す。
すると。
いいんじゃないんすか。波荒れてますけど。


絵の具で海っぽい色としぶきを表現して、並べた。
ありえない組み合わせだけど、模型だからOK。



本日、天気晴朗ナレドモ、波タカシ」 (日露戦争 : 明治38年 東郷平八郎)
って感じですかね。
いやー、疲れた。


徒然なるままに今日も明日も。

2017年5月2日火曜日

飛び出す絵 描いた


暇だったので、飛び出す絵を描いてみた。
絵のモデルさんは、ロンドンに行ったときにお土産で買ったビッグベン。


さささっと描いて。



ん。いいんじゃないんすか。飛び出してる? ふん?

飛び出すっぽく、少し紙を切って。


うん。いい感じ。

色を塗ってみた。100均で水彩絵の具を買ってきて。


ぐっと良くなりました。
実物とツーショット。
ナイス。


ついでに、別の飛び出すやつも。


 今日の成果物を並べてみました。



いやぁ〜。
久しぶりに結構本気で絵描きました。


徒然なるままに、今日も明日も。

2017年4月9日日曜日

MacOSターミナルからX Window

あ、そうなのね。
って感じです。

MacOSのターミナルから以下の具合でX11 port forwardingオプション(オプション -Y)を有効にしてssh接続すると、Mac側でX関連のアプリが起動できる。

mac :~ user$ ssh -Y user@example.jp
user@example.jp's password:
Welcome to Ubuntu 16.04.2 LTS (GNU/Linux 4.4.0-66-generic x86_64)

* Documentation: https://help.ubuntu.com
* Management: https://landscape.canonical.com
* Support: https://ubuntu.com/advantage

0 個のパッケージがアップデート可能です。
0 個のアップデートはセキュリティアップデートです。

Last login: Sat Apr 1 12:36:53 2017 from 10.0.0.12
user$ xeyes &
user$ firefox &
user$ fgnome-terminal &
user$

Xアプリのコマンドをたたくと、自動的にMacOS側でXQuartzが起動し、Xアプリが動き始める。
ちなみにターミナルにはうにょうにょとエラーやらワーニングやらがでるが気にせず。



2017年4月8日土曜日

我が家のiPadたち 〜iPadでssh〜

あれよあれよという間にiPadが5台になった。




左から
  • 初代iPad(16 GB ブラック MB292J)
  • 初代iPad mini(32 GB ブラック A MD529J)
  • iPad Air(16 GB シルバー MD794J)
  • iPad Air 2(16 GB ゴールド MH1C2J)
  • iPad mini 4(32GB ゴールド MNY32J)

iPadから我が家のサーバーにssh接続するために、Bluetoothワイヤレスキーボードを購入。それもなるべく安いやつを探して。 エレコムのキーボードがAmazonで1,500円弱のお手頃価格。加えてクーポンも残っていたので、750円で買う。

     


さて、ではiPad mini 4でssh。その前にまずは、我が家のGateoneに接続を試す。


が、あ!?、スペースキーに反応しない!
コマンドを打つときにスペースキーが効かないとまったく使い物にならん!。う〜〜ん。いかん。

ということで、iPad用のsshクライアントをAppStoreで。
日本語入力も必要だが、現在対応しているアプリは、「Prompt 2 - SSH クライアント・コンソール・ターミナル」のみらしく、価格が1800円。キーボードより高い!
ということで、一旦日本語入力はあきらめ「Termius - SSH Shell / Console / Terminal」をダウンロード。


ワイヤレスキーボードTK-FBP052WHのモードを iOSに切り替える。[Fn]キーと[Mode]キーを押すと切り替えができる。
Termiusを起動し、Hostsを追加。


Aliasに適当な名前を付け、UserID、Hostname、Passwordを登録。あとは、Saveして追加したホストをタップすると、RSA Keyが表示されるので、「Continue」をタップするとログイン完了。

   

背景色や文字色も変えられる。


日本語入力ができないので、サーバーにemacs導入。
emacs24のテキスト版(nox)とEmacs-lispファイルをインストールし、Google日本語入力のMozcをインストール。

user$ sudo apt-get install emacs24-nox emacs24-el
user$ sudo apt-get install emacs-mozc

次にinit.el を編集。

user$ cat .emacs.d/init.el
(require 'mozc)
(set-language-environment "Japanese")
(setq default-input-method "japanese-mozc")
(prefer-coding-system 'utf-8)

とりあえず、ファイル編集の際の日本語入力はできるようになった。



参考:http://qiita.com/HirofumiYashima/items/a0e4011a5a32d61f124b


徒然なるままに今日も明日も。

2017年3月18日土曜日

sshでVPN。やってみる。


我が家のubuntuサーバでVPN(Virtual Private Network)を試みることに。
ssh(Secure Shell)のトンネリング機能を利用したVPNの備忘録。


(1) sshの準備

sshのトンネリングでは、デバイスの設定などroot権限が必要なこととVPNを行うためのトンネリング設定をconfig ファイル(/etc/ssh/sshd_conf)に書く必要がある。
PermitRootLoginとPermitTunnelを以下に。PermitRootLoginのforced-commands-onlyってのはルートでログインはできるけど、コマンド一発叩いて終わりってものらしい。
PermitRootLogin forced-commands-only
# 次にPermitRootLogin。レイヤー2(TAP)のみを許可する場合は、
# PermitTunnel ethernet
# レイヤー3(TUN) のみを許可する場合は、
PermitTunnel point-to-point
# 両方のトンネリングを許可する場合は、
# PermitTunnel yes
今回はレイヤー3のpoint-to-pointoに設定↑。ここで、sshdの再起動
server$ service sshd reload 

(2) ssh:鍵の生成と配置

クライアント側で秘密鍵と公開鍵をssh-keygenコマンドで生成。
鍵の名前を「vpn」としてrootで実行。パスフレーズはなしで設定。
client$ ssh-keygen -f ~/.ssh/vpn
(略)
  Your identification has been saved in /root/.ssh/vpn.
  Your public key has been saved in /root/.ssh/vpn.pub.
秘密鍵「vpn」と公開鍵「vpn.pub」が生成される。

サーバーにこの公開鍵(vpn.pub)を配置する。
scpなどで、クライアント側のvpn.pubをサーバーに転送し、鍵認証設定ファイル(authorized_keys)に追記する。
server$ cat vpn.pub >> authorized_keys
server$ cat authorized_keys
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDi0BlNgdq・・・
(略)
server$ chmod 600 authorized_keys
server$ rm -fv vpn.pub

(3) 仮想ネットワークデバイスのTUN/TAP

TAPはデバイスのシミュレートで、TUNはネットワーク層のシミュレートだって。レイヤーが違うとのこと。
ubuntuはいいんですが、私のメインマシンのMacOSXはどうなんでしょう。
よくわからんが、Mac App Storeに「tuntap」なるものがあったので、とりあえずインストール。
client$ ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" < /dev/null 2> /dev/null
client$ brew install tuntap
pythonでtunを開いたり設定したりできるみたい。

That Handy Tap Interface on Mac OSX
#!/usr/bin/python
import os
while 1:
 try:
  file_path = '/dev/tap1'
  dev_file = os.open(file_path, os.O_RDWR)
  interface = 'tap1'
  while 1:
   pass
 except:
  print "tap interface is closing"
  exit()
  break
PythonでTUN/TAPを使う
#!/usr/bin/python
import os
import subprocess
tun = os.open('/dev/tun0', os.O_RDWR)
subprocess.check_call('sudo ifconfig tun0
 192.168.100.2 192.168.100.1
 netmask 255.255.255.0 up',
 shell=True)
while True:
 data = os.read(tun, 1500)
 print(data)
 os.write(tun, data)

(4) sshでこの仮想ネットワークデバイスを利用した接続設定

authorized_keysの先頭に、rootでログインしたときの設定やコマンドを登録。
特定のコマンドを実行する際には、
command="/bin/ls -l" ssh-rsa ・・・
今回はtunを使ったデバイス設定コマンド(ifconfig)と禁止事項の設定を書く。
仮想ネットワークデバイスのtun0にアドレスを設定。サーバーのアドレスを10.0.0.1にクライアント側を10.0.0.2に。
ifconfig tun0 10.0.0.1 pointopoint 10.0.0.2 # デバイス設定コマンド
no-X11-forwarding  # X11 フォワードを禁止
no-agent-forwarding # 認証エージェント転送の禁止
no-pty # 端末の割り当て禁止
これらをまとめてauthorized_keysの先頭に。ssh-rsa ・・・の直前に記載する。
server$ cat authorized_keys
no-X11-forwarding,no-agent-forwarding,no-pty,command="ifconfig tun0 10.0.0.1 pointopoint 10.0.0.2" ssh-rsa AAAAB3NzaC1yc2EAAAADAQ・・・
(略)
これでサーバー側のsshの設定は完了。

クライアント側のssh接続の際の設定ファイル(.ssh/config)にも、クライアント側のデバイス設定などを記載。
client$ cat config
Host server
  HostName server
  IdentityFile ~/.ssh/vpn
  Tunnel point-to-point
  TunnelDevice 0:0
  RequestTTY no
  PermitLocalCommand yes
  LocalCommand ifconfig tun0 inet 10.0.0.2 10.0.0.1
ssh接続の際に実行するコマンドをLocalCommandで設定。
クライアント側のtun0は当然のことながらサーバー設定の逆。(クライアント自身のアドレスを10.0.0.2にサーバート側を10.0.0.1に)

ほぼ、これで準備完了。

(5) いざ、接続

某プロバイダーに接続を変えて(一旦、外部に接続を変更)、クライアントからssh接続をrootで実行。ポートはxxxに変更。
-wオプションは、ローカルtun [:リモートtun ] クライアント側のtunデバイス番号とサーバ側のtunデバイス番号を使ったトンネリングの要求)、-vオプションでメッセージを表示。
client$ ssh -v -w0:0 server -p xxx
debug1: Reading configuration data /root/.ssh/config
debug1: /root/.ssh/config line 1: Applying options for server
debug1: Reading configuration data /etc/ssh_config
debug1: /etc/ssh_config line 20: Applying options for *
debug1: /etc/ssh_config line 102: Applying options for *
debug1: Connecting to server [aaa.bbb.ccc.ddd] port xxx.
debug1: Connection established.
(略)
debug1: sys_tun_open: /dev/tun0 mode 1 fd 5
debug1: channel 0: new [tun]
debug1: channel 1: new [client-session]
(略)
debug1: Remote: X11 forwarding disabled.
debug1: Remote: Agent forwarding disabled.
(略)
debug1: client_input_channel_req: channel 1 rtype exit-status reply 0
debug1: client_input_channel_req: channel 1 rtype eow@openssh.com reply 0
debug1: channel 1: free: client-session, nchannels 2
って感じ。
サーバー側の状況。
server$ ifconfig tun0
tun0      Link encap:不明なネット  ハードウェアアドレス 00-00-00-00-00-・・・
          inetアドレス:10.0.0.1  P-t-P:10.0.0.2  マスク:255.255.255.255
          UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1500  メトリック:1
          RXパケット:0 エラー:0 損失:0 オーバラン:0 フレーム:0
          TXパケット:24 エラー:0 損失:0 オーバラン:0 キャリア:0
          衝突(Collisions):0 TXキュー長:500 
          RXバイト:0 (0.0 B)  TXバイト:6820 (6.8 KB)
クライアント側。
client$ ifconfig tun0
tun0: flags=8851 mtu 1500
 inet 10.0.0.2 --> 10.0.0.1 netmask 0xff000000 
 open (pid 1289)
ちなみにpsコマンドでプロセスを確認すると、
client$ ps aux
USER PID  %CPU %MEM   VSZ    RSS  TT   STAT  STARTED   TIME    COMMAND
(略)
root 1289  0.0  0.1 2461144  2260 s001  S+    2:01PM   0:00.04 ssh -v -w0:0 server -p xxx
(略)
となっており、上記のifconfigで確認したクライアント側のtun0のプロセスid(pid 1289)とsshの接続コマンドのpidの一致がわかる。
で、クライアント側からpingで確認(10.0.0.2→10.0.0.1)。
client$ ping 10.0.0.1
PING 10.0.0.1 (10.0.0.1): 56 data bytes
64 bytes from 10.0.0.1: icmp_seq=0 ttl=64 time=2.212 ms
64 bytes from 10.0.0.1: icmp_seq=1 ttl=64 time=3.751 ms
64 bytes from 10.0.0.1: icmp_seq=2 ttl=64 time=2.054 ms
サーバーからも同様に(10.0.0.1→10.0.0.2)。
server$ ping 10.0.0.2
PING 10.0.0.2 (10.0.0.2) 56(84) bytes of data.
64 bytes from 10.0.0.2: icmp_seq=1 ttl=64 time=2.15 ms
64 bytes from 10.0.0.2: icmp_seq=2 ttl=64 time=89.6 ms
64 bytes from 10.0.0.2: icmp_seq=3 ttl=64 time=111 ms
とりあずpoint to pointは開通。
クライアントのルーティングテーブルを見ると、
client$ netstat -nr
Routing tables
Internet:
Destination        Gateway            Flags        Refs      Use   Netif Expire
default            192.168.0.1        UGSc           19        0     en0
10.0.0.1           10.0.0.2           UH              1        6    tun0
127                127.0.0.1          UCS             0        0     lo0
127.0.0.1          127.0.0.1          UH              3     3512     lo0
169.254            link#4             UCS             0        0     en0
192.168.0          link#4             UCS             9        0     en0
このままではまだサーバー側のネットワーク(192.168.0.0/24)にアクセスできないので、クライアントのRouting tablesにゲートウェイとしてtun0を介したサーバーアドレスの10.0.0.1を追加。
client$ route add -net 192.168.0.0/24 10.0.0.1
client$ netstat -nr
(略)
Destination        Gateway            Flags        Refs      Use   Netif Expire
(略)
192.168.0          10.0.0.1           UGSc            0        0    tun0
pingをかけると、
client$ ping 192.168.0.1
PING 192.168.0.1 (192.168.0.1): 56 data bytes
Request timeout for icmp_seq 0
Request timeout for icmp_seq 1
Request timeout for icmp_seq 2
いかん。まだ192.168.0.0側に通じてない。
サーバー側のtun0の様子をtcpdumpで見る。
client$ ping 192.168.0.1

server$ tcpdump -s0 -i tun0 -X
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on tun0, link-type RAW (Raw IP), capture size 262144 bytes
12:46:21.578871 IP 10.0.0.2 > 192.168.0.1: ICMP echo request, id 17924, seq 0, length 64
 0x0000:  4500 0054 de39 0000 4001 d1c4 0a00 0002  E..T.9..@.......
(略)
 0x0040:  2425 2627 2829 2a2b 2c2d 2e2f 3031 3233  $%&'()*+,-./0123
 0x0050:  3435 3637                                4567
12:46:22.531078 IP 10.0.0.2 > 192.168.0.1: ICMP echo request, id 17924, seq 1, length 64
 0x0000:  4500 0054 d813 0000 4001 d7ea 0a00 0002  E..T....@.......
(略)
 0x0020:  0006 ba82 0809 0a0b 0c0d 0e0f 1011 1213  ................
 0x0030:  1415 1617 1819 1a1b 1c1d 1e1f 2021 2223  .............!"#
ルーティングは効いてつながってはいる。
ってことで、クライアントの.ssh/configのコマンドにルーティング設定も加える。
client$ cat config
Host server
  HostName server
  IdentityFile ~/.ssh/vpn
  Tunnel point-to-point
  TunnelDevice 0:0
  RequestTTY no
  PermitLocalCommand yes
  LocalCommand ifconfig tun0 inet 10.0.0.2 10.0.0.1;
 route add -net 192.168.0.0/24 10.0.0.1
ただ、サーバー側がまだ足りない。natして外に出られるようにする。
iptablesでルールの設定。「enp2s0」はサーバー側(192.168.0.0/24)のインターフェース。
tun0からは制限をかけず、ESTABLISHED,RELATEDは許可ってのも設定しておく。
server$ iptables -A FORWARD -i tun0 -o enp2s0 -s 10.0.0.0/24 -j ACCEPT
server$ iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
tun0(10.0.0.0/24)から出て行くパケットをサーバーのアドレスに書き換える。
server$ iptables -t nat -A POSTROUTING -o enp2s0 -s 10.0.0.0/24 -j MASQUERADE
iptablesの様子。
server$ sudo iptables -L
Chain INPUT (policy ACCEPT)
target     prot opt source               destination         

Chain FORWARD (policy DROP)
target     prot opt source               destination         
ACCEPT     all  --  10.0.0.0/24          anywhere
ACCEPT     all  --  anywhere             anywhere             state RELATED,ESTABLISHED
(略)

server$ sudo iptables -L -t nat
(略)
Chain POSTROUTING (policy ACCEPT)
target     prot opt source               destination         
MASQUERADE  all  --  10.0.0.0/24          anywhere
iptablesの保存。一応。
iptables-save
再度、ping。
client$ ping 192.168.0.1
PING 192.168.0.1 (192.168.0.1): 56 data bytes
64 bytes from 192.168.0.1: icmp_seq=0 ttl=63 time=724.364 ms
64 bytes from 192.168.0.1: icmp_seq=1 ttl=63 time=217.941 ms
64 bytes from 192.168.0.1: icmp_seq=2 ttl=63 time=177.990 ms
いいんじゃないんっすか。
ちなみに別のMacBookで動いているWebサーバーにhttpかけてみると、
client$ telnet 192.168.0.49 80
Trying 192.168.0.49...
Connected to 192.168.0.49.
Escape character is '^]'.
GET /
<body><h1>
It works!</h1>
</body></html>Connection closed by foreign host.

OK。
いいんじゃないんっすか。
某プロバイダ経由はちょっとスピードは遅いけど、sshトンネルでvpnができた模様です。

以下のページを参考にしました。Special Thanks.


簡単に書いてみたけど、結構すったもんだ時間かかりました。勉強になった。。。


徒然なるままに今日も明日も。

2017年3月5日日曜日

無線ルーター親機交替

はやくも無線ルーターの親機が交替してしまいました。

長女の就職にともなってひとりぐらしになることに。
ネットはドコモ光を契約。

さて、無線ルーターが必要になりいろいろ考えた末、折角光回線使うんだし、我が家の親機、WHR-1166DHP3を使ってもらい、その代わり我が家の親機をグレードアップするかってことにしました。
細かく見ると、しぶいところで仕様が違うんですね。
WHR-1166DHP3の有線LANが「10M / 100Mbps(オートセンス)」に対して、WSR-2533DHP-CG」は、「LANポート:最大1000Mbps×4」だって。家庭内サーバーやNASもってると結構この違いは大きいかも。

ってことで、早速、 WSR-2533DHP-CGを購入。



ま、とにかくパワーアップ。ゴールドでしょう。やっぱり。

AirStation引越し機能 を使って、これまでのWHR-1166DHP3の設定を引き継ぎました。

でも、やっぱり途中で引っ掛かりました。
WSR-2533DHP-CGのAOSSボタン10秒間長押しして、これまで使っていた親機( WHR-1166DHP3)のAOSSボタンを押すとお引越しできると書いてあるのにできない。
ひょっとしてWPS機能ですか、ってんでWPS機能を「使用する」としたら、無事お引越し完了。

ポート変換など、必要な設定をして、無事移行完了しました。

WSR-2533DHP-CG(左)とj:comのBN-MUX BCW710J2(右)

インターネット側の速度はそれほど違いがなかったものの、ローカル側は、やっぱりギガ?

サーバー192.168.0.99へのスピードテスト

WHR-1166DHP3 WSR-2533DHP-CG
スピード(to 192.168.0.99) スピード(to 192.168.0.99)
1回目:10.379 [MB/sec] 1回目:20.672 [MB/sec]
2回目:10.744 [MB/sec] 2回目:20.258 [MB/sec]
3回目:10.635 [MB/sec] 3回目:20.689 [MB/sec]
→平均:88.800 [Mbps] 
  (10.586 [MB/sec])
→平均:172.300 [Mbps] 
  (20.540 [MB/sec])

約90Mbpsから約170Mbpsに向上。

グッバイWHR-1166DHP3。

徒然なるままに、今日も明日も。


2017年2月26日日曜日

我が家のubuntu。〜Gate One(備忘録 続編 画像ファイルの表示)〜

我が家のubuntu。〜Gate One(備忘録 続編)〜

で、gateone続編です。

 https://github.com/liftoff/GateOneのスクリーンショット

と、こう見えるじゃないですか。
この画像って何?
jpegとかが表示できるの?

っていうんで、試しました。
「jobs.jpg」なるjpeg画像を用意して。

jpeg画像のファイル

catすれば画像が表示されるようなので、早速、
    $ cat jobs.jpg
すると、

'cat jobs.jpg'を実行

あれ?
何もなし?  ふん?

何か足りない?
お友達(飲み仲間)がやってるgateoneで試すと、画像が表示される。(スクリーンショットは割愛します)

むむ?
`cat`は違わないでしょ?
gateoneの問題?
server.confにはそんな設定はないし。
ググっても出てこないというか、どう調べていいのかググり方がわからん。

Gate Oneはpythonで動いているようなので、ひょっとしてpython?
ということでpythonのラブラリの確認。
あたりを参照しつつ、 pythonを実行

    user@server:~$ python
    Python 2.7.12 (default, Nov 19 2016, 06:48:10)
    [GCC 5.4.0 20160609] on linux2
    Type "help", "copyright", "credits" or "license" for more information.
    >>>
pythonは動くますね。そりゃそうか。
で、イメージのインポートを試みる。
    >>> from PIL import Image
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
    ImportError: No module named PIL
    >>>
おっと、きました。PIL(Python Imaging Library)がないよって。
ちなみに、お友達(飲み仲間)のサーバーで試すとイメージ処理可能。
ふむふむ。そういうことかな?

ということで、 PIL(Python Imaging Library)のインストールに。
とりあえず、ググると、Pillowってのになってるらしく、pipでインストールせよ、とのことで以下通り実行すると。
    $ sudo pip install Pillow
    sudo: pip: コマンドが見つかりません

そもそも、「pip」なるコマンドはありませんと。
pipってのはpythonのパッケージ管理システムらしく、今の状態は、
    user@server:~$ python -m pip -V
    /usr/bin/python: No module named pip

ということで、pipは入ってません、ですって。
う〜ん。どんどん戻ってく。
pipってのを入れるか。以下を参照しながら
    $ sudo apt-get install python-pip python-dev build-essential
    $ sudo pip install --upgrade pip
    $ sudo pip install --upgrade virtualenv
ってことのようです。
まずは、python-pip、python-dev、build-essentialのインストール。
    user@server:~$ sudo apt-get install python-pip python-dev build-essential
    パッケージリストを読み込んでいます... 完了
    依存関係ツリーを作成しています               
    状態情報を読み取っています... 完了
    build-essential はすでに最新バージョン (12.1ubuntu2) です。

    (省略)

    364 kB を 22秒 で取得しました (16.3 kB/s)
    以前に未選択のパッケージ libpython-all-dev:amd64 を選択しています。
    (データベースを読み込んでいます ... 現在 255319 個のファイルとディレクトリがインストールされています。)
    .../python-all-dev_2.7.11-1_amd64.deb を展開する準備をしています ...
    python-all-dev (2.7.11-1) を展開しています...
    以前に未選択のパッケージ python-pip を選択しています。

    (省略)

    python-setuptools (20.7.0-1) を設定しています ...
    python-wheel (0.29.0-1) を設定しています ...
    user@server:~$
続いてpipを使って、pipをアップグレード。
    user@server:~$ sudo pip install --upgrade pip
    Collecting pip
      Downloading pip-9.0.1-py2.py3-none-any.whl (1.3MB)
        100% |████████████████████████████████| 1.3MB 105kB/s
    Installing collected packages: pip
      Found existing installation: pip 8.1.1
        Not uninstalling pip at /usr/lib/python2.7/dist-packages, outside environment /usr
    Successfully installed pip-9.0.1
    user@server:~$
と、ま、Successfullyっていうだからいいんでしょ。
    user@server:~$ sudo pip install --upgrade virtualenv
    Collecting virtualenv
      Downloading virtualenv-15.1.0-py2.py3-none-any.whl (1.8MB)
        100% |████████████████████████████████| 1.8MB 107kB/s
    Installing collected packages: virtualenv
      Found existing installation: virtualenv 15.0.1
        Uninstalling virtualenv-15.0.1:
          Successfully uninstalled virtualenv-15.0.1
    Successfully installed virtualenv-15.1.0
    user@server:~$
これもSuccessfullyってことでいいんでしょう。
さて。やっとこさPillowってのをインストール。
    user@server:~$ sudo pip install pillow
    Downloading Pillow-4.0.0-cp27-cp27mu-manylinux1_x86_64.whl (5.6MB)
    100% |████████████████████████████████| 5.6MB 33kB/s
    Collecting olefile (from pillow)
    Downloading olefile-0.44.zip (74kB)
    100% |████████████████████████████████| 81kB 1.4MB/s
    Installing collected packages: olefile, pillow
    Running setup.py install for olefile ... done
    Successfully installed olefile-0.44 pillow-4.0.0
    user@server:~$
やっと、行けたみたい?。
さてpythonで確認。
    user@server:~$ python
    Python 2.7.12 (default, Nov 19 2016, 06:48:10)
    [GCC 5.4.0 20160609] on linux2
    Type "help", "copyright", "credits" or "license" for more information.
    >>> from PIL import Image
    >>> img = Image.open("jobs.jpg")
    >>> img.info
    {'jfif': 257, 'jfif_unit': 0, 'progressive': 1, 'progression': 1, 'jfif_version': (1, 1), 'jfif_density': (72, 72)}
    >>>
うん?。いけたんじゃないっすか。
で、gateoneを再起動かな、とやっても起動しない!!!
なんだ!

    user@server:~$ sudo service gateone restart
    user@server:~$ ps auxww|grep gateone
    user@server:~$ user 8149 0.0 0.0 15256 976 pts/18 S+ 22:06 0:00 grep --color=auto gateone
ふん?
じゃ、直接gateone.pyでどうだ!
    user@server:~$ sudo /opt/gateone/gateone.py
    Traceback (most recent call last):
      File "/opt/gateone/gateone.py", line 3101, in <module>
        main()

    (省略)

      File "/usr/lib/python2.7/logging/__init__.py", line 943, in _open
        stream = open(self.baseFilename, self.mode)
    IOError: [Errno 2] No such file or directory: '/opt/gateone/logs/webserver.log'
    user@server:~$
なんじゃ?No such file or directory: '/opt/gateone/logs/webserver.log'ってか。
今までは何?
とりあえず、'/opt/gateone/logs/'を掘って、再度、直接起動。
    user@server:~$ sudo /opt/gateone/gateone.py
    [W 170305 14:58:56 gateone:2893] dtach command not found. dtach support has been disabled.
    (省略) [I 170305 14:59:55 gateone:1063] WebSocket opened (ANONYMOUS).
    [I 170305 14:59:56 web:1462] 200 GET /ssh/static/bookmarks/images/star.svg (127.0.0.1) 47.36ms
    [I 170305 15:00:31 termio:1491] Finalizing the log for pid 3084 (this can take some time).
うん?とりあえず動いた。
けれども、"dtach command not found. dtach support has been disabled."が気になる。
今度は"dtach"。なんだかよくわからんが、「screen のデタッチ機能をエミュレートするプログラム」だそうです。
ま、とりあえず
のサイトを参考に「sudo apt-get install dtach」でインストール。
で、そうこうしながら「sudo service gateone start」でやっと元通り。
    user@server:~$ sudo apt-get install dtach
    user@server:~$ sudo service gateone start
で、さてさて、画像はどうよ。ってんでgateoneにアクセスしてjpegをcat。

catでjpeg表示

OK!!
疲れた。



ほんと、徒然なるままに。今日も明日も。

無意識なるもの恐るべし!



マンションに住んでるんです。

今、回覧板を1階上のお宅に届けるんで、階段でのぼりしました。
ま、ここまでは非日常。
日常的に階段をのぼることはないのです。

階段は降りて外に行くためのもの。
のぼりは疲れるので間違いなくエレベーター。
階段をのぼるのは明らかに非日常。

で、この非日常の階段のぼりがあると、よほど気をつけていないと。。。

回覧板を置いて、考え事をしながら階段降りること数段。
気づくと一気に降りてしまってた。

いかん!、自宅に戻るのだ!
階段を降りることは、外に出ることという日常が体に染み付いているばっかりにズンズン降りてしまいました。

バカじゃん?


飛び出す絵


ベロベロに酔っぱらって、電車に乗ったことは覚えていても、どう家まで歩いたかまったく覚えていないのに、翌朝は普通に自宅で起きてパパ出勤。
最寄り駅からお風呂を出るぐらいまでの記憶がなくなるんだよね。

いつも不思議です。 帰省本能とか、そういんじゃなくて、体に染み付いてるんだよね。日常が。
無意識、恐るべし!

だから一念発起して新しいことにチャレンジします!って、そう簡単じゃないんっすよ。
うまいことエネルギーを配分しないといけないので。

エネルギーの効果的な配分できてますか?
それこそスマートグリッドか、人にも応用できるかな。


徒然なるままに。今日も明日も。

2017年2月25日土曜日

我が家のubuntu。〜Gate One(備忘録)〜


ブラウザ経由でSSH接続ができるGate Oneを入れてみた。
 https://github.com/liftoff/GateOneのスクリーンショット

以下を参照しながら、pythonとgateoneのパッケージをwget。
    user@server:$ wget https://github.com/downloads/liftoff/GateOne/gateone_1.1-1_all.deb
    user@server:$ wget https://github.com/downloads/liftoff/GateOne/python-tornado_2.4-1_all.deb
次にインストール。
    user@server:$ sudo dpkg -i python-tornado_2.4-1_all.deb
    user@server:$ sudo dpkg -i gateone_1.1-1_all.deb
起動。
    user@server:$ sudo service gateone start
/opt/gateone/server.confのportやssl、originsなどの設定を変更して再起動。
sslはなし、portは8080とした。

    user@server:$ less /opt/gateone/server.conf
    (省略)
    port = 8080
    url_prefix = "/gateone"
    pam_realm = "server.example.jp"sso_service = "HTTP"
    https_redirect = False
    # disable_ssl = False
    disable_ssl = True
    embedded = False
    origins = "http://localhost:8080;http://127.0.0.1:8080;https://server.example.jp;http://erver.example.jp:8080;http://10.0.0.100:8080;http://server.example.jp:8080"
    (省略)
ってところです。ま、適当な感じ。

Gate Oneにアクセスした様子

割とあっさりって感じ。


で、次はwebサーバー(https)を介した外からのsecureなアクセスの設定。
apacheのWeb Socket のプロキシを使うんだって。以下もDockerだけど、参考にさせてもらいました。
apacheのsecure側(443番ポート)のconfにReverseプロキシーの設定を追加して、apacheをリスタート。

    user@server:~$ cat /etc/apache2/sites-enabled/default-ssl.conf
    <IfModule mod_ssl.c>
        <VirtualHost *:443>
            ServerName server.example.jp:443
            ServerAdmin webmaster@localhost
    (省略)
            ProxyPass /gateone/ws ws://127.0.0.1:8080/ws
            ProxyPassReverse /gateone/ws ws://127.0.0.1:8080/gateone/ws
            ProxyPass /gateone http://127.0.0.1:8080/gateone
            ProxyPassReverse /gateone http://127.0.0.1:8080/gateone
            SSLEngine on
    (省略)
            DocumentRoot /var/www/html/
            ErrorLog ${APACHE_LOG_DIR}/error.log
            CustomLog ${APACHE_LOG_DIR}/access.log combined
    (省略)
        </VirtualHost>
    </IfModule>
    user@server:~$ sudo service apache2 restart
この赤字がReverseプロキシーの設定。順番が重要みたい。飲み仲間に教えてもらいながら。
Web Socketの設定を最初に書いて、その後に普通にプロキシ設定を書く感じ。
「/gateone/ws」ってのがあったら「ws://〜」ってプロトコルにして渡すんだって。

う〜ん。


htppsで接続

画像では微妙ですが、httpsによる接続成功!。これで外部から直接sshポート(22番)をたたかなくてもブラウザで自宅のサーバーにアクセスが可能に。
外部からの接続はポートフォワードの設定も必要ですが、そのことについては改めて。

で、何に使うの?と言われても。。。


徒然なるままに、今日も、明日も。

2017年2月19日日曜日

我が家のubuntu。パッケージのアップデート

我が家のUbuntuサーバーにログインすると
    macbook-air:~ user$ ssh server
    user@server's password:
    Welcome to Ubuntu 16.04.2 LTS (GNU/Linux 4.4.0-64-generic x86_64)

    * Documentation: https://help.ubuntu.com
    * Management: https://landscape.canonical.com
    * Support: https://ubuntu.com/advantage

    17 個のパッケージがアップデート可能です。
    0 個のアップデートはセキュリティアップデートです。
    user@server:~$
ってアップデート可能なんだって。

で、ですよ。
    user@server:~$ sudo apt-get update

ってやるわけです。

すると
    user@server:~$ sudo apt-get update
    ヒット:1 http://jp.archive.ubuntu.com/ubuntu xenial InRelease

    (省略)

    無視:29 http://ppa.launchpad.net/happy-neko/ps3mediaserver/ubuntu xenial/main Sources
    エラー:29 http://ppa.launchpad.net/happy-neko/ps3mediaserver/ubuntu xenial/main Sources
      404  Not Found
    3,062 kB を 25秒 で取得しました (121 kB/s)
    パッケージリストを読み込んでいます... 完了
    W: リポジトリ http://ppa.launchpad.net/happy-neko/ps3mediaserver/ubuntu xenial Release には Release ファイルがありません。
    N: このようなリポジトリから取得したデータは認証できないので、データの使用は潜在的に危険です。
    N: リポジトリの作成とユーザ設定の詳細は、apt-secure(8) man ページを参照してください。
    E: http://ppa.launchpad.net/happy-neko/ps3mediaserver/ubuntu/dists/xenial/main/source/Sources の取得に失敗しました  404  Not Found
    E: いくつかのインデックスファイルのダウンロードに失敗しました。これらは無視されるか、古いものが代わりに使われます。
    user@server:~$
なんて言うのです。パッケージのアップデート可能です、と言うわりには何やら雲行きが怪しい。
「データの使用は潜在的に危険です。」などと言われるとドキドキするわけで。
何となく見てると、 「ps3mediaserver」なるものが怪しいらしいとのこと。
どうやらサポート終了してると、こんなエラーがでるらしいので、「/etc/apt/sources.list」を見ても「ps3mediaserver」なるものは見当たらず。
「sources.list.d」なるディレクトリーを見ると、
    user@server:~$ ls -l /etc/apt/sources.list.d
    合計 24
    -rw-r--r-- 1 root root  71  2月 19 13:38 docker.list
    -rw-r--r-- 1 root root 189  1月 29 17:44 google-chrome.list
    -rw-r--r-- 1 root root 189  1月 29 17:44 google-chrome.list.save
    -rw-r--r-- 1 root root 155  2月 14 22:30 happy-neko-ubuntu-ps3mediaserver-xenial.list
    -rw-r--r-- 1 root root 393  1月 29 17:44 ubuntu-ja.list
    -rw-r--r-- 1 root root 393  1月 29 17:44 ubuntu-ja.list.save
    user@server:~$
いるではないですか。
 「happy-neko-ubuntu-ps3mediaserver-xenial.list」 ってのが。
中身をcatしてみると、
    user@server:~$ cat /etc/apt/sources.list.d/happy-neko-ubuntu-ps3mediaserver-xenial.list
    # deb http://ppa.launchpad.net/happy-neko/ps3mediaserver/ubuntu xenial main
    deb-src http://ppa.launchpad.net/happy-neko/ps3mediaserver/ubuntu xenial main
    user@server:~$
ってことですので、2行目のdeb-srcをコメントアウトすれば、めでたしめでたしってことがわかりました。
    # deb-src http://ppa.launchpad.net/happy-neko/ps3mediaserver/ubuntu xenial main
改めて「apt-get update」と「apt-get upgrade」を実行してアップデート完了。

また、以下のように保留になったとき。
    user@server:~$ sudo apt-get upgrade
    パッケージリストを読み込んでいます... 完了
    依存関係ツリーを作成しています
    状態情報を読み取っています... 完了
    アップグレードパッケージを検出しています... 完了
    以下のパッケージは保留されます:
    python-tornado
    アップグレード: 0 個、新規インストール: 0 個、削除: 0 個、保留: 1 個。
    user@server:~$

apt-get -s dist-upgrade とすると、どのパッケージが新規インストール、アップグレード、削除なのかなどが表示される。
    user@server:~$ sudo apt-get -s dist-upgrade
    パッケージリストを読み込んでいます... 完了
    依存関係ツリーを作成しています
    状態情報を読み取っています... 完了
    アップグレードパッケージを検出しています... 完了
    以下のパッケージが新たにインストールされます:
    python-pycurl python-pymysql
    以下のパッケージはアップグレードされます:
    python-tornado
    アップグレード: 1 個、新規インストール: 2 個、削除: 0 個、保留: 0 個。
    Inst python-pymysql (0.7.2-1ubuntu1 Ubuntu:16.04/xenial-updates [all])
    Inst python-pycurl (7.43.0-1ubuntu1 Ubuntu:16.04/xenial [amd64])
    Inst python-tornado [2.4-1] (4.2.1-1ubuntu3 Ubuntu:16.04/xenial [amd64])
    Conf python-pymysql (0.7.2-1ubuntu1 Ubuntu:16.04/xenial-updates [all])
    Conf python-pycurl (7.43.0-1ubuntu1 Ubuntu:16.04/xenial [amd64])
    Conf python-tornado (4.2.1-1ubuntu3 Ubuntu:16.04/xenial [amd64])
    user@server:~$
で、この保留パッケージをインストールするには、apt-get dist-upgrade を実行する。
    user@server:~$ sudo apt-get dist-upgrade



    user@server:~$ sudo apt-get -s dist-upgrade
    パッケージリストを読み込んでいます... 完了
    依存関係ツリーを作成しています
    状態情報を読み取っています... 完了
    アップグレードパッケージを検出しています... 完了
    アップグレード: 0 個、新規インストール: 0 個、削除: 0 個、保留: 0 個。
    user@server:~$

いやはや、徒然なるままに、今日も、明日も。

2017年2月14日火曜日

【旅日記シリーズ】 2012年ロンドンの旅

ロンドン日記

もう5年も前になるが、2012年11月に時間がとれたので、直前にオリンピックで盛り上がったロンドンへ。
3泊5日の弾丸お散歩ひとり旅でした。


11月5日(月)
 
7時40分に自宅を出て、11時45分の便でロンドンへ。 トイレ横の一番後ろの席で隣も人がいなく快適な旅。
12時間の空の旅を終え、現地時間の14時45分ロンドン到着。入国審査で30分以上待たされたが、簡単に目的と帰国日、他国へは行かず日本に帰ることを伝え、難なく入国。

スーツケースを持って外に出ると今回の旅の手配をした旅行会社がお出迎え。とりあえず一服。気温は10度ぐらい。ホテルに17時半頃に着く。

今回宿泊したHotel Ibis London Earl's Court

ホテルで旅行会社の説明を聞き、一旦部屋に荷物を置いてから、ふらふらとアールズコート(Earls Court)方面へ。さすがに寒かった。夜はモモヒキが必要か。

 ホテルからアールズコート方面へ

バーガーキングがあったのでワッパーセット(6.79ポンド)を食べる。
19時にホテルに戻って、帰国便のWebチェックイン。行きの便で気を良くして柳の下の2匹目のドジョウを狙って同じ席を確保。その後、お風呂に入る。

Hotel Ibis London Earl's Courtの部屋

部屋のインターネットは低速でかつセキュア接続(https)も使えなかったため、帰りの便のWebチェックインは自分のスマホのテザリングで。高速ネットは有料の模様。
ホテル近所の24時間ショップでビールと水を購入。2.25ポンド。
で、21時半ごろ、日本時間はもう朝、飛行機でもあまり寝ていないので眠い。ベッドに入る。



11月6日(火)
 
朝、コンチネンタル朝食(乾きもの、パン、コーヒー)を食べる。クロワッサン、トースト、シリアル、パイナップル、桃など。
8時半。散策開始。 まず、徒歩でバッキンガム宮殿を目指す。約5キロ、1時間で到着。11時半から衛兵交代があるとのこと。ビッグベンあたりに行って戻ることに。

英国名物の赤い電話ボックス


街並み


ビッグベン(ウェストミンスター宮殿、国会議事堂)、ウェストミンスター寺院をみる。その後、ホース・ガーズで近衛兵の交替式を途中までみる。
11時半にバッキンガム宮殿に戻ると今日は交替式をやらないとのことがっかり。

バッキンガム宮殿

ロンドンはこれでしょー

ホース・ガーズ 近衛兵の交替式

仕方がなくウェストミンスターまで戻り、アビーロードへ。1日周遊券(7ポンド)を買い地下鉄で。St. John’s Woodまで。アビーロードスタジオ前、やはり写真をとっているグループあり。同じように写真をとる。

これも定番ね。The Beatles 「Abbey Road」ジャケットの横断歩道


Abbey Road スタジオ

少々足も痛み、歩く予定を変更して、地下鉄でRegent’s Parkまで。ピカデリーサーカスまで歩く。途中サンドイッチとコーラで昼食。5ポンドぐらい。
Apple Storeに入る。Abercrombie & Fitchにも入る。ただのウィンドウショッピング。というところで小雨がちらほら。Leicester Squareまで歩いて、地下鉄でアールズコートに戻り、ホテルまで歩いてもどる。途中にバドワイザー(2ポンド)購入。15時ごろ。

Apple Store

少し休んで16時ごろ今度はホテルの近くのバス停から2階建てバス(430番)に乗ってSouth Kensingtonまで。そこから地下鉄でピカデリーサーカスまで。
ブランドショップの集まるボンドストリートを歩き、ピカデリーサーカスに戻って三越を見学。ちっぽけな百貨店だけれども土産は買えるかも。

 ボンドストリートあたり

夕飯を中華街で食べる。麻婆豆腐とライス。青島ビールを二本。チップ込みで21ポンド。
いい加減足も痛いのでホテルに戻る。地下鉄でピカデリーサーカスからSouth Kensingtonまで行って2階建てバスでホテルの近くまで(74番)
20時前にホテルについて、風呂に入り、ビールとジャックダニエルコークを買って(5ポンド)飲む。もう、眠い。10時半にベッドに入る。



11月7日(水)

朝食を食べたあと、8時半頃に出て、歩いてケンジントン宮殿に向かう。意外にアールズコート駅が近いことがわかる。風情のある住宅街を通り抜け30分ほどで到着。まぁ宮殿って感じ。

 ケンジントン宮殿

向かいにあるアルバートホールを見ながら科学博物館へ。いかにもイギリスって感じのワットの蒸気機関とか重量級のものが数多く展示されていた。ただ遊べるものはあまりなかったので50分程度見て回って終わり。
サウスケンジントンからハイドパークコーナーまで地下鉄に乗り、バッキンガム宮殿の衛兵交替式を見る。人だかり。とりあえず映像にも納め、長くなりそうだったので、適当に去る。

 バッキンガム宮殿の衛兵交替式

グリーンパーク駅からキングスクロス駅に。ハリーポッターのカートがホームの中にあると思い中に入るがみあたらず。するとホームではなく、改札の手前にあることがわかり、記念撮影。 トマトとチーズのパンとコーラで昼食5ポンド。

写真中央に見えるのがカート

ハリーポッターのカートを近くで撮影

大英博物館をめざし、ホルボーン駅へ。14時ごろから大英博物館で1時間程度。さすがに豊富。さて、今度はイーストンスクエアから地下鉄に乗ってバンクまで。銀行の壮大さを見ながら、おそらくマラソンコースになったであろう通りを歩き、モニュメント駅からタワーヒルへ。ロンドン塔をみながら一服してからタワーブリッジへ。修学旅行生を見かける。

大英博物館
 石畳の街並み

タワーブリッジ

そろそろお土産のマグネットを買おうお店に入り、適当なマグネットを見つける。
さて、財布取り出そうとリュックをごそごそしても、ない!、ない!、あせる。
リュックの中身を近くのテーブルぶちまけてさんざん探すもない!。

あせる。

タワーヒル地下鉄の駅まで走り、ガードウーマンに「Wallet、Wallet」と言うも見つからず。

大事件発生。財布をすられた!!!

とりあえずワンデーチケットはあったので、ナショナルギャラリーをあきらめ、ピカデリーサーカスの三越へ。JCB、JTBの窓口で相談。2万円の日本円と100ポンドぐらいなくなる。
おそらく大英博物館でプロの仕業であろうとのこと。
 大英博物館で調子に乗って写真を撮っているときにスラれたか。怖いっす。

こんな写真を撮っている時かな。。。

とりあえず、キャッシュカードとクレジットカードは止める。他のカードもあったが、それは自分でやれとのこと。ホテルのキーも連絡をしてもらう。とりあえず無一文のため、泣き言を言ってジュースとお菓子と水をもらう。国際送金サービスのウエスタンユニオンを紹介してもらう。

警察に行って盗難届けを出して、電話を借りて残りのカードの取引を止める。
ホテルにもどり家に電話。メール。さんざん。夕食なし。


ロンドン日記(完)


徒然なるままに、今日も、明日も。