SELinuxを有効にしたまま、Apacheにヴァーチャルホストを設定する。

管理ユーザーの作成

ユーザー作成して、ユーザーディレクトリを公開設定

[root]# useradd webadmin
[root]# chmod 711 /home/webadmin

sudoへの管理コマンド追加

[root]# visudo
webadmin ALL=NOPASSWD: /etc/init.d/httpd
webadmin ALL=NOPASSWD: /sbin/restorecon

管理ユーザーの設定

DocumentRoot用ディレクトリの作成

[root]# su - webadmin
[webadmin]$ mkdir vhost1

SELinuxが管理しているラベルの状態を調べる

[webadmin]$ ls -Z

ラベルを変更
user_u:object_r:user_home_t ⇒ system_u:object_r:httpd_sys_content_t

[webadmin]$ chcon system_u:object_r:httpd_sys_content_t /home/webadmin/vhost1
[webadmin]$ ls -Z

エイリアス設定

[webadmin]$ vi .bashrc
# httpd control
alias wstart='sudo /etc/init.d/httpd start'
alias wstop='sudo /etc/init.d/httpd stop'
alias wstatus='sudo /etc/init.d/httpd status'
alias wrestart='sudo /etc/init.d/httpd restart'

# SELinux config
alias labelupdate='/sbin/restorecon -R'
alias label2cn='chcon system_u:object_r:httpd_sys_content_t'
alias label2rw='chcon system_u:object_r:httpd_sys_script_rw_t'
alias label2ex='chcon system_u:object_r:httpd_sys_script_exec_t'

ヴァーチャルホストの設定

rootユーザーに切り替えて、httpd.confを修正

[webadmin]$ su -
[root]# vi /etc/httpd/conf/httpd.conf
NameVirtualHost *:80

ServerAdmin webmaster@dummy-host.example.com
DocumentRoot /home/webadmin/vhost1
ServerName dummy-host.example.com
ErrorLog logs/dummy-host.example.com-error_log
CustomLog logs/dummy-host.example.com-access_log common

SELinuxの動作モードをPassiveにして動作確認

[root]# setenforce 0
[root]# /etc/rc.d/init.d/httpd restart

SELinuxの動作モードをActiveにして動作確認

[root]# setenforce 1
[root]# /etc/rc.d/init.d/httpd restart

Javaのインストール

Javaの再インストール

インストールの削除

[root]# yum remove java

Javaの入手

[root]# mkdir /usr/java
[root]# cd /usr/java
[root]# wget -O j2sdk-1_4_2_18-linux-i586-rpm.bin http://cds.sun.com/is-bin/INTERSHOP.enfinity/WFS/CDS-CDS_Developer-Site/en_US/-/USD/VerifyItem-Start/j2sdk-1_4_2_18-linux-i586-rpm.bin?BundledLineItemUUID=l2RIBe.mS0AAAAEfk9ke3RNC&OrderID=kMBIBe.mMlcAAAEfY9ke3RNC&ProductID=8ntIBe.o_Y8AAAEac8YGcZhi&FileName=/j2sdk-1_4_2_18-linux-i586-rpm.bin
[root]# chmod 544 j2sdk-1_4_2_18-linux-i586-rpm.bin
[root]# ./j2sdk-1_4_2_18-linux-i586-rpm.bin
[root]# rpm -ivh j2sdk-1_4_2_18-linux-i586.rpm

リンクの作成

ln -s /usr/java/j2sdk1.4.2_18 /usr/local/jdk

環境変数の設定

[root]# vi /root/.bash_profile
JAVA_HOME=/usr/local/jdk
PATH=$PATH:$HOME/bin:$JAVA_HOME/bin
export PATH
export JAVA_HOME

[root]# source /root/.bash_profile

Javaの確認

[root]# java -version

JBossのインストール

JBossのインストール

[root]# unzip jboss-4.0.5.GA.zip
[root]# mv jboss-4.0.5.GA /usr/local/jboss

JBoss用ユーザーの作成

[root]# useradd jboss
[root]# chown -R jboss:jboss /usr/local/jboss

環境変数の設定

[root]# su - jboss
[jboss]$ vi .bash_profile
JAVA_HOME=/usr/local/jdk
JBOSS_HOME=/usr/local/jboss
JBOSS_DEPLOY=$JBOSS_HOME/server/default/deploy
JBOSS_LOG=$JBOSS_HOME/server/default/log

PATH=$PATH:$HOME/bin:$JAVA_HOME/bin

export JAVA_HOME
export PATH

export JBOSS_HOME
export JBOSS_DEPLOY
export JBOSS_LOG

[jboss]$ source .bash_profile

管理コマンドの設定

[jboss]$ java -version
[jboss]$ vi .bashrc
alias jstart='/usr/local/jboss/bin/run.sh &'
alias jstop='/usr/local/jboss/bin/shutdown.sh -S'
[jboss]$ source ~/.bashrc

JBossの設定

例外対応

[jboss]$ vi /usr/local/jboss/server/default/deploy/jbossweb-tomcat55.sar/M
ETA-INF/jboss-service.xml
true

サービス登録

[root]# cp /usr/local/jboss/bin/jboss_init_redhat.sh /etc/init.d/jboss
[root]# vi /etc/init.d/jboss
#!/bin/sh
# ▼追記
# chkconfig: 35 80 20
# description: JBoss EJB Container
[root]# chkconfig --add jboss
[root]# chmod 755 /etc/init.d/jboss

セキュリティソフトの導入。

Tripwire :ファイル改ざん検知ツール

入手先

http://downloads.sourceforge.net/tripwire/tripwire-2.4.1.2-src.tar.bz2?modtime=1176898244&big_mirror=0

インストール

[root]# tar jxf tripwire-2.4.1.2-src.tar.bz2
[root]# cd tripwire-2.4.1.2-src
[root]# ./configure --sysconfdir=/etc/tripwire
[root]# make
[root]# make install

Rootkit Hunter :rootkit 検査、簡易総合検査

入手先

http://downloads.sourceforge.net/rkhunter/rkhunter-1.3.4.tar.gz?modtime=1230676503&big_mirror=0

インストール

[root]# tar jxf tripwire-2.4.1.2-src.tar.bz2
[root]# ./installer.sh --layout default --install

データベースの更新

[root]# rkhunter --update

処理の実行

[root]# rkhunter -c --createlogfile

Clam Anti virlus :ウィルス対策ソフト

入手先

http://freshmeat.net/redir/clamav/29355/url_tgz/clamav-0.94.2.tar.gz

管理ユーザー作成

[root]# useradd clamav
[root]# usermod -s /sbin/nologin clamav

管理ディレクトリ作成

[root]# mkdir /var/lib/clamav
[root]# chown clamav:clamav /var/lib/clamav
[root]# touch /var/log/freshclam.log
[root]# chown clamav:clamav /var/log/freshclam.log

インストール

[root]# tar xzf clamav-0.94.2.tar.gz
[root]# cd clamav-0.94.2
[root]# ./configure
[root]# make
[root]# make install

定期的なデータベース更新

[root]# vi /usr/local/etc/freshclam.conf
#Example
[root]# vi /usr/local/etc/clamd.conf
#Example
[root]# crontab -e
0 5 * * * /usr/local/bin/freshclam -l /var/log/freshclam.log

ウィルススキャン

[root]# cd /home
[root]# clamscan

Nessus :総合脆弱性スキャナ

http://www.nessus.org/nessus/

セキュリティの強化

不要なサービスの無効化

[root]# chkconfig --level 345 atd off
[root]# chkconfig --level 345 avahi-daemon off
[root]# chkconfig --level 345 bluetooth off
[root]# chkconfig --level 345 cups off
[root]# chkconfig --level 345 firstboot off
[root]# chkconfig --level 345 hidd off
[root]# chkconfig --level 345 ip6tables off

起動しているサービスの確認

[root]# chkconfig --list | grep :on
[root]# netstat -antup

rootでのログイン禁止

SSHのログイン禁止

[root]# vi /etc/ssh/sshd_config
PermitRootLogin no

SSHサービスの再起動

[root]# service sshd restart

コンソールのログイン禁止

[root]# vi /etc/securetty
内容をすべてコメントアウト

仮想IPを設定する。

ネットワーク設定の確認

[root]# ifconfig -a

インターフェースの設定

[root]# vi /etc/sysconfig/network-scripts/ifcfg-eth0:1
#Virtual IP
DEVICE=eth0:1
BOOTPROTO=static
ONBOOT=yes
NETMASK=255.255.255.0
IPADDR=192.168.1.200
GATEWAY=192.168.1.1

DNS参照の設定

[root]# vi /etc/resolv.conf

JBossのTomcatとApacheを連携させる。

モジュール mod_jk.soの入手

Apacheのバージョンを確認。

[root]# httpd -v
Server version: Apache/2.0.40
Server built: Feb 25 2003 05:01:56

以下のサイトから、Red Hat Linux 用の Apache 2.0.40対応のモジュールを探す。

対応しているモジュール mod_jk.so.ap2.0.40.rh9をwget

[root]# cd /usr/local/src
[root]# wget [mod_jk.so.ap2.0.40.rh9のダウンロードURL]

モジュールを Apacheのmodulesフォルダにコピー。

[root]# cp mod_jk.so.ap2.0.40.rh9 /usr/lib/httpd/modules/mod_jk.so

設定ファイルの作成

Apache のconfフォルダに、worker.propertiesを作成。

[root]# cd /etc/httpd/conf
[root]# vi worker.properties

以下の内容を記述。

#JBOSS_HOME: 実際のJBOSSインストール先フォルダ名
workers.tomcat_home=/usr/local/jboss
#JAVA_HOME: 実際のJAVA環境(JDK)インストール先フォルダ名
workers.java_home=$JAVA_HOME
ps=/
worker.list=ajp13

# Definition for Ajp13 worker
#
worker.ajp13.port=8009
worker.ajp13.host=localhost
worker.ajp13.type=ajp13

Apacheの設定ファイルを編集

[root]# cd /etc/httpd/conf
[root]# vi httpd.conf

ファイルの最後に以下の内容を追加。

#Tomcat
LoadModule jk_module modules/mod_jk.so
#APACHE_HOME: apacheインストール先フォルダに
JkWorkersFile /etc/httpd/conf/worker.properties
#LOG_HOME:適当なフォルダー名
JkLogFile /etc/httpd/mod_jk.log
JkLogLevel info
JkLogStampFormat "[%a %b %d %H:%M:%S %Y] "
JkMount *.jsp ajp13
JkMount *.do ajp13

Apacheの再起動

[root]# httpd -k restart