Notice: Function _load_textdomain_just_in_time was called incorrectly. Translation loading for the breadcrumb-navxt domain was triggered too early. This is usually an indicator for some code in the plugin or theme running too early. Translations should be loaded at the init action or later. Please see Debugging in WordPress for more information. (This message was added in version 6.7.0.) in /var/www/wordpress/wp-includes/functions.php on line 6114
サーバ構築 – コンピュータ学

rgb-green.net

サーバ構築

「 サーバ構築」のページ記事

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

投稿者:admin
カテゴリ: 自宅サーバの時代

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のポート開放をすることでメールを受け取ることができる。

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

投稿者:admin
カテゴリ: 自宅サーバの時代

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

(1) インストール
# yum install postfix
Installed: postfix.i386 2:2.4.5-2.fc6
(2) 設定
① myhostname = mail.***.jp
② mydomain = ***.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

Awstatsの導入

投稿者:admin
カテゴリ: 自宅サーバの時代

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

phpの導入

投稿者:admin
カテゴリ: 自宅サーバの時代
mainServerのサーバ構築

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

SubmainServerのサーバ構築

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

WordPressの導入

投稿者:admin
カテゴリ: 自宅サーバの時代

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サイトに戻れるように、管理画面リンクでリンクを編集する。

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

投稿者:admin
カテゴリ: 自宅サーバの時代
mainServerのサーバ構築

データベースサーバの構築(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

SubmainServerのサーバ構築

データベースサーバの構築(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

Webサーバの構築(ApacheHTTP)

投稿者:admin
カテゴリ: 自宅サーバの時代
mainServerのサーバ構築

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

SubmainServerのサーバ構築

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

DNSサーバの構築(BIND )

投稿者:admin
カテゴリ: 自宅サーバの時代

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
    

FTPサーバの構築 -vsftpd

投稿者:admin
カテゴリ: 自宅サーバの時代

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

SSHサーバの構築

投稿者:admin
カテゴリ: 自宅サーバの時代
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 Data\rsa」(XP)
    C:\Users\ユーザ\AppData\Local\rsa\id_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

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 Data\rsa」(XP)
    C:\Users\ユーザ\AppData\Local\rsa\id_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

サーバの構築(全体をまとめたもの)

投稿者:admin
カテゴリ: サーバ構築

 このページは、第九期ネットワーク構成図に基づいて、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 Data\rsa」(XP)
    C:\Users\ユーザ\AppData\Local\rsa\id_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 Data\rsa」(XP)
    C:\Users\ユーザ\AppData\Local\rsa\id_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

Linuxによる「自宅サーバの構築」(2005年~2010年)

投稿者:admin
カテゴリ: サーバ構築

Linuxによる「自宅サーバの構築」
(2005年~2010年)

「自宅LinuxServerの時代」では、2005年~2010年にかけて自宅でサーバを構築したことをまとめたものを掲載しています。

LINUXによる「自宅サーバ構築の軌跡」

 自宅サーバの構築を10数年来行っています。自宅サーバを構築・運用していくためには、かなりの忍耐と多大な時間を必要とします。
 このWebサイトでは、Linux(FedoraCore)で自宅サーバの構築をやってきたことをまとめ、紹介しています。参考にしていただければ幸いです。

 ここに記す「自宅サーバ構築の軌跡」は、これまで手がけてきた『サーバ構築』の変遷を九期に分けてまとめたものです。

第一期

 自宅サーバ構築の第一歩は、あるレンタルサーバの会社に、自作サーバ機を預けたことにはじまります。その時は、Telnetでサーバ機を遠隔操作していました。この時代は、電話回線が主流で、現在のようにFTTH(光ファイバー網)を自宅に引くということは夢の話でした。そこで、個人のサーバ機をインターネット上に設置するためにはレンタルサーバのサービスをもつプロバイダに依頼するより仕方がありませんでした。
 プロバイダにサーバ機を預けるにあたり、何日もかけて自宅でサーバ機を構築しました。具体的には、自作機を組み立て、それにLinuxのOSをインストールしました。そして、Webサーバとして動くようにするために、アプリケーションソフトをインストールし、設定していきました。この頃は、サーバ構築をはじめたばかりでしたので、ソースファイルからコンパイルするのがよいのか、あるいはRPMでインストールするのがよいのか、その違いがまったく分からず、見よう見まねで試行錯誤ばかり繰り返していました。
 また、自宅ではLANでつないだ2台のコンピュータでの動作が確認できるだけでしたので、実際にインターネット上に設置してもうまく動いてくれるのか大変心配でした。それでも、預けたサーバ機と遠隔操作できたときは感無量の思いでした。

第二期

 自宅サーバ構築の第二期は、ISDN回線を利用して自宅からWebサーバを立ち上げた時期です。この時期に固定アドレスを取得しましたが、固定アドレスを使ってのサーバ構築は技術的に大きな転換点となりました。また、手元にサーバ機を置いて、自宅でサーバ構築ができる環境になったことは第一期に比べて大きな進歩でした。

第三期

 第二期までは自作機を使ってサーバ構築をしていましたが、サーバ機であるために電源を切ることがないため、不安定で、おちることがよくありました。多大な時間をかけて構築したサーバ機が故障し、最初からやり直さなければならないときは本当に落ち込みました。
 こうした思いからはじめてサーバ専用機を購入した時期が第三期にあたります。当時、サーバ専用機はかなり高価でとても個人では手の出せる時代ではありませんでした。それでも時代の要請であったと考えますが、八万円程度で買える専用機がIBMから発売されました。このとき、はじめてネットでパソコンを購入しました。そして、はじめてのサーバ専用機によるサーバ構築で、心を踊らせながら昼夜没頭していたことを思い出します。

第四期

 第三期までの段階で、ISDN回線を使い、サーバ専用機で自宅サーバを立ち上げることができました。しかし、このときまでの経験で多大な時間をかけて構築したサーバ機がいつダウンしてしまうか心配でなりませんでした。確かに、この専用機はこれまでの自作機に比べて安定していましたが、日々、試行錯誤してアプリケーションをインストールしたり、設定していましたので、専用機といえども不安定になりつつありました。いわば、この専用機はサーバ構築のための練習機であったわけです。
 それでも専用機だけのことはあり、ハードディスクが2個ついており、RAID1のミラーリング機能がついていました。しかし、試行錯誤を繰り返したものの、結局、この機能をうまく使いこなすことができませんでした。そこで、不安を解消するためにこの練習機をバックアップ用のサーバ機として使い、2台目の専用機を購入しました。これが第四期にあたります。

第五期

 第五期は夢であったFTTH回線が使えるようになった時期です。田舎であったので、都会に比べなかなかFTTHを自宅に引くことができなかったので、地域差によるデジタルデバイドを強く感じた時期でもありました。
 FTTHを引くと、自宅でのインターネット環境が大幅に変わりました。しかし、自宅サーバ構築の観点から言うと必ずしもFTTHはバラ色ではありませんでした。
 というのも、ISDN回線ではうまく公開できていたWebサーバも、FTTHではなかなか思うようにいかなかったからです。一難去って、また一難という状況で、イライラした日々が続きました。

第六期

 第四期のISDN回線の時代は低速ではありますが、FTTHに比べ、安定してWebサーバを公開できていました。
 そこで、料金は高くつきますが思い切ってADSL回線を引き、FTTH回線と2回線で自宅サーバを運用したのが第六期です。2回線になり、ADSL側でWebサーバを公開し、FTTH側で外部からWebサーバの様子を観察しました。この環境が整ったことで大変使い勝手がよくなりました。

第七期

 第六期の2回線ネットワーク環境で、ようやく安定した自宅サーバ構築環境を手に入れることができました。ADSL回線はWebサーバを公開するにあたって本当に使い勝手がよかったです。特に、NTTからレンタルしたルータ機能付きのモデムは使いやすく、ファイヤーウォールなどのセキュリティー機能を身をもって経験することができました。
 Webサーバ構築が順調にいきかけたこともあり、欲がでてきて、より本格的にサーバ構築をしたいという気持ちが強くなりました。そこで、本格的なサーバ構築をするためにブレードサーバがほしくなりました。しかし、ブレードサーバともなると100万円以上し、とても個人では購入できるものではありません。ところが、またネット上で、10数万円購入できるブレードサーバを見つけました。
 サーバ機はファンの音もうるさいので屋根裏に置いていました。しかし、夏場になると35℃~40℃近くの高温になり、熱でパソコンが燃えてしまわないかと心配でなりませんでした。そんなとき、このブレードサーバは35℃~40℃にも耐えられることを知り、清水の舞台から飛び降りる思いで、ブレードサーバ機の購入を決意しました。

第八期

 第七期の環境は安定していましたが、2回線の使用で個人仕様としてはかなり贅沢な使い方をしていると感じていました。この頃のサーバ構築のスタンスは、「絶対、おちないサーバ環境を作る」でした。これまで何度もサーバをダウンさせていたのでこの思いが強かったです。しかし、第七期の環境は、回線使用料、プロバイダ2社の契約料、固定アドレス代、ドメイン登録料、電気代と少しでも経費削減しなければなりませんでした。
 そこで、新たにルータを購入し、再度pppoe接続に挑戦しました。すると、思いの外、簡単にpppoe接続ができました。この方法により、FTTH1回線で、2系列使えるようになりうれしい限りでした。このように第八期は、FTTHだけで絞り込めた時期にあたります。

第九期

 最後の段階である第九期です。2008年の夏、「マスタリングRedHatEnterpriseLinux5」という著書に出会います。この本は、これまで膨大な時間をかけてやってきたことをコンパクトにまとめていました。ただ、タワー型サーバ機(FedoraCore2対応)やブレードサーバ機(FedoraCore4対応)では、著書のバージョンと違い、著書のようにサーバ構築することができませんでした。
 本格自宅サーバ構築を目指す以上、この著書の水準までもっていきたく、FedoraCore6に対応したブレードサーバ機をもう一台購入することにしました。これで、本格自宅サーバ構築をできる環境が整ったといえます。

 第九期ネットワーク構成図。2008年8月に、FedoreCore6(MainServer機)、FedoraCore4(WWWServer機)、FedoraCore2(BackupServer機)で各々サーバを構築した構成図です。

さくらVPSにpear::Services_Amazonをインストールする

投稿者:admin
カテゴリ: さくらVPS

以下のようにして、さくらVPSにpear::Services_Amazonをインストールしました。

[php]

$ sudo pear install XML_Util
pear/XML_Util is already installed and is the same as the released version 1.2.3
install failed

$ sudo pear install XML_Parser
WARNING: “pear/XML_Parser” is deprecated in favor of “pear/XML_Parser2”
downloading XML_Parser-1.3.4.tgz …
Starting to download XML_Parser-1.3.4.tgz (16,040 bytes)
……done: 16,040 bytes
install ok: channel://pear.php.net/XML_Parser-1.3.4

$ sudo pear install XML_Serializer-0.20.2
WARNING: “pear/XML_Parser” is deprecated in favor of “pear/XML_Parser2”
downloading XML_Serializer-0.20.2.tgz …
Starting to download XML_Serializer-0.20.2.tgz (35,634 bytes)
………done: 35,634 bytes
install ok: channel://pear.php.net/XML_Serializer-0.20.2

$ sudo pear install Net_URL
WARNING: “pear/Net_URL” is deprecated in favor of “pear/Net_URL2”
downloading Net_URL-1.0.15.tgz …
Starting to download Net_URL-1.0.15.tgz (6,303 bytes)
…..done: 6,303 bytes
install ok: channel://pear.php.net/Net_URL-1.0.15

$ sudo pear install Net_Socket
downloading Net_Socket-1.0.14.tgz …
Starting to download Net_Socket-1.0.14.tgz (5,600 bytes)
…..done: 5,600 bytes
install ok: channel://pear.php.net/Net_Socket-1.0.14

$ sudo pear install HTTP_Request
WARNING: “pear/HTTP_Request” is deprecated in favor of “pear/HTTP_Request2”
WARNING: “pear/Net_URL” is deprecated in favor of “pear/Net_URL2”
downloading HTTP_Request-1.4.4.tgz …
Starting to download HTTP_Request-1.4.4.tgz (17,109 bytes)
……done: 17,109 bytes
install ok: channel://pear.php.net/HTTP_Request-1.4.4

$ sudo pear install Services_Amazon-0.9.0
WARNING: “pear/HTTP_Request” is deprecated in favor of “pear/HTTP_Request2”
Did not download optional dependencies: pear/Cache, use –alldeps to download automatically
pear/Services_Amazon can optionally use package “pear/Cache”
downloading Services_Amazon-0.9.0.tgz …
Starting to download Services_Amazon-0.9.0.tgz (18,504 bytes)
……done: 18,504 bytes
install ok: channel://pear.php.net/Services_Amazon-0.9.0

[/php]

自宅サーバ時代の「サーバ管理」

投稿者:admin
カテゴリ: 自宅サーバの時代
サーバの管理

MRTGによるシステムの監視

MRTGの構築(サーバ側:MainServer)

(1) インストール
# yum install mrtg
Installed: mrtg.i386 0:2.14.5-2
(2) 監視されるクライアント側のSNMPの設定
  • (ⅰ)SNMPのインストール
  • # rpm -qa | grep net-snmp
    net-snmp-libs-5.3.1-11.fc6
    net-snmp-5.3.1-15.fc6
    net-snmp-utils-5.3.1-15.fc6

  • (ⅱ)SNMPの設定
  • com2sec zodiac_network 192.168.1.0/24 zodiac_community
    group zodiac_group v1 zodiac_network
    group zodiac_group v2c zodiac_network
    view zodiac_view included .1
    access zodiac_group “” any noauth exact zodiac_view none none

  • (ⅲ)自動起動
  • # service snmpd start
    # chkconfig snmpd on

(3) MRTGの設定
  • (ⅰ)cfgファイルの設定
  • # cd /etc/mrtg/
    # cfgmaker zodiac_community@MainServer –output=./MainServer.cfg
    # vi MainServer.cfg
    ### Global Config Options
    WorkDir: /var/www/mrtg/MainServer
    Language: eucjp
    IconDir: /mrtg/icons/

    ### Global Defaults

    #—————–
    # eth0 traffic
    #—————–
    Target[eth0]: 2:zodiac_community@MainServer:
    SetEnv[eth0]: MRTG_INT_IP=”192.168.1.1″ MRTG_INT_DESCR=”eth0″
    MaxBytes[eth0]: 12500000
    Title[eth0]: Traffic Analysis for 2 — MainServer.ogino.tk
    PageTop[eth0]: Traffic Analysis for 2 — MainServer.ogino.tk

    #——————
    # cpu load average
    #——————
    Target[la]: 1.3.6.1.4.1.2021.10.1.5.1&.1.3.6.1.4.1.2021.10.1.5.3:zodiac_community@MainServer:
    ThreshMaxI[la]:50
    SetEnv[la]: EMAIL=”root@localhost”
    URL=”http://192.168.1.1/mrtg/MainServer/la.html”
    MaxBytes[la]: 100
    Title[la]: Load Average
    PageTop[la]: CPU Load Average on MainServer.ogino.tk
    YLegend[la]: CPU Load Average
    ShortLegend[la]: %
    LegendI[la]:1min avrg.
    LegendO[la]:15min avrg.
    #——————
    # memory usage
    #——————
    Target[mem]: 1.3.6.1.4.1.2021.4.6.0&.1.3.6.1.4.1.2021.4.4.0:zodiac_community@MainServer:
    ThreshMaxI[mem]:80
    SetEnv[mem]: EMAIL=”root@localhost”
    URL=”http://192.168.1.1/mrtg/MainServer/mem.html”
    MaxBytes[mem]: 190748
    Title[mem]: Memory Usage “real” and “swap”
    PageTop[mem]: Memory Usage “real” and “swap” on MainServer.ogino.tk
    YLegend[mem]: Memory Usage
    ShortLegend[mem]: kbyte
    LegendI[mem]:real Available.
    LegendO[mem]:swap Available.

  • (ⅱ)定期的なグラフの更新
  • # vi /etc/crontab
    */5 * * * * root env LANG=C /usr/bin/mrtg /etc/mrtg/MainServer.cfg
    */5 * * * * root env LANG=C /usr/bin/mrtg /etc/mrtg/BackupServer.cfg
    */5 * * * * root env LANG=C /usr/bin/mrtg /etc/mrtg/WWWServer.cfg


↑_ Goto TOP

MRTG(監視されるクライアント側:SubmainServerの設定)

(1) インストール
# tar -zxvf net-snmp-5.2.5.tar.tar
# cd net-snmp-5.2.5
# ./configure –prefix=/usr
# make
# make test
# umask 022
# make install
# ls -l /usr/sbin/snmpd
# ls -l /usr/sbin/snmptrapd
-rwxr-xr-x 1 root root 366287 8月 21 18:22 /usr/sbin/snmptrapd
(2) 設定
# vi /usr/share/snmp/snmpd.conf

com2sec zodiac_network 192.168.1.0/24 zodiac_community

group zodiac_group v1 zodiac_network
group zodiac_group v2c zodiac_network

view zodiac_view included .1

access zodiac_group “” any noauth exact zodiac_view none none

(3) 動作確認
# /usr/sbin/snmpd
# snmpwalk -v 2c localcom localhost .1.3.6.1.4.1.2021
# kill `ps -ef | grep snmpd | grep -v grep | awk ‘{print $2}’`
(4) 自動起動
# service snmpd start
# chkconfig snmpd on


↑_ Goto TOP

MRTG(監視されるクライアント側:BackupServerの設定)

(1) インストール
# rpm -qa | grep net-snmp
net-snmp-5.1.1-2
net-snmp-utils-5.1.1-2
(2) 設定
# vi /etc/snmp/snmpd.conf
com2sec zodiac_network 192.168.1.0/24 zodiac_community

group zodiac_group v1 zodiac_network
group zodiac_group v2c zodiac_network

view zodiac_view included .1

access zodiac_group “” any noauth exact zodiac_view none none

(3) 自動起動
# service snmpd start
# chkconfig snmpd on


↑_ Goto TOP

Nagiosによるシステムの監視

Nagiosの構築(サーバ側:MainServer)

(1) インストール
  • (ⅰ)Nagios本体
  • $ tar -zxvpf nagios-3.0.3.tar.tar
    $ su –

    # groupadd nagcmd
    # /usr/sbin/groupadd nagcmd
    # /usr/sbin/usermod -G nagcmd △△△△
    # /usr/sbin/usermod -G nagcmd ○○○○
    # exit

    $ cd nagios-3.0.3
    $ ./configure –prefix=/usr/local/nagios –with-command-group=nagcmd
    $ make all
    $ su

    # make install
    # make install-init
    # make install-commandmode
    # make install-config

  • (ⅱ)プラグイン
  • $ tar -zxvpf nagios-plugins-1.4.12.tar.gz
    $ cd nagios-plugins-1.4.12
    $ ./configure
    –with-apt-get-command:
    –with-ping6-command: /bin/ping6 -n -U -w %d -c %d %s
    –with-ping-command: /bin/ping -n -U -w %d -c %d %s
    –with-ipv6: yes
    –with-mysql: no
    –with-openssl: yes
    –with-gnutls: no
    –enable-extra-opts: no
    –with-perl: /usr/bin/perl
    –enable-perl-modules: no
    –with-cgiurl: /nagios/cgi-bin
    –with-trusted-path: /bin:/sbin:/usr/bin:/usr/sbin

    $ make
    $ su
    # make install

(2) Webサーバの設定
  • (ⅰ)Apacheの設定ファイル
  • # vi /etc/httpd/conf/httpd.conf
    ScriptAlias /nagios/cgi-bin/ /usr/local/nagios/sbin/

    
     AllowOverride AuthConfig
     Options ExecCGI
     Order allow,deny
     Allow from all
    
    Alias /nagios/ /usr/local/nagios/share/
    
     AllowOverride AuthConfig
     Options None
     Order allow,deny
     Allow from all
    
    

    # /etc/init.d/httpd restart

  • (ⅱ)ユーザ及びパスワードの作成
  • # vi /usr/local/nagios/share/.htaccess
    AuthName “Nagios Access”
    AuthType Basic
    AuthUserFile /usr/local/nagios/etc/htpasswd.users
    require valid-user

    # cp /usr/local/nagios/share/.htaccess /usr/local/nagios/sbin/
    # su nagios
    $ htpasswd -c /usr/local/nagios/etc/htpasswd.users ○○○○
    New password:
    Re-type new password:
    Adding password for user ○○○○

    # chmod 755 /usr/local/nagios/ ←/usr/local/nagios/が700であったのでPermissionエラーが出たので変更する。

(3) Nagiosの設定
  • (ⅰ)メイン設定ファイル
  • # su nagios
    $ cd /usr/local/nagios/etc/
    $ vi nagios.cfg
    cfg_file=/usr/local/nagios/etc/objects/commands.cfg
    cfg_file=/usr/local/nagios/etc/objects/contacts.cfg
    cfg_file=/usr/local/nagios/etc/objects/timeperiods.cfg
    cfg_file=/usr/local/nagios/etc/objects/templates.cfg
    cfg_file=/usr/local/nagios/etc/objects/localhost.cfg

  • (ⅱ)CGI設定ファイル
  • $ vi cgi.cfg
    authorized_for_system_information=○○○○ ←nagiosadminを○○○○に変更
    authorized_for_configuration_information=○○○○
    authorized_for_system_commands=○○○○
    authorized_for_all_services=○○○○
    authorized_for_all_hosts=○○○○
    authorized_for_all_service_commands=○○○○
    authorized_for_all_host_commands=○○○○

    host_unreachable_sound=hostdown.wav
    ←#をとる
    host_down_sound=hostdown.wav
    service_critical_sound=critical.wav
    service_warning_sound=warning.wav
    service_unknown_sound=warning.wav
    normal_sound=noproblem.wav

  • (ⅲ)リソース設定ファイル
  • $ vi resource.cfg ←最初からファイルが存在する

(4) 監視オブジェクトの設定

通知先の定義 contacts.cfg
# su nagios
$ cd /usr/local/nagios/etc/object/
$ vi contacts.cfg

define contact{
contact_name                ○○○○
  use                 generic-contact
  alias               Nagios Admin
  email               nagios@ogino.tk
  }
define contactgroup{
  contactgroup_name   admins
  alias               Nagios Administrators
  members             ○○○○
  }

(5) 設定の確認とNagiosの起動
  • (ⅰ)設定の確認
  • $ /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg
    Total Warnings: 0
    Total Errors: 0

  • (ⅱ)Nagiosの起動及び自動起動
  • $ /etc/init.d/nagios start
    # chkconfig nagios on
    # chkconfig –list nagios
    nagios 0:off 1:off 2:on 3:on 4:on 5:on 6:off


↑_ Goto TOP

自宅サーバ時代の「サーバ運用」

投稿者:admin
カテゴリ: 自宅サーバの時代
サーバの運用

 このページは、ネットワーク構成図に基づいて、FedoreCore6(MainServer機)、FedoraCore4(SubmainServer機)、FedoraCore2(BackupServer機)で各々サーバを構築し、日々の「サーバ運用」の内容を記録したものです。

サーバー運用では、実際のサーバ運用で必要となる、awstatsによる「アクセス解析」とrsyncによる「サーバの同期」についてまとめています。

アクセス解析(awstats)

アクセス解析の設定方法と実際のawstatsの画面にリンクを張っています。

rsyncによるサーバの同期

サーバ群のどのコンピュータとどのように同期をとっているか説明しています。

rsyncによるサーバの同期

(1) sshクライアントからRSA認証でログインできるための設定

MainServer機、SubmainServer機、BackupServer機が、お互いにsshでパスワードなしでログインできるように設定する。
① MainServer機→SubmainServer機の設定
[root@MainServer ~]# ssh-keygen -t rsa

←パスフレーズなし鍵ペアの作成

Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
f6:e0:98:71:d3:d9:c8:92:43:fc:40:95:a6:40:ec:36 root@MainServer.0gino.jp

[root@MainServer ~]# scp ~/.ssh/id_rsa.pub 192.168.1.2:
root@192.168.1.2’s password:
id_rsa.pub 100% 406 0.4KB/s 00:00
[root@MainServer ~]# scp ~/.ssh/id_rsa.pub 192.168.1.3:
root@192.168.1.3’s password:
id_rsa.pub 100% 406 0.4KB/s 00:00
[root@MainServer ~]# slogin 192.168.1.2
root@192.168.1.2’s password:
Last login: Sun Nov 2 14:58:54 2008 from mainserver.0gino.jp
[root@SubmainServer ~]# mkdir .ssh
[root@SubmainServer ~]# cd .ssh/
[root@SubmainServer .ssh]# touch authorized_keys
[root@SubmainServer .ssh]# chmod 600 authorized_keys
[root@SubmainServer .ssh]# cat ~/id_rsa.pub >> authorized_keys
[root@SubmainServer .ssh]# rm ~/id_rsa.pub
rm: remove 通常ファイル `/root/id_rsa.pub’? y

# slogin BackupServer
The authenticity of host ‘backupserver (192.168.1.3)’ can’t be established.
RSA key fingerprint is 97:a5:86:c0:5d:97:ff:5f:0c:9d:53:a7:f5:1d:37:5d.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added ‘backupserver,192.168.1.3’ (RSA) to the list of known hosts.
root@backupserver’s password:

以下のようにして、BackupServer側からMainServer側へRSA認証でログイン出来るように設定する。
[root@BackupServer root]# ssh-keygen -t rsa
[root@BackupServer root]# scp ~/.ssh/id_rsa.pub 192.168.1.1:
[root@MainServer ~]# cd .ssh/
[root@MainServer ~]# touch authorized_keys
[root@MainServer ~]# chmod 600 authorized_keys
[root@MainServer ~]# cat ~/id_rsa.pub >> authorized_keys
[root@MainServer ~]# rm ~/id_rsa.pub

次に、同期先のサーバでSSHのログインを、鍵による認証のみにする。
そのために、を以下のように編集するが、rootでのログインを許可する。
[root@MainServer ~]# vi /etc/ssh/sshd_config
PasswordAuthentication no
PermitRootLogin yes

(2) cronによる定期的な同期をとる

BackupServer側からMainServer側のバックアップが5分おきに取れるように設定する。

# vi /etc/crontab
# auto backup from MainServer to BackupServer
*/5 * * * * root rsync -avz –delete -e ssh 192.168.1.1:/var/www/html /var/www
*/5 * * * * root rsync -avz –delete -e ssh 192.168.1.1:/home /
*/5 * * * * root rsync -avz –delete -e ssh 192.168.1.1:/var/lib/mysql /var/lib
*/5 * * * * root rsync -avz –delete -e ssh 192.168.1.1:/var/lib/awstats/ /var/lib

# service crond restart

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

投稿者:admin
カテゴリ: 自宅サーバの時代

 このページは、第九期ネットワーク構成図に基づいて、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.