いろいろバックエンドな人の備忘録

CとGoが大好きな人のポエム掲載所

<メモブログ> devise の seeds.rb の書き方

問題

メール認証(confirm) を有効にしている状態で User.create(… してもメール認証が走りアクティブ化されない問題

解決

.confirm を呼べば良い。

## ユーザー生成
user_admin = User.create(
  email: 'admin@example.com',
  password: 'password',
  fullname: 'Administrator'
)
user_admin.confirm

<メモブログ>VMware Player + CentOS7 + ESET 環境では SSH が切れてしまう

下記投稿を参考に SSHd の設定を変更してみたが改善せず。

VMware PlayerでSSH接続が切れまくる時の対処方法 – utarot.jp

ESET で動作しないとの情報が。

http://gw.take-f.net/?p=89

この方法でも良いみたいだが、自分はこの情報を発見する前に下記設定で解消した。

f:id:nrtn:20160920140613p:plain

<メモブログ>iOS10 や macOS Sierra から 古いルーターのVPN機能は使えなくなった。

概要

厳密にはVPNというより、PPTPが使えない。 一時期、国内で販売されているルータに搭載されているVPNPPTPがほとんどであった。

ブロードバンドルーターに搭載されているVPN機能はPPTPが多い

バッファローNEC、IO-DATA等の国産メーカーが販売しているルーターに搭載されているVPN機能。 そのほとんどのプロトコルPPTP と呼ばれるもので古いプロトコルである。

明日に登場する iOS 10 や今月末に登場する macOS Sierra から PPTP のクライアント機能が削除された。

support.apple.com

よって、サードパーティのソフトウェアをインストールしないと接続ができない。

なぜ?

PPTP はセキュリティレベルが低い。 以前から PPTP はこの時代のセキュリティレベルは低いと言われていた。

blog.kaspersky.co.jp

自分は数年前、IODATAブロードバンドルーターを使っていて、サポートセンターに 「PPTPがレガシーになってきているので、PPTP以外のサポートの予定はあるか?」と聞いたことがあるが、 あまり積極的ではない説明をうけたことがある。

今回、こういう状況なので、今後はメーカーの対応も変わるだろう。

対処方法

以降はサードパーティ製のPPTPクライアント(Flow VPN Mac Clientなど)を使うか、 ブロードバンドルーターのPPTPを使わずにSoftEtherなどで独自にVPNサーバを構築する必要がある。

<メモブログ>今更ながら CentOS 7 +Google Authenticator を利用して二段階認証にする

基本的に家に接続するときは IPsec/L2TP を使っているが環境によっては VPN(ESPパケット)を通さないネットワークがあるのので、SSHを開けておく。(22番ポートが閉まっていると詰むが・・・)

かといって、22番ポートインターネットに晒すのも気が引けるし、公開鍵認証も鍵の管理に不安が残る。なので、二段階認証を導入する。

CentOS 7 +Google Authenticator を利用して二段階認証に対応させる。

ただし、以下の方法は Tera Term では動作しない。 したがって、TeraTerm環境で設定し、セッションをすべて切ってしまうと ログイン不能 になるので注意。

(自分は気付かずにハマった。Macのターミナルや未確認だが TeraTerm 以外の Windows SSHクライアントだと動作するかもしれない。)

必要なパッケージのインストール

yum -y install git pam-devel automake libtool
git clone https://github.com/google/google-authenticator.git

インストール

cd ~/google-authenticator/libpam
./bootstrap.sh
./configure
make
make install
ln -s /usr/local/bin/google-authenticator /usr/bin
cp /usr/local/lib/security/pam_google_authenticator.so /usr/lib64/security/

sshd の設定 /etc/ssh/sshd_config

# To disable tunneled clear text passwords, change to no here!
PasswordAuthentication no
#PermitEmptyPasswords no
#PasswordAuthentication yes

# Change to no to disable s/key passwords
#ChallengeResponseAuthentication yes
ChallengeResponseAuthentication yes
UsePAM yes # デフォルト
AuthenticationMethods publickey,keyboard-interactive

PAMルールの新規作成 /etc/pam.d/google-auth

#%PAM-1.0
auth        required      pam_env.so
auth        sufficient    pam_google_authenticator.so nullok
auth        requisite     pam_succeed_if.so uid >= 500 quiet
auth        required      pam_deny.so

/etc/pam.d/sshd

#%PAM-1.0
auth       required     pam_sepermit.so
#auth       substack     password-auth
auth       substack     google-auth
auth       include      postlogin

ここから、動作させたいユーザーになる。 いろいろ聞かれるが、すべて y でいいと思う。

google-authenticator

QRコードとイマージェンシーコードが表示されるのでコードは控えておく。 QRコードはアプリ、Google認証システムで右上の「…(設定ボタン)」→「アカウントを設定」→「バーコードをスキャン」でスキャンすればOK