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

自宅サーバの時代

「 自宅サーバの時代」のページ記事

ページ概要:

Linuxによる「自宅サーバの構築」(2005年~2010年) 「自宅LinuxServerの時代」では、2005年~2010年にかけて自宅でサーバを構築したこ…

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
カテゴリ: 自宅サーバの時代
サーバの管理

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.