Windows10でhosts設定

DNS変更する前に、新しいサーバーのテストをする場合に、hostsファイルを設定する時の手順。

(hostsファイルの場所)

C:\Windows\System32\drivers\etc

このファイルは、管理者でないと編集できないので、普通に開くとエラーになる。以下がMicroSoftのヘルプ(Vistaのままだが)。

https://support.microsoft.com/ja-jp/help/923947/you-cannot-modify-the-hosts-file-or-the-lmhosts-file-in-windows-vista

参考までに、自分がWindows10でやる時の手順。

1)スタートボタンをクリックし「コマンドプロンプト(管理者)」をクリックする。「ユーザーアカウント制御」のメッセージが出るので、「はい」をクリック。

2)コマンドプロンプロトで、ディレクトリを変更。

cd drivers\etc

3)ノートパッドでhostsを開く

notepad hosts

4)編集して、「ファイル」-「上書き保存」して終了。

notepad hosts

ブラウザで前のアドレスでアクセスしていた場合は、一旦ブラウザを閉じて開き直せば設定した新しいアドレスにアクセスするようになる。

サーバーの移行手順

サーバーの老朽化あるいはVPS業者の乗換えなどにより、サーバーを移行する場合の手順についてのメモ。

1.移行手順

DBサーバー移行時だけ計画停止(メンテナンス)するという条件で、 以下の手順で移行する。

1)新サーバーの環境構築

現行サーバーからプログラム、データ等をコピーして、新サーバーで環境を構築する。

新サーバーの環境構築

この時に、現行DBサーバーからデータをコピーして新DBサーバーに登録するまでの時間を覚えておくこと。この時間が、4)でのサービス停止時間(メンテナンス時間)を決めるのに必要となる。

テスト端末でhostsに以下の設定を追加することで、新サーバーの動作確認を行う。

(テスト端末のhosts設定)
222.222.222.222 XXService.com #新WebサーバーのIPアドレスを設定

Windows10でのhosts設定方法は以下。

新Webサーバーと新DBサーバーで、問題なく動作することを確認する。OS等のバージョンを上げている場合は、その影響がないか念入りに動作確認を行う。

2)新Webサーバー+現行DBの動作確認

新DBサーバーは一旦停止して、新Webサーバーから現行DBサーバーを見るようにする。現行DBサーバー側で、新Webサーバーからの接続を許可 (DB設定とファイアウォール)する 。

新Webサーバー+現行DBの動作確認

1)と同様に、新Webサーバーにアクセスして動作確認を行う。

3)DNSを変更してWebサーバー並行稼働(現行DB)

DNS設定を現行サーバーから新サーバーに変更することで、ユーザーが徐々に新Webサーバーにアクセスするようになる。

DNS設定を変更し、Webサーバー並行稼働(現行DB)

通常であれば1週間ほどでDNSキャッシュは全て更新されて、現行Webサーバーへの ユーザーからのアクセスは完全になくなる。この時間を短くしたい場合は、事前にDNS設定でTTL値を小さくしておく。

現行Webサーバーは、ユーザからのアクセスがなくなった時点でお役御免となる。

4)DBサーバーを移行し、新サーバーにて運用

事前に、計画停止についてユーザーへの告知(調整)をする。

計画停止時にDBサーバーの切り替え作業を行い、旧サーバーを停止する。

DBサーバーを移行し、新サーバーにて運用

計画停止時の作業内容としては、ざっくり以下。

  1. メンテナンス中として、DBアクセスを止める
  2. DBバックアップを取得し、新DBサーバーに投入する
  3. 旧サーバーを停止し、DBアクセス先を新DBサーバーに変更
  4. サービス再開

2.レプリケーション機能を使う場合

データ量が多くてDB移行時の停止時間が長くなりすぎる場合あるいは長い停止時間が取れない場合には、レプリケーション機能を使う。

2)と3)の間で、新DBをスレーブに設定することで、

3)Webサーバー並行稼働+現行DBサーバー(マスタ)+新DBサーバー(スレーブ)といった運用にする。

レプリケーション機能を使う場合

4)DBサーバー切り替えは、以下作業となり、僅かな停止時間で実施できる。

  • 新DBサーバーを、スレーブからマスタに昇格し
  • DB接続先を新DBサーバーに切り替える

IPアドレス制限かけるもの

固定IPでのアクセスルートを確保した場合、以下に関してIPアドレス制限をかける。今後、また固定IPの変更、追加もあると思うので個人用メモ。

  • WordPressの管理ページ
  • 運営サイトの管理ページ
  • 管理者向けシステム
  • IP制限に対応しているネット銀行
  • IP制限に対応しているコントロールパネル
  • OneDrive for Business
  • SoftEther VPN Server

SSHに関しては、固定IP用サーバーの障害時に困るので、IPアドレス制限はかけずに鍵認証にて対応。将来、固定IP用サーバーを別業者でもう一つ確保して、IPアドレス制限もかけるようにするか。

クラウド/VPS/レンタルサーバーの【コントロールパネル】セキュリティ対策

※これは古いです。最新版(2020年11月)はこちら

クラウド、VPSのセキュリティ対策について、サーバー自体のセキュリティ対策をちゃんとしても、コントロールパネルが乗っ取られたら元も子もない。

そこで、知っている範囲での各社の状況 (2019年2月21日時点)についてのメモ。

  IP制限 2段階認証 ログイン通知 操作ログ
お名前.com × × × ×
ConoHa × ×
エックスサーバー × × × ×
さくらインターネット ×

VPS:×

クラウド:〇

×
ニフクラ × ×

1. お名前.com

「お名前.com Navi」にログイン出来たら、後はすべて操作可能。ログインに関する制限、通知等の機能もない。

2.ConoHa

「アカウント設定」から「2段階認証」「ログイン通知メール」が可能。

https://support.conoha.jp/common/guide/account/?btn_id=c-2stepauthentication-sidebar_guide-account

3.エックスサーバー

「サーバーパネル」にログイン出来たら、後はすべて操作可能。ログインに関する制限、通知等の機能もない。

4. さくらインターネット

VPSとクラウドともに操作ログが閲覧できる。

(VPS)

https://help.sakura.ad.jp/hc/ja/articles/206245282-%E6%93%8D%E4%BD%9C%E5%B1%A5%E6%AD%B4%E3%82%92%E7%A2%BA%E8%AA%8D%E3%81%99%E3%82%8B

(クラウド)

https://manual.sakura.ad.jp/cloud/controlpanel/eventlog/eventlog.html

クラウドは2段階認証にも対応。

https://manual.sakura.ad.jp/cloud/controlpanel/settings/2-factor-auth.html

5. ニフクラ(旧名称:ニフティクラウド)

ログインのIPアドレス制限が、「アカウント管理」からアカウントを選択して、「IP許可設定追加」で可能。

https://cloud.nifty.com/service/ip_limit.htm

また、過去6カ月分のコントロールパネルの操作ログが参照できる。

https://cloud.nifty.com/help/log/

ログイン時の通知メールの機能はない。

SoftEther VPNでL2TP/IPSec

ConoHaのVPSサーバー(CentOS 7.6)にインストールしたSoftEther VPNでL2TP用のサーバー設定した時の作業メモ。

利用目的としては、 外で公共Wifiを使う時のセキュリティ対策と、サイト管理作業時のIPアクセス制限をVPSサーバーに限定するため。後、東京リージョンのサーバーなので、地方や海外でもradikoでJ-Waveが聴けるというメリットもある。

1.管理マネージャーからの設定

https://ja.softether.org/4-docs/2-howto/L2TP_IPsec_Setup_Guide/1

1)不要機能の無効化

管理マネージャーから以下をすべて無効にする。

  • OpenVPN / MS-SSTP
  • ダイナミックDNS ※configファイルの書き換え
  • VPN Azure

2)余分なリスナーを削除

 使わないリスナーは削除する。

3)暗号化と通信関係の設定

「使用する暗号化アルゴリズム」はデフォルトから強いものに変更。

「インターネット接続の維持機能を使用する」のチェックを外す。

4)仮想HUBの設定

「DEFAULT」があれば削除して、新たに適当な名前でデフォルト用Hub(以下、仮にHubDummy)と利用するHub(以下、仮にHubReal)を作成する。

  • 「匿名ユーザーに対してこの仮想HUBを列挙しない」にチェックを入れる。
  • 最大同時セッション数の制限を設定する

5)IPSec / L2TP 設定

「L2TP サーバー機能を有効にする(L2TP Over IPSec)」を有効にする。

「IPSec事前共通鍵」を適当に設定。

「接続時のユーザー名で仮想HUBが省略された場合に接続する仮想HUBの選択」にHubDummyを設定する。

6)仮想NATおよび仮想DHCPサーバー機能

HubRealの 「仮想Hubの管理」から「仮想NATおよび仮想DHCPサーバー機能」を開いて、

「SecureNAT機能を有効」にする。

「SecureNATの設定」で、「仮想NAT機能を使用する」と「仮想DHCPサーバー機能を使用する」にチェックを入れる。

7)ローカルブリッジ設定

新しいローカルブリッジを定義する。

以下にあるようにtapデバイスを使うようにした。

https://ja.softether.org/4-docs/1-manual/3/3.6#3.6.9_tap_.E3.83.87.E3.83.90.E3.82.A4.E3.82.B9.E3.81.AE.E4.BD.BF.E7.94.A8

仮想HUBにHubRealを選択し、「作成する種類」は「新しいtapデバイスとのブリッジ接続」を選択して、「ローカルブリッジ」を追加する。

8)ユーザーの作成

HubRealの「仮想HUBの管理」から、ユーザーを作成する。とりあえずはパスワード認証で。

2.ポート開放

使用するポートは、UDPの500と4500。

https://ja.softether.org/3-spec#SoftEther_VPN_Server_.E3.81.AE.C2.A0L2TP.2FIPsec_.E3.82.B5.E3.83.BC.E3.83.90.E3.83.BC.E6.A9.9F.E8.83.BD.E3.81.AE.E4.BB.95.E6.A7.98

サーバーでIPSecのポートを公開する。

firewall-cmd --permanent --add-service=ipsec
firewall-cmd --reload

3.クライアント接続

SoftEtherのサイトのチュートリアルはここ。

https://ja.softether.org/4-docs/2-howto/L2TP_IPsec_Setup_Guide

3.1 Windows10からの接続

SoftEtherのサイトはWindows7のままなので、以下サイトが参考に。

http://www.seil.jp/doc/index.html#fn/pppac/use/pppac-client/win10_l2tp.html

ユーザー名は、「ユーザー名@HUB名」を入れる。 事前共有キーは、「IPSec事前共通鍵」のこと。

3.2 iPhone/iPadからの接続

iOS12.1.4の場合、「設定」から「VPN」で、「VPN構成を追加」で設定できる。タイプは「L2TP」にし、 アカウントは「ユーザー名@HUB名」、 シークレットに「IPSec事前共通鍵」を設定。

SoftEtherのサイトは 、古いiOSで英語版だけど参考まで。

https://ja.softether.org/4-docs/2-howto/L2TP_IPsec_Setup_Guide/2