月曜日, 9月 06, 2010
Perlワンライナー:.batファイルでドラッグ&ドロップ
Perlワンライナー:特定のアドレスを含むメールファイル
$ perl -0777 -ne 'split(/\n\n/, $_);print $ARGV . "\n" if ($_[0] =~ /\nFrom: (.+?)\n[A-Z]/ism and $1 =~ /hoge@foo\.bar/ism)' *
vsftpdのFTPES対応設定
Red Hat Enterprise Linux 4 ES で vsftpd が稼働している前提。
RHEL4 up2date -> CentOS4 yum
Red Hat Enterprise Linux 4.8 のRPMパッケージの更新を Red Hat のリポジトリを参照する up2date コマンドから CentOS 4.8 のリポジトリを参照する yum コマンドで行えるよう変更する。
$ wget http://mirror.centos.org/centos/4/os/i386/CentOS/RPMS/centos-release-4-8.i386.rpm
$ wget http://mirror.centos.org/centos/4/os/i386/CentOS/RPMS/python-elementtree-1.2.6-5.el4.centos.i386.rpm
$ wget http://mirror.centos.org/centos/4/os/i386/CentOS/RPMS/python-sqlite-1.1.7-1.2.1.i386.rpm
$ wget http://mirror.centos.org/centos/4/os/i386/CentOS/RPMS/python-urlgrabber-2.9.8-2.noarch.rpm
$ wget http://mirror.centos.org/centos/4/os/i386/CentOS/RPMS/sqlite-3.3.6-2.i386.rpm
$ wget http://mirror.centos.org/centos/4/os/i386/CentOS/RPMS/yum-metadata-parser-1.0-8.el4.centos.i386.rpm
$ wget http://mirror.centos.org/centos/4/os/i386/CentOS/RPMS/yum-2.4.3-4.el4.centos.noarch.rpm
$
$ su
Password:
#
# rpm --import http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-4
#
# rpm -ivh --force centos-release-4-8.i386.rpm
#
# rpm -ivh python-elementtree-1.2.6-5.el4.centos.i386.rpm \
python-sqlite-1.1.7-1.2.1.i386.rpm \
python-urlgrabber-2.9.8-2.noarch.rpm \
sqlite-3.3.6-2.i386.rpm \
yum-metadata-parser-1.0-8.el4.centos.i386.rpm \
yum-2.4.3-4.el4.centos.noarch.rpm
あとは
# yum check-update
# yum update
でRPMパッケージを更新。
デフォルトの設定で kernel 関連パッケージは上書きしないでインストールされるようになっているが、kernel 関連パッケージを更新対象から除外したい場合は
/etc/yum.conf
の [main] に
exclude=kernel*
を追記する。
以上
Perlモジュールのインストールでperllocal.podへ記録をしない方法
Perlモジュールのインストールは
$ perl Makefile.PL
$ make
$ make test
$ su
Password:
# make install
とするが、perllocal.podファイルにインストール記録をしないようにするには最後の1行を
# make pure_install
とすればよい。
checkinstallでPerlモジュールのRPMパッケージを作成する際、これを忘れるとパッケージのインストールのときにperllocal.podが重複してインストールできなくなる。
以上
Squid でブラウザによるアクセス制限
プロキシサーバ(Squid)にアクセスしてきたブラウザがIEの6か7だったらOKにする場合、
/etc/squid/squid.conf に
acl msie browser -i MSIE.(6|7)\.0
http_access deny !msie
のように記述し、squid のサービスを再起動する。
この際、エラーメッセージをカスタマイズする場合は、/etc/squid/squid.conf に
acl msie browser -i MSIE.(6|7)\.0
deny_info ERR_BROWSER_DENIED msie
http_access deny !msie
のように記述し、エラーメッセージ用ディレクトリに ERR_BROWSER_DENIED というファイルを置く。
Debian の場合、エラーメッセージ用ディレクトリは
/usr/share/squid/errors/English
以上
Tripwire の定時チェック
例えば、/usr/local/sbin に
#!/bin/sh
/usr/sbin/tripwire --check --email-report
/usr/sbin/tripwire --init -P XXXXXXXX
のようなシェルスクリプトを tripwire.sh という名前で作成して実行権限を与え、スーパーユーザの crontab で
0 3 * * * /usr/local/sbin/tripwire.sh > /dev/null 2>&1
のように設定する。
※ XXXXXXXX はTripwireインストール時に設定したローカルパスフレーズ。
Tripwireのインストール
1. ソースからRPMファイル作成
http://sourceforge.net/projects/tripwire/files/
からソースファイルをダウンロード。
展開したディレクトリに移動し
$ ./configure --prefix=/usr --sysconfdir=/etc/tripwire
$ vi install/install.cfg
(途中略)
#TWDB="/${prefix}/lib/tripwire"
TWDB="/var/lib/tripwire"
(途中略)
#TWMAILMETHOD=SENDMAIL
#####################################
# SMTP options
#
# TWSMTPHOST selects the SMTP host to be used to send reports.
# SMTPPORT selects the SMTP port for the SMTP mail program to use.
#####################################
TWMAILMETHOD=SMTP
TWSMTPHOST="localhost"
TWSMTPPORT=25
(途中略)
$ make
$ su
Password:
# checkinstall --fstrans=no -R "make install"
2. インストール
# rpm -ivh tripwire-2.4.1.2-el4.i386.rpm
# mkdir /var/lib/tripwire /var/lib/tripwire/report
3. 設定ファイル(/etc/tripwire/twcfg.txt)変更
# /usr/sbin/twadmin -m F -c tw.cfg -S site.key twcfg.txt
4. ポリシーファイル(/etc/tripwire/twpol.txt)変更
# /usr/sbin/twadmin -m P -S site.key twpol.txt
5. 初期化
# /usr/sbin/tripwire --init
※5でエラーが出たら、3または4からやり直し。