CentOS

CentOS7にGoogle Authenticatorを入れてSSHを2要素認証にする

2016-04-12 CentOS, 環境構築 ,

SSHの接続は鍵認証にしてはいるんだが、さらにセキュアにしたくGoogle Authenticator をいれてみたログ

今回すること

  • サーバーへのSSHログイン時に認証鍵とスマフォアプリによるワンタイムパスワードにする

事前準備

  • クライアントの公開鍵を用意しておく
    • macの場合ターミナルから ssh_keygenでもしてid_rsa.pubをつくっておけばOK
  • スマフォにワンタイムパスワードを扱えるアプリをいれておく
    • iijのSmartKeyが複数サーバーやサービスを管理もしやすくおすすめ

設定

CentOS7にGoogle Authenticatorをインストール

※ SSHでサーバーに接続しrootになっている状態とする

  • pamをbuildできるようにpam-develをインストール
# yum install pam-devel  
  • Google AuthenticatorをGitHubからもってくる
# cd /usr/local/src
# git clone https://github.com/google/google-authenticator.git
  • GitHubからもってきたソースでコンパイルしてインストール
# cd google-authenticator/libpam
# ./bootstrap.sh
# ./configure
# make
# make install
  • /usr/local/lib/securityに配置されるので、/usr/lib64/security/にもシンボリックリンクをおいておく
# ln -s /usr/local/lib/security/pam_google_authenticator.so /usr/lib64/security/pam_google_authenticator.so

sshログインするユーザーに公開鍵を登録しておく

予め作成したログイン用の公開鍵(id_rsa.pub)をログインするユーザーに登録しておく

以下はmacのターミナルで鍵を作成して登録した手順。すでに鍵認証でログインできているなら省略してよし

mac> ssh-keygen 
なにやらでてくるけどすべてエンター
mac> scp ~/.ssh/id_rsa.pub LOGIN_USER@HOSTNAME:
mac> ssh LOGIN_USER@HOSTNAME;
server$ cat id_rsa.pub >> ~/.ssh/authorized_keys
server$ chmod 600 ~/.ssh/authorized_keys

sshdの設定を修正し認証キーとGoogleAuthenticatorで認証されるようにする

※ 再度サーバーにrootログインしているものとする

  • sshd_configの修正
# vi /etc/ssh/sshd_config
以下を追記
-----
Protocol 2 ← SSH2のみとする
PermitRootLogin no          # Rootログインを禁止
PubkeyAuthentication yes    # 公開鍵認証を許可
PasswordAuthentication no   # パスワード認証を禁止
ChallengeResponseAuthentication yes                  # チャレンジレスポンス認証(ワンタイムパスワードとか用)を許可
AuthenticationMethods publickey,keyboard-interactive # 2要素認証として認証キー、チャレンジレスポンスを利用する
----
  • Google Authenticator用のPAMファイルの作成
# vi /etc/pam.d/google-auth
---
#%PAM-1.0
auth        required      pam_env.so
auth        sufficient    pam_google_authenticator.so try_first_pass
auth        requisite     pam_succeed_if.so uid >= 500 quiet
auth        required      pam_deny.so
----
  • sshdのPAMファイルの設定を変更してパスワードからGoogleAuthenticatorに切り替える
# vi /etc/pam.d/sshd
---
#%PAM-1.0
auth       required     pam_sepermit.so
#auth       substack     password-auth # コメントアウト
auth       substack     google-auth  # 追加
----
  • sshdのリスタート
# systemctl restart sshd

ログイン用ユーザーでGoogleAuthenticatorの設定

※SSHでサーバーにログインするユーザーに切り替えておく

$ google-authenticator

QRコードが表示されるので、SmartKey などの対応アプリでQRコードを撮影すれば登録ができる
他にもごちゃごちゃでてくるがyを押していけばOK

※ 最後に非常時用パスワード(6桁)が5つ表示されるのでこれはどこかにメモしておく。アプリが使えなくなった時などの緊急時に利用する。

ログインテスト

※ 新たにSSH接続を試す
※ テストする前にSSHを完全に切ってしまうと、上手くできていなかった場合、SSH接続が一切できなくなってしまうので注意

> ssh -i ~/.ssh/id_rsa LOGIN_USER@HOSTNAME
Verification code:

このVerification code:がでてきたら、アプリに表示されている6桁の数字を入力する。
ログインができたら成功。

感想

自分用のメモとして冗長にはなったが、これで2要素認証ができた。
今回は鍵認証とワンタイムパスワードでやっているが、パスワードとワンタイムパスワードなどの使い方もできる。
Amazon Linuxならyum だけでGoogle Autenticatorがいれられるし、2要素のログインは当たり前とおもったほうがいいんだろうな。

CentOS6でPhingを使うためのメモ

2013-07-28 CentOS, PHP, 環境構築 , , , ,

CentOS6でPhingを使うためにインストールしたものメモ。

Pearをインストールして、chanelとか自動探査できるようにオプション設定と念のためアップグレートもかける

# yum install php-pear
# pear config-set auto_discover 1
# pear upgrade PEAR

基本のPHPUnitとPhingをインストールする

# pear install pear.phpunit.de/PHPUnit
# pear install pear.phing.info/phing

Xdebugも必要になるので入れておく

# pecl install xdebug
# vi /etc/php.ini 
[xdebug]
zend_extension=/usr/lib/php/modules/xdebug.so

これでどっかでテストコード作成して

# phing test

とかして通ればOK

MacのVirtualboxで共有フォルダをapacheのドキュメントルートに設定する際の注意

2013-07-28 CentOS, Tools, VMware, 環境構築 , , ,

MacでVirtualbox入れて、Web開発の開発環境を作る際に、ソースを編集するのはMacからやるが、WebサーバーはVirtualboxのApacheにやらせようとして、ちょっとハマった点をメモ。

 

状況

  • VirtualboxのゲストOSは、CentOS6系(VirtualboxのサイトからCentos6.0 系のBaseのイメージをDLしたもの)
  • フォルダのマウントは自動マウント。マウント名は、sites(/media/sf_sites)
  • もちろんVirtualBox Guest Additionsもインストール済み。

 

この時に、ApacheにVirtualhosts設定して起動させるために必要になった内容をメモ。基本的に、もってきたCentOSのイメージがガチガチだったのが原因なので。通常であれば、1の手順だけでいいはず。それでも、ダメだったら2,3も確認してみる。

 

1)Apacheのユーザーをvboxsfグループに追加しておく

# gpasswd -a apache vboxsf

2)SELinuxを無効に。しておかないとDocumentRootにアクセスできないと怒られる。

# setenforce 0 ← 一時的な停止
# vi /etc/selinux/config ← 恒久的な停止

SELINUX=disabled
3)iptableに80でのアクセス追加

# vi /etc/sysconfig/iptables

-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT

# /etc/init.d/iptables restart

CentOS 5.5にPHP5.3.4とMySQL5.1をいれる

2010-12-31 CentOS, 環境構築 , ,

さくらのVPSを契約して使ってみるが、CentOSのリポジトリには、PHP5.1系しかおらず、ちょっと5.3系をつかってみたいので、epelとremiのリポジトリを追加して、アップデートすることにした。
ついでに、mysqlも5.1系にしてみた。

作業メモを残しておく。
RPMダウンロード用のディレクトリを作る

$ mkdir ~/rpm/

yumのリポジトリに、epelとremiを追加する

$ cd ~/rpm/
$ wget http://download.fedora.redhat.com/pub/epel/5/x86_64/epel-release-5-4.noarch.rpm
$ sudo rpm -Uvh epel-release-5-4.noarch.rpm
$ wget http://rpms.famillecollet.com/enterprise/remi-release-5.rpm
$ sudo rpm -Uvh remi-release-5.rpm

epelのリポジトリが初期が有効になっているので無効にしておく

$ sudo sed -i “s/^enabled=1$/enabled=0/” /etc/yum.repos.d/epel.repo

php5.3.4とmysql5.1へアップデート
初期にはいっているmysqlと衝突するので、mysqlは消しておく

$ sudo yum erase mysql
$ sudo yum –enablerepo=remi,epel install php mysql mysql-server

mysqlのセキュアな初期設定を行う
$ sudo /usr/bin/mysql_secure_installation

  • rootユーザーのパスワードを設定
  • 匿名ユーザーの削除
  • rootユーザーのリモート接続を禁止
  • testデータベースの削除

をまとめて行うことができる。

無料のグループウェアAipoをインストール

2010-03-08 アプリケーション , ,

ちょっと青年会の活動のほうで、グループウェアを導入してみたいので、無料のツールをいろいろ探していたら、Aipoというのを見つけたので早速インストールしてみる。

デフォルトでiPhoneやモバイルにも対応しているってのが結構うりになっているのが選んだきめて。

実際にはつかってみないとわからないだろうけど。

Aipo:http://aipostyle.com/

Aipoダウンロード:http://aipostyle.com/download/linux.html
インストールの前に、aipoのLinux用インストールファイルをダウンロードしてFTPなどでアップしておく

自分は/usr/local/src/にインストール用のファイルをアップした。

# cd /usr/local/src
# tar -xvzf aipo5020ja_linux.tar.gz
# cd aipo5020ja_linux
# tar -xvzf aipo5020.tar.gz
# mv /usr/local/aipo5020ja_linux/aipo /home/www/

実際にインストールをする前に接続するURLを変更しておく
# vi install.conf

def_addr=ここを好きな実際にアクセスしたURLに変更しておく

インストール用スクリプトを実行します。

# cd /home/www/aipo/bin
# sh installer.sh

なんかいろいろいるようです。

checking gcc… error
gccが見つかりませんでした。
gccをインストールしてください。
checking readline… error
readline-develが見つかりませんでした。
readline-develをインストールしてください。
checking zlib… error
zlib-develが見つかりませんでした。
zlib-develをインストールしてください。
Aipo5.0.2.0のインストールに失敗しました
groupdel: group aipo_postgres does not exist

いわれたとおり、gccとreadline-develとzlib-develをインストールする

# yum install gcc readline-devel zlib-devel

再度インストール

# sh installer.sh

とりあえず

==Aipo5.0.2.0インストール終了==

がでたらインストール終了いっしょにでている

Aipo URL: ~~~~URL~~~~

が、アクセスするさいのURLになる。
とりあえず無事インストールできているか起動

# ./startup.sh

さっきのURLで接続確認
接続が確認できたら終了する

# ./shutdown.sh

とりあえず、ここまででインストール完了。

とりあえず、インストールはなんとかできそう。

現時点できになったのは、以下の4つ

  • install.shでnetitfを設定を変更しなかったのだが、VPSはvenet0になっているので、なおす必要がありそう
  • postgresが一緒にインストールされたっぽいのだが、どうなっているのか気になる
  • Apacheと同居しているのTomcatのポートが変更されて、URLもポート指定になっていた。
  • FC2のVPSのFTPが異常に遅い。70MBアップするのに30分かかるのってどうよ?

次は、Apache経由でTomcatに接続するテストをしてみたい。

mod_jk2を利用するとかコミュニティーにあったが、mod_proxyでやっているひともいるようだ。mod_rewriteとあわせて、リバースプロキシ的にtomcatにつなげると思うので、そんな感じでいきたい。

YUMを手動でインストールする

2010-03-07 CentOS , ,

以前とっていたが、更新忘れでうしなったドメインを再度取得したので
ついでに、FC2VPSを契約して、ちょっと使ってみることにしたのだが、
FC2VPSはCentOS5なのだが、なんとYUMがはいっていなかったので手動でいれた。
まず、バージョン確認

$ cat /etc/redhat-release
CentOS release 5.4 (Final)

GPGKeyを登録しておく

$ wget http://mirror.centos.org/centos-5/5.4/os/i386/RPM-GPG-KEY-CentOS-5
$ sudo rpm –import RPM-GPG-KEY-CentOS-5

まとめてインストールしやすいように、ディレクトリをつくってYUM関連のRPMを取得してくる

$ mkdir yum
$ cd yum
$ wget http://mirror.centos.org/centos-5/5.4/os/i386/CentOS/python-elementtree-1.2.6-5.i386.rpm
$ wget http://mirror.centos.org/centos-5/5.4/os/i386/CentOS/python-iniparse-0.2.3-4.el5.noarch.rpm
$ wget http://mirror.centos.org/centos-5/5.4/os/i386/CentOS/python-urlgrabber-3.1.0-5.el5.noarch.rpm
$ wget http://mirror.centos.org/centos-5/5.4/os/i386/CentOS/python-sqlite-1.1.7-1.2.1.i386.rpm
$ wget http://mirror.centos.org/centos-5/5.4/os/i386/CentOS/rpm-python-4.4.2.3-18.el5.i386.rpm
$ wget http://mirror.centos.org/centos-5/5.4/os/i386/CentOS/yum-metadata-parser-1.1.2-3.el5.centos.i386.rpm
$ wget http://mirror.centos.org/centos-5/5.4/os/i386/CentOS/yum-fastestmirror-1.1.16-13.el5.centos.noarch.rpm
$ wget http://mirror.centos.org/centos-5/5.4/os/i386/CentOS/yum-3.2.22-20.el5.centos.noarch.rpm
$ wget http://mirror.centos.org/centos-5/5.4/os/i386/CentOS/m2crypto-0.16-6.el5.6.i386.rpm
$ wget http://mirror.centos.org/centos-5/5.4/os/i386/CentOS/libxml2-2.6.26-2.1.2.8.i386.rpm

まとめてRPMをインストールする前に一度テストで実行する

$ sudo rpm -ivh –test ./*
audit_log_user_command(): Connection refused
Preparing… ########################################### [100%]

問題ないので、インストール

$ sudo rpm -ivh ./*
audit_log_user_command(): Connection refused
Preparing… ########################################### [100%]
1:rpm-python ########################################### [ 10%]
2:python-sqlite ########################################### [ 20%]
3:python-elementtree ########################################### [ 30%]
4:m2crypto ########################################### [ 40%]
5:libxml2 ########################################### [ 50%]
6:python-urlgrabber ########################################### [ 60%]
7:python-iniparse ########################################### [ 70%]
8:yum-metadata-parser ########################################### [ 80%]
9:yum-fastestmirror ########################################### [ 90%]
10:yum ########################################### [100%]

これでyumが利用できるようになる。