カテゴリーアーカイブ インフラ

takahashi 著者:takahashi

[間もなくGoogle ChromeでSSL必須化。確認しておくべきこと。] SSLって何?

いよいよ、前から予告されていたSSL必須化(HTTP(非暗号化)接続というだけで警告を表示するようになる仕様変更)がChrome 68から適用されます。

いよいよGoogleが本気。Chrome 68から全HTTPサイトに警告! – 常時SSL Lab.

もしあなたがサイトを運営していて、SSLを利用可能にしていない場合、画像の下のな表示がアドレスバーに常に表示されるようになります。
回避するためには、サイトをSSLに対応させないといけません。

そもそも、SSLとはなんぞや…という方のために、簡単に説明します。
SSLを理解する前に、インターネットの仕組みを簡単に簡単に理解しておく必要があります。

今は家にPCやスマホ・タブレットが複数台ある、という方は多いと思います。
複数台のPCやタブレットなどを同時にインターネットへ接続するために、ルーターを設置している方が多いと思います。

細かい説明は割愛しますが、ルーターを設置すると、大抵の場合はそこにLANと呼ばれるネットワークが構築され、そのLAN全体をルーターを介してインターネットに接続することで、ルーターに接続されている複数台の端末が、同時にインターネットへ接続できるようになります。

簡単に言ってしまえば、インターネットというのは、ルーターやLANを相互に接続してできた巨大なネットワークなんです。
つまり、インターネット上には、自宅に設置したルーターのように、あなたの通信を中継する機器をいくつも経由して、目的のサイトへたどり着けるようになっています。


引用元:JPRS

そしてこの”通信を中継する機器”は、仕組み上誰でも設置が可能です。

また、インターネットのベースとなった仕組みでは、”一部の経路が切断されても、他に通信経路があれば通信を継続できるようにする”仕組みになっています。
先程書いたように、インターネットはネットワークを相互につないでいる構造になっているので、目的のサイトにたどり着くまでの経路は何通りもあります。

そのうちのどの経路が選ばれるかは一定ではなく、状況に合わせて、最も最適なルートが選択されます。

つまり、自分がインタ―ネットへ送信した情報がどの経路を通過するのかはわからない(決まっていない)のです。

通信経路は固定ではなく、かつ経由する機器もだれのものかわからない…そんな仕組みなので、例えばもし経由する経路上にサイバー犯罪を企てる人が設置した機器を経由してしまった場合、自分が送信した解読された場合はその内容が盗まれてしまったり、改変されたりしてしまう可能性が出てきます。

もしその時に自分が送っていた情報がパスワードやクレジットカード情報だったら…最悪ですよね。

そうならないために、自分が送付する情報を”暗号”にして、自分と通信相手にしか解読することができないようにする仕組みがあります。

これが、SSL(TLS)と呼ばれるものです。

SSLを利用するためには自分のサイトが動いているサーバーに、SSL証明書をインストールする必要があります。
SSL証明書は発行を行っている”認証局”と呼ばれる業者から取得する必要があります。

通常は有料で、有効期限があるので、有効期限が近づくたびに購入しなおす必要があります。

ただし、最近はLet’s Encryptという、更新するまでの期間が短い代わりに無料で利用できるSSLもあります。

これでSSLをサイトに導入して対応完了…!と行きたいところですが、まだ他にも気を付けないといけない点があります。

また次回説明します。

  • この記事いいね! (0)
takahashi 著者:takahashi

QNAPのNASが凄すぎて最早ただのサーバ機と化している件

知人が自宅サーバー代わりにQNAPのNASの利用を検討しているとのことで、自分も気になって調べていたところ、QNAP製NASに搭載されているOS”QTS”の操作を実際に体験できる公式のライブデモサイトを発見。

ライブ・デモ – QNAP

早速触ってみました。
日本からの利用の場合は、ライブデモ-Asiaを利用すればOKかと思います。


/私、QNAPのNAS。こっちはQTSのログイン画面。\

既にNASのログイン画面とは到底思えない装い。
その完成度にビビりつつも早速ログイン。

ログインID/PWはデモページ入り口に記載されているものを入力すれば入れます。

ログインに成功するとようこそ画面が出現。
そのままチュートリアルを読み進め、ウインドウを閉じると

iOSとGnomeを足して2で割ったような(?)UIが出現。
ブラウザのバーとかなかったら普通にPC用のOSに見間違いそうな完成度です。

NASストレージ内に保存されたファイルや

Nasの動作設定などもわかりやすい画面で確認・設定ができます。

が、そんなところでとどまらないのがこのQTS。
なんと普通のスマホやPCと同様にアプリをインストールすることで様々な機能を追加することができます。
さすが、伊達にOSと呼ばれはいないようですね…

しかししかし、OSたるもの、どんなアプリが対応しているか、というのも非常に重要なポイントです。
ということで、早速アプリストアをチェック

開いてみて驚いたのはその対応アプリの多さ。

めっちゃあるwwww

まずすごいのは、NASなのに

CMSがうごいちゃう!

NASなのに…


DHCPサーバーや仮想スイッチをたてれちゃう。

極めつけは…

えっNASなのにNode.jsやRuby on RailsやPostgreSQLも動くの…
普通に開発環境として使えちゃうじゃないですかやだー!!

ストレージ内に保存された音楽をブラウザ上やLAN内のDLNA機器などを経由して再生できるメディアプレイヤー機能

フォトライブラリなど、マルチメディア周りの機能も充実しています。

ちなみに、

S3互換のオブジェクトストレージサーバーアプリもあるので、S3とほぼ同じようなAPIをたたいてファイルを取得できるようにすることもできるようです…ヒェー((

ちなみのちなみに、
RAID対応NASですので、搭載HDDの状態も勿論画面上から確認できます。

ここでふと気づいてしまいました…

自分が自宅サーバーでやりたかったことの大半….
もしかしてQNAP NASでできてしまうのでは….

できれば気付きたくなかったですが、これだけのものをアプリストアからインストールするだけで、しかもブラウザ上のGUIから自在にコントロールできるという簡単さは目から鱗レベルによくできています。

今回見た画面は飽くまでQTSのデモ版なので、実際にインストールして動かしたりとかまではできないので、実際の動作感までは分かりませんが、”自宅でサーバー動かしたいけど難しい操作は覚えたくない…”という人にとっては夢のようなガジェットかもしれません。

ここまでくると、本体のお値段が気になってきたので、現時点でのお値段をAmazon.co.jpで調べてみました。


HDDスロットが2つの、恐らくエントリーモデルと思われる製品。

約2万3千円という、標準的なNASに比べると結構しますが、下手に新品のPCを買うよりもお得かもしれません。

自宅サーバー歴5年の自分ですが、ここにきて心変わりの危機に瀕しております。

めっちゃほしい…

QNAP

  • この記事いいね! (0)
takahashi 著者:takahashi

GDPRの影響でWhois情報公開が停止する可能性

EUのGDPR(EU一般データ保護規則)の影響ががついにWhoisデータベースにまで及びました。

ドメイン所有者の連絡先などが含まれる「WHOIS」データがGDPR発効の影響で一時的に非公開になる可能性 – Gigazine

GDPRはEU圏内に住む人々の個人情報について、所定の許可なく公開することを禁止する法律で、特徴的なのは域外の企業や事業者に対しても適用される点。
具体的には、一人でもEU圏内の人の個人情報を登録しているサービスでは、GDPRに則らないと制裁をうけるということです。

発効を前に、対象になった企業や団体が対応に追われている状況ですが、最近のニュースで特に大きな影響を受けるだろうとされるサービスが浮上してきました。
それが、世界中のgTLDドメインを管理するICANNによるWhoisデータベースです。

ICANNでは、Whoisにドメイン取得者の情報を登録することを義務付けており、従わない場合はドメインの登録を停止、取り消される規約になっていました。
この情報の中に住所や取得者の氏名などの個人情報が含まれています。
gTLDは世界的に使われているドメインなので、当然EU圏内の人もドメインを登録しているはずです。結果的にこのGDPRの影響をもろに受ける形になりなり、ICANNはWhoisの制度を見直さざるを得なくなりました。

現在、ICANNでは議論がされているようですが、答えが出るのに相当な時間がかかるため、GDPR発効までに対応版Whoisを構築することは難しく、暫定的な対応としてWhoisデータベースの公開制限や停止が行われる可能性が浮上しているようです。

ICANNのWhois情報公開の意義としてドメインの不正利用や犯罪の防止の目的もあり、今回のICANNの対応に対して、海賊版コンテンツに悩む各国の著作権団体からは抗議も上がっているようです。

GDPR規制によるWHOIS情報の制限に権利者団体が反発「海賊版の取り締まりを難しくする」 – P2Pとかその辺のお話R

ここからは個人的な意見ですが、僕はむしろ今回のGDPRによって、Whois情報が非公開化することは、”インターネットの個人利用”という観点からよかったのではないかなと考えています。

というのも、Whoisデータベースに氏名や住所などを載せないといけないのは企業だけではなく、ドメイン取得するすべての利用者が対象になります。
勿論ドメインを取得するのは法人だけとは限らないので、個人でドメインを取得する場合は自宅の住所なども公開する必要があるのです。

こんな状況でドメインを登録してしまうと、ドメインから一般の人に自分の住所が特定されてしまったりなどかなりリスクが高く、かといって自分のドメインを取得できない場合、個人的にサーバやサイトを建てる際にかなり制限を受けてしまう(SSL証明書が取得できないなど)の問題があり、”個人のサービスやサイトを公開するのに自分の自宅の住所をさらさないといけない”状態になっていました。
最近ではパブリッククラウドの普及などで、個人でも普通にサーバーを持つ時代になっていますし、この”法人を前提”としたWhoisの仕組みについて、個人的にかなり疑問に思っていました。
また、対応策としてレジストラによってはWhois代行公開サービスを提供している場合もありますが、ICANNの方針的に、いつ禁止されるかもわからない状況でした。

今回のGDPRの影響で結果的にWhoisの”だれでも情報にアクセスできる”状況の見直しが必要になったことで、Whoisの情報公開方法が見直され、”個人ユーザーにやさしい”Whoisの仕組みになることを期待したいと思います。

  • この記事いいね! (0)
takahashi 著者:takahashi

[要注意]MySQL 5.7からは初期状態でrootにランダムなパスワードが設定されている

先日、自宅のPCにUbuntu 18.04 LTSをインストールしたことを書きましたが、18.04でデフォルトになっているMySQLのバージョン”5.7″からMySQLのrootユーザーのパスワードが初期状態で自動設定される仕様に変更になったようです。

MySQL 5.7 をインストールしたら最初に行うセットアップ – WEB ARCH LABO

初期設定をする際、このことを全く知らなかったため、いつも通りmysqladminでrootパスワードを設定しようとしたのですが、何度やってもaccess deniedになり、パスワードなしてrootにログインすることもできなかったのでかなり焦りました。

ちなみにUbuntu 18.04の場合、初期状態であれば

sudo mysql

と、ユーザ名・PWすべて省いて実行したとことパスワード無しでログインできました。わかるかッ!!!
ちなみに、設定したrootパスワードも、デフォルトで一定期間後にパスワード変更が求められるらしく、その際はパスワードを変更しない限りログインできなくなるようです。(設定の記述で無期限化は可能。)

とかなりセキュリティ的に厳しい仕様になっていますので、これから使われる方はご注意ください。

  • この記事いいね! (0)
著者:ym

G Suite の DKIM 認証設定

今では送信ドメイン認証もいろいろありますが、今回は DKIM 。

以前は無償だった 元Google Apps (G Suite) をいくつか持っているのですが、SPF レコードは追加していました。けど、いまさらならが DKIM 署名ができることを発見したので追加しておきました。

Google G Suite DKIM

Google G Suite DKIM

G Suite の管理画面で [アプリ]-[G Suite]-[Gmail の設定] を開くと、DKIM の公開鍵を生成できます。発行された DKIM 鍵を DNS へ登録し、認証を開始すれば DKIM 宣言できますよ!

 

  • この記事いいね! (0)
著者:ym

常時VPN

先日のISP、NTTグループのブロッキングに続いて、mineoは画像の最適化を開始する様です。

解説:mineoが悪名高い「通信の最適化」を開始。 – すまほん!!

内容を見ると https (SSL/TLS接続) の場合は改ざんしない様なので、常時SSL化ではなく常時VPN化も検討してみることにします。

Android には、常にVPN通信する設定があるので、L2TP/IPsec を設定して、常時VPNをオンにします。しかし何故か、VPNサーバのアドレスと、DNSサーバのアドレスを IP アドレス指定で設定しなければならない様子。

VPNサーバはクラウドVPSを利用するので通信速度の劣化には無いとは思いますが、数日使って見て少し厄介だったのが、バンドオーバー時の再接続待ち。

それと、接続した無線LANに応じて、同じ FQDN でも、内部DNSやパブリックDNSで返すIPアドレスの値を変化させている部分。DNSサーバを複数指定して見ようと思いましたが、スペース区切りでも常時VPNの場合は1個しか記述できない様子です。

  • この記事いいね! (0)
takahashi 著者:takahashi

ソースからビルドしたApacheで、service statusが確認できないときの対処法

セットアップ中のサーバーで稼働状況を確認するために

sudo service httpd status

をした際、下記のようなエラーが発生しました。

<html>
                                   Not Found

   The requested URL /server-status was not found on this server.
     __________________________________________________________________


    Apache/2.2.34 (Unix) Server at localhost Port 80

殆どパッケージ版のApacheしか触ったことないので、見慣れない表示に、一瞬びっくりしてしまいましたが、なんとか心を落ち着けて解決方法を検索。
こちらのサイトで、解決策を見つけました。

VirtualHost設定 apache2サーバでのserver-status参照設定 – Check!Site

どうやら、/server-status というディレクトリの表示結果を見て稼働状況を判断しているということで、
http(s)://ドメイン名/server-status
にアクセスされたときに、ページを返すように設定すればエラーも解消するとのこと。

自分の場合、httpd.confに次の設定を追記

<VirtualHost *:80>
  ServerName localhost
  DocumentRoot "/usr/local/apache2/localhost"
 
  <Location /server-status>
    SetHandler server-status
    Order deny,allow
    Deny from all
    Allow from localhost
  </Location>
</VirtualHost>

あとは適当な内容のhtmlファイルを作成し、

/usr/local/apache2/localhost

へ配置しました。

この状態で、再度statusコマンドを打ってみます。

                       Apache Server Status for localhost

   Server Version: Apache/2.2.34 (Unix) DAV/2 PHP/5.3.3
   Server Built: Jul 27 2017 11:48:48
     __________________________________________________________________

   Current Time: Thursday, 26-Apr-2018 13:39:55 JST
   Restart Time: Thursday, 26-Apr-2018 13:39:14 JST
   Parent Server Generation: 12
   Server uptime: 41 seconds
   1 requests currently being processed, 7 idle workers

_W______........................................................
................................................................
................................................................
................................................................

   Scoreboard Key:
   "_" Waiting for Connection, "S" Starting up, "R" Reading Request,
   "W" Sending Reply, "K" Keepalive (read), "D" DNS Lookup,
   "C" Closing connection, "L" Logging, "G" Gracefully finishing,
   "I" Idle cleanup of worker, "." Open slot with no current process

ばっちり、チェック結果が出るようになりました。

お困りの方の参考になりましたら幸いです。

  • この記事いいね! (0)
takahashi 著者:takahashi

MySQLで日本語が文字化けしてしまうときの対処方法

MySQLを使って良くやらかすミスの一つとして、文字コードの設定ミスがあります。
MySQLの場合、デフォルトのまま利用すると、テーブルやdbが意図していない文字コード(例えばlatin1)になってしまうことがあります。

この状態でselectなどで日本語を取り出そうとすると文字化けしてしまい、”??????”のような文字列に置き換わってしまいます。

使っているMySQLのデフォルトの文字コードを確認するには、SQL文を

show variables like 'character%';

とします。すると

mysql> show variables like 'character%';
+--------------------------+----------------------------+
| Variable_name            | Value                      |
+--------------------------+----------------------------+
| character_set_client     | latin1                     |
| character_set_connection | latin1                     |
| character_set_database   | utf8                       |
| character_set_filesystem | binary                     |
| character_set_results    | latin1                     |
| character_set_server     | utf8                       |
| character_set_system     | utf8                       |
| character_sets_dir       | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
8 rows in set (0.00 sec)

のような形で確認することができます。
上の表示を見ていただくとわかるように、”character_set_connection”がlatin1になっていると日本語部分が文字化けしてしまい、where構文で日本語をフィルタしてもヒットしなくなってしまいます。

mysqlをパッケージからインストールした際、大抵/etc/my.cnfという名前でmysqlの設定ファイルが作成されているかと思います。
この設定ファイルに対して、次の4行を追加します。

[mysqld]
character-set-server=utf8

[client]
default-character-set=utf8

この設定を追加後、再度mysqlの文字コード設定を確認してみます。

mysql> show variables like 'character%';
+--------------------------+----------------------------+
| Variable_name            | Value                      |
+--------------------------+----------------------------+
| character_set_client     | utf8                       |
| character_set_connection | utf8                       |
| character_set_database   | utf8                       |
| character_set_filesystem | binary                     |
| character_set_results    | utf8                       |
| character_set_server     | utf8                       |
| character_set_system     | utf8                       |
| character_sets_dir       | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
8 rows in set (0.00 sec)

すべてutf8に変更されていることが確認できるかと思います。
この状態でselectすれば、日本語が文字化けせずに表示され、またwhere構文で日本語を検索しても、ちゃんとヒットするようになります。

サーバー側の設定を変更できなかったり、変更しても文字化けが治らない場合も、様々な方法があるようですので、お困りの方は確認してみてください。
MySQL のテーブルの文字コードを utf8 に変更する – UCWD-Studio – @matsuoka_UCWDjp ‘s Private Projects.

  • この記事いいね! (0)
著者:ym

RIPE Atlas probe

RIPE Atlas probeが到着してから2ヶ月程、動かし続けています。

RIPE Atlas - RIPE NCC

RIPE Atlas – RIPE NCC

RIPE はヨーロッパの IP アドレスを管理する団体なのですが、その団体がこの装置プローブ (probe) を世界中に無償配布して世界中のインターネットの状況をリアルタイム観測しようとするプロジェクトになります。GoogleMapの様な地図があってグリグリ動かして見る事ができます。

https://atlas.ripe.net/about/

このサイトをGoogle翻訳すると、ビジョンや利点等、詳しく書かれています。
いま時点では、静岡県内に 4 個ありますね。で何?といった装置ですが一応ネットワーク携わっているのでね。今更設置してみました。先日メールが送られて来ましたが、なにか動きもありそうです。

  • この記事いいね! (0)
著者:ym

QNAPとSSDキャッシュ

買おう買おうと思いながらも、全然買わない。買えない状況ではありますが。

QNAP の家庭向けグレードに新製品が加わっていました。

4 スロットでは大すぎるけど、でも 2 スロットの RAID1 ではな、とも思っていたのでジャストな 3 スロット。

そういう使い方ではなく、RAID1 + 1 スロットをSSDキャッシュアクセラレーションとして使うこともできます。

勿論 1 本オフライン待機は必要ですが。

VMware上でFreeBSDのNAS化したサーバを動かしているものの、ほぼバックアップとして動いている状況。

さらにはクラウド・ストレージ+PC接続DASという構成でほぼ生活に満足している現状があるので、なかなかNASの必要性を感じないのですが。

Docker含めて仮想化も充実してるし魅力的なアプリ機能が登載サれているので、いつか手を出したい所ですが、今の所見るだけ。

  • この記事いいね! (0)