Tag Archives: PC - Page 2

特定のサイトからのアクセスを強制転送させる

リファラから特定のサイトからのアクセスか判断し、指定したページにリダイレクトする.htaccessを公開します。

例:2chからのアクセスをhttp://jump.orsx.net/リファラに転送させてジャンプ確認画面を表示させます。

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTP_REFERER} .*ime.*$ [NC,OR]
RewriteCond %{HTTP_REFERER} .*2ch.*$ [NC]
RewriteRule ^(.*)$ http://jump.orsx.net/%{HTTP_HOST}/$1
</IfModule>

2ch ジャンプ確認 再現 ime.nu

全く同じ働きをするCGIを書いてみました。
※私の妄想にしか過ぎないので間違ってる可能性もあります。

#!/usr/bin/perl
#===================================
#スクリプト名:ジャンプCGI
#作者:ORBIT
#===================================

# URLの後ろパスがついているかチェック
if ($ENV{'PATH_INFO'} eq ""){&error;}

# パスにhttp:/が含まれている場合削除
$ENV{'PATH_INFO'} =~ s/http:///;

# URLの作成
$PATH = "http:/$ENV{'PATH_INFO'}";

# 出力
print "Content-type: text/htmlnn";
print <<EOT
<html><head>
<title>jump</title></head>
<body>
以下のURLに飛びますよろしいですか?<br>
<a href="$PATH">$PATH</a>
</body></html>
EOT
;

# パスが見つからなかった場合は下記を出力
sub error {
print "Content-type: text/htmlnn";
print <<EOT
<html><head>
<title>jump</title></head>
<body>
test
</body></html>
EOT
;
exit;
}

これをエラーページにしてるのかリダイレクトしてるのか多分そんなところかと思います。

攻撃の多い国を自働遮断 CentOS 5.4

いつもお世話になってる方法ですが今回はうざい国からのアクセスを全て遮断様の内容を若干発展させて自動的にデータベースを更新してくれるように設定しみました。

Redhat系用に作成した改造版countryfilter.plを下記のリンクを右クリックして保存する。
countryfilter
※拡張子を.plに変更してサーバの/rootへ転送する。

サーバ上から直接行う場合
# su –
# wget https://www.orsx.net/wp-content/uploads/2010/03/countryfilter1.txt
# mv countryfilter.txt countryfilter.pl

オリジナル自動化シェルスクリプトを下記のリンクから右クリックでダウンロードしてファイル名をcountryfilter.shへ変更する。
countryfilter_sh
ファイル名変更後サーバの/rootディレクトリへ転送する。

サーバ上から直接行う場合
# wget https://www.orsx.net/wp-content/uploads/2010/03/countryfilter_sh1.txt
# mv countryfilter_sh.txt countryfilter.sh

ここからはサーバ上で操作を行う
# chmod +x countryfilter.sh   ←実行権の投与
# mv countryfilter.sh /etc/cron.monthly/   ←月一回データベースを更新
動作チェックを行う場合は下記の一行を実行してみる。
※思いの他時間がかかると思われるが紅茶でもすすりながらゆっくりする。
# /etc/cron.monthly/countryfilter.sh

※おそらくVine Linuxでも同じように使える方法かと思う。

Usermin メール返信文字化け警告 CentOS 5.4

メールの転送機能のメールの返信
はい、以下のメッセージを差出人に自動で返します
に日本語を入力すると激しく文字化けするので(日本語非対応)と追記する。
/usr/libexec/usermin/forward/lang/ja_JP.euc
上記をファイルを何らかの方法で編集する。

編集箇所
index_autoyes=はい、以下のメッセージを差出人に自動で返します(日本語非対応)

mod_layout インストール CentOS 5.4

インストールしようとするとapxsが足りないといわれるのでインストールする。
# yum install httpd-devel

後はいつものとうりにインストールする。
# wget http://download.tangent.org/mod_layout-5.1.tar.gz
# tar xvzf ./mod_layout-5.1.tar.gz
# cd ./mod_layout-5.1
# make
# make install

Geo::IPfree インストールエラー CentOS 5.4

Geo::IPfreeをインストールしようとしたら下記のようなエラーが出たので対策方法をメモしておく。

– module: Geo::IPfree —
Found: Geo-IPfree-1.100470.tar.gz
At: http://search.cpan.org//CPAN/authors/id/B/BR/BRICAS
Retrieving URL
Metadata retrieval
Tarball extraction: [/usr/src/redhat/SOURCES/Geo-IPfree-1.100470.tar.gz]
Generating spec file
SPEC: /usr/src/redhat/SPECS/Geo-IPfree.spec
Generating package
Signing package (pass phrase required)
エラー: マクロファイル内で “%_gpg_name” を設定しなければなりません。
パスフレーズのチェックに失敗しました。
RPM build failed [1] at /usr/bin/cpan2rpm line 1053.
— Done —

下記のコマンドでインストールするとエラーを回避できる。
# cpan2rpm –no-sign –install Geo::IPfree

Apache アクセスログ解析AWStats6.95 Vinelinux5.0

Webalizerでは色々問題が出てきたので今回AWStatsの最新版6.95をインストールしてみました。

必要なモジュールの追加
# cpan
> install Jcode
> install Test::Simple
> install Geo::IPfree
ディレクトリ/usr/local/srcへ移動する
# cd /usr/local/src
最新版をダウンロードする
# wget http://prdownloads.sourceforge.net/awstats/awstats-6.95.tar.gz
解凍
# tar zxvf awstats-6.95.tar.gz
解凍先awstats-6.95/wwwroot/へ移動
# cd awstats-6.95/wwwroot/
公開用ディレクトリの作成
# mkdir /var/www/html/awstats
# mkdir /var/www/html/awstats/icon
ファイルのコピー
# cp -rf cgi-bin/* /var/www/html/awstats
# cp -rf icon/* /var/www/html/awstats/icon
公開先ディレクトリへ移動
# cd /var/www/html/awstats
設定モデルの書かれたファイルをコピー
# cp awstats.model.conf awstats.conf
各所編集
# vi awstats.conf
LogFile=”/var/log/apache2/access_log”
SiteDomain=”orsx.net”
DirCgi=”/awstats”
DirIcons=”/awstats/icon”
SkipHosts=”127.0.0.1 REGEX[^192.168.24.]”
Lang=”jp”

手動で実行してみる
# var/www/html/awstats/awstats.pl -config=awstats.conf -update

下記のエラーが出る場合の処置
—省略—
Check config file, permissions and AWStats documentation (in ‘docs’ directory).
—省略—
# service apache2 stop
# vi /etc/apache2/conf/httpd.conf
LogFormat “%h %l %u %t “%!414r” %>s %b “%{Referer}i” “%{User-Agent}i”” combined
周辺の他のLogFormatは#でコメントアウト

# mv /var/log/apache2/access_log /var/log/apache2/access_log-20091229
(12月29日のログとして保存)
# service apache2 start

誰かアクセスするのを待ち下記を再び実行
# var/www/html/awstats/awstats.pl -config=awstats.conf -update

問題なく実行されたら下記のURLをブラウザで開く
https://www.orsx.net/awstats/awstats.pl

集計を10分ごとに行う
# crontab -e
0,10,20,30,40,50 * * * * /var/www/awstats/awstats.pl -config=awstats.conf -update

==<追記>==
表示するレポートの表示の日付表示が変なので修正します。
(設定方法はバージョンによって異なるようです)
awstats.plの下記を編集する

13490行目付近を下記のように#でコメントアウトし変更する。
print
#”$Message[5] $MonthNumLib{$MonthRequired} $YearRequired”;
“$YearRequired $Message[6]”.$MonthNumLib{$MonthRequired};

16000行目付近を下記のように#でコメントアウトし変更する。
print( #$MonthRequired eq ‘all’
#? “$Message[6] $YearRequired”
#: “$Message[5] ”
# . $MonthNumLib{$MonthRequired}
# . ” $YearRequired”
$MonthRequired eq ‘all’
?”$YearRequired $Message[6]”
:”$YearRequired $Message[6]”
.$MonthNumLib{$MonthRequired}

Postfix SpamAssassin Spam対策 Vine Linux 5.0

SpamAssassinをインストールする
# apt-get update
# apt-get install spamassassin

設定ファイルをコピーする
# cp /usr/share/doc/spamassassin-3.2.5/sample-japanese-local.cf /etc/mail/spamassassin/local.cf

Maildir内に.Spamディレクトリを作成する
# su username
# mkdir -p ./Maildir/.Spam
# chmod -R 700 ./Maildir/

ユーザ登録時に自動作成されるようにする
# mkdir -p /etc/skel/Maildir/.Spam
# chmod -R 700 /etc/skel/Maildir/

Linux で自宅サーバ様より
下記を/etc/procmailrcに記述します

# パスを設定
PATH=/bin:/usr/bin:/usr/local/bin
# メールボックスの設定
MAILDIR=$HOME/Maildir
DEFAULT=$MAILDIR/
# Procmailのログファイル出力先を指定
LOGFILE=$MAILDIR/procmaillog
# ロックファイルのパスを指定
LOCKFILE=$HOME/.lockmail

# メールヘッダー中に「 X-Spam-*** 」の記述がなければ spamassassin を起動します
:0fw
*!^X-Spam.*
|spamassassin

# メールヘッダー中に「 X-Spam-Status: Yes 」の記述があれば、「 .Spam 」ディレクトリにメールを格納します
:0
* ^X-Spam-Status: Yes
$MAILDIR/.Spam/

/etc/postfix/main.cfへ下記を追記する
# vi /etc/postfix/main.cf
mailbox_command = /usr/bin/procmail

SpamAssassinの起動
# service spamassassin start
Postfixの再起動
# service postfix restart

Vine Linux 5.0 Python CGIを使う

色々と足りないのがあるのでインストールします。
※私の環境ではpythonは使える環境にありました。
# apt-get install python
# apt-get install python-devel
# apt-get install python-egenix-mx-base
# apt-get install python-tools
# apt-get install python-setuptools
# apt-get install python-babel
# apt-get install python-genshi
# apt-get install mod_python

基本.htaccessを使わないといけなくなるのでhttpd.confには以下の設定に変更しておく。
# vi /etc/apache2/conf/httpd.conf
AllowOverride NoneをAllowOverride FileInfoへ設定

# service apache2 restart

PythonをCGIで使う場合文字化けのためかshiftがエラーになったのでUTF-8で書きましょう。

hello.pyをcgiとして動かす場合は下記のような設定を.htaccessへ記述する。
AddHandler mod_python .py
PythonHandler hello
PythonDebug On

hello.pyの内容

from mod_python import apache

def handler(req):
  req.content_type = "text/plain"
  req.send_http_header()
  req.write("Hello, World")
  return apache.OK

# end.

毎回スクリプトごとに設定してたら気が狂うので下記のような設定方法もあります。
AddHandler mod_python .py
PythonHandler mod_python.publisher
PythonDebug On

慣れないですね^^;
やっぱりPerlが使いやすいかな・・・・・・

BackTrack 3 パスワードリスト(Wordlist)自動作成

先日BackTrackでMedusaを使ったSSHへの攻撃方法を紹介しました。
今回は辞書を作ってみます。

BackTrack 4にはcuppと呼ばれる辞書作成ソフトが有りますが今回BackTrack 3を使い辞書を自動作成してみたいと思います。

コマンドで以下のコマンドを打ってみましょう。
# /pentest/password/crunch 6 8 abcdefghijklmnopqrstuvwxyz0123456789 > passwrod.txt
この場合6文字から8文字の小文字英数を順に並べたリストをpasswrod.txtへ保存します。

では少し改良して以下の様なコマンドを入力を行った場合どうなるでしょうか。
# /pentest/password/crunch 6 6 0123456789 -t pw@@@@ > password.txt
この場合は6文字のpwを先頭に含むpw0000~pw9999のリストを自動作成してpassword.txtへ保存します。

このツールを利用することで条件に合わせて自分の好きな文字列を攻撃に使用する事が可能です。