ssh 公開鍵認証

sshd_config 設定 ( ssh接続で鍵の利用を許可する)

vim /etc/ssh/sshd_config

RSAAuthentication yes

PubkeyAuthentication yes

AuthorizedKeysFile .ssh/authorized_keys

PermitRootLogin no

PasswordAuthentication no

 

resolv.conf 設定 (yumコマンドが使えるように設定)

/etc/resolv.conf

nameserver 8.8.8.8

nameserver 8.8.4.4

nameserver 127.0.0.1

 

ssh-keygenコマンドで秘密鍵&公開鍵を作成

ログインユーザーのホームディレクトリ(~/.ssh)に

秘密鍵(id_rsa)と公開鍵(id_rsa.pub

#RSA鍵を作成(ssh version2)

ssh-keygen -t rsa

# RSA1鍵を作成(ssh version1)

ssh-keygen -t rsa1

#DSA鍵を作成(ssh version2)

ssh-keygen -t dsa

 

permissionの設定

cp ~/.ssh/id_rsa.pub ~/.ssh/authorized_keys

chmod 700 ~/.ssh

chmod 600 ~/.ssh/authorized_keys

 

作成済みの秘密鍵のパスワードを変更する場合

ssh-keygen -p -f ~/.ssh/id_rsa

Enter old passphrase: (旧パスワード)

Key has comment '~/.ssh/id_rsa'

Enter new passphrase (empty for no passphrase): (新パスワード)

Enter same passphrase again: (新パスワード)

Your identification has been saved with the new passphrase.

 

 

 

sshpass インストール

sshpass とは?

sshpass( Non-interactive ssh password authentication ) を使うと

コマンドラインにてssh接続のパスワードを指定することができ、ログインできるようになる。

 

sshpass リポジトリ登録

rpm -ivh http://dl.fedoraproject.org/pub/epel/5/i386/epel-release-5-4.noarch.rpm

 

sshpass インストール

yum -y install sshpass

 

sshpass コマンド書式

sshpass -p 'パスワード' ssh -i 秘密鍵 ユーザ名@ホスト名( IPアドレス)

 

参考サイト

http://server-setting.info/centos/sshpass-ssh-auto-connect.html

 

 

CandyCane インストール

DocumentRoot作成

mkdir /var/www/www.candycane.co.jp

cd /var/www/www.candycane.co.jp

 

CandyCaneをダウンロード

wget https://github.com/yandod/candycane/archive/master.zip

unzip candycane-master.zip

rm -rf candycane-master.zip

mv candycane-master htdocs

cd htdocs

chmod -R 777 app/tmp/

chmod -R 777 app/Config

chmod -R 777 app/files

chmod -R 777 app/Plugin

chown -R apache:apache /var/www/www.candycane.co.jp

 

Apacheの設定

vim /etc/httpd/conf.d/www.candycane.co.jp.conf

********************************************************************

#

#  httpd configuration settings for use with mailman.

#

 

# Listen for virtual host requests on all IP addresses

#NameVirtualHost *:80

 

<VirtualHost *:80>

    DocumentRoot "/var/www/www.candycane.co.jp/htdocs"

    ServerName www.candycane.co.jp

 

    DirectoryIndex index.html index.php

 

    ErrorLog logs/www.candycane.co.jp_error_log

    CustomLog logs/www.candycane.co.jp_access_log common

 

    <Directory "/var/www/www.candycane.co.jp/htdocs">

#        AuthType Basic

#        AuthUserFile /etc/httpd/.htpasswd

#        AuthName "Basic Certification"

#        require valid-user

 

        AllowOverride ALL

        Order allow,deny

        Allow from all

    </Directory>

</VirtualHost>

********************************************************************

 

candycane用のDBを構築

**********************************************************  

mysel -u root -p

create database candycane default character set utf8;

grant all privileges on candycane.* to candy_user@localhost identified by 'candy_password';

flush privileges;

exit;

**********************************************************  

 

hosts 設定

vim /etc/hosts

127.0.0.1       localhost.localdomain localhost www.candycane.co.jp

 

Apache再起動

service httpd configtest

service httpd restart

httpd -S

 

dotProject インストール

作業ディレクトリー作成

cd mkdir /var/www/work

 

 

dotProjectをダウンロード

http://sourceforge.jp/projects/sfnet_dotproject/releases/

 

DocumentRootを作成

cd mkdir /var/www/www.dotproject.co.jp

 

dotProjectを設置

mv /var/www/work/dotproject-2.1.8.tar.gz .

tar zxvf dotproject-2.1.8.tar.gz

rm -rf dotproject-2.1.8.tar.gz

mv dotproject htdocs

chown -R apache:apache /var/www/www.dotproject.co.jp

cd htdocs/

chmod -R o+w includes files files/temp locales/en

 

Apacheのconfファイル作成

cd /etc/httpd/conf.d/

vim www.dotproject.co.jp.conf

**************************************************************************

#

#  httpd configuration settings for use with mailman.

#

# Listen for virtual host requests on all IP addresses

#NameVirtualHost *:80

<VirtualHost *:80>

    DocumentRoot "/var/www/www.dotproject.co.jp/htdocs"

    ServerName www.dotproject.co.jp

    DirectoryIndex index.html index.php

 

    ErrorLog logs/www.dotproject.co.jp_error_log

    CustomLog logs/www.dotproject.co.jp_access_log common

 

    <Directory "/var/www/www.dotproject.co.jp/htdocs">

#        AuthType Basic

#        AuthUserFile /etc/httpd/.htpasswd

#        AuthName "Basic Certification"

#        require valid-user

        AllowOverride ALL

        Order allow,deny

        Allow from all

    </Directory>

</VirtualHost>

**************************************************************************

 

Apache再起動

service httpd restart

 

設定が有効になったことを確認

httpd -S

port 80 namevhost www.dotproject.co.jp (/etc/httpd/conf.d/www.dotproject.co.jp.conf:8)

Syntax OK

 

リクエスト開始時にセッションを自動的に開始させる

vim /etc/php.ini

session.auto_start = 1

 

dotProject用にschema構築

mysql -u root -p

CREATE DATABASE dotproject default character set utf8;

GRANT USAGE ON * . * TO 'dp_user'@'localhost' IDENTIFIED BY 'dp_password';

GRANT ALL PRIVILEGES ON `dotproject` . * TO 'dp_user'@'localhost';

 

 

 

 

samba インストール

sambaをインストール

yum -y install samba

 

新規ユーザーを作成

useradd smb_user

passwd smb_user

 

既存ユーザをSambaサーバーアクセス用ユーザに設定

pdbedit -a smb_user

new password: +++++++

retype new password: +++++++

 

 共有ディレクトリ作成

mkdir /var/www/

chown nobody:nobody /home/samba

 

Samba設定ファイル編集

vim /etc/samba/smb.conf

*******************************************************************

[global]

        # Linux側日本語文字コード

        unix charset = UTF-8

        # Windows側日本語文字コード

        dos charset = CP932

        # Linux側日本語文字コード

        display charset = UTF-8

 

        workgroup = WORKGROUP

        # ログイン時 ユーザー名 & パスワード の認証が必要

        security = user

 

        # 内部からのアクセスのみ許可

        hosts allow = 192.168. 127.

 

        # (プリンタ共有無効化)※Sambaでプリンタを共有しない場合

        load printers = no

        # (プリンタ共有無効化)※Sambaでプリンタを共有しない場合

        disable spoolss = yes

 

[homes]

        comment = HomeDirectories

        # /home/ユーザー名/sambaをホームディレクトリにする

        path = %H/samba

        browseable = no

        writable = yes

        #  ※ファイル削除時に自動的にごみ箱へ移動されるようにする

        vfsobjects = recycle

        # ごみ箱のディレクトリ名(/home/ユーザ名/.recycle)

        recycle:repository = .recycle

        # ごみ箱へ移動時にディレクトリ構造を維持しない

        recycle:keeptree = no

        # 同名のファイルがごみ箱にある場合に別名で移動

        recycle:versions = yes

        # ごみ箱へ移動時にタイムスタンプを更新しない

        recycle:touch = no

        # ごみ箱へ移動するファイルのサイズ上限(0:無制限)

        recycle:maxsize = 0

        # ここで指定したファイルはごみ箱へ移動せずに即削除する

        recycle:exclude = *.tmp~$*

 

[public]

        comment = Public Stuff

        path = /home/samba

        public = no

        writable = yes

        only guest = yes

        #  ※ファイル削除時に自動的にごみ箱へ移動されるようにする

        vfsobjects = recycle

        # ごみ箱のディレクトリ名(/home/ユーザ名/.recycle)

        recycle:repository = .recycle

        # ごみ箱へ移動時にディレクトリ構造を維持しない

        recycle:keeptree = no

        # 同名のファイルがごみ箱にある場合に別名で移動

        recycle:versions = yes

        # ごみ箱へ移動時にタイムスタンプを更新しない

        recycle:touch = no

        # ごみ箱へ移動するファイルのサイズ上限(0:無制限)

        recycle:maxsize = 0

        # ここで指定したファイルはごみ箱へ移動せずに即削除する

        recycle:exclude = *.tmp~$*

        # sambaログの吐き出しルールを記述

 

       vfs objects = full_audit

       full_audit:facility = local1
       full_audit:prefix = %m|%I|%S
       full_audit:failure = connect disconnect mkdir rmdir pwrite rename unlink
       full_audit:success = connect disconnect mkdir rmdir pwrite rename unlink

*******************************************************************

 

Samba起動

service smb start

nmb起動

nmb start

 

Samba / nmb 自動起動設定

chkconfig smb on

chkconfig nmb on

 

rsyslogでsambaのログ吐き出しルールを設定

ログの吐き出し先を/etc/rsyslog.confに記述する。
現状だと/var/log/messagesに設定したログが吐き出されてしまうが、
messagesはsamba以外のログも吐き出されるので、sambaのログと切り分ける。

vim /etc/rsyslog.conf

$template sharetmpl, "/var/log/samba/%$year%-%$month%.log"
local1.* ?sharetmpl

 

 

ごみ箱内ファイル自動削除スクリプト作成

(1週間ごとに30日間アクセスのないごみ箱内のファイルを自動的に削除)

vim /etc/cron.weekly/recyclewatch

************************************************************

#!/bin/bash

for user in `ls /home/`

do

    if [ -d /home/$user/.recycle ]; then

        tmpwatch -f 720 /home/$user/.recycle/

    fi

done

************************************************************

 

スクリプトに実行権限付加

chmod +x /etc/cron.weekly/recyclewatch

 

SELinuxの停止法

vim /etc/sysconfig/selinux

SELINUX=enforcing

 ↓

SELINUX=disabled

 

 

sambaユーザの確認

pdbedit -L

 

sambaユーザー削除

pdbedit -x hoge

 

trac インストール

Python2.6をインストール

wget http://www.python.org/ftp/python/2.6.2/Python-2.6.2.tgz

tar zxvf Python-2.6.2.tgz

cd Python-2.6.2

./configure --prefix=/usr/local/python --enable-shared

make

make install

 

libpython2.6.so.1.0を/usr/libにコピー。これがないとPythonが動かない。

cp libpython2.6.so.1.0 /usr/lib/

 

パスを通す

vim ~/.bash_profile

PATH=/usr/local/python/bin:$PATH

 

設定を反映

source ~/.bash_profile

 

正しくパスが通っているか確認

python -V

Python 2.6.2

 

Genshiインストール

wget http://ftp.edgewall.com/pub/genshi/Genshi-0.6-py2.6.egg

easy_install Genshi-0.6-py2.6.egg

 

tracが使用するライブラリ「genshi」と「babel」をeasy_installでインストール

easy_install genshi

easy_install babel

 

// trac導入

cd /var/www/

mkdir work

cd work

 

wget http://www.i-act.co.jp/project/products/downloads/Trac-0.12.3.ja2.zip

 

yum --enablerepo=rpmforge install python-clearsilver

yum --enablerepo=rpmforge install python-sqlite2.i386

 

yum -y install mod_python sqlite-devel

 

wget http://peak.telecommunity.com/dist/ez_setup.py

python ez_setup.py

unzip Trac-0.12.3.ja2.zip

mv Trac-0.12.3.ja2 trac

cd trac

python setup.py install

 

trac メニューの日本語化

svn co http://svn.edgewall.org/repos/trac/trunk

cd trunk

python setup.py compile_catalog -f

python setup.py install

 

tracディレクト作成

mkdir /var/www/trac

trac-admin /var/www/trac/test_project initenv

vim /var/www/trac/test_project/conf/trac.ini

repository_dir = /var/www/svn-repos

 

// tracへログインする時に使用するユーザを設定

// user1をユーザとして追加(TRAC-ADMIN権限をもつユーザ)

trac-admin /var/www/trac/test_project permission add admin TRAC_ADMIN

htpasswd -c /var/www/trac/.htpasswd admin

chown -R apache:apache /var/www/trac

 

// デフォルトで登録されている匿名ユーザ権限の確認

trac-admin /var/www/trac/test_project permission list anonymous

 

// 権限の削除(リポジトリを匿名ユーザには見せない設定例)

trac-admin /var/www/trac/test_project permission remove anonymous  BROWSER_VIEW

 

vim /etc/httpd/conf.d/trac.conf

<Location /projects >

  SetHandler mod_python

  PythonInterpreter main_interpreter

  PythonHandler trac.web.modpython_frontend

  PythonOption TracEnvParentDir /var/www/trac

  PythonOption TracUriRoot /projects

</Location>

 

<LocationMatch "/[^/]+/login">

SetHandler mod_python

PythonInterpreter main_interpreter

PythonHandler trac.web.modpython_frontend

PythonOption TracEnvParentDir /var/www/trac

PythonOption TracUriRoot /projects

 

AuthUserFile /var/www/trac/.htpasswd

AuthName "Trac User Authorize"

AuthType Basic

Require valid-user

</LocationMatch>

 

cd /usr/lib/python2.4/site-packages/

unzip Trac-0.12.3.ja2-py2.4.egg

 

service httpd restart 

 

 

// ガントチャート/カレンダー プラグイン

wget http://sourceforge.jp/projects/shibuya-trac/svn/view/plugins/ganttcalendarplugin.tar.gz?root=shibuya-trac&view=tar

tar zxvf shibuya-trac-ganttcalendarplugin.tar.gz

cd ganttcalendarplugin/trunk/

python setup.py bdist_egg

python setup.py install

 

service httpd restart

 

 

 

Subversion インストール

yumリポジトリからsubversionをインストール

yum -y install subversion mod_dav_svn

 

リポジトリのディレクトリを作成

mkdir /var/www/svn-repos

svnadmin create /var/www/svn-repos

svnadmin create /var/www/svn-repos/repos

 

リポジトリ用のグループとユーザを作成 

groupadd subversion

chown hoge1:subversion hoge1

chown hoge2:subversion hoge2

 

権限を変更しておく 

chmod -R 775 /var/www/svn-repos

chown -R apache:subversion /var/www/svn-repos

 

ユーザ名とパスワードを設定 

vim /var/www/svn-repos/conf/passwd

hoge1 = hoge1

hoge2 = hoge2

 

 モジュールを有効にする

vim /etc/httpd/conf/httpd.conf

 // 以下のコメントをはずします。

#LoadModule dav_module modules/mod_dav.so

#LoadModule dav_fs_module modules/mod_dav_fs.so

              ↓

LoadModule dav_module modules/mod_dav.so

LoadModule dav_fs_module modules/mod_dav_fs.so

 

 

subversion設定ファイルを作成

 vim /etc/httpd/conf.d/subversion.conf

<Location /svn-repos>

   DAV svn

   SVNPath /var/www/svn-repos

#   SVNParentPath /var/www/svn-repos

 

   Order allow,deny

   Allow from all

 

   AuthType Basic

   AuthName "Subversion Repository"

   AuthUserFile /var/www/svn-repos/conf/htpasswd

   Require valid-user

   AuthzSVNAccessFile /var/www/svn-repos/conf/authz

 

   # Limit write permission to list of valid users.

   <LimitExcept GET PROPFIND OPTIONS REPORT>

      Require valid-user

      # Require SSL connection for password protection.

      # SSLRequireSSL

 

      #AuthType Basic

      #AuthName "Authorization Realm"

      #AuthUserFile /h/to/passwdfile

      #Require valid-user

   </LimitExcept>

</Location>

 

 subversion設定ファイルを作成

 vim /var/www/svn-repos/conf/svnserve.conf

[general]

anon-access = read

auth-access = write

 

 subversionユーザの権限設定

 vim /var/www/svn-repos/conf/authz

[/]

hoge1 = rw

hoge2 = rw

 

 Apacheの再起動

service httpd configtest

service httpd restart

 

 ユーザ認証ファイル作成

htpasswd -c /var/www/svn-repos/conf/htpasswd hoge1

htpasswd  /var/www/svn-repos/conf/htpasswd hoge2

chown apache:subversion /var/www/svn-repos/conf/htpasswd

 

リポジトリにsampleコンテンツの trunk / branches /  tags フォルダを作成

svn mkdir -m "create" file:///var/www/svn-repos/sample

svn mkdir -m "create" file:///var/www/svn-repos/sample/trunk

svn mkdir -m "create" file:///var/www/svn-repos/sample/branches

svn mkdir -m "create" file:///var/www/svn-repos/sample/tags

 

post-commitの設定 (svn update)

cp /var/www/svn-repos/hooks/post-commit.tmpl /var/www/svn-repos/hooks/post-commit

chmod 774 /var/www/svn-repos/hooks/post-commit

vim /var/www/svn-repos/hooks/post-commit

(例.1)

*******************************************************

#!/bin/sh

SVNUSER=hoge1

SVNPASS=hoge1

SVNOPTS="--username ${SVNUSER} --password ${SVNPASS} --non-interactive"

LANG=en_US.UTF-8 /usr/bin/svn ${SVNOPTS} update /var/www/svn_hoge/sample/trunk

/usr/bin/ssh -i /var/www/.ssh/id_rsa apache@192.168.154.128 'cd /var/www/work/ && LANG=en_US.UTF-8 svn update'

rsync -a -e "/usr/bin/ssh -i /var/www/.ssh/id_rsa" /var/www/svn_hoge/sample/trunk/ apache@192.168.154.128:/var/www/sample/trunk/

*******************************************************

(例.2)

*******************************************************

#!/bin/sh
# POST-COMMIT HOOK

#svn update
if [ -e /var/www/svn-repos/hoge.co.jp/work ];
then
svn update /var/www/svn-repos/hoge.co.jp/work
else
mkdir /var/www/svn-repos/hoge.co.jp/work
svn checkout file:///var/www/svn-repos/hoge.co.jp /var/www/svn-repos/hoge.co.jp/work
fi

#ftp mirror
# -R: ファイルをアップロード
# -X .svn/: .svnファイルはアップしない
# --delete: 削除されたものはアップロード先でも削除する
# --only-newer: 新しいファイルのみ
# --no-perms: パーミションを無視
echo "exit" | lftp -p 21 -u user,passwd -e "mirror -R -X .svn/ --only-newer --delete /var/www/svn-repos/hoge.co.jp/work/trunk /home/hoge/www/contents" hoge.sakura.ne.jp

*******************************************************

 

ViewVC導入

yum -y install yum-plugin-priorities  // CentOS6の場合

yum -y install yum-priorities         // CentOS5の場合

 

vim /etc/yum.repos.d/CentOS-Base.repo

[base]

priority=1

[updates]

priority=1

[extras]

priority=1

 

 

 

// RPMfogeに接続するためのyumコマンド関連ファイルをダウンロードし設定する。

cd /usr/src/redhat/RPMS/i386/

wget http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.3.6-1.el5.rf.i386.rpm

rpm -ihv rpmforge-release-0.3.6-1.el5.rf.i386.rpm

 

// RPMforgeからパッケージをインストールする際に署名の警告が出ないように、

// DAGからキー(公開鍵)をインポートする。

// 公開鍵は、/etc/pki/rpm-gpg/ディレクトリにRPM-GPG-KEY-rpmforge-dagとしてインストールされる。

rpm --import http://apt.sw.be/RPM-GPG-KEY.dag.txt

 

// yumコマンドでパッケージを検索する際にRPMforgeを検索するようになり、

// 大量のRPMforgeが検索されてしまうため、検索に優先順位をつけて

// 1.オフィシャルなリポジトリ -> 2.RPMforge リポジトリの順に検索するように設定する。

vim /etc/yum.repos.d/rpmforge.repo

enabled = 0

 

yum -y --enablerepo=rpmforge install viewvc

 

vim /etc/viewvc/viewvc.conf

root_parents = /var/www/svn-repos: svn

address = plus_heureux@yahoo.co.jp

use_localtime = 1

 

vim /usr/share/viewvc/templates/include/header.ezt

// 7行目に追加

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

 

 

vim /etc/httpd/conf.d/viewvc.conf

ScriptAlias /viewvc /var/www/cgi-bin/viewvc.cgi

ScriptAlias /query /var/www/cgi-bin/query.cgi

Alias /viewvc-static /var/www/viewvc

<Location "/viewvc">

        Order deny,allow

        Deny from All

        Allow from 127.0.0.1

        Allow from 192.168.154.

</Location>

 

 

service httpd restart