自宅サーバ時代の「サーバ構築」
このページは、第九期ネットワーク構成図に基づいて、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公開鍵認証の有効化
- (ⅱ)rootで直接ログインできないようにする。
- (ⅲ)rhostでの接続とパスワード認証の無効化
- (ⅳ)チャレンジレスポンス認証を明示的に無効化
- (ⅴ)ログレベルを指定しておく。
以下により、公開鍵と秘密鍵、及びパスフレーズによる認証が可能になります。
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keysこれにより、ssh接続でroot権限を得るには認証を2回パスしなければならなくなります。
PermitRootLogin noRhostsRSAAuthentication no
PasswordAuthentication no
PermitEmptyPasswords noこれをしておかないとPAM認証(実質的にはパスワード認証)を行ってしまうので、公開鍵認証に限定するためにチャレンジレスポンス認証を明示的に無効化します。
ChallengeResponseAuthentication noSyslogFacility 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
FTPサーバの構築 -vsftpd
外部からのアクセスにも耐えれるように、vsftpdの構築をします。
- (1) インストール
-
# yum install vsftpd
Installed: vsftpd.i386 0:2.0.5-10.fc6 - (2) アクセス制御の設定
-
# vi /etc/vsftpd/vsftpd.confでの設定事項
- (ⅰ)標準設定項目
- (ⅱ)各ftpユーザにホームディレクトリ以上の階層を見せない
- (ⅲ)FTPサーバのみを使用出来るユーザを作成する方法
■ anonymous_enable=NO
■ ascii_upload_enable=YES
■ ascii_download_enable=YES■ 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に書いたユーザ以外はホームディレクトリ以上の階層を見せないようにできます。# 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
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.confoptions { 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
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 - (4) 自動起動
-
# chkconfig httpd on
# chkconfig –list httpd
httpd 0:off 1:off 2:on 3:on 4:on 5:on 6:off
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
データベースサーバの構築(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
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ライブラリーのコピー
- ②php.iniファイルのパス設定
- ③パスを認識させるためhttpdを再起動
# rsync -avz -e ssh 192.168.1.2:/usr/local/lib/php /usr/local/lib
# vi /etc/php.ini
; UNIX: “/path1:/path2”
;include_path = “.:/php/includes”
include_path = “.:/php/includes:/var/www/html/include:/usr/local/lib/php”# service httpd restart
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サイトに戻れるように、管理画面リンクでリンクを編集する。
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
メールサーバの構築(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サービスの停止
- (ⅱ)postfixの自動起動化
- (ⅲ)mtaの切り替え
service sendmail status
sendmail (pid 1855 1846) を実行中…
# service sendmail stop
# chkconfig –level 2345 sendmail off# chkconfig –list postfix
サービス postfix は chkconfig をサポートしますが実行レベルで参照されていません (run ‘chkconfig –add postfix’)
# chkconfig –add postfix
# chkconfig –level 2345 postfix on
# service postfix start# 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
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のポート開放をすることでメールを受け取ることができる。
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公開鍵認証の有効化
- (ⅱ)rootで直接ログインできないようにする。
- (ⅲ)rhostでの接続とパスワード認証の無効化
- (ⅳ)チャレンジレスポンス認証を明示的に無効化
- (ⅴ)ログレベルを指定しておく。
以下により、公開鍵と秘密鍵、及びパスフレーズによる認証が可能になります。
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keysこれにより、ssh接続でroot権限を得るには認証を2回パスしなければならなくなります。
PermitRootLogin noRhostsRSAAuthentication no
PasswordAuthentication no
PermitEmptyPasswords noこれをしておかないとPAM認証(実質的にはパスワード認証)を行ってしまうので、公開鍵認証に限定するためにチャレンジレスポンス認証を明示的に無効化します。
ChallengeResponseAuthentication noSyslogFacility 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
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 - (4) 自動起動
-
# chkconfig httpd on
# chkconfig –list httpd
httpd 0:off 1:off 2:on 3:on 4:on 5:on 6:off
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
データベースサーバの構築(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
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ライブラリーのコピー
- ②php.iniファイルのパス設定
- ③パスを認識させるためhttpdを再起動
# rsync -avz -e ssh MainServer:/usr/local/lib/php /usr/local/lib
# vi /etc/php.ini
; UNIX: “/path1:/path2”
;include_path = “.:/php/includes”
include_path = “.:/php/includes:/var/www/html/include:/usr/local/lib/php”# service httpd restart
WWWServerのサーバ構築
OpenSSHのインストールと設定
- (1) 運用方針
- ·SSHによる接続を許可するホストをxinetdを併用して限定する(アクセス制御)
- ·rootアカウントによるSSH接続を拒否する
- ·パスワードの設定されていないアカウントによる接続を拒否する
- ·rhosts認証によるSSH接続を拒否する
- (2) OpenSSHのインストール
- ·OpenSSLのインストール
- ·zlibのインストール
- ·OpenSSHのインストール
- (ⅰ)OpenSSLのインストール
- (ⅱ)zlibのインストール
- (ⅲ)OpenSSHのインストール
- (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
/usr/local/sslに./configure –prex=/usr/localでコンパイルしてインストール
/usr/local/src/openssh/zlib-1.2.3に./configureでコンパイルしてインストール
/usr/local/src/openssh/openssh-5.0p1に./configureでコンパイルしてインストール
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
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
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.
phpのインストールに先立ち、以下をインストールする
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.confanonymous_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
BackupServerのサーバ構築
SSHサーバの構築
- (1) xinetd経由で起動する
-
- (ⅰ)自動起動の停止
- (ⅱ)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:オフ# service xinetd status
xinetd (pid 1951) を実行中...
# cd /etc/xinetd.d/
# touch ssh
# chmod 744 ssh
# vi sshservice 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