この記事の目次
xoops管理者ユーザーの作成とweb公開の設定
▽ユーザー作成(ユーザー名をuserと仮定。実際の設定はセキュリティのためxoopsの文字列を含まないユーザー名を推奨。)
#useradd user
▽ユーザーパスワード設定
#passwd user
※パスワードを2回聞かれます。単純なパスワードの場合、本当に設定していいかどうか確認してきます。
▽web公開用ディレクトリの作成
/home/user/にpublic_htmlディレクトリを作成
#mkdir /home/user/public_html
▽所有者と所有者グループをそれぞれuserに変更
#chown user:user /home/user/public_html
▽xoopsディレクトリのパーミッション設定
#chmod 711 /home/user
apacheの設定 /etc/httpd/conf/httpd.confを編集
▽http接続時のOS表示を無効(セキュリティ対策)
ServerTokens OS (OSは表示)
↓
ServerTokens Prod (表示しない)
▽URLのディレクトリ指定でindex.phpを読み込み可能にする
・DirectoryIndexにindex.phpを追加
DirectoryIndex index.php
▽http://example.com/schedule/でxoopsアクセス(ドメインはhttp://example.comと仮定)
Alias /scedule /home/user/public_html
▽xoopsインストールディレクトリのみ文字コードをEUC-JPに設定
<Directory /home/user/public_html>
AddDefaultCharset EUC-JP
</Directory>
▽CGI(perl)を利用するための設定
□httpd.confに下記の記述を加えます。
<Directory /home/*/public_html/cgi-bin>
Options ExecCGI
</Directory>
□CGIスクリプトを有効にします。
下記の設定項目の#をとる
AddHandler cgi-script .cgi
□CGIを利用するには/homeにあるユーザーディレクトリのpublic_htmlにcgi-binディレクトリを作成し、CGIスクリプトファイルを置く。
スクリプト作成の際の一行目のパスは
#!/usr/bin/perl
です。
※設定を有効にするためhttpdを再起動
#/etc/rc.d/init.d/httpd restart
/home/user/public_html/へのアクセスをxoopsサイトに転送
※ http://example.com/schedule/へのアクセスの転送設定
▽index.phpの作成
/home/user/public_html/に下記の内容でindex.phpを作成する
<?
header(”Location:http://example.com/schedule/html/”);
?>
FTPの設定 /etc/vsftpd/vsftpd.confを編集
▽anonymousFTPの無効化
anonymous_enable=NO
▽FTPのASCII転送許可(CGIスクリプト転送用設定)
下記の設定項目の#をとる
ascii_upload_enable=YES
ascii_download_enable=YES
▽クライアントのディレクトリ削除を有効化
下記の設定項目の#をとる
ls_recurse_enable=YES
▽FTPで日本標準時間を使用する
下記を設定ファイルの最後に記述
use_localtime=YES
※設定を有効にするためvsftpdを再起動
#/etc/rc.d/init.d/vsftpd restart
mysqlに関する設定
▽Linuxのmysql管理ユーザーにパスワードを設定
#passwd mysql
パスワードを2回聞かれます
▽mysqlデータベースのroot管理者にパスワードを設定
#/usr/bin/mysql
mysql>SET PASSWORD FOR root@localhost=PASSWORD(’任意のパスワード’);
mysql>exit;
▽パスワードを持たないデフォルトユーザを削除(セキュリティ対策)
#/usr/bin/mysql -u root -p
Enter password:任意のパスワード
mysql>USE mysql;
mysql>DELETE FROM user WHERE password=(’’);
mysql>exit;
▽デフォルトのデータベースtestを削除(デフォルトの余分なDB削除)
#/usr/bin/mysql -u root -p
Enter password:任意のパスワード
mysql>drop database test;
mysql>exit;
phpの設定 /etc/php.iniの編集
▽セキュリティ上の【必須】設定
・register_globals=off
・allow_url_fopen=off
バックアップ用ユーザーとディレクトリの設定
▽/homeのバックアップファイル保存用のディレクトリ作成
#mkdir /backup
▽バックアップ用ユーザー作成(backupと仮定)
#useradd backup
▽ユーザーパスワード設定
#passwd backup
パスワードを2回聞かれます
▽/backupディレクトリの所有者をbackupユーザーに変更
#chown backup:backup /backup
▽/backupディレクトリをbackupユーザーへアクセス許可
#chmod 700 /backup
DB及び/homeの自動backup設定
▽カレンダーシステム用mysqlDBの自動バックアップ設定
□DBバックアップスクリプトの作成
#vi /etc/cron.daily/userDBback.sh
下記内容で作成
#!/bin/sh
backupname=’usermysql’`date +’%d’`’.dump’
/usr/bin/mysqldump -u root -pパスワード xoopsのデータベース名 > /backup/$backupname
※-pとmysqlのrootユーザーパスワードの間に空白はありません。
※ファイル名には%dで日が入るようにしていますので1か月経過すると次の月のバックアップファイルで上書きされます。必要に応じて%Y%m%dを設定すれば年月日などをファイル名につけてサーバーの容量が許す限り自由にバックアップを作成出来ます。作成日付で世代管理をする必要がなければサーバーのHD容量不足による停止を避けるため、$backupnameの代わりにmysqlxoops.dumpなどの固定ファイル名にしておけばバックアップファイルが増えすぎてディスクフルになる危険性が減ります。
□属性の変更
#chmod 700 /etc/cron.daily/userDBback.sh
▽/home/user/の自動バックアップ設定
□/home/user/バックアップスクリプトの作成
#vi /etc/cron.daily/userback.sh
下記内容で作成
#!/bin/sh
backupname=’user’`date +’%d’`’.tar.gz’
tar cvfz /backup/$backupname /home/user
□属性の変更
#chmod 700 /etc/cron.daily/userback.sh
※なお、上記設定のバックアップは同一ハードウェア上にファイルがありますので、FTPで自動的に別のPCにコピーするようタスクを設定しましょう。
ssh(暗号化リモートログイン)のセキュリティ強化
/etc/ssh/sshd_configを編集
▽ログインをセキュアなssh2プロトコルに限定
Protocol 2
▽rootログイン禁止
PermitRootLogin no
▽ログインするユーザの限定(xoopsユーザのみ許可)
ファイル末尾に追記
AllowUsers user
サーバーのリモート管理
▼SSH2を利用したサーバーのリモート管理にはフリーのTera Termを利用すると便利です。
コメント