Smily Books Blog 2023年7月更新中

Linuxセキュリティ対策(日経Linux 2003.3〜5)

0.不要サービスの停止(アプリケーションレベルのサービス停止)
(1)デーモン単体で起動する不要サービスの停止
①runlevelコマンドを実行し、システムの現時点でのランレベルを調べる
(N 5と表示された場合、1つ前のランレベルはなし、現在のレンレベルは5)
②/etc/rc.d/rc5.dディレクトリ内のSで始まるファイルを.Sに変更
sendmail停止の場合、S80sendmailを.S80sendmailに変更)

(2)スーパーデーモン経由の不要サービスの停止
①/etc/xinetd.dディレクトリ内の不要サービスファイルの内容を以下のように変更
disable=yes
②以下の通り/etc/xinetd.d/telnetファイルの
only_fromにtelnet接続を許可するホストのみ列挙する
③以下の通りrcスクリプトを手動で実行し、xinetdを再起動
/etc/rc.d/init.d/xinetd restart

(3)chkconfig等を利用する(Red Hat Linux8.0の場合)

(4)netstatコマンドでサービスが停止しているかどうか確認する

(5)nmapでも確認する
nmap -p 1-65535 ホストIPアドレス

(6)トランスポートレベルの制御はipchans、iptablesで行う

1.パケットフィルタリング
「Guarddog」(http://www.simonzone.com/software/guarddog/)で設定する。
(/etc/rc.firewallをスクリプトファイルとして作成し、実行制御する。)

2.FTPとTelnetのSSH
OpenSSHを利用する。
/etc/ssh/sshd_configの「PermitRootLogin」をnoとして、rootでもログイン不可とする。

3.suによるroot権限奪取の制限
(1)/etc/groupファイルに以下の通り利用可能なユーザのみ追加する
wheel:x:10:root,[username]
(2)/etc/pam.d/suを以下の通り修正
auth required /lib/security/pam_wheel.so use_uid group=wheel

4./etc、/var/log配下のファイルのアクセス権限の制限
(1)root以外のユーザ書込み不可
①chown root [filename]
②chgrp root [filename]
③chmod g-w [filename]
③chmod o-w [filename]

(2)SetUIDビット解除
①SetUIDコマンド/アプリケーション確認
find / -perm -4000 -ls
②SetUIDビット解除(例.passwdコマンド)
chmod -s /usr/bin/passwd

5.不正行為を検知したらサーバ自動停止させる
(1)swatchをインストールする
①以下のファイルを入手する
Time-HiRes-1.42.tar.gz(http://www.cpan.org/)
File-Tail-0.98.tar.gz(http://www.cpan.org/)
Date-Calc-4.3.tar.gz(http://www.engelschall.com/~sb/)
TimeDate-1.14.tar.gz(http://www.cpan.org/)
swatch-3.0.4.tar.gz(http://www.oit.ucsb.edu/~eta/swatch/)
②以下の手順でインストールする
tar zxvf (ソース・アーカイブ)
cd (ソース・アーカイブを展開してできたディレクトリ)
perl Makefile.PL
make
su
make test
make install

(2)swatch設定ファイルを作成する(指定文字列はLinux毎に異なるため要確認)
①/etc/swatchrcディレクトリを作成
②/etc/swatchrc配下に.swatchrc_messageを以下の内容で作成し、
/var/log/messageを監視する(panic、halt発行時のみサーバ自動停止する)

watchfor /authentication failure/
mail=hoge@hoge.co.jp
watchfor /reject|Rejected|not connected/
mail=hoge@hoge.co.jp
watchfor /Linux version/
mail=hoge@hoge.co.jp
watchfor /(panic|halt)/
exec "/sbin/shutdown -h now"
③/etc/swatchrc配下に.swatchrc_secureを以下の内容で作成し、
/ver/log/secureを監視する(認証に5回失敗した場合ネットワークを切断する)

watchfor /SSH_Version_Mapper/
mail=hoge@hoge.co.jp
watchfor /Failed passwd/
mail=hoge@hoge.co.jp
watchfor /last message repeated 5 times/
exec "/etc/rc.d/init.d/network stop"
(3)/etc/rc.localに以下の実行コマンドを追記し、
swatchをシステム起動時に自動起動とする
swatch -c /etc/swatchrc/.swatchrc_secure -t /var/log/secure
swatch -c /etc/swatchrc/.swatchrc_message -t /var/log/message

(4)snortをインストールする
①以下のファイルを入手する
snort-1.9.0.tar.gz(http://www.snort.org/)
libpcap-0.7.1.tar.gz(http://www.tcpdump.org/)
②以下の手順でインストールする
tar zxvf (ソース・アーカイブ)
cd (ソース・アーカイブを展開してできたディレクトリ)
/.configure
make
su
make install
(5)snort設定ファイルを作成する
①検査結果ログ保存用として/var/log/snortディレクトリを作成
②設定、ルールファイル保管用として/etc/snortディレクトリを作成
③最新のルールファイルをダウンロードし、更新(http://www.snort.org/dl/rules)
④設定、ルールファイルを以下の通りコピーする
cp -ra ./rules /etc/snort/
cp ./etc/snort.conf /etc/snort/
cp ./etc/classification.config /etc/snort
⑤/etc/snort/snort.confを以下の通り設定
・「var HOME_NET」のanyを監視対象マシンIPアドレス/32に変更
・「var HTTP_SERVERS」の$HOME_NETを監視対象マシンIPアドレス/32に変更
・「RULE_PATH」を/etc/snort/rules/とする
・「#Include all relevant rulesets here」以下のルールファイルを編集

(6)/etc/rc.localに以下の実行コマンドを追記し、
snortをシステム起動時に自動起動とする
snort -Dde -c /etc/snort/snort.conf

(7)SnortSnarfをインストールする
①以下のファイルを入手する
XML-Parser-2.31.tar.gz(http://www.cpan.org/)
Mail-Sendmail-0.78.tar.gz(http://www.cpan.org/)
SnortSnarf-021111.1.tar.gz(http://www.silicondefense.com/software/snortsnart/)
②以下の手順でインストールする
tar zxvf (ソース・アーカイブ)
cd (ソース・アーカイブを展開してできたディレクトリ)
perl Makefile.PL
make
su
make test
make install
(SnortSnarfのみ以下追加)
cd ../
mkdir /usr/local/snortsnarf
cp snortsnarf.pl /usr/local/snortsnarf
cp -r include /usr/local/snortsnarf

(8)snortのパケット監視結果のうちアラートログを
/home/httpd/html/snortにHTML形式で出力する
/usr/local/snortsnarf/snortsnarf.pl -d /home/httpd/html/snort /var/log/snort/alert

(9)/etc/swatchrc/.swatchrc_snort_alertを以下の通り設定
watchfor /DOS/
mail=hoge@hoge.co.jp
watchfor /Virus/
mail=hoge@hoge.co.jp
watchfor /DNS/
mail=hoge@hoge.co.jp
watchfor /WEB/
mail=hoge@hoge.co.jp
watchfor /BACKDOOR/
exec "/etc/rc.d/init.d/network stop"

(10)swatchsnortのログを監視する
swatch -c /etc/swatchrc/.swatchrc_snort_alert -t /var/log/snort/alert &

(11)chkrootkitをインストールする
①以下のファイルを入手する
chkrootkit.tar.gz(http://www.chkrootkit.org/)
②以下の手順でインストールする
tar zxvf (ソース・アーカイブ)
cd (ソース・アーカイブを展開してできたディレクトリ)
make sense

(12)chkrootkit_dairyファイルを以下の内容で作成する
#!/bin/sh
cd /var/log/
/(chkrootkitコンパイルディレクトリ)/chkrootkit > chkrootkit_log_alert(
結果をファイル出力)
grep "INFECTED" chkrootkit_log > chkrootkit_log_alert(アラートメッセージ表示行ファイル出力)
chmod 600 chkrootkit_log_alert(root以外ファイルアクセス不可)

(13)毎日chkrootkitが自動実行され、検査結果を/var/logに出力する
①chmod +x chkrootkit_dairy
②cp chkrootkit_dairy /etc/cron.dairy

(14)/etc/swatchrc/.swatchrc_chkrootkitを以下の通り設定
watchfor /INFECTED/
exec "/sbin/shutdown -h now"

(15)swatchchkrootkitのログを監視し、アラートログ発行時にサーバ自動停止する
swatch -c /etc/swatchrc/.swatchrc_chkrootkit /var/log/chkrootkit_log_alert &