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

CentOS6 に SVN1.7をいれる

2012-05-06 CentOS, svn, 環境構築

SVNのワークコピーといえば、サブディレクトリ毎に.svnという構成管理用のフォルダがつくられるという、とてつもなくイラッと来る仕様だったが、SVNも1.7から.svnディレクトリが、トップディレクトリだけになるという、すてきな仕様変更がはいっている。

その他にもいろんなアップデートが入っているようだが詳細は、リリースノートをみてくださいませ。

自分としては、これまでクライアントは1.7にプライベートも仕事も切り替えていたが、SVNサーバーはまだ切り替えれていなかった。SVNサーバーにしていたさくらのVPSを移行するのを機にせっかくだから、SVNサーバー側も1.7にしてみた。1.7のスピード面の改善などの効果はサーバーもクライアントも1.7になってこそらしい。

さくらのVPSは現在、CentOS6系がデフォルトだが、このままでは初期のSVNは1.6系。

1.7はYumでは提供されていないが、wandiscoというサイトからCentOS6用のSVN1.7インストーラーが配布されているので取得してインストールすれば、簡単に利用できる。(簡単だが会員登録が必要)

http://www.wandisco.com/subversion/download

ダウンロードしたファイルをSCPなどでインストールするサーバーに配置。
自分の場合は、SCPで転送後
/usr/local/src/ に配置

Rootで実行

# cd /usr/local/src/
# sh svn1.7_centos6_wandisco.sh

WANdisco Subversion Installer for CentOS 6
Please report bugs or feature suggestions to opensource@wandisco.com

Gathering some information about your system…

CentOS release 6.2 (Final)

CentOS version 6.x confirmed..

Checking your system arch

Installing for x86_64

Checking to see if you already have Subversion installed via rpm…

Subversion is already installed on the system.

Do you wish to replace the version of subversion currently installed with the WANdisco version?

This action will remove the previous version from your system

[y/n]

ようは既存のSVNと置き換えるかときいているようなので→y

Removing old packages…
Adding repository configuration to /etc/yum.repos.d/

—— Installing yum repo ——

Importing GPG key

—— Installing yum repo: Done ——

Installing Subversion 1.7.4

Loaded plugins: fastestmirror, security

Loading mirror speeds from cached hostfile

* epel: ftp.jaist.ac.jp

WANdisco | 951 B 00:00

WANdisco/primary | 8.8 kB 00:00

WANdisco 37/37

Setting up Install Process

Resolving Dependencies

–> Running transaction check

—> Package subversion.x86_64 0:1.7.4-1 will be installed

—> Package subversion-perl.x86_64 0:1.7.4-1 will be installed

—> Package subversion-python.x86_64 0:1.7.4-1 will be installed

—> Package subversion-tools.x86_64 0:1.7.4-1 will be installed

–> Finished Dependency Resolution

Dependencies Resolved

===============================================================================================================

Package Arch Version Repository Size

===============================================================================================================

Installing:

subversion x86_64 1.7.4-1 WANdisco 1.8 M

subversion-perl x86_64 1.7.4-1 WANdisco 941 k

subversion-python x86_64 1.7.4-1 WANdisco 636 k

subversion-tools x86_64 1.7.4-1 WANdisco 562 k

Transaction Summary

===============================================================================================================

Install 4 Package(s)

Total download size: 3.9 M

Installed size: 19 M

Downloading Packages:

(1/4): subversion-1.7.4-1.x86_64.rpm | 1.8 MB 00:00

(2/4): subversion-perl-1.7.4-1.x86_64.rpm | 941 kB 00:00

(3/4): subversion-python-1.7.4-1.x86_64.rpm | 636 kB 00:00

(4/4): subversion-tools-1.7.4-1.x86_64.rpm | 562 kB 00:00

—————————————————————————————————————

Total 12 MB/s | 3.9 MB 00:00

Running rpm_check_debug

Running Transaction Test

Transaction Test Succeeded

Running Transaction

Installing : subversion-1.7.4-1.x86_64 1/4

Installing : subversion-perl-1.7.4-1.x86_64 2/4

Installing : subversion-tools-1.7.4-1.x86_64 3/4

Installing : subversion-python-1.7.4-1.x86_64 4/4

Installed:

subversion.x86_64 0:1.7.4-1 subversion-perl.x86_64 0:1.7.4-1 subversion-python.x86_64 0:1.7.4-1

subversion-tools.x86_64 0:1.7.4-1

Complete!

Would you like to install apache and the apache SVN modules?

[y/n]
ApacheようのSVNモジュールも入れるか聞いているようなので→y

Installing apache and subversion modules
Loaded plugins: fastestmirror, security

Loading mirror speeds from cached hostfile

* epel: ftp.jaist.ac.jp

Setting up Install Process

Resolving Dependencies

–> Running transaction check

—> Package httpd.x86_64 0:2.2.15-15.el6.centos.1 will be installed

–> Processing Dependency: httpd-tools = 2.2.15-15.el6.centos.1 for package: httpd-2.2.15-15.el6.centos.1.x86_64

–> Processing Dependency: apr-util-ldap for package: httpd-2.2.15-15.el6.centos.1.x86_64

—> Package mod_dav_svn.x86_64 0:1.7.4-1 will be installed

–> Running transaction check

—> Package apr-util-ldap.x86_64 0:1.3.9-3.el6_0.1 will be installed

—> Package httpd-tools.x86_64 0:2.2.15-15.el6.centos.1 will be installed

–> Finished Dependency Resolution

Dependencies Resolved

===============================================================================================================

Package Arch Version Repository Size

===============================================================================================================

Installing:

httpd x86_64 2.2.15-15.el6.centos.1 updates 813 k

mod_dav_svn x86_64 1.7.4-1 WANdisco 92 k

Installing for dependencies:

apr-util-ldap x86_64 1.3.9-3.el6_0.1 base 15 k

httpd-tools x86_64 2.2.15-15.el6.centos.1 updates 70 k

Transaction Summary

===============================================================================================================

Install 4 Package(s)

Total download size: 989 k

Installed size: 3.3 M

Downloading Packages:

(1/4): apr-util-ldap-1.3.9-3.el6_0.1.x86_64.rpm | 15 kB 00:00

(2/4): httpd-2.2.15-15.el6.centos.1.x86_64.rpm | 813 kB 00:00

(3/4): httpd-tools-2.2.15-15.el6.centos.1.x86_64.rpm | 70 kB 00:00

(4/4): mod_dav_svn-1.7.4-1.x86_64.rpm | 92 kB 00:00

—————————————————————————————————————

Total 4.1 MB/s | 989 kB 00:00

Running rpm_check_debug

Running Transaction Test

Transaction Test Succeeded

Running Transaction

Installing : httpd-tools-2.2.15-15.el6.centos.1.x86_64 1/4

Installing : apr-util-ldap-1.3.9-3.el6_0.1.x86_64 2/4

Installing : httpd-2.2.15-15.el6.centos.1.x86_64 3/4

Installing : mod_dav_svn-1.7.4-1.x86_64 4/4

Installed:

httpd.x86_64 0:2.2.15-15.el6.centos.1 mod_dav_svn.x86_64 0:1.7.4-1

Dependency Installed:

apr-util-ldap.x86_64 0:1.3.9-3.el6_0.1 httpd-tools.x86_64 0:2.2.15-15.el6.centos.1

Complete!

Installation complete.

You can find the subversion configuration file for apache HTTPD at /etc/httpd/conf.d/subversion.conf

By default, the modules are commented out in subversion.conf.

To enable the modules, please edit subversion.conf and remove the # infront of the LoadModule lines.

You should then restart httpd (/etc/init.d/httpd restart)

これでインストール完了っぽい。

あとは、Apacheのモジュールを有効にして、Subversionのconfを有効にしてapache再起動せよということらしい。

自分は実際には色々とSVN用の設定は別途変更する予定だが、わすれる前に基本設定だけしておこう。

# vi /etc/httpd/conf/httpd.conf

mod_dav.so のコメントアウトを外す

——————–

LoadModule dav_module modules/mod_dav.so

——————–

# vi /etc/httpd/conf.d/subversion.conf

———————–

# Needed to do Subversion Apache server.
LoadModule dav_svn_module modules/mod_dav_svn.so

# Only needed if you decide to do “per-directory” access control.

LoadModule authz_svn_module modules/mod_authz_svn.so

————————-

文法チェックをおこなって問題がなければ、リスタート

# /etc/init.d/httpd configtest

# /etc/init.d/httpd restart

インストールされているバージョンをチェック

# svn –version
svn, version 1.7.4 (r1295709)

compiled Mar 5 2012, 14:55:30

Copyright (C) 2012 The Apache Software Foundation.

This software consists of contributions made by many people; see the NOTICE

file for more information.

Subversion is open source software, see http://subversion.apache.org/

The following repository access (RA) modules are available:

* ra_neon : Module for accessing a repository via WebDAV protocol using Neon.

– handles ‘http’ scheme

– handles ‘https’ scheme

* ra_svn : Module for accessing a repository using the svn network protocol.

– with Cyrus SASL authentication

– handles ‘svn’ scheme

* ra_local : Module for accessing a repository on local disk.

– handles ‘file’ scheme

無事に、1.7.4になっている。ステキ。

 

あとは、既存のSVNからDUMPしてLoadができるかは別な機会に試してみます。

 

さくらのVPS移行備忘録(初期設定)

2012-05-06 CentOS, 環境構築 ,

さくらのVPSを新しく契約したので、古いVPSから色々ともってくる。
青年会のメルマガ配信用のCGIを動かしていたりしたので結構面倒・・・

とりあえず、DNS周りの設定やら、サーバー設定等その他メモっておく。

なお、さくらのVPSのOS初期設定も公開されているので参考にする。

 

OSセットアップ情報; http://support.sakura.ad.jp/manual/vps/ossetup.html

■DNS系

  • Aレコードの設定
    → 新VPSに楽につなげるように利用しているドメインに新VPSのIPでAレコードを追加しておく
  • SPFレコードの設定
    → 同じく新VPSからメール送信されるだろうドメインのSPF(TXT)レコードを修正
    v=spf1 include:_spf.google.com +ip4:新VPSのIP/32 ~all
    同じドメインで、GoogleAppsを利用しているので、↑のようにSPFレコードに新しいVPSのIPを追記する
  • 逆引き設定の変更
    → さくらのVPSコントロールパネルからホスト名を先程登録したAレコードに変更

■OSのホスト名を修正

# vi /etc/sysconfig/network

————————

HOSTNAME=sakura2.eumyang.net

————————

# vi /etc/hosts

————————–
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4 sakura2.eumyang.net
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6 sakura2.eumyang.net

————————–

 

■環境の文字コードを日本語UTF8にする

# vi /etc/sysconfig/i18n

———————————

LANG=”ja_JP.UTF-8″

———————————-

■一度再起動して環境が設定通りになっているか確認

# shutdown -r now

■ユーザーの作成
rootユーザーしかいないのでwheelグループのユーザーを追加しておく。

# useradd -g wheel newuser -p
ぱすわーど入力
再度ぱすわーど入力

newsuser でログインできるかテストしておく。

■SSHの鍵作成
SSHを鍵認証で使用するようにする。
まずはローカルで鍵の作成。ここではsakura2_rsaとして作成

$ ssh-keygen -f sakura2_rsa -t rsa
Generating public/private rsa key pair.
Enter passphrase (empty for no passphrase): ぱすわーど入力
Enter same passphrase again: もっかいぱすわーど入力
Your identification has been saved in sakura2_rsa.
Your public key has been saved in sakura2_rsa.pub.

できたsakura2_rsa.pub をさくらのVPSに転送

# scp sakura2_rsa.pub newuser@新VPSのIP:

新VPSサーバーに接続して公開鍵を登録

$ cat sakura2_rsa.pub >> .ssh/authorized_keys

権限を修正

$ chmod 600 .ssh/authorized_keys

登録したらゴミは削除

$ rm sakura2_rsa.pub

パスワードでのログインを禁止する

# vi /etc/ssh/sshd_config
——-
PasswordAuthentication no
——-
SSHを再起動
# /etc/init.d/sshd restart

これで登録した秘密鍵以外からのSSH接続が禁止完了

■yumのアップデート
前のVPSを契約したころは、デフォルトではyumがはいっていなかったのだが、今はyumが用意されていた。
とりあえず、アップデートだけかましておく

# yum update

■PHPやMySQLくらいはいれておく

自分のメイン言語は完全にPHPなので、PHPとMySQLくらいは基本でいれておく。

# yum install php

5.3.3-3.el6_2.6 がはいった。

 # yum install mysql-server

5.1.61-1.el6_2.1がはいった

もちろんphp-mysqlもいれておく

# yum install php-mysql

5.3.3-3.el6_2.6 がはいった

わすれんうちに、MySQLの初期設定くらいはしておく
# /etc/init.d/mysqld start
#/usr/bin/mysql_secure_installation
■ApacheとMySQLくらいは自動起動にしておく

# chkconfig –list httpd
httpd               0:off     1:off     2:on     3:on     4:on     5:on     6:off
# chkconfig –list mysqld
mysqld              0:off     1:off     2:off     3:off     4:off     5:off     6:off
# chkconfig mysqld on
# chkconfig –list mysqld
mysqld              0:off     1:off     2:on     3:on     4:on     5:on     6:off

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データベースの削除

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

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が利用できるようになる。

WebDAVの構築

2008-08-25 CentOS

Apacheの設定がとりあえず、できているみたいなので
続いて、Apache用のフォルダにクライアントからアクセスできるよう
WebDAVの設定を行う。
WebDAVを使うわけ

FTPのように別サーバーを構築する必要はない。
WWWサーバーのポートを利用するので、ポートを別に開く必要がない。
Windowsのエクスプローラからファイル操作ができる。
Sambaとちがいインターネット経由でも作業が可能

WebDAVサーバーの構築
CentOSでは標準で設定はされているが、無効になっているので有効にする。
設定ファイル(/etc/httpd/conf/httpd.conf)

WebDAVnoモジュール組み込み
 LoadModule dav_module modules/mod_dav.so
 LoadModule dav_fs_module modules/mod_dav_fs.so
ロックファイルの指定
 DAVLockDB <ロックファイル>
 # 複数のクライアントが同時に操作することが可能なため、ロックファイルを指定

ーーー更新予定
設定途中で挫折 OTL…..

Apacheの設定② httpd.conf

2008-08-17 CentOS

Aacheのファイアウォール類の設定を記録してたら
SELinuxの論理パラメータを書きつづるだけで、長くなりすぎた・・・・
改めて、Apacheの基本的な設定ファイルであるhttpd.confについても覚書
httpd.confの設定
/etc/httpd/conf/httpd.conf
以下、httpd.confの内容を抜粋
Apacheのレスポンスヘッダの設定
レスポンスヘッダに表示されるWWWサーバーの情報
ServerToken OS
OS以外にも、以下のようなものが設定可能

Prod(プロダクト名)
Major(Prod+ApacheのメジャーVer)
Minor(Prod+ApachnのマイナーVerまで)
Min(Prod+詳細なApacheのVer)
OS(Min+OS名)
Full(OS+アプリケーションの情報)

設定ファイルの置き場所
 ServerRoot ”/etc/httpd”
 設定ファイルやログの置き場所、特に変更の必要なし。
タイムアウトに関する設定
 TimeOut <sec>

 GETリクエストを受け取るまでの時間、POST,PUTリクエストの受け取るTCPパケットの間隔の合計、レスポンスのACKパケットの間隔の合計
 デフォルトで120(特に変更の必要はなし)
アドレスとポートの指定
Liste [アドレス:]<ポート>

 HTTPリクエストを待つアドレスとポートを指定
 80番ポートをそのまま使うなら変更の必要なし。
 80番ポートが使えない理由や変更したなら変更、その場合は接続時のURLも:ポートを追加
モジュールの設定
 LoadModule <モジュール> <ファイル名>

 <ファイル名>から<モジュール>を呼んでくるという設定
他の設定ファイルの読み込み
 Include <ファイル名>

 他の設定ファイルを読み込んでくる
サーバー管理者の指定
 ServerAdmin <メールアドレス>

 デフォルト:root@localhot
 エラーページを返した場合などに、管理者にメールを送る。
ドキュメントルートの設定
 DocumentRoot /var/www/html

 クライアントがアクセスしたさいのメインページがおかれるディレクトリ、変更も可能。
 *最後のディレクトリに「/(スラッシュ)」はつけない。
ユーザーが公開するディレクトりの設定
 UserDir disabled

 CentOSのユーザーが公開するディレクトリ
 通常は無効(disabled)になっている 
 変更例

public_html : /home/ユーザー/public_html/
/usr/home : /usr/home/ユーザー名/
/usr/*/www : /usr/ユーザー名/www/

 
インデックスファイルの指定
 DirectoryIndex <ファイル名>

 ディレクトリ名だけで接続してきた際に表示するファイル
 indx.htm index.html index.phpのようにスペース区切りで複数設定可能、左から優先
接続テスト
 一通り設定ができたら、設定を反映させるために
 httpdを再起動(service httpd restart)
 ローカルネットワーク内の他のPCのブラウザーから
 http://192.168.X.X/のようにサーバーのIPアドレスをいれて接続テスト
 接続がうまくいかない場合は、
 パケットフィルタリングやSELinux等の設定がおかしくないか
 httpd.confの設定が間違っていないかよく見直そう。

Apacheの設定① ファイアウォール

2008-08-17 CentOS

やっとこさ、Apacheの設定までこれました。
Apache HTTP Server
 WWWサーバーソフトウェアのスタンダード。
 CentOSではデフォルトでインストールされている。
 サービス名:httpd
 
Apacheの利用のためにファイアウォールの調整
パケットファイルタリングの設定
 HTTPと、HTTPSで使用する80番と443番のポートをあけるために以下のようにiptablesを入力する。
 iptables -A INPUT -p tcp –dport 80 -j ACCEPT
 しかし、うまくいかず挫折・・・
 結局、system-config-securitylevel-tuiを利用してHTTPとHTTPSのポートを完全に開放する。
 system-config-securitylevel-tuiを使うと、ポートを開きすぎちゃってあまりよくないともいうが、初心者には、こまかな設定は難しい・・・
 
SELinuxの設定
 setsebool -P <論理パラメータ名>
 でひとつひとつ設定しようとするが、あまりにも面倒なので
 結局GUIのSELinuxAdministrationから下のようにおこなった。
SELinux設定画面
 HTTPD関連のSELinux論理パラメータ

allow_httpd_anon_write
GUI: Allow httpd daemon to write files in directories labeled public_content_rw_t
デフォルト:off
WebDAVを利用する場合はON
allow_httpd_mod_auth_pam
GUI;:Allow apache to use mod_auth_pam
デフォルト:off
Apacheをつかって認証を利用する場合はON
allow_httpd_sys_script_anon_write
GUI:Allow httpd scripts to write files in directories labels public_content_rw_t
デフォルト:off
htttpdのスクリプトを利用してファイルのアップロードを行う場合はON
httpd_bulitin_scripting
GUI:Allow HTTPD to support build-in scripting
デフォルト:ON
PHP等のビルドインスクリプトを利用する場合はON
httpd_can_network_connect
GUI:Allow HTTPD scripts and modules to connect to the network
デフォルト:off
httpdのスクリプトに対してネットワークからの接続を許可する場合はON
offがおすすめ。
httpd_can_netwpork_connect_db
GUI:Allow HTTPD scripts and modules to connect to the databases
デフォルト:off
httpdのスクリプトに対してネットワークDBからの接続を許可する場合はON
offがおすすめ。
httpd_can_network_relay
GUI:Allow httpd to act as relay
デフォルト:off
httpdのスクリプトにタオいしてネットワークの中継を許可する場合はON
offがおすすめ
httpd_disable_trans
GUI:Disable SELinux protextion for httpd daemon
デフォルト:off
onにするとhttpdがSELinuxの保護対象でなくなる。
httpd_enable_cgi
GUI:Allow HYTTPD cgi support
デフォルト:on
httpdがCGIを実行可能にする。
httpd_enable_ftp_server
GUI:Allow HTTPD to run as a ftp server
デフォルト:off
httpdに対して、ftpを利用した接続を許可する場合はon
httpd_enable_homedirs
GUI:Allow HTTPD to read home directories
デフォルト:off
WWWサーバーでユーザーのホームディレクトリを公開する場合はON
httpd_rotatelogs_disable_trans
GUI:Disable SElinux protection for httpd rotatelogs
デフォルト:off
Onにするとローテートされたhttpdのログが保護対象から外れる
httpd_ssi_exec
GUI:Allow HTTPD to run SSI executables in the same domain as system CGI scripts
デフォルト:off
httpdがssiを実行できるように許可する場合はON
httpd_suexec_disable_trans
GUI:Disable SELinux protection for http suexec
デフォルト:off
onにするとsuの実施が保護対象から外れる
httpd_tty_comm
GUI:Unify HTTPD to communicate with the terminal.Needed for handling certifications
デフォルト:off
httpを利用したターミナル通信を許可する場合はOn
offがおすすめ
httpd_unified
GUI:Unify HTTPD handling of all content files
デフォルト:on
httpdによる書き込みなどをきょかするかの設定。
offにするとPHPなどが動かなくなるかも。