Quantcast
Channel: pslaboが試したことの記録
Viewing all 469 articles
Browse latest View live

AWSやGCEの無料枠でmastodonを立てるための情報収集

$
0
0

とりあえずのメモ。とは言っても、すでに誰かがやっていることの後追いでしか無いわけだが。

ポイントは、無料枠のインスタンスではビルド時のメモリが足らんので、スワップを確保せねばならんことだろうか。

リファレンスの情報は、たとえばこんなあたり。

qiita.com

translucens.hatenablog.jp

ただしDockerで立てるのは内部構造がわかりづらい。そういう意味では、こちらの記事の方が参考になるかも。 https://lithium03.info/mastodon/index.html

自分がやってみた場合の手順は別途ログをまとめる予定。とりあえずはDockerで平文のサーバが稼働するところまでは来ている。あとはSSL/TLSの処理をLBに載せるのか、それとも自力で扱うか。自力で扱うにしても、Dockferの中のWebサーバでやるのか、それともDockerの外側にreverse proxyを立てるのか、など、方法はいろいろ。


作業用のデスクトップPCにIntelAMTの脆弱性CVE-2017-5689が見つかったようなので対処するテスト

$
0
0

Twitterでこういうのを見かけたので、

ためしに 127.0.0.1:16992 してみたら、 f:id:pslabo:20170508143918p:plain

はい、アウトですね。

ここらへんの記事を読むと、Intelが配布するツールで本件の影響の有無を確認できるとか。

japan.cnet.com

ダウンロードのページはこちらだそうです。 downloadcenter.intel.com

そこでダウンロードしてツールを実行してみた。 f:id:pslabo:20170508144659p:plain

はい、完全にアウトですね、本当にありがとうございます。さて、このツールで案内されているURLの記事を見ると、OEMベンダー経由でファームウェアのアップデートの提供を受けるか、または INTEL-SA-00075 Mitigation Guide を読んで軽減策を実施しろ、と書いてある。

f:id:pslabo:20170508144223p:plain

しかし手元のの機材向けにはファームウェアのアップデートがリリースされていないようなので、軽減策を実施することにしてみる。英語の文書をとりあえず流し読みしてみると、LMS (Local Managemanet Service) の機能を止めるには、以下のように実行しろ、と書いてあるようだ。

sc.exe config LMS start=disabled

なお、オリジナルの文書は単に sc と書かれているけど Windows10 1703 以降のように PowerShellがデフォルトな環境では sc だと別の処理が動いてしまうから、この手の文書には拡張子を含めたコマンドを書いて欲しいものだと思う。

さて、これを実行したら再起動して、前述のURLに再度アクセスしてみる。 f:id:pslabo:20170508145748p:plain

とりあえずサービスは止まったようだ。これで安心してよいのかどうかはイマイチ分からんけど。

AWSやGCEの無料枠でmastodonを立てるための情報収集

$
0
0

とりあえずのメモ。とは言っても、すでに誰かがやっていることの後追いでしか無いわけだが。

ポイントは、無料枠のインスタンスではビルド時のメモリが足らんので、スワップを確保せねばならんことだろうか。

リファレンスの情報は、たとえばこんなあたり。

qiita.com

translucens.hatenablog.jp

ただしDockerで立てるのは内部構造がわかりづらい。そういう意味では、こちらの記事の方が参考になるかも。 https://lithium03.info/mastodon/index.html

自分がやってみた場合の手順は別途ログをまとめる予定。とりあえずはDockerで平文のサーバが稼働するところまでは来ている。あとはSSL/TLSの処理をLBに載せるのか、それとも自力で扱うか。自力で扱うにしても、Dockferの中のWebサーバでやるのか、それともDockerの外側にreverse proxyを立てるのか、など、方法はいろいろ。

RADStudio/Delphi/C++Builder向けの仮想マシン容量を節約するためにNTFS圧縮してみる

$
0
0

マルチプラットフォーム向けの開発環境では、RAD Studio/Delphi/C++BuilderでもXamarinでも、ディスク使用量が大きいことが悩ましいです。

たとえば、手元の環境でRAD Studio をフルフルにインストールした手元の環境では、ディスクをコレくらい消費します。

f:id:pslabo:20170510101535p:plain

これはつらい。

そこで、NTFS圧縮をピンポイントで設定して、ディスクの空きを増やすことを試みてみます。

実施後の状態はこんな感じ。おお、なんと空き領域が20GB以上も増えました。

f:id:pslabo:20170510101551p:plain

違いをもう少し掘り下げてみる。

何がどのように変わっているかというと……NTFS圧縮を適用する前はこんな状態。 f:id:pslabo:20170510101603p:plain

NTFS圧縮をかけたらこんな状態。 f:id:pslabo:20170510101609p:plain

実際にやったこと

安直な方法は C: 全体にNTFS圧縮を適用することですが、これはやめました。

そしてこんな感じで圧縮してみました。なお、compact.exe /compactos:always は Windows10 で利用できるオプションです。

compact.exe /compactos:always
compact.exe /C /S:"C:\Program Files (x86)\Embarcadero" /I
compact.exe /C /S:"C:\Users\Public\Documents\Embarcadero\Studio" /I
compact.exe /C /S:"%HOMEPATH%\Documents\Embarcadero" /I

この設定によるリスクは?

一般論としてNTFS圧縮はデータベースのデータ保存領域には適用しないほうがよいです。データベースが壊れるという事例がググるといろいろ出てきます。

また、ビルドの速度は落ちるはずですが、厳密には検証していません。

ここらへんのリスクを自己責任として許容できるなら、試してみるのもよいかと。

Windows PC のディスク使用量の時系列変化を Bash on Windows 上のワンライナーで記録してみる。

$
0
0

とある処理でディスクの使用量がどのように変化するかを記録する必要が出てきたので、Bash on Windowsワンライナーでやってみることにします。

まずはディスク使用量といえば df コマンド。Bash on Windowsで実行すると、こうなります。

$ df
Filesystem     1K-blocks      Used Available Use% Mounted on
rootfs         236091388 152891880  83199508  65% /
data           236091388 152891880  83199508  65% /data
cache          236091388 152891880  83199508  65% /cache
mnt            236091388 152891880  83199508  65% /mnt
none           236091388 152891880  83199508  65% /dev
none           236091388 152891880  83199508  65% /run
none           236091388 152891880  83199508  65% /run/lock
none           236091388 152891880  83199508  65% /run/shm
none           236091388 152891880  83199508  65% /run/user
C:             236091388 152891880  83199508  65% /mnt/c
D:             937560060 865705100  71854960  93% /mnt/d
E:              12347388  10928952   1418436  89% /mnt/e
root           236091388 152891880  83199508  65% /root
home           236091388 152891880  83199508  65% /home

なるほど、Bash on Windowsだと、Windowsのドライブは C: とかで見えているわけですね。

ならば、df の出力を awkでフィルタしてみよう。こんなふうに。

$ df | awk '$1 == "C:" { print systime(),$2,$3,$4 }'
1494572754 236091388 152891884 83199504

これで UNIX秒、ディスク容量, 使用量, 空き容量がとれました。

あとは、これをずーっと実行したいので、while ループにしつつ、10秒ごとに記録するようにしてみる。

$ while : ; do df | awk '$1 == "C:" { print systime(),$2,$3,$4 }' ; sleep 10 ; done
1494572758 236091388 152891884 83199504
1494572768 236091388 152891884 83199504
1494572778 236091388 152891884 83199504

OK、こんなもんですね。あとは適当なファイルにリダイレクトすればよい。tee [ファイル名] とすれば、ファイルに保存しつつ表示してくれるので、さらによし。

WannaCrypt対策としてWindowsXP向けにリリースされたパッチを入れてみる

$
0
0

WannaCrypt向けのパッチがWindowsXP向けにもリリースされたということなので、ソフトウェアの旧バージョンの動作確認用に仮想マシンで作っておいたWindowsXPに適用しておくことにする。

なお、このXPはVMware WorkstationでNATのネットワークに接続しているので、LANの他のノードからのパケットは基本的に届かない構成です。また、古いソフトウェアの検証のみに使っており、普段はシャットダウンした状態で保存している環境です。

では、まずは日本語の一次情報をチェック!

blogs.technet.microsoft.com

なるほど、Windows Updateカタログ Microsoft Update Catalogで配布している、と。ならば実際にアクセスしてみよう。

f:id:pslabo:20170515082116p:plain

Windows XPのInternet Explorer8では表示できなかった!

ではWindows Updateを試してみると……

f:id:pslabo:20170515082201p:plain

そもそもWindowsUpdateにもつながらんやんけ! 今は Windows Updateも封じられているんですかねえ。それともたまたま?

というわけで、別のマシンでWindows Updateカタログにアクセスしてみよう。 f:id:pslabo:20170515082321p:plain

これやな。

ダウンロードを押すと、こんなページが出る。 f:id:pslabo:20170515082736p:plain

これをダウンロードして実行すればよいわけですね。

というわけで、一応対策完了。 f:id:pslabo:20170515082932p:plain

RaspberyPi3で携帯用のWiFiのアクセスポイントを作るためにOpenWRT互換のLEDEをインストールしてみる

$
0
0

以前にこういう記事を書いていたのですが、このときは WPA2-EAP向けのパッケージが見当たらなかったので、一旦はLEDEの導入を断念しています。

pslabo.hatenablog.com

まあしかし、LEDEが動くなら、出張の際にホテルのLANにつける携帯用WiFiアクセスポイントに仕立ててみるのはアリなので、あらためて設定してみることにします。

使うのは当然ながらRaspberry Pi3ですので、本体やmicroSDなどの必要な部材は揃えておいた上で作業にとりかかります。

なお、Raspberry Pi Zero W でもイケるとは思いますけど、手元に機材が無いので未検証です。

イメージの入手とmicroSDへの焼きこみ

2017/5/14時点では以下のURLからRaspberryPi3向けのイメージが入手できます。 https://downloads.lede-project.org/releases/17.01.1/targets/brcm2708/bcm2710/

gzip形式で圧縮されていますから、gunzip などを使って展開します。シェル上でやるならこんな感じ。

$ cd Downloads/

$ ls lede-17.01.1-brcm2708-bcm2710-rpi-3-ext4-sdcard.img.gz
lede-17.01.1-brcm2708-bcm2710-rpi-3-ext4-sdcard.img.gz

$ gunzip lede-17.01.1-brcm2708-bcm2710-rpi-3-ext4-sdcard.img.gz

$ ls lede-17.01.1-brcm2708-bcm2710-rpi-3-ext4-sdcard.img
lede-17.01.1-brcm2708-bcm2710-rpi-3-ext4-sdcard.img

その他、7-zipなどで展開してもよいでしょう。展開後のイメージは dd などで microSDHC に焼きます。

microSDからの起動

microSDをRaspberryPi3に装着して起動させるだけです。なお、RaspberryPiのNICは設定用のPCに接続しておいてください。既存のLANに接続してはダメです。LEDEの初期状態では、IPaddress = 192.168.1.1 かつ DHCPサーバが有効な状態となっていますので、既存のLANに接続すると問題を引き起こします。したがって、設定用のPCと直結しておく必要があるのです。

パスワード設定

LEDEへのブラウザからのログインは http://192.168.1.1/にアクセスします。 するとインストール直後の状態ではパスワードなしでログインできるようです。 f:id:pslabo:20170515225815p:plain

そこでまずはパスワードを設定することにしましょう。ログイン後の画面で System → Administraton を選択します。 f:id:pslabo:20170515230555p:plain

するとパスワード設定用の画面が出ているかと思いますので、ここでパスワードを入力します。 f:id:pslabo:20170515225844p:plain

画面の最下部の Save & Apply をクリックするとパスワードが設定されます。 f:id:pslabo:20170515230654p:plain

無線LANの有効化

今回の設定ではNICはWAN側にして出張先のホテルのLANに繋ぐ想定です。

従って以下のような設定を作ります。 - WiFiをLAN側に収容し、LAN側はDHCPサーバとする。 - NICはWAN側に収容し、WAN側はDHCPクライアントとする。

しかしLEDEの初期状態ではWiFiは有効化されていません。これはセキュリティのことを考えると極めて正しい設定なのですが、NICはあくまでWANポートのつもりなので、いつまでもNICから設定を行うわけにもいきません。

そこで、さっさとWiFiを有効化してしまうことにしましょう。

この設定は Network→Wireless から行います。 f:id:pslabo:20170515230712p:plain

すると SSID = LEDE というエントリがありますが、これは無効化されています。そこでまずは無線側の設定を調整します。 f:id:pslabo:20170515230737p:plain

国設定を日本にして、Wireless Security で WPA2-PSK を選択します。また、Key も設定します。SSIDをデフォルトのLEDEから変更したい場合も適切に設定します。設定が済んだら Save & Apply して、Back to Overview します。 f:id:pslabo:20170515230805p:plain

あとは Enableをクリックすれば無線が有効になりますので、実際に接続できることを確認します。 f:id:pslabo:20170515230828p:plain

NICを WAN 側に割り当てる

WiFI側から接続できるようになったら、NICをWAN向けの設定に変更します。

まずは Network → Interfaces を選びます。 f:id:pslabo:20170515230947p:plain

初期状態では LAN だけが存在していますので、Add New Interface を選択します。 f:id:pslabo:20170515231035p:plain

インタフェース名は wan で DHCP client にしておきます。また、following interface として eth0 を選択しておきます。 f:id:pslabo:20170515231055p:plainf:id:pslabo:20170515231123p:plain

なお、インタフェース lan には eth0 が含まれていますので、lan の設定から eth0 を外しておきます。 f:id:pslabo:20170515231142p:plainf:id:pslabo:20170515231148p:plain

LAN側ネットワークアドレスを変える

さらに LAN 側のIPアドレスをデフォルトの192.168.1.1 から別のネットワークアドレスに変えておきます。たとえばフレッツ光のレンタルルータは内部アドレスが192.168.1.0/24 と LEDE のデフォルトのアドレスと同じネットワークアドレスを使っています。これでは通信が正しく行えませんので、全く別のアドレスに変えます。

ここでは 192.168.4.1 に変更してみました。新しい設定は Save & Apply を押したらすぐに有効になります。 f:id:pslabo:20170515231430p:plain

管理UIの言語を日本語にする

英語が不得意な方にとって、管理UIが英語であることは非常にストレスになります。OpenWRTヤLEDEは管理UI向けの日本語リソースも配布されていますので、これをインストールすることで日本語のUIになります。

まずは System→Softwareを選択し…… f:id:pslabo:20170515231841p:plain

LEDE向けのソフトウェアパッケージのリストをダウンロードします。 f:id:pslabo:20170515232021p:plain

なお、このリストは LEDE をシャットダウンやリブートすると消えてしまうので、ソフトウェアメンテナンスを行う度にパッケージリストのダウンロードが必要です。

パッケージリストのダウンロードが完了したら、Filter に “luci-l18n-base-ja” と入力して Find Package します。 f:id:pslabo:20170515232322p:plain

そして Available packages から luci-l18n-base-ja を選んで install します。

インストールが完了したら、System→Systemより言語を日本語に変更します。 f:id:pslabo:20170515232436p:plain

これで LEDE を日本語で利用できるようになりました。 f:id:pslabo:20170515232529p:plain

WAN側からの管理ポートへのアクセスを禁止する

ここまでの作業で最低限の要件を満たす設定が出ています。しかし、実際に運用する前に、WAN側に不要なポートが開いていないかどうかを念のために確かめます。

まず、OpenWRT/LEDE では sshサーバ機能が生きていますので、これは LAN 側だけに制限しておきます。

f:id:pslabo:20170516070749p:plain

f:id:pslabo:20170516070801p:plain

さらに、WAN側の HTTP が開いていないことも念のために確かめまsす。WAN側のIPアドレスはインタフェース設定から確認できますので、WAN側に繋いだ別の機器から、このアドレスの 80/TCPにブラウザで接続できないことを確認してください。 f:id:pslabo:20170516070431p:plain

sshと http が閉じていたら、基本的には安全と考えてよいはずです。なお、ここまでの設定では、LEDE は以下のようなポートで daemonが動いた状態です。

f:id:pslabo:20170516071136p:plain

より厳密に確認したい場合は、これらのポートにWAN側から繋がらないことを確実にチェックしておきます。

Apple提携のBrightStarにiPadを下取りに出してみたが、デバイスの発送の方法に改善の余地あり?

$
0
0

iPad3は新しいiPadへの買い替えに伴って下取りに出したのですが、他にもiPad2がありまして、こちらも処分したいのでアップル提携の BrightStar のサービスに下取りに出してみることにしました。

https://reuserecycle-apple-jp-asia.brightstar.com/is-bin/INTERSHOP.enfinity/WFS/BrightstarAPAC-JPAPPCON-Site

このサービスは自宅にいながら下取りに出せるので便利なようにも思えますが、案外使いづらいので、自分の感想をメモとして残しておきます。

良い点

本人確認書類のコピーを用意しなくても良い

一般的に中古の買取では運転免許証などの本人確認書類が必要となります。しかしアップルが提携するブライトスターの場合は返送キットが送付先限定で届きます。この時点で中古売買に伴う本人確認ができているとみなせるためか、この手の本人確認書類は不要です。なお、サイトには送付キットの受け取りのときに本人確認が必要、と書かれていますが、受け取りの際に本人確認が求められることはありませんでした。デバイスWiFi only の iPad2だったためですかねえ??

悪い点

発送用のキットの配送と、返送が別々の手続きに分かれていて二度手間であること

発送用のキットは単に宅配便で送られてくるだけです。キットの中にiPadを入れて発送するには集荷の手配が別途必要になります。え、普通でしょ? と思いたくなりますが、PC の修理では「宅配業者が回収用の梱包材を持参して引き取りにくる」というのが自分が経験した範囲では、多分普通のオペレーションです。

例えばMacBookVAIOを過去に修理に出したときは、クロネコヤマトの担当者が回収用の箱を持って指定した場所までやってきます。そしてその場で梱包して回収して持っていくと言う流れでした。つまり運送業者とのやりとりは1回だけです。このときに送り状になんらかの記入を行う必要すら無いのです。

しかし今回のiPad下取りでは、佐川運輸が発送用の箱キットを届けにきました。ここで回収されるわけではないのです。このキットにiPadを入れて送り状を記入して集荷を手配せねばなりません。なんと無駄なことでしょうか。下取りに出したい側からみれば、受け取りと集荷の2回の手配を行わねばなりません。時間の無駄です。

そして単身者の場合は平日の日中に返送キットを受け取ることは困難であり、場合によっては夜間でも受け取りが難しいかもしれません。そうすると返送キットは週末に受け取る前提で手配せねばならないのですが、手配の際に着日を指定できません。だから、週の前半に申し込みをかけておき、週末に確実に受け取れるような段取りを考えねばなりません。

佐川運輸の場合は持ち込みで配送手配できる取次店が少ないので、発送手配が少々めんどくさいこと

クロネコヤマトの場合は取次店が多いのでコンビニに持ち込めば発送できます。しかし佐川運輸の場合は取次店が少ないので持ち込みでの発送手配が容易ではありません。首都圏の場合は集配所がそれなりに配置されていますけれど、繁華街の集配所を除けば土日は閉まっているケースが多々あります。したがって、土日にキットを受け取った場合は、そのキットの発送のために集荷を手配するか、または開いている取次店を探して持ち込むことになります。私の場合はキットを土曜日午前中に受け取ったのですが、土曜日午後には外出の予定がありまして、外出先の近所の集配所に持ち込むことにしてみました。

そしたら、持ち込んだ集配所はドアや鍵が開けっ放しのままで不在の状態……。10分ほど待ったら佐川のお兄さんが戻ってこられましたが、ランチタイムだったので食事に出ていたんですかねえ。自分が持ち込んだ集配所以外でもこういう状況だったりするとは思いたくないけれど、防犯上の問題もあるし、そもそも集配所に持ち込むのは時間のロスを少なくしたいのが目的なのに、逆に時間をロスするとか意味不明。

まあそんなわけで、サービスとしては悪くはないけれど、使い勝手に難がある、というのが率直な感想かも。


Windows 10 2015 LTSB を Windows 10 2016 LTSB にインプレースアップグレードしてみる

$
0
0

Windows 10 には CB (Current Branch), CBB (Current Branch for Business), LTSB (Long Term Servicing Branch) の3つのブランチがあるわけですが、LTSB についてインターネット上で見かける情報は少なめです。

LTSB について、自分が把握しているのはこんなところ。

  • ある時点の機能アップデートがベースのパッケージングだが、バグ修正と脆弱性対応のパッチだけが提供される
  • 現時点では 2015 LTSB と 2016 LTSB がリリースされているが、今後は2年~3年毎のリリースとなるので、2017 LTSB はリリースされない
  • サポートはリリースから10年間
  • Windows10 の新機能を必要としない、基幹業務やミッションクリティカルな用途、あるいは組み込み機器向け
  • 通常の業務にこれを用いることは想定されていない
  • Windowsストアからのアプリのインストールには対応していない
  • Enterprise Edition 向けのオプションとして提供される
  • インストールメディアは専用のものが必要

さて、2015LTSB については手元に試験環境を作っていたのですが、2016 LTSB へのアップグレードはインプレースアップグレードが可能らしいので、実際に試してみることにします。

まず、インプレースアップグレード前の状態はこうです。 f:id:pslabo:20170527152024p:plain

インストール用のDVDメディアを装着して setup.exe を実行します。 f:id:pslabo:20170527152221p:plain

そうすると、LTSB ではないブランチのインプレースアップグレードと同様の流れでインストールが進みます。此処から先のスクリーンショット4枚くらいはコメント不要でしょうからスクリーンショットだけ。 f:id:pslabo:20170527152259p:plain

f:id:pslabo:20170527152319p:plain

f:id:pslabo:20170527152331p:plain

f:id:pslabo:20170527152337p:plain

インプレースアップグレードが終わった直後の状態はコレ。確かに 1607 に変わっているけれど、なんと、ライセンス認証が無効になっています。 f:id:pslabo:20170527152358p:plain

Windows10 CB, CBB の場合はバージョン1507のライセンスが最新の機能アップデートにも適用できますが、LTSB ではそういうわけにはいかないようです。ただしこれは MSDN向けのプロダクトキーを用いての検証なので、本番運用時では話が違うかもしれません。

というわけで、LTSB はインプレースアップグレードできる、という話を検証してみました。

なお、LTSB は CB, CBB に比べると余計なものは一切インストールされないので、スタートメニューは実に清々しい状態です。

f:id:pslabo:20170527153725p:plain

iOS11に行ける端末、行けない端末。そしてその先は?

$
0
0

iOS11が発表になり、32bit CPUが切り捨てられるということなので、現時点でサポートが有効な端末のCPU種別と対応OSバージョンを表にしてみる。

f:id:pslabo:20170607162310p:plain

iOS11がサポートされないのはCPUがA6の端末。

そうすると、おそらくは次のデバイスCPUがA7だから、iOS11が最後のアップデートになるのだろう。

そしてCPUがA8系列の次のデバイスは来年のiOS12で打ち止めの可能性高し。

Ubuntu 16.04 LTS で squid の透過型プロキシを立てるために squid をリビルドする

$
0
0

以前に、CentOS上のSquidSSLインターセプトしてフィルタリングする透過型プロキシを立てて、さらに Googleの個人アカウント利用を禁止する設定を紹介しました。

pslabo.hatenablog.com

さて、同じことを Ubuntu 16.04 LTS で行おうとしてみたのですが、標準のリポジトリから配布されているバイナリでは、これは行えないようでした。その理由は下記の理由によります。

  • Ubuntu向けの squidパッケージングは with-openssl を付けずにビルドされている

そこで、 Ubuntu 16.04 LTS で同じ設定を作るために、squidのリビルドを行ってみることにしました。

作業の流れ

概ね、以下の7ステップです。

  • source をダウンロードできるように apt の設定を変更する
  • ビルドに必要なパッケージをインストールする
  • ソースコードをダウンロードする
  • ビルドの設定を書き換える
  • ビルドする
  • ビルドしたパッケージをインストールする
  • apt update / apt upgrade で野良パッケージが標準リポジトリのパッケージで上書きされないようにする

source をダウンロードできるように apt の設定を変更する

sudo vim /etc/apt/sources.listします。ここで必要な設定は以下のエントリです。

deb-src http://jp.archive.ubuntu.com/ubuntu/ xenial main restricted

書き換えたら sudo apt updateしておきます。

ビルドに必要なパッケージをインストールする

ここらへんをインストールしておきます。

sudo apt install devscripts build-essential fakeroot libssl-dev

ソースコードをダウンロードする

こんな感じですね。するとソースコードは git clone でもイケると言われます。しかしダウンロード自体は行なわれますので、今回はそのままで行くことにします。

$ apt source squid
Reading package lists... Done
Picking 'squid3' as source package instead of 'squid'
NOTICE: 'squid3' packaging is maintained in the 'Git' version control system at:
git://anonscm.debian.org/pkg-squid/pkg-squid3.git/
Please use:
git clone git://anonscm.debian.org/pkg-squid/pkg-squid3.git/
to retrieve the latest (possibly unreleased) updates to the package.
Skipping already downloaded file 'squid3_3.5.12-1ubuntu7.dsc'
Skipping already downloaded file 'squid3_3.5.12.orig.tar.gz'
Skipping already downloaded file 'squid3_3.5.12-1ubuntu7.debian.tar.xz'
Need to get 0 B of source archives.
Skipping unpack of already unpacked source in squid3-3.5.12

ま、今後は Git clone するかなあ。

ビルドの設定を書き換える

こんな感じで。

$ cd squid3-3.5.12/
$ vim debian/rules
"Configure the package” sectionに2行足す
--with-openssl=yes \
--enable-ssl-crtd

ビルドする

./configure
debuild -us -uc -b

ビルドしたパッケージをインストールする

一つ上の階層に、ビルドされたパッケージ (*.deb) がこんなふうにできているはずですので、これをインストールします。

$ ls squid*.deb
squid3_3.5.12-1ubuntu7_all.deb
squid_3.5.12-1ubuntu7_amd64.deb
squid-cgi_3.5.12-1ubuntu7_amd64.deb
squidclient_3.5.12-1ubuntu7_amd64.deb
squid-common_3.5.12-1ubuntu7_all.deb
squid-dbg_3.5.12-1ubuntu7_amd64.deb
squid-purge_3.5.12-1ubuntu7_amd64.deb

私が squid関連でインストールするのは、ここらへんのパッケージです。ただし squid-purge や squidclient を入れるかどうかは個々人の好み次第ですかねえ。

$ sudo apt install ./squid3_3.5.12-1ubuntu7_all.deb ./squid_3.5.12-1ubuntu7_amd64.deb ./squid-common_3.5.12-1ubuntu7_all.deb ./squid-purge_3.5.12-1ubuntu7_amd64.deb ./squidclient_3.5.12-1ubuntu7_amd64.deb

apt update / apt upgrade で野良パッケージが標準リポジトリのパッケージで上書きされないようにする

こんなふうに実行しておけば、標準リポジトリのパッケージがアップデートされたときに上書きされることがないようです。

dpkg --set-selections <<EOF
squid hold
squid-common hold
squid-purge hold
squid3 hold
EOF

# dpkg --get-selections | grep squid
squid                                           hold
squid-common                                    hold
squid-langpack                                  install
squid-purge                                     hold
squid3                                          hold

ここまで出来ていれば squidによる httpsの透過型プロキシを Ubuntu 16.04LTS 上でも構築する準備は完了です。あとは過去記事の内容で設定するだけです。

Macbook Pro 2016で出先でのプロジェクタ接続用にUSB-C→HDMI&VGA変換アダプタを調達した

$
0
0

過去にこんな記事を書いていたのですが……

pslabo.hatenablog.com

最終的に、こんな製品を買ってみました。

実際に試した範囲での感想はこんなところ

アダプタ1つでUSB-CからHDMIVGAの両方がとれるのに、アダプタが割と小さめ

もっとも重要視したのがコレ。1つのUSB-CでHDMIVGAが両方取れたとしてもアダプタ自体が大きいのは困ります。今回購入したのは、HDMIVGAを2つ横並びに並べた幅しかないので、結構小さいです。

HDIMは4K対応

4Kなモニタがないので実際に4Kが出るかどうかは知らないのですが、4Kだそうです。

VGAは1080pといいつつも 2560x1080 なウルトラワイドでも表示できた。

自宅には U2913WM があるのですが、これは 21:9 (2560x1080) という変則的な解像度です。しかし VGA接続、HDMI接続ともに 2560x1080 で表示させることができました。

VGA& HDMI同時接続でも 2560x1080 で表示できた。

HDMI& VGAの2本刺しは同じ画像を両方に出力と聞いていたのでU2913WM を PinPモードにして試してみたら、2560x1080 の同じ画像が両方に出力されました。

というわけで、この金額でVGA&HDMIが取れるのは、まあアリかなあと思っております。強いて言えば、USB-C端子の給電端子が付いていたら、Pro ではない Macbookで重宝しただろうなあ、というところでしょうか。

そういう意味では、USB-C が2系統以上付いている Macbook Pro向けならば、これは悪くない選択肢だと思います。

MarkdownエディタのAtomにインストールする拡張機能のメモ

$
0
0

完全に私的なメモ。随時かつ不定期に更新。

japanese-menu

操作メニューを日本語にするために導入

language-markdown

入れてみたけど、入れない状態との違いが未だよく分からない。

markclip

画像をクリップボードから ctrl+v でコピペしたいのです。設定は file in folder にしてみた。

markdown-preview-plus

入れてみたけど、入れない状態との違いがイマイチわからない。

markdown-scroll-sync ->markdown-preview-enhanced

markdown-scroll-sync は編集画面とプレビュー画面のスクロールの同期が動かなかったので、markdown-preview-enhanced に変更

CentOS7でsquidでSSLをフィルタリングするproxyをforward proxyで設定し、さらにGoogleの個人アカウントへのアクセスを禁止する

$
0
0

過去に、squidで透過型プロキシを立てるネタを2件ほど書いているのですが、透過型プロキシのテストは案外めんどくさいものです。Linuxがルータとして動作するように設定した上で port forward を設定し、さらにクライアント側もそのルータを経由するように設定せねばなりません。

そこで、こういった設定をせずとも SSLの中継をテストするために、通常の forward proxy でSSLを取り扱えるように設定してみます。そしてさらにGoogleの個人アカウントを禁止する設定も作ってみます。

まずは過去記事の紹介から

http://pslabo.hatenablog.com/entry/2017/06/11/Ubuntu_16.04_LTS%E3%81%A7_squid%E3%81%AE%E9%80%8F%E9%81%8E%E5%9E%8B%E3%83%97%E3%83%AD%E3%82%AD%E3%82%B7%E3%82%92%E7%AB%8B%E3%81%A6%E3%82%8B%E3%81%9F%E3%82%81%E3%81%AB_squid_%E3%82%92%E3%83%AA%E3%83%93

http://pslabo.hatenablog.com/entry/20150703/p1

今回の環境

いまさらCentOS6で環境を作るのもイマイチですから、今回はCentOS7でやってみることにします。 なお、CentOS7のsquidは–with-opensslつきでビルドされていますので、今回はこれをそのまま使います。

設定上のポイント

  • SELinuxを使用している場合は「都度生成されるサーバ証明書ディレクトリに対して squidがアクセスできるように設定変更する」ことをお忘れなく。これを忘れると意味不明なエラーが出てハマることになります。
  • forward proxy の場合は ssl_bump の設定が client-first となります。(透過型の場合は server-first です)
  • https_port は設定しません。今回のケースでは、http_port ですべてのリクエストを取り扱います。
  • http_port の設定には intercept の設定を書きません。透過型ではなく forward proxy ですから。

実際の作業

CentOS7 のインストー

CentOS-7-x86_64-Minimal-1611.iso でインストールします。

squidのインストー

とりあえずはこれだけでOK。

sudo yum install squid

オレオレCAの作成

CentOS7 の場合は openssl をインストールすると /etc/pki/CA/private というディレクトリがあるので、ここにオレオレCAをセットアップするのが妥当な気がします。そこで今回は以下のように作業しています。(過去記事との違いは cd するディレクトリが違うことだけです)

cd /etc/pki/CA/private

# オレオレCA作成。
openssl req -new -newkey rsa:2048 -sha256 -days 3650 -nodes -x509 -keyout oreoreCA.pem  -out oreoreCA.pem

# オレオレCAの証明書作成。これは利用者のブラウザにインストールするものです。
openssl x509 -in oreoreCA.pem -outform DER -out oreoreCA.der

ssl_crtd の設定

これは以前の記事と基本的に同じですが、ここで作成する /var/lib/ssl_db には SELinuxでの権限割り当てが行われていないので、SELinuxが有効な場合はsquidからのアクセスが失敗します。

/usr/lib64/squid/ssl_crtd -c -s /var/lib/ssl_db
chown -R squid /var/lib/ssl_db

よって SELinuxが有効な場合は以下のコマンド実行を忘れないようにしてください。

chcon -R -t squid_cache_t /var/lib/ssl_db

これを忘れていると /var/log/squid/cache.log あたりにこういうメッセージが出てsquidが異常終了するという罰ゲームに遭遇します。このエラーメッセージを見ると ssl_crtd の初期化ができていないように読めますが、実はそうではなく、権限がないからアクセスできていない状態であることを、初期化できていないと判定しているわけです。

(ssl_crtd): Uninitialized SSL certificate database directory: 
/var/squid/ssl_db. To initialize, run "ssl_crtd -c -s /var/squid/ssl_db". 
(ssl_crtd): Uninitialized SSL certificate database directory: 
/var/squid/ssl_db. To initialize, run "ssl_crtd -c -s /var/squid/ssl_db". 
(ssl_crtd): Uninitialized SSL certificate database directory: 
/var/squid/ssl_db. To initialize, run "ssl_crtd -c -s /var/squid/ssl_db". 
(ssl_crtd): Uninitialized SSL certificate database directory: 
/var/squid/ssl_db. To initialize, run "ssl_crtd -c -s /var/squid/ssl_db". 
(ssl_crtd): Uninitialized SSL certificate database directory: 
/var/squid/ssl_db. To initialize, run "ssl_crtd -c -s /var/squid/ssl_db". 

squidを設定する

デフォルトの squid.conf.default との差分形式を掲示しておきます。ここで記述している内容は過去記事に書いてますので、不明点があればそちらをご参照いただきたく。また、一部の設定では証明書の検証エラーをスルーしていますので、そのまま用いるとセキュリティ上の問題が生じることにご注意ください。これはあくまで基本的な動作検証を目的に作成した設定です。

[root@localhost squid]# diff -u /etc/squid/squid.conf.default /etc/squid/squid.conf
--- /etc/squid/squid.conf.default   2017-04-13 04:43:17.000000000 +0900
+++ /etc/squid/squid.conf   2017-06-18 11:23:11.852000000 +0900
@@ -2,6 +2,21 @@
 # Recommended minimum configuration:
 #
 
+visible_hostname [適当なサーバ名]
+
+http_port 3128 ssl-bump generate-host-certificates=on dynamic_cert_mem_cache_size=4MB cert=/etc/pki/CA/private/oreoreCA.pem
+
+always_direct allow all
+ssl_bump client-first all
+
+sslproxy_cert_error allow all
+sslproxy_flags DONT_VERIFY_PEER
+
+cache_dir aufs /var/spool/squid 100 16 256
+
+acl to_google dstdomain .google.com
+request_header_add X-GoogApps-Allowed-Domains [自社ドメイン] to_google
+
 # Example rule allowing access from your local networks.
 # Adapt to list your (internal) IP networks from where browsing
 # should be allowed
@@ -56,7 +71,7 @@
 http_access deny all
 
 # Squid normally listens to port 3128
-http_port 3128
+#http_port 3128
 
 # Uncomment and adjust the following to add a disk cache directory.
 #cache_dir ufs /var/spool/squid 100 16 256

クライアント側の設定

oreoreCA.der をクライアント側のブラウザにインストールしてください。これを実施していない場合は、すべてのSSL/TLSな接続で証明書エラーが出てしまいます。

また、今回の設定は forward proxy ですから、クライアント側でプロキシサーバを明示的に設定しておく必要があります。

上記の設定で、自分の環境ではGoogleへの個人アカウントでの利用(メールとかGoogleドライブ)が禁止できることを確認できています。ただし、Googleへのログイン自体は個人アカウントでも通ってしまいますので、検証の際は gmail等の個別のサービスにアクセスしてみてください。

そして、forward proxy が意図通りに動くようになってから、transparent proxy の動作を確認するとよいでしょう。

Oracle と Microsoft SQL Server のライセンスの考え方


Google Analytics のタグを貼れない環境でも Google Analytics で集計してみるテスト

$
0
0

Google Analyticsのタグが貼れないCMSで不定期に記事を書く必要が出たのだけど、せめてページ毎のアクセス集計くらいは見える化したいと思ってなんとかして見るテストです。

Google Analyticsの Measurement Protocol を使ってみる

developers.google.com

Measurement Protocol というのは、一言でいうとWebビーコンです。

ウェブコンテンツの中に Measurement Protocol へのリンクを として入れておけば、最低限、アクセス数の集計くらいは出せそうな感じ。

Measurement Protocol のパラメータは Hit Builder で作ることができる

Hit Builder — Google Analytics Demos & Tools

Google AnalyticsのトラッキングIDを新規に作ったら、Hit Builder でパラメータをカスタマイズする。

今回はとりあえずこんな内容を設定してみる。

パラメータ名
v1
tpageview
tidラッキングID
cid本来は閲覧者毎に割り振るIDだが、今回は固定値を振っている
dsweb
dlページのURL
dtページのタイトル

そして Hit Builder が生成したパラメータと www.google-analytics.com/collect?を連結したURLを作ればよい。

そしてこのURlを個別のページに で差し込んでいく。

今後はページを新規に作るたびに、dlとdtを変えたタグを差し込めば一応は集計できる。

ただしこの方法で集計した場合はセッションが正しく集計されない点に注意。cid が全て同じなのだから正しく集計できるわけがない。

これについては何か解決方法がないかと考え中。

Windows Server 2016にcygwinとapt-cygをインストールするための覚え書き

$
0
0

Windows Server への Bash on Windowsは当面来ないので、cygwinを使うことにする

将来的には Bash on Windowsが来るんでしょうけど、現時点では来そうにないので、やむを得ず cygwinを使うことにします。

www.publickey1.jp

cygwinを使うなら、apt-cyg は必須なので、これも入れてしまう。

このときの最低必要限の手順をメモとして残す。誰かが読むことを想定していないので、手順はざっくりと。

サマリ

  • cygwinインストーラをダウンロードして実行する
  • インストールを漫然と進めるのではなく、git, wgetのパッケージを追加インストールしておく
  • qiita の下記記事に従って apt-cyg をセットアップする

qiita.com

だけど引用部分のコマンドは引用を2つに分けたほうがよいので、自分用のメモとして以下に引用しなおしておく。

#!/bin/sh
#
# cygwinターミナルを開き、リポジトリをクローンする.
# 公式は transcode-open だが、野良も含めて多数の fork あり.
# 下記の「参考記事」に紹介されているので、お好みのリポジトリを選べば良い.
git clone https://github.com/transcode-open/apt-cyg.git
cd ~/apt-cyg/

# gitの改行コード設定を、Windows環境にあわせてCRLFにしている場合は,
# 改行コードLFでapt-cygを再取得する.
git config core.autocrlf input
rm -f apt-cyg
git reset --hard

# apt-cygをPATH上に置く.
install apt-cyg /usr/local/bin

# 国内のcygwinリポジトリを登録する.
apt-cyg -m ftp://ftp.iij.ad.jp/pub/cygwin/ update
#!/bin/sh
# 以後は、バージョンアップのタイミングで下記を実行する.
cd ~/apt-cyg/
git pull
install apt-cyg /usr/local/bin

補足

Qiita の記事は apt-cyg の取得に git を使っているので git を事前にインストールしておきます。

また、apt-cyg 自体は wgetまたは lynxを使ってファイル取得を行います。これをインストールしていないとファイル取得に失敗した上で 0 バイトのファイルをつくてしまいます。こうなると wget or lynxを正しくインストールしても apt-cyg が正常に動作しません。このようにやらかしてしまった場合は、Desktop に作成されているキャッシュ用のディレクトリを調べて 0 バイトのファイルを片っ端から削除します。

MicrosoftやOracleのライセンスに関するメモ

Anker PowerCore Fusion 5000でMacbook Pro 2016の充電を試みる

$
0
0

Anker PowerCore Fusion 5000 はモバイルバッテリーとUSB充電器がニコイチになったデバイスなので、スマートフォンタブレットの予備充電器としてはとても便利に使えます。

しかし、このデバイスのoutputは下記の仕様ですから、USB-PD 仕様のノートパソコンを充電するにはパワーが足りません。

  • AC使用時 5V=2.1A (最大合計x2.1A)
  • バッテリー使用時 5V=3A (最大合計3A)

そのことは承知の上で、あえて Macbook Pro 2016 の充電をトライしてみることにします。

ついでに、同じく Anker の PowerPort+ 5 の充電速度も測って比べてみることにします。

試験内容

  • Macbook Pro 2016 13inch のバッテリーが空の状態で Power Core Fusion 5000 のバッテリでの充電を試みた場合に、何%まで充電できるかを確かめる。

  • Macbook Pro 2016 13inch を利用中に Power Core Fusion 5000 と接続した場合に、Macbook内蔵バッテリーの減りをどの程度抑えられるかを調べる。

Macbook Pro 2016 13inch のバッテリーが空の状態で Power Core Fusion 5000 のバッテリでの充電を試みた場合に、何%まで充電できるかを確かめる。

実際にやってみたところ、約3時間ほどで Power Core Fusion 5000 のバッテリは空になり、Macbook Pro 2016 13inch のバッテリーは 30%程度 まで回復していました。

f:id:pslabo:20170709122649p:plain

なお、Anker PowerCore Fusion 5000接続時の給電状態は12Wでしたので、Macbook Proを使用中に充電するには給電電力量が足りないことは言うまでもありません。しかしながら Macbook Pro 2016 13inch のUSB充電器を自宅またはオフィスに忘れてきたときに、AC電源が取れない場所で多少時間が掛かってもよいのでMacbook Proを使用しないときにバッテリーを回復させたい場合には使えそうです。

Macbook Pro 2016 13inch を利用中に Power Core Fusion 5000 と接続した場合に、Macbook内蔵バッテリーの減りをどの程度抑えられるかを調べる。

こちらは Macbook Pro 2016 13inch で youtubeで動画を再生しつつ、以下の状態を比較します。

  • Power Core Fusion 5000 をAC接続して給電した場合に充電できるか?
  • Power Core Fusion 5000 の内蔵バッテリで給電した場合に充電できるか?
  • Mac book pro 2016 をバッテリ駆動した場合にバッテリがどれくらい減るか?
  • PowerPort+ 5 でどれくらいのペースで充電できるか?

youtubeの動画再生はいまどきのハードウェアには軽い負荷なので、給電系への負荷試験としては適切ではない可能性があります。

本当ならば、Macbook pro 2016 で仮想マシンを実行し、そこで youtubeを再生するべきだったかもしれませんが、とりあえず今回はそういう測り方をしていません。これは後日測ってみます。

Power Core Fusion 5000 をAC接続して給電した場合に充電できるか?

基本的には、充電はできない、と考えて頂いだほうがよいです。しかしMacbook Proの内蔵バッテリーが減るペースは抑えられるかもしれません。

以下は時間ごとのバッテリ残量の変化です。

f:id:pslabo:20170709191352p:plain

Power Core Fusion 5000 の内蔵バッテリで給電した場合に充電できるか?

今回の前提条件ではバッテリは減りませんでしたので、AC接続の場合と同様にMacbook Proの内蔵バッテリーが減るペースは軽減できるはずですが、充電は厳しいでしょうね。

f:id:pslabo:20170709191410p:plain

Macbook Pro 2016 をバッテリ駆動した場合にバッテリがどれくらい減るか?

当然ながら、Macbook Proを内蔵バッテリだけで駆動させるとバッテリは減ります。この試験では概ね3分ごとに1%づつ減っています。

f:id:pslabo:20170709191516p:plain

PowerPort+ 5 でどれくらいのペースで充電できるか?

Macbook Proの内蔵バッテリが減るペースよりは速いペースでの充電が行えています。

f:id:pslabo:20170709191453p:plain

結論

  • Macbook Pro 2016 がスリープ中なら Power Core Fusion 5000 での充電は可能です。ただし相当に時間が掛かることを覚悟の上で。
  • Macbook Pro 2016 を利用中に Power Core Fusion 5000 で充電することは非常に困難なので、これを目的として購入してはダメです。ただしバッテリーの減りを軽減させる目的ならアリかもしれません。
  • PowerPort+ 5 は案外使い物になります。そこそこの出力が取れるUSB充電器が欲しいなら、現時点ではおそらくベストチョイスです。

Anker PowerCore Fusion 5000でMacbook Pro 2016の充電を試みる(2)

$
0
0

先日、こんな記事を書きました。

pslabo.hatenablog.com

しかしこれは簡易的な検証でしたので、もうちょっと内容を広げてみることにします。負荷が高い状況での比較とか、PowerPort+5との比較とか。

使用する機器

試験内容

  • そこそこの負荷をかけた場合に、Macbook Pro 2016 13inch のバッテリはどのように減るか。さらに、Anker Power Core Fusion 5000 の内蔵バッテリから給電したら、内蔵バッテリの減るペースがどの程度緩和されるか?
  • 負荷を掛けない状態でのApple純正充電器とPowerPort+5 での違いは?
  • 負荷を掛けた状態でのApple純正充電器とPowerPort+5 での違いは?

負荷の掛け方

下記コマンドを同時に4本走らせておく。

cat /dev/urandom | md5 &

試験結果

Anker Power Core Fusion 5000 の内蔵バッテリからの給電によって、Macbook Pro 2016 13inch の内蔵バッテリの減りはどの程度緩和されるか?

f:id:pslabo:20170712095027p:plain

Macbookの内蔵バッテリが減る速度は、Power Core Fusion 5000 からの給電により半減できる模様です。

負荷を掛けない状態で、Apple標準のMacbook Pro 13inch 用USB-C充電器とAnker PowerPort +5 では充電速度がどれくらい違うか?

若干ではありますが、純正の充電器のほうが充電速度は速いです。しかし Anker PowerPort +5 でも全く問題なさげです。

f:id:pslabo:20170712095220p:plain

そこそこの負荷を掛けた状態で、Apple標準のMacbook Pro 13inch 用USB-C充電器と Anker PowerPort +5 では充電速度がどれくらい違うか?

f:id:pslabo:20170712095229p:plain

こちらは純正の充電器のほうが相当速いですね。そういう意味では、Anker PowerPort +5 の給電能力は少々不足気味ではあります。ただし充電ができないわけではない。

結論?

Anker PowerCore Fusion 5000 は基本的には気休め程度と割り切って使う感じ。モバイルバッテリ機能が不要なら、Anker PowerPort +5 がやはりベターな感じですね。

Viewing all 469 articles
Browse latest View live