server_top


2004年04月02日

ログインできないユーザーアカウントの設定

コンソールにログインする必要の無いユーザーは、ログインできないようにする
# useradd -s /bin/false [アカウント名]

既存のアカウントをログインができないように変更するには、以下のようにする
# usermod -s /bin/false [アカウント名]

blank_space
投稿者 たけのうち : 00:48 | コメント (0) | トラックバック

libsafeによるBuffer Overflow防止

libsafeの入手とインストール
Avaya LabsからRPM版ををダウンロードしてインストール。

http://www.research.avayalabs.com/project/libsafe/src/libsafe-2.0-16.i386.rpm

# rpm -ivh libsafe-2.0-16.i386.rpm
libsafe ##################################################
Adding libsafe to ld.so.preload for system wide protection
/etc/ld.so.preload が以下のようになっているか確認

[/etc/ld.so.preload]
/lib/libsafe.so.2

libsafeの動作確認
まずは ldd で、"libsafe.so.2" が最初に読み込まれているか確認します。

$ ldd /bin/ls
/lib/libsafe.so.2 => /lib/libsafe.so.2 (0x40017000)
libtermcap.so.2 => /lib/libtermcap.so.2 (0x40025000)
libc.so.6 => /lib/libc.so.6 (0x40029000)
libdl.so.2 => /lib/libdl.so.2 (0x40155000)
/lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000)
次に、ディレクトリ /usr/doc/libsafe-2.0/exploits/ 以下に、バッファオーバーフローのサンプルプログラムがありますので実行してみます。

$ ./t1
This program tries to use strcpy() to overflow the buffer.
If you get a /bin/sh prompt, then the exploit has worked.
Press any key to continue... [Return]
Libsafe version 2.0.16
Detected an attempt to write across stack boundary.
Terminating /usr/doc/libsafe-2.0/exploits/t1.
uid=0 euid=0 pid=1935
Call stack:
0x40018439
0x4001853a
0x80485bc
0x40041ffa
Overflow caused by strcpy()
強制終了
強制終了した場合、/var/log/secure に記録されます。

# tail /var/log/secure
May 19 16:31:12 server libsafe.so[1953]: 2.0.16
May 19 16:31:12 server libsafe.so[1953]: Detected an attempt to write across stack boundary.
May 19 16:31:12 server libsafe.so[1953]: Terminating /usr/doc/libsafe-2.0/exploits/t1.
May 19 16:31:12 server libsafe.so[1953]: uid=0 euid=0 pid=1953
May 19 16:31:12 server libsafe.so[1953]: Call stack:
May 19 16:31:12 server libsafe.so[1953]: 0x40018439
May 19 16:31:12 server libsafe.so[1953]: 0x4001853a
May 19 16:31:12 server libsafe.so[1953]: 0x80485bc
May 19 16:31:12 server libsafe.so[1953]: 0x40041ffa
May 19 16:31:12 server libsafe.so[1953]: Overflow caused by strcpy()

blank_space
投稿者 たけのうち : 00:47 | コメント (0) | トラックバック

ポートスキャナ(NMAP)の導入

NMAPの入手とインストール
http://www.insecure.orgから、NMAPのRPM版をダウンロード。(2004.3.19現在の最新版はnmap-3.50-1.i386.rpmです。)
http://download.insecure.org/nmap/dist/nmap-3.50-1.i386.rpm

NMAPのスキャン結果(参考)
参考までにwww.takenouchi.toへのNMAPのスキャン結果を以下に示します。

# nmap www.takenouchi.to
Starting nmap V. 2.54BETA33 ( www.insecure.org/nmap/ )
Interesting ports on 203.141.147.165.user.at.il24.net (203.141.147.165):
(The 1551 ports scanned but not shown below are in state: filtered)
Port State Service
25/tcp open smtp
53/tcp open domain
80/tcp open http

blank_space
投稿者 たけのうち : 00:44 | コメント (0) | トラックバック

Tripwireによるファイル改竄チェック

Tripwireの入手とインストール
http://www.tripwire.org/からのダウンロード(2004.3.19現在の最新版は、tripwire-2.3-47.i386.rpm でした。)

# rpm -ivh tripwire-2.3-47.i386.rpm
# /etc/tripwire/twinstall.sh
----------------------------------------------
The Tripwire site and local passphrases are used to
sign a variety of files, such as the configuration,
policy, and database files.

Passphrases should be at least 8 characters in length
and contain both letters and numbers.

See the Tripwire manual for more information.

----------------------------------------------
Creating key files...

(When selecting a passphrase, keep in mind that good passphrases typically
have upper and lower case letters, digits and punctuation marks, and are
at least 8 characters in length.)

Enter the site keyfile passphrase:********
Verify the site keyfile passphrase:********
Generating key (this may take several minutes)...Key generation complete.

(When selecting a passphrase, keep in mind that good passphrases typically
have upper and lower case letters, digits and punctuation marks, and are
at least 8 characters in length.)

Enter the local keyfile passphrase:********
Verify the local keyfile passphrase:********
Generating key (this may take several minutes)...Key generation complete.

----------------------------------------------
Signing configuration file...
Please enter your site passphrase:********
Wrote configuration file: /etc/tripwire/tw.cfg

A clear-text version of the Tripwire configuration file
/etc/tripwire/twcfg.txt
has been preserved for your inspection. It is recommended
that you delete this file manually after you have examined it.

----------------------------------------------
Signing policy file...
Please enter your site passphrase:********
Wrote policy file: /etc/tripwire/tw.pol

A clear-text version of the Tripwire policy file
/etc/tripwire/twpol.txt
has been preserved for your inspection. This implements
a minimal policy, intended only to test essential
Tripwire functionality. You should edit the policy file
to describe your system, and then use twadmin to generate
a new signed copy of the Tripwire policy.
インストール後の手順
/etc/tripwire/twcfg.txt(基本的な設定ファイル)や/etc/tripwire/twpol.txt(チェックするポリシーが書かれているファイル)に変更があれば編集。(特に編集しなくてもOK)

設定スクリプトを実行
# /etc/tripwire/twinstall.sh
Tripwireデータベースファイルの初期化
#/usr/sbin/tripwire --init
Tripwireデータベースとシステムファイルを比較。レポートをチェックして問題がないか確認する。
# tripwire --check
設定ファイル(twcfg.txtやtwpol.txt)を変更したら、twinstall.shの実行から再びやり直す。また、データベースを作り直すときは、tripwire --init を実行する。

改竄チェックの自動化
/etc/cron.dailyに以下の内容でtripwire-check.cronというファイルを作成することで毎日自動でチェックを行い、メールでリポートを送ってくれる。

#!/bin/sh
#
# File integrity check by tripwire
#
# 2002.5.1 H. Takenouchi

/usr/sbin/tripwire --check

blank_space
投稿者 たけのうち : 00:42 | コメント (0) | トラックバック