rgb-green.net

自宅サーバ時代の「サーバ構築」

 このページは、第九期ネットワーク構成図に基づいて、2008年8月に、FedoreCore6(MainServer機)、FedoraCore4(WWWServer機)、FedoraCore2(BackupServer機)で各々サーバ構築した内容を記録したものです。

MainServerのサーバ構築

SSHサーバの構築

外部公開のため、パスワードによる認証でなく、公開鍵と秘密鍵、及びパスフレーズによる認証でSSHの構築をします。

(1) インストール
# rpm -qa | grep ssh
openssh-4.3p2-10
openssh-askpass-4.3p2-10
openssh-clients-4.3p2-10
openssh-server-4.3p2-10
(2) RSA公開鍵と秘密鍵の作成
作成方法については、Gentoo Linuxで自宅サーバを参考にしてください。
(3) 設定

# vi /etc/ssh/sshd_config

  • (ⅰ)RSA公開鍵認証の有効化
  •  以下により、公開鍵と秘密鍵、及びパスフレーズによる認証が可能になります。
    RSAAuthentication yes
    PubkeyAuthentication yes
    AuthorizedKeysFile .ssh/authorized_keys

  • (ⅱ)rootで直接ログインできないようにする。
  • これにより、ssh接続でroot権限を得るには認証を2回パスしなければならなくなります。
    PermitRootLogin no

  • (ⅲ)rhostでの接続とパスワード認証の無効化
  • RhostsRSAAuthentication no
    PasswordAuthentication no
    PermitEmptyPasswords no

  • (ⅳ)チャレンジレスポンス認証を明示的に無効化
  • これをしておかないとPAM認証(実質的にはパスワード認証)を行ってしまうので、公開鍵認証に限定するためにチャレンジレスポンス認証を明示的に無効化します。
    ChallengeResponseAuthentication no

  • (ⅴ)ログレベルを指定しておく。
  • SyslogFacility AUTH
    LogLevel INFO

    以上で、
     ・サーバ上の公開鍵とペアになっている秘密鍵を持っていること
     ・鍵ペア作成時に設定したパスフレーズを知っていること
     ・ssh2で接続すること
    を満たさなければssh接続ができなくなります。

(4) SSH公開鍵認証の設定
  • (ⅰ)サーバ側でやること
  • ■公開鍵ファイルをOpenSSH互換の鍵に変換
      PuTTYgenで生成した鍵はOpenSSHでは使用できません。
    $ ssh-keygen -i -f ~/id_rsa.pub > ~/authorized_key_for_admin
    $ mv authorized_key_for_admin .ssh/authorized_keys
    $ sudo chown admin .ssh/authorized_keys
    $ sudo chown togino .ssh/authorized_keys
    $ chown togino .ssh/authorized_keys
    $ chmod 600 .ssh/authorized_keys
    $ chmod 700 .ssh

  • (ⅱ)クライアント側でやること
  • ■Windows対応の公開鍵、秘密鍵のペアの作成
    ■WinSCP付属のPuTTYgenでWindows系の鍵を生成
    ■鍵を生成すると、公開鍵を「id_rsa.pub」,秘密鍵を「id_rsa_com.ppk 」として保存。
    保存先は、「c:Documents and SettingユーザApplication Datarsa」(XP)
    C:UsersユーザAppDataLocalrsaid_rsa_com.ppk(Vista)

    *アクセスできるか確認
    WindowsでPoderosaを使ってログインする場合は、秘密鍵の変換が必要。特に、「Wrong Key Format」とでれば、秘密鍵の形式を「ssh.com.key」にしていないことが原因。詳細は、SSH公開認証の設定を参考にしてください。

(5) xineted経由で起動させる

# service sshd stop
# chkconfig sshd off

# vi /etc/xinetd.d/ssh

service ssh
{
  flags           = REUSE
  socket_type     = stream
  wait            = no
  user            = root
  server          = /usr/sbin/sshd
  server_args     = -i
  log_on_success  += DURATION USERID
  log_on_failure  += USERID
  disable         = no
  only_from     = 192.168.○.○ 192.168.○.○ .○.○.jp
}

# service xinetd restart


↑_ Goto TOP

FTPサーバの構築 -vsftpd

外部からのアクセスにも耐えれるように、vsftpdの構築をします。

(1) インストール
# yum install vsftpd
Installed: vsftpd.i386 0:2.0.5-10.fc6
(2) アクセス制御の設定
# vi /etc/vsftpd/vsftpd.confでの設定事項

  • (ⅰ)標準設定項目
  • ■ anonymous_enable=NO
    ■ ascii_upload_enable=YES
    ■ ascii_download_enable=YES

  • (ⅱ)各ftpユーザにホームディレクトリ以上の階層を見せない
  • ■ chroot_local_user=YES  ←(追加)
    ■ chroot_list_enable=YES
    ■ chroot_list_file=/etc/vsftpd/chroot_list

    # vi /etc/vsftpd/chroot_listでユーザ名を1行に1つずつ書きます。
    chroot_local_user=YESを追加することで、chroot_listに書いたユーザ以外はホームディレクトリ以上の階層を見せないようにできます。

  • (ⅲ)FTPサーバのみを使用出来るユーザを作成する方法
  • # vipw
    ftpuser:x:510:510:FTP User:/home/ftpuser:/bin/bashを
    ftpuser:x:510:510:FTP User:/home/ftpuser:/sbin/nologin
    のように変更して保存します。これで、telnetやsshでログインできなくなります。

(3) xineted経由で起動させる
only_from句を設定することで、xineted側でアクセス制御が可能になります。

# service vsftpd stop
# chkconfig vsftpd off

# vi /etc/xinetd.d/ftp

service ftp
{
  wait            = no
  user            = root
  server          = /usr/sbin/vsftpd
  server_args     = -i
  disable         = no
  only_from     = .○○○.jp
}

# service xinetd restart


↑_ Goto TOP

DNSサーバの構築(BIND )

(1) インストール
# yum install bind-utils bind-chroot bind ypbind bind-libs
Installed: bind.i386 31:9.3.4-8.P1.fc6 bind-chroot.i386 31:9.3.4-8.P1.fc6
Updated: bind-libs.i386 31:9.3.4-8.P1.fc6 bind-utils.i386 31:9.3.4-8.P1.fc6
ypbind.i386 3:1.19-7.fc6
(2) 設定
  • (ⅰ)ブートファイルの設定
  • # vi /etc/sysconfig/named
    ROOTDIR=/var/named/chroot (chrootの確認)
    # cp /usr/share/doc/bind-9.3.4/sample/etc/named.conf /var/named/chroot/etc/
    # chown root:named /var/named/chroot/etc/named.conf
     (権限を変更しないと作動しない)
    # chmod 640 /var/named/chroot/etc/named.conf

    options
    {
     query-source    port 53;
     query-source-v6 port 53;
     directory "/var/named";
     dump-file          "data/cache_dump.db";
     statistics-file    "data/named_stats.txt";
     memstatistics-file "data/named_mem_stats.txt";
    };
    logging
    {
     channel default_debug {
     file "data/named.run";
     severity dynamic;
     };
    };
    view "internal"
    {
     match-clients           { localnets; };
     match-destinations      { localnets; };
     recursion yes;
     include "/etc/named.rfc1912.zones";
     zone "0gino.jp" {
       type master;
       file "0gino.jp.zone";
     };
     zone "1.168.192.in-addr.arpa" {
       type master;
       file "1.168.192.in-addr.arpa.zone";
     };
    };
    
    view    "external"
    {
     recursion no;
     allow-query { none; };
     zone "." {
       type hint;
       file "/dev/null";
       };
     zone "0gino.jp" {
       type master;
       file "0gino.jp.zone";
       allow-query { any; };
     };
     zone "1.168.192.in-addr.arpa" {
       type master;
       file "1.168.192.in-addr.arpa.zone";
       allow-query { any; };
     };
    };
    
  • (ⅱ)正引きゾーンファイルの設定
  • # vi /var/named/chroot/var/named/0gino.jp.zone

    $TTL    86400
    @ IN SOA ns.0gino.jp. root.0gino.jp. (
      2008080903      ; Serial
      10800           ; Refresh after 3 hours
      3600            ; Retry after 1 hours
      604800          ; Expire after 1 week
      86400 )         ; Minimum TTL of 1 day
    


↑_ Goto TOP

Webサーバの構築(ApacheHTTP)

(1) インストール
# yum install system-config-httpd httpd-manual
Installed: httpd-manual.i386 0:2.2.6-1.fc6 system-config-httpd.noarch 5:1.4.1-1.fc6
Dependency Installed: alchemist.i386 0:1.0.36-1.2.2 libxslt-python.i386 0:1.1.21-1.fc6
Dependency Updated: httpd.i386 0:2.2.6-1.fc6 libxml2.i386 0:2.6.29-1.fc6
libxml2-devel.i386 0:2.6.29-1.fc6 libxml2-python.i386 0:2.6.29-1.fc6
libxslt.i386 0:1.1.21-1.fc6 libxslt-devel.i386 0:1.1.21-1.fc6
(2) 設定(変更点)
# vi /etc/httpd/conf/httpd.conf
① ServerName www.0gino.jp
② AddDefaultCharset None
③ DirectoryIndex index.php index.html
④ UserDir public_html
(3) バーチャルホストの設定(NAMEベースの場合)
# vi /etc/httpd/conf/httpd.conf
# Virtual host Virtual Host computerbu

    ServerAdmin webmaster@0gino.jp
    DocumentRoot /var/www/html/community/computerbu
    ServerName computerbu.0gino.jp
    ErrorLog logs/computerbu.0gino.jp-error_log
    CustomLog logs/access_log combined

(4) 自動起動
# chkconfig httpd on
# chkconfig –list httpd
httpd 0:off 1:off 2:on 3:on 4:on 5:on 6:off


↑_ Goto TOP

データベースサーバの構築(MySQL)

(1) インストール
  • (ⅰ)MySQLのインストール
  • # yum install mysql-server mysql
    Installed: mysql.i386 0:5.0.27-1.fc6 mysql-server.i386 0:5.0.27-1.fc6
    Dependency Installed: perl-DBD-MySQL.i386 0:3.0007-1.fc6 perl-DBI.i386 0:1.52-1.fc6

  • (ⅱ)自動起動の設定
  • # chkconfig –level 345 mysqld on
    # service mysqld start

(2) MySQLの設定
  • (ⅰ)rootパスワードの設定
  • mysql> set password for root@localhost=password(‘○○○’);
    mysql>grant all privileges on *.* to root@MainServer.0gino.jp identified
    by ‘○○○’ with grant option;
    mysql> delete from user where users=”;
    mysql> select host,user,password from user;
    | localhost | root | 1160776e03b164ee |
    | MainServer.0gino.jp | root | 1160776e03b164ee |

  • (ⅱ)ユーザの作成
  • mysql> create database belize_db;
    mysql> grant all privileges on belize_db.* to tando@localhost identified
    by ‘○○○’ with grant option;
    mysql> flush privileges;
    # mysql -u tando -p belize_db


↑_ Goto TOP

phpの導入 (記載日:2008年10月11日)

(1) インストール

# yum install php
Installed: php.i386 0:5.1.6-3.7.fc6
Dependency Installed: php-cli.i386 0:5.1.6-3.7.fc6 php-common.i386 0:5.1.6-3.7.fc6
# yum -y install php-mbstring php-mysql
Installed: php-mbstring.i386 0:5.1.6-3.7.fc6 php-mysql.i386 0:5.1.6-3.7.fc6
Dependency Installed: php-pdo.i386 0:5.1.6-3.7.fc6

(2) phpライブラリーの引越し
WWWServerの方で使っていたphpライブラリーを次のようにして引越しました。

  • ①phpライブラリーのコピー
  • # rsync -avz -e ssh 192.168.1.2:/usr/local/lib/php /usr/local/lib

  • ②php.iniファイルのパス設定
  • # vi /etc/php.ini
    ; UNIX: “/path1:/path2”
    ;include_path = “.:/php/includes”
    include_path = “.:/php/includes:/var/www/html/include:/usr/local/lib/php”

  • ③パスを認識させるためhttpdを再起動
  • # service httpd restart


↑_ Goto TOP

WordPressの導入 (記載日:2008年10月11日)

(1) インストール

# unzip wordpress-2.6.2-ja.zip
# chmod 777 wordpress
http://(ドメイン名)/wordpress/でwordpressを呼び出す。wp-config.phpを作成するためのウイザードが起動し、項目に答えることでwp-config.phpが作成される。
# vi wp-config.php で内容確認
// ** MySQL settings ** //
define(‘DB_NAME’, ‘○○○_db’);    // データベース名
define(‘DB_USER’, ‘○○○○’);    // ユーザー名
define(‘DB_PASSWORD’, ‘○○○○’);   // パスワード
define(‘DB_HOST’, ‘localhost’);   // データベースサーバ
define(‘DB_CHARSET’, ‘utf8’);
// テーブルの接頭辞を指定します。複数設置する場合など適宜変更してください。
$table_prefix = ‘○○_’;

以上によりインストールの終了

(2) 新規インストールのための諸設定
(ⅰ)ユーザ登録

adminのパスワードが自動発行されるので、そのパスワードを使い管理画面に入り、管理者のユーザ登録をする。

(ⅱ)テーマの変更

/wp-content/themaのディレクトリにダウンロードしたテーマをFTPを使ってアップロードし、テーマを変更する。

(ⅲ)リンクの作成

HomeのWebサイトに戻れるように、管理画面リンクでリンクを編集する。


↑_ Goto TOP

Awstatsの導入 (記載日:2008年10月11日)

(1) インストール

# yum install awstats

Installed: awstats.noarch 0:6.6-1.fc6
Dependency Installed: perl-libwww-perl.noarch 0:5.805-1.1.1
Complete!

次に、設定スクリプトを実行
# cd /usr/share/awstats/tools
# ./awstats_configure.pl
設定スクリプトの実行によって、設定ファイル「○○○.conf」が作成される。

(2) awstatsの設定

作成された設定ファイル「○○○.conf」をチューニングする。
# vi /etc/awstats/awstats.○○○.conf
そして、解析情報ファイルを作成する。
# /usr/share/awstats/wwwroot/cgi-bin/awstats.pl -config=○○○ -update

(3) 定期的更新

crontabを利用して、解析情報ファイルを定期的に更新させる。

# vi /etc/crontab
02 4 * * * root /usr/bin/perl /usr/share/awstats/wwwroot/cgi-bin/awstats.pl -config=○○○ -update

# service crond restart


↑_ Goto TOP

メールサーバの構築(Postfix)

(1) インストール
# yum install postfix
Installed: postfix.i386 2:2.4.5-2.fc6
(2) 設定
① myhostname = mail.0gino.jp
② mydomain = 0gino.jp
③ myorigin = $mydomain (メール送信時の送信元メールアドレスの@以降の設定)
④ inet_interfaces = all (外部からのメール受信許可の設定)
⑤ mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain(ローカルの配送先の設定)
⑥ home_mailbox = Maildir/
⑦ smtpd_banner = $myhostname ESMTP unknown(メールサーバソフト名を表示しない設定)
(3) サービスの起動
  • (ⅰ)sendmailサービスの停止
  • service sendmail status
    sendmail (pid 1855 1846) を実行中…
    # service sendmail stop
    # chkconfig –level 2345 sendmail off

  • (ⅱ)postfixの自動起動化
  • # chkconfig –list postfix
    サービス postfix は chkconfig をサポートしますが実行レベルで参照されていません (run ‘chkconfig –add postfix’)
    # chkconfig –add postfix
    # chkconfig –level 2345 postfix on
    # service postfix start

  • (ⅲ)mtaの切り替え
  • # alternatives –config mta

(4) SMTP-AUTH
  • (ⅰ)インストール
  • パッケージの確認
    # rpm -qa | grep sasl
    # yum install cyrus-sasl-md5 cyrus-sasl-ntlm cyrus-sasl-gssapi
    Installed: cyrus-sasl-gssapi.i386 0:2.1.22-4 cyrus-sasl-md5.i386 0:2.1.22-4 cyrus-sasl-ntlm.i386 0:2.1.22-4


↑_ Goto TOP

POP/IMAPサーバの構築(Dovecot)

(1) インストール
# yum install dovecot
Installed: dovecot.i386 0:1.0.3-6.fc6
(2) 設定
# vi /etc/dovecot.conf
protocols = imap imaps pop3 pop3s
mail_location = maildir:~/Maildir
(3) 自動起動
# service dovecot start
# chkconfig dovecot on
(4) 動作確認
[注意事項]MainServerのセキュリティーで、その他のポートで110番のTCPのポート開放をすることでメールを受け取ることができる。


↑_ Goto TOP

SubmainServerのサーバ構築

SSHサーバの構築

外部公開のため、パスワードによる認証でなく、公開鍵と秘密鍵、及びパスフレーズによる認証でSSHの構築をします。

(1) インストール
# rpm -qa | grep ssh
openssh-4.3p2-10
openssh-askpass-4.3p2-10
openssh-clients-4.3p2-10
openssh-server-4.3p2-10
(2) RSA公開鍵と秘密鍵の作成
作成方法については、Gentoo Linuxで自宅サーバを参考にしてください。
(3) 設定

# vi /etc/ssh/sshd_config

  • (ⅰ)RSA公開鍵認証の有効化
  •  以下により、公開鍵と秘密鍵、及びパスフレーズによる認証が可能になります。
    RSAAuthentication yes
    PubkeyAuthentication yes
    AuthorizedKeysFile .ssh/authorized_keys

  • (ⅱ)rootで直接ログインできないようにする。
  • これにより、ssh接続でroot権限を得るには認証を2回パスしなければならなくなります。
    PermitRootLogin no

  • (ⅲ)rhostでの接続とパスワード認証の無効化
  • RhostsRSAAuthentication no
    PasswordAuthentication no
    PermitEmptyPasswords no

  • (ⅳ)チャレンジレスポンス認証を明示的に無効化
  • これをしておかないとPAM認証(実質的にはパスワード認証)を行ってしまうので、公開鍵認証に限定するためにチャレンジレスポンス認証を明示的に無効化します。
    ChallengeResponseAuthentication no

  • (ⅴ)ログレベルを指定しておく。
  • SyslogFacility AUTH
    LogLevel INFO

    以上で、
     ・サーバ上の公開鍵とペアになっている秘密鍵を持っていること
     ・鍵ペア作成時に設定したパスフレーズを知っていること
     ・ssh2で接続すること
    を満たさなければssh接続ができなくなります。

(4) SSH公開鍵認証の設定
  • (ⅰ)サーバ側でやること
  • ■公開鍵ファイルをOpenSSH互換の鍵に変換
      PuTTYgenで生成した鍵はOpenSSHでは使用できません。
    $ ssh-keygen -i -f ~/id_rsa.pub > ~/authorized_key_for_admin
    $ mv authorized_key_for_admin .ssh/authorized_keys
    $ sudo chown admin .ssh/authorized_keys
    $ sudo chown togino .ssh/authorized_keys
    $ chown togino .ssh/authorized_keys
    $ chmod 600 .ssh/authorized_keys
    $ chmod 700 .ssh

  • (ⅱ)クライアント側でやること
  • ■Windows対応の公開鍵、秘密鍵のペアの作成
    ■WinSCP付属のPuTTYgenでWindows系の鍵を生成
    ■鍵を生成すると、公開鍵を「id_rsa.pub」,秘密鍵を「id_rsa_com.ppk 」として保存。
    保存先は、「c:Documents and SettingユーザApplication Datarsa」(XP)
    C:UsersユーザAppDataLocalrsaid_rsa_com.ppk(Vista)

    *アクセスできるか確認
    WindowsでPoderosaを使ってログインする場合は、秘密鍵の変換が必要。特に、「Wrong Key Format」とでれば、秘密鍵の形式を「ssh.com.key」にしていないことが原因。詳細は、SSH公開認証の設定を参考にしてください。

(5) xineted経由で起動させる

# service sshd stop
# chkconfig sshd off

# vi /etc/xinetd.d/ssh

service ssh
{
  flags           = REUSE
  socket_type     = stream
  wait            = no
  user            = root
  server          = /usr/sbin/sshd
  server_args     = -i
  log_on_success  += DURATION USERID
  log_on_failure  += USERID
  disable         = no
  only_from     = 192.168.○.○ 192.168.○.○ .○.○.jp
}

# service xinetd restart


↑_ Goto TOP

Webサーバの構築(ApacheHTTP)

(1) インストール
#
(2) 設定(変更点)
# vi /etc/httpd/conf/httpd.conf
① ServerName www.0gino.jp
② AddDefaultCharset None
③ DirectoryIndex index.php index.html
④ UserDir public_html
(3) バーチャルホストの設定(NAMEベースの場合)
# vi /etc/httpd/conf/httpd.conf
# Virtual host Virtual Host computerbu

    ServerAdmin webmaster@0gino.jp
    DocumentRoot /var/www/html/community/computerbu
    ServerName computerbu.0gino.jp
    ErrorLog logs/computerbu.0gino.jp-error_log
    CustomLog logs/access_log combined

(4) 自動起動
# chkconfig httpd on
# chkconfig –list httpd
httpd 0:off 1:off 2:on 3:on 4:on 5:on 6:off

↑_ Goto TOP

データベースサーバの構築(MySQL)

(1) インストール
  • (ⅰ)MySQLのインストール
  • # yum install mysql-server mysql
    Installed: mysql.i386 0:4.1.20-1.FC4.1 mysql-server.i386 0:4.1.20-1.FC4.1
    Dependency Installed: perl-DBD-MySQL.i386 0:2.9007-1 perl-DBI.i386 0:1.48-4

  • (ⅱ)自動起動の設定
  • # chkconfig –level 345 mysqld on
    # service mysqld start

↑_ Goto TOP

phpの導入 (記載日:2008年11月02日)

(1) インストール

# yum install php
Installed: php.i386 0:5.0.4-10.5
Dependency Installed: php-pear.i386 0:5.0.4-10.5
# yum -y install php-mbstring php-mysql
Installed: php-mbstring.i386 0:5.1.6-3.7.fc6 php-mysql.i386 0:5.1.6-3.7.fc6
Dependency Installed: php-pdo.i386 0:5.1.6-3.7.fc6

(2) phpライブラリーの引越し
  • ①phpライブラリーのコピー
  • # rsync -avz -e ssh MainServer:/usr/local/lib/php /usr/local/lib

  • ②php.iniファイルのパス設定
  • # vi /etc/php.ini
    ; UNIX: “/path1:/path2”
    ;include_path = “.:/php/includes”
    include_path = “.:/php/includes:/var/www/html/include:/usr/local/lib/php”

  • ③パスを認識させるためhttpdを再起動
  • # service httpd restart

↑_ Goto TOP

WWWServerのサーバ構築

OpenSSHのインストールと設定

(1) 運用方針
·SSHによる接続を許可するホストをxinetdを併用して限定する(アクセス制御)
·rootアカウントによるSSH接続を拒否する
·パスワードの設定されていないアカウントによる接続を拒否する
·rhosts認証によるSSH接続を拒否する
(2) OpenSSHのインストール
·OpenSSLのインストール
·zlibのインストール
·OpenSSHのインストール
  • (ⅰ)OpenSSLのインストール
  • /usr/local/sslに./configure –prex=/usr/localでコンパイルしてインストール

  • (ⅱ)zlibのインストール
  • /usr/local/src/openssh/zlib-1.2.3に./configureでコンパイルしてインストール

  • (ⅲ)OpenSSHのインストール
  • /usr/local/src/openssh/openssh-5.0p1に./configureでコンパイルしてインストール

(3)  OpenSSHの設定
  • (ⅰ) xineted経由で起動させる
  • # sh /etc/rc2.d/S99sshd stop
    # cd /etc/rc2.d/
    # mv S99sshd .S99sshd

    # vi /etc/xinetd.d/ssh

    service ssh
    {
      flags           = REUSE
      socket_type     = stream
      wait            = no
      only_from       = 127.0.0.1
      user            = root
      server          = /usr/local/sbin/sshd
      server_args     = -i
      log_on_success  += DURATION USERID
      log_on_failure  += USERID
      disable         = no
      only_from       = 192.168.1.1
    }
    # service xinetd restart


↑_ Goto TOP



Apacheのインストール


(1) インストール
 # rpm -qa | grep httpd
 httpd-2.0.54-10
 system-config-httpd-1.3.2-2
 # yum remove httpd
  # tar zxvf httpd-2.0.55.tar.gz

(2) 作動確認及び自動起動の設定
 # /usr/local/apache2/bin/apachectl start
 # cp /usr/local/apache2/bin/apachectl /etc/init.d/httpd
 # chmod +x /etc/init.d/httpd
 # who -r
 # cd /etc/rc5.d/
 # ln -s /etc/init.d/httpd S99httpd (自動起動の設定)
 # cd /etc/rc0.d/
 # ln -s /etc/init.d/httpd K10httpd (自動終了の設定)
 # /etc/init.d/httpd stop		(手動で終了)
 # /etc/init.d/httpd start 	(手動で起動)
(3) 設定ファイル
 httpd.conf
 # vi /usr/local/apache2/conf/httpd.conf
 
User apache
Group apache
ServerAdmin admin@0gino.jp
ServerName www.0gino.jp:80
DocumentRoot "/var/www/html"
 Directory "/var/www/html"
 Options Indexes FollowSymLinks
 /Directory
DirectoryIndex index.html index.php
AddDefaultCharset off
(4) httpdの再起動
 # /usr/local/apache2/bin/apachectl restart
または
 # /etc/init.d/httpd restart


↑_ Goto TOP

Mysqlのインストール

(1) インストール

 ◎バージョン4.1.15でインストールする。バージョン4.1.20以降や
5ではエラーが出てインストールできない。
 ◎そこで、PHPによるWebアプリケーションスーパーサンプル活用編と
同様にバージョン4.1.15でやるとうまくいく。
◎インストールに先立ち、rpm版mysqlを削除する。
次に、mysqlのユーザーの作成をする。
(Configureで必要)

 # rpm -qa | grep mysql
 mysql-4.1.20-1.FC4.1
 # yum remove mysql
 Removed: mysql.i386 0:4.1.20-1.FC4.1
 Dependency Removed: dovecot.i386 0:0.99.14-8.fc4

 # /usr/sbin/groupadd mysql
 # /usr/sbin/useradd -g mysql mysql
 # passwd mysql (recret)

 # tar zxvf mysql-4.1.15.tar.gz
 # cd mysql-4.1.15
 # ./configure --prefix=/usr/local/mysql --with-charset=ujis
    --with-extra-charsets=all --without-readline
    --with-mysqld-user=mysql
 # make
 # make install

(2) インストール後の設定と作動確認
 # /usr/local/mysql/bin/mysql_install_db
 # chown -R root /usr/local/mysql
 # chgrp -R root /usr/local/mysql
 # chown -R mysql /usr/local/mysql/var
 # chgrp -R mysql /usr/local/mysql/var
 # /usr/local/mysql/bin/mysqld_safe --user=mysql &
 # /usr/local/mysql/bin/mysql
(3) 自動起動の設定
 # cp /usr/local/mysql/share/mysql/mysql.server /etc/init.d/mysql
 # chmod +x /etc/init.d/mysql
 # who ?r (現在のランレベルを知る)
 # cd /etc/rc5.d/
 # ln -s /etc/init.d/mysql S99mysqld
 # cd /etc/rc0.d/
 # ln -s /etc/init.d/mysql K10mysqld
 # /etc/init.d/mysql stop
 # /etc/init.d/mysql start


↑_ Goto TOP

PHPのインストール

phpのインストールに先立ち、以下をインストールする

(1) インストールは、PHPによるWebアプリケーションスーパーサンプル活用編
(p41からp44を参照)
 ●zlibのインストール
 # tar zxvf zlib-1.2.3.tar.gz
 # cd zlib-1.2.3
 # ./configure --shared
 # make
 # make install

 ●libpngのインストール
 # tar zxvf libpng-1.2.8-config.tar.gz
 # cd libpng-1.2.8-config
 # ln -s scripts/makefile.linux makefile
 # vi makefile   ↓ 以下のように変更
  ZLIBLIB=/usr/local/lib
 ZLIBINC=/usr/local/include
 #ZLIBLIB=../zlib
 #ZLIBINC=../zlib
 # make
 # make install

 ●libjpegのインストール
 # tar zxvf jpegsrc.v6b.tar.gz
 # cd jpeg-6b/
 # ./configure --enable-shared
 # make
 # make install
  /usr/bin/install -c -m 644 ./cjpeg.1
    /usr/local/man/man1/cjpeg.1
    /usr/bin/install: cannot create regular
    file `/usr/local/man/man1/cjpeg.1'
  : そのようなファイルやディレクトリはありません
make: *** [install] エラー 1
というエラーがでた場合、以下のように
 /usr/local/man/man1 を作成し、
再度試みる。
 # mkdir /usr/local/man/man1  
 # make install

 ● FreeTypeのインストール
 # tar zxvf freetype-2.1.10.tar.gz
 # cd freetype-2.1.10
 # ./configure --enable-shared
 # make
 # make install

 ●GDのインストール
 # tar zxvf gd-2.0.33.tar.gz
 # cd gd-2.0.33
 # ./configure
 # vi Makefile
  CFLAGS = -g -O2 -DJISX0208 ← 赤の部分を追加する
 # make
 # make install
(2) phpのインストール
 # tar zxvf php-5.1.2.tar.tar
 # cd php-5.1.2
 #./configure --with-apxs2=/usr/local/apache2/bin/apxs
   --enable-mbstring
   --enable-mbstr-enc-trans --enable-mbregex --enable-trans-sid
   --with-mysql=/usr/local/mysql --with-zlib-dir=/usr/local/lib
   --with-png-dir=/usr/local/lib--with-jpeg-dir=/usr/local/lib
   --with-freetype-dir=/usr/local/lib --with-gd=/usr/local/
   --enable-gd-native-ttf
 # make
 # make install

 # vi /usr/local/apache2/conf/httpd.conf
  AddType application/x-httpd-php .php ← 左のように追加する

 # /etc/init.d/httpd restart
 ◎このとき、以下のエラーがでて起動できない。
Syntax error on line 232 of /usr/local/apache2/conf/httpd.conf:
Cannot load /usr/local/apache2/modules/libphp4.so into server:
 /usr/local/apache2/modules/libphp4.so: cannot restore segment
 prot after reloc: Permission denied
 ◎googleで「cannot restore segment prot after reloc: Permission denied」
 と入れて検索をかけると
以下の解決法が表示されたので、実行するとクリアーした。
 # chcon -c -v -R -u system_u -r object_r -t lib_t
    /usr/local/apache2/modules/libphp5.so
   context of /usr/local/apache2/modules/libphp5.so changed
   to system_u:object_r:lib_t
(3) 各種ライブラリーのインストール
 # cp /usr/local/src/php-4.4.1/php.ini-dist php.ini
 # vi php.ini
 include_path = ".:/usr/local/lib/php" ← 左のように変更する
(4) PEARのインストール
 ◎include_pathで設定したディレクトリーにPEAR関連ファイルを
    解凍すればそのまま使える

 # pear install DB
 # pear install Calendar-0.5.


↑_ Goto TOP

vsftpdの設定

(1) インストール
# cd /usr/local/src/
# tar zxvf vsftpd-2.0.7.tar.gz
# cd vsftpd-2.0.7
# make
# make install
anonymouse(匿名ユーザ)で利用する場合はftpユーザー、専用ディレクトリ(ここでは /var/ftp とします)が必要。
anonymouseでは読み込み(ダウンロード)だけで、書き込み(アップロード・削除)を許可させませんので、その権限の設定も行います。
# useradd -u 99 nobody
# groupadd -g 50 ftp
# useradd -u 14 -g ftp -d /var/ftp -s /sbin/nologin ftp
# chown root:root /var/ftp
# chmod og-w /var/ftp
(2) 設定
  • (ⅰ)vsftpd.confファイルの設定
  • 設定条件として、
    ·inet経由の起動
    ·anonymouse接続は行わない
    ·ルーターの関係でPassiveモードを使用しない
    ·.htaccessなどのドットファイルを表示する
    ·一般ユーザーはホームディレクトリ(/home/xxxx/)より上の階層には上がらせない(禁止する)
    ·ftpを利用できるユーザーとできないユーザーをわける
    # vi /etc/vsftpd.conf

    anonymous_enable=NO
    xferlog_enable=YES	←/var/log/vsftpd.logに接続・転送を記録
    xferlog_file=/var/log/vsftpd.log
    xferlog_std_format=NO
    ascii_upload_enable=YES
    ascii_download_enable=YES
    chroot_local_user=YES	←デフォルトでホームディレクトリより上層への
    アクセスを禁止する
    chroot_list_enable=YES ←ホームディレクトリより上層へのアクセスを許可するユーザのリストの有効化
    
    chroot_list_file=/etc/vsftpd.chroot_list ←ホームディレクトリより上層へのアクセスを許可するユーザのリスト
    ls_recurse_enable=YES	←ディレクトリごと削除できるようにする
    local_root=public_html	←ログイン時のディレクトリを~/public_htmlにする
    force_dot_files=YES
    use_localtime=YES
    text_userdb_names=YES
    ls_recurse_enable=YES
    listen=YES
    

  • (ⅱ)ホームディレクトリ以上の階層を見せるユーザ
  • # vi vsftpd.chroot_list
    ○○○○

  • (ⅲ)FTPサーバのみを使用できるユーザの作成
  • # vipw
    ○○○○:x:519:519::/home/○○○○:/sbin/nologin

  • (ⅳ)PAM認証設定
  • # cd /usr/local/src/vsftpd-2.0.7
    cp RedHat/vsftpd.pam /etc/pam.d/ftp

(3) 起動(xinetdで起動させる)
# vi /etc/vsftpd.conf
#listen=YES ← #をつけないとエラーが出る

# vi /etc/xinetd.d/vsftpd

service ftp
{
  disable                 = no
  socket_type             = stream
  wait                    = no
  user                    = root
  server                  = /usr/local/sbin/vsftpd
  nice                    = 10
}

# /etc/rc.d/init.d/xinetd restart


↑_ Goto TOP

BackupServerのサーバ構築

SSHサーバの構築

(1) xinetd経由で起動する
  • (ⅰ)自動起動の停止
  • # service sshd status
    sshd (pid 4767 1936) を実行中...
    # chkconfig --list sshd
    sshd 0:オフ 1:オフ 2:オン 3:オン 4:オン 5:オン 6:オフ
    # service sshd stop
    sshdを停止中: [ OK ]
    # chkconfig sshd off
    # chkconfig --list sshd
    sshd 0:オフ 1:オフ 2:オフ 3:オフ 4:オフ 5:オフ 6:オフ

  • (ⅱ)xinetdの設定
  • # service xinetd status
    xinetd (pid 1951) を実行中...
    # cd /etc/xinetd.d/
    # touch ssh
    # chmod 744 ssh
    # vi ssh

    service ssh
    {
      flags           = REUSE
      socket_type     = stream
      wait            = no
      only_from       = 127.0.0.1
      user            = root
      server          = /usr/sbin/sshd
      server_args     = -i
      log_on_success  += DURATION USERID
      log_on_failure  += USERID
      disable         = no
      only_from       = 192.168.1.1 192.168.1.2
    }
    

    # service xinetd restart


↑_ Goto TOP


© 2023

© 2023 Study of Reason, Inc. All rights reserved.