そもそも、大した記事も書いていないのですが
最近、記事の丸コピ+画像直リンクがあり頭を抱えたのでちょっぴり対策します
プラグイン検索で下記のキーワードで検索しプラグインをインストールします
“hotlink protection”
はい。これだけ。
本当は.htaccessを使って細かく制限するのがいいんですが、中々めんどっちぃのでこれで^^;
参考にしてまとめるのは全然構わないのですがさすがに丸コピはどうかと思うのでねぇ・・・
そもそも、大した記事も書いていないのですが
最近、記事の丸コピ+画像直リンクがあり頭を抱えたのでちょっぴり対策します
プラグイン検索で下記のキーワードで検索しプラグインをインストールします
“hotlink protection”
はい。これだけ。
本当は.htaccessを使って細かく制限するのがいいんですが、中々めんどっちぃのでこれで^^;
参考にしてまとめるのは全然構わないのですがさすがに丸コピはどうかと思うのでねぇ・・・
―――――――――――――――――――――――――――――――――――――
【ソフト名】かんたんメール送信(添付ファイル対応)
【著作権者】ORBIT
【制作日】2011年09月17日
【種 別】Perlモジュール
【連絡先】http://orsp.net/blog/
【配布元】http://orsp.net/blog/
【圧縮形式】zip
【動作環境】Sendmailコマンドの使えるUNIX系OS
【開発環境】Perl5.8(標準モジュール Encode MIME::Base64 使用)
―――――――――――――――――――――――――――――――――――――
≪著作権および免責事項≫
本ソフトはフリーソフトです。自由にご使用ください。なお,著作権は作者
であるORBITが保有しています。
このソフトウェアを使用したことによって生じたすべての障害・損害・不具
合等に関しては、私と私の関係者および私の所属するいかなる団体・組織とも、
一切の責任を負いません。各自の責任においてご使用ください。
・はじめに
メール送信を行うとき毎回文字操作を行うのが面倒だったためそれらを全て行う
モジュールを作成しました。
わずか数行で添付ファイル付きのメールを送信できるため簡単なメールフォーム
の作成等に強力な力を発揮すると思います。
・ファイル構成
readme.txt ← 当ファイル
Sendmail.pm ← 本体
・インストール方法
対象のプロブラムと同じディレクトリにおいてください。
・使い方
Sendmail.pm最下部に簡単な利用法を記載してるのでそちらを御覧ください。
・履歴
2011年09月17日 Ver 1.0.0 公開
簡単な使用例
#!/usr/bin/perl
# 当モジュールを呼び出し
use Sendmail;
# オブジェクトの生成
my $send_obj = Sendmail->new({
Subject => '件名', # 件名
From => 'user@mail.goge.net', # 送信元
});
# メール送信
$send_obj->sendmail(
'user@mail.goge.net', # 送信先
'添付ファイル無し', # メッセージ
);
# メール送信
$send_obj->sendmail(
'user@mail.goge.net', # 送信先
'添付ファイル有り', # メッセージ
'file.txt,日本語ファイル.txt' # 添付ファイル(,で区切ると複数送信可能)
);
ライセンス形態:GPL
Sendmail
Perlでオブジェクト指向なプログラミングを行う時設定ファイルの扱いに困った。confファイルでも使おうかと思ったが、Settingクラスを作ってやったところ思いの外使い勝手が良かったので公開してみる。
Settingクラスは値の設定だけでなく外部の設定ファイルへのアクセスを行うメソッドを定義しておくことでメールのテンプレートや、禁止ワード等幅広い用途で外部の設定ファイルを素早く使う事ができる。
Settingクラス(Setting.cgi)のひな形
package Setting; # クラスのパッケージ名を宣言
sub new {
my $class = shift;
my $self= {
# 設定項目を適当に作る
setting1 => 'mogempoge',
setting2 => 'hogehoge.txt',
setting3 => 'hoguhogu.txt'
};
return bless $self , $class;
};
# テンプレートを記述したファイルから内容を読み取り変数に格納し、返すメソッド
sub read_config{
my $self = shift; #クラスプロパティ
$self->{ ConfigFile } = $_[0] if( @_ );
open(my $fh, "<", $self->{ ConfigFile }) || die("Can not open file $self->{ ConfigFile }");
my $file_contents;
while( my $line = readline $fh ){
$file_contents .= $line;
}
return $file_contents;
}
# 改行で区切られたワードを記述したファイルから内容を読み取り配列に格納し、返すメソッド
sub read_words {
my $self = shift; #クラスプロパティ
$self->{ ConfigFile } = $_[0] if( @_ );
open(my $fh, "<", $self->{ ConfigFile }) || die("Can not open file $self->{ ConfigFile }");
my @word_contents;
while( my $line = readline $fh ){
chomp($line); # 改行を削除
push(@word_contents, $line);
}
return \@word_contents;
}
1;
mainクラス(Test.cgi)のひな形
#!/usr/bin/perl
BEGIN{ $| = 1; print "Content-type: text/html\n\n"; open(STDERR, ">&STDOUT"); }
# オプション関連の宣言
use strict;
use warnings;
# クラスを宣言
require "Setting.cgi";
require "Function.cgi";
# パッケージ名宣言
package main;
my $f_obj = Function->new();
$f_obj->function();
その他クラス(Function.cgi)で設定ファイルを読み込む場合のひな形
package Function; # クラスのパッケージ名を宣言
# コンストラクタを定義する時にSettingクラスを継承してあげる。
sub new {
# 引数を受ける
my ( $class, @args ) = @_;
my %args = ref $args[0] eq 'HASH' ? %{ $args[0] } : @args;
my $self = { %args }; #クラスプロパティ
# オブジェクト生成
$self = Setting->new();
return bless $self , $class;
};
sub function{
my $self = shift; #クラスプロパティ
# "setting1"の値を表示する
print $self->{ setting1 };
# テンプレート"setting2"の内容を変数で受け取り表示する
print $self->read_config( $self->{ setting2 } );
# ワードリスト"setting3"の一覧を配列で受け取り表示する
print $self->read_words( $self->{ setting3 } );
}
設定ファイルのBanner項目を有効化しバナーが書かれたファイルまでのパスを記述する
# vi /etc/ssh/sshd_config
# no default banner path
#Banner none ←ここを下記に書き換える
Banner /etc/ssh/banner
# vi /etc/ssh/banner
バナーの内容を書く
―――――――――――――――――――――――――――――――――――――
【ソフト名】かんたん日本語画像認証(アルファベットも可)
【著作権者】ORBIT
【制作日】2011年07月05日
【種 別】Perlモジュール
【連絡先】http://rosx.net/blog/
【配布元】http://rosx.net/blog/
【圧縮形式】zip
【動作環境】Perl5とImage::Magick、sazanami-gothicをインストールしたLinux
Windows系OSでは動作しない事が確認されております。
【開発環境】
CentOS5.6 perl, v5.8.8
―――――――――――――――――――――――――――――――――――――
≪著作権および免責事項≫
本ソフトはフリーソフトです。自由にご使用ください。なお,著作権は作者
であるORBITが保有しています。
このソフトウェアを使用したことによって生じたすべての障害・損害・不具
合等に関しては、私と私の関係者および私の所属するいかなる団体・組織とも、
一切の責任を負いません。各自の責任においてご使用ください。
・はじめに
新しいフォームを作った時の副産物の公開です。わずか数行で画像認証機能
を実装することが可能です。
海外のスパム・人間、共に日本特有の和製漢字・平仮名は入力できないこと
に着目し今回の日本語画像認証を作成しました。
・ファイル構成
readme.txt 当取説ファイル
JCaptcha.pm 本ソフト
background.jpg 画像認証用の下地となる画像ファイル
tmp/imgs/ 作成済みの画像ファイルを保存するディレクトリ
sazanami-gothic.ttf
↑さざなみゴシック(フォント) ライセンスの関係上同封しておりません。
・導入方法
efont プロジェクト日本語トップページ – SourceForge.JP
http://sourceforge.jp/projects/efont/
よりさざなみフォントをダウンロードし、sazanami-gothic.ttfのみ取り出し
ファイル構成のようにJCaptcha.pmと同じディレクトリに格納する。
画像認証機能を追加したい対象のプログラムと同じディレクトリに上記、
ファイル構成を設置する。
・利用方法
下記の使用例を参考にプログラムに組み込んでください。
簡単な使用例
#!/usr/bin/perl
# 当モジュールを呼び出し
use JCaptcha;
# オブジェクトの生成
my $obj = JCaptcha->new(
Key => RX, # 鍵を指定
Lang => JP,# 言語を指定(JP/ENG)
Length => 10 # 文字の長さを指定
);
# 認証画像作成用メソッドを呼び出す
my $tmp1 = $obj->makeimgcode(); # 認証用画像を作成し、その画像までのパスを受ける
print "$tmp1\n"; # 認証画像までのパスを受け取る
#==============================================#
# 画像を表示し、入力を行う処理を書いてください #
#==============================================#
# 認証
# 入力された文字列で認証を行い、正しければ"1"間違っていれば"0"を受ける
#(受け渡す文字列はフラグ無しUTF-8とする)
my $tmp2 = $obj->enimgcode('入力を受けた文字列');
print "$tmp2\n"; # if文などで認証の成功失敗を判別する
・履歴
2011年09月05日 Ver 1.0.0 公開
ライセンス形態:GPL
Download:JCaptcha
中々、mod_securityを導入した中でmuninでApacheのグラフを表示させてる人がいないのか対策方法が紹介されていないのでメモします。
muninはApacheのデータを取得するためlocalhostのserver-statusにアクセスする。
しかし、mod_securityを導入している環境だとError 406 で取得できない。
(wget http://127.0.0.1 と実行すると分かりやすい。)
そのため、muninが通るようにWebアプリケーションファイアウォールに穴を開ける。
対象となるルール ユーザエージェントでボットを判別している。
# /etc/httpd/modsecurity.d/base_rules/modsecurity_crs_35_bad_robots.conf
アクセス規制対象のロボット一覧から対象のボット名を探し削除する。
# vi /etc/httpd/modsecurity.d/base_rules/modsecurity_35_bad_robots.data
削除対象
perl
libwww-perl
wget ←必要があれば削除
Apacheに設定適用
# service httpd restart
下記のような警告が出た時、警告を非表示にする方法。
Deprecated: Function set_magic_quotes_runtime() is deprecated in
/path/file.php on line 718
php.ini で設定する場合は
error_reporting = E_ALL & ~E_NOTICE
を追記すれば良いようですが全部で適用されちゃってセキュリティー的にどうなのか?とか気になります。
.htaccessで設定する場合をメモします。下記を追記して対象のディレクトリに設置してください。
php_value error_reporting 6135
その他の設定は次のサイトで詳しく紹介されてるのでそちらを御覧ください。
.htaccess で error_reporting を設定するときの注意点 | Sun Limited Mt.
不正アクセスによく使用されるコマンドは大体決まってます。
そこでよく使用されるコマンドの中でもつかられるとリスクの大きいコマンドを一般ユーザから利用できないようにします。
※ ls dir find rm cp このあたりも制限する事が望ましいですが他のプログラムに影響を及ぼす可能性が高いため今回は下記に絞りました。
# chown -c root:wheel /sbin/ifconfig
# chmod -c 2710 /sbin/ifconfig
# chown -c root:wheel /bin/ps
# chmod -c 2710 /bin/ps
# chown -c root:wheel /usr/bin/top
# chmod -c 2710 /usr/bin/top
# chown -c root:wheel /usr/bin/pstree
# chmod -c 2710 /usr/bin/pstree
# chown -c root:wheel /usr/sbin/lsof
# chmod -c 2710 /usr/sbin/lsof
# yum remove finger
nagios等の監視ソフトや一般管理者ユーザでエラーが出ると困ることからwheelグループからも一応アクセスできるようにする。
そして普通に使っているだけならfingerコマンドなんて使うことはないのでこれは削除します。
本来IDS(侵入検知システム)は不正アクセスを検知し管理者に通知するだけであるが、今回SWATCHと組み合わせることで強力なセキュリティー機能を備えたいと思う。
※ SWATCHはログ監視ツール導入(SWATCH)
Snortのダウンロード
# wget http://vscojot.free.fr/dist/snort/snort-2.9.0.5/RHEL5/x86_64/snort-2.9.0.5-12.el5.x86_64.rpm
# wget http://vscojot.free.fr/dist/snort/snort-2.9.0.5/RHEL5/x86_64/daq-0.5-9.el5.x86_64.rpm
# wget http://vscojot.free.fr/dist/snort/snort-2.9.0.5/RHEL5/x86_64/libdnet-1.12-7.el5.x86_64.rpm
# wget http://vscojot.free.fr/dist/snort/snort-2.9.0.5/RHEL5/x86_64/libpcap1-1.1.1-10.el5.x86_64.rpm
依存関係でエラーが出るため下記の順番にインストールする
# rpm -Uvh libdnet-1.12-7.el5.x86_64.rpm
# rpm -Uvh libpcap1-1.1.1-10.el5.x86_64.rpm
# rpm -Uvh daq-0.5-9.el5.x86_64.rpm
# rpm -Uvh snort-2.9.0.5-12.el5.x86_64.rpm
ルールはsnortrules-snapshot-2905.tar.gzをダウンロードする
ルールのダウンロードにはアカウント作成がいるようである
# tar zxvf snortrules-snapshot-2905.tar.gz
# cp rules/* /etc/snort/rules/
# /etc/snort/snort.conf
LAN内のPCは例外とするように設定ファイルを書き換える
var HOME_NET 192.168.1.0/24
var EXTERNAL_NET !$HOME_NET
下記のコメントを解除しルールを有効化する
include $RULE_PATH/attack-responses.rules
include $RULE_PATH/backdoor.rules
include $RULE_PATH/bad-traffic.rules
include $RULE_PATH/blacklist.rules
include $RULE_PATH/botnet-cnc.rules
include $RULE_PATH/chat.rules
include $RULE_PATH/content-replace.rules
include $RULE_PATH/ddos.rules
include $RULE_PATH/dns.rules
include $RULE_PATH/dos.rules
include $RULE_PATH/exploit.rules
include $RULE_PATH/finger.rules
include $RULE_PATH/ftp.rules
include $RULE_PATH/icmp.rules
include $RULE_PATH/icmp-info.rules
include $RULE_PATH/imap.rules
include $RULE_PATH/info.rules
include $RULE_PATH/misc.rules
include $RULE_PATH/multimedia.rules
include $RULE_PATH/mysql.rules
include $RULE_PATH/netbios.rules
include $RULE_PATH/nntp.rules
include $RULE_PATH/oracle.rules
include $RULE_PATH/other-ids.rules
include $RULE_PATH/p2p.rules
include $RULE_PATH/phishing-spam.rules
include $RULE_PATH/policy.rules
include $RULE_PATH/pop2.rules
include $RULE_PATH/pop3.rules
include $RULE_PATH/rpc.rules
include $RULE_PATH/rservices.rules
include $RULE_PATH/scada.rules
include $RULE_PATH/scan.rules
include $RULE_PATH/shellcode.rules
include $RULE_PATH/smtp.rules
include $RULE_PATH/snmp.rules
include $RULE_PATH/specific-threats.rules
include $RULE_PATH/spyware-put.rules
include $RULE_PATH/sql.rules
include $RULE_PATH/telnet.rules
include $RULE_PATH/tftp.rules
include $RULE_PATH/virus.rules
include $RULE_PATH/voip.rules
include $RULE_PATH/web-activex.rules
include $RULE_PATH/web-attacks.rules
include $RULE_PATH/web-cgi.rules
include $RULE_PATH/web-client.rules
include $RULE_PATH/web-coldfusion.rules
include $RULE_PATH/web-frontpage.rules
include $RULE_PATH/web-iis.rules
include $RULE_PATH/web-misc.rules
include $RULE_PATH/web-php.rules
include $RULE_PATH/x11.rules
# vi /etc/logrotate.d/snort
不要(存在しないログファイル)な部分を削除する
/var/log/snort/alert /var/log/snort/*log {
SWATCHの設定
# vi /etc/swatch/snort.conf
# logfile /var/log/snort/alert
# 不正なアクセスを3回以上検知したら該当ホストからのアクセスを24時間規制
watchfor /Priority/
pipe "/usr/local/bin/swatch_action.sh 13"
throttle=00:00:10
BIOS SETUP UTILITY を起動させる。
とりあえず言語設定ができるようなので設定する。
MainのLanguage [English]を[日本語]へ。
オンボードGPU(iGPU)を使う設定を行う(PCI-E x16にRAIDカードを挿すとグラフィックボードと誤認するため)
詳細設定からInitiate Graphic Adapter を[PCI/iGPU]を選択。(何故か[iGPU]ではうまく動作しなかった。)
起動時にIDE用ディバイスを使わないのにスキャンされるのでスキャンしないようにする。
詳細設定からオンボードディバイス設定構成を選択しVT6415 IDE Controllerを[無効]にする。
停電時、電源復旧で自動起動するように設定する。(自動動時に確認としてF2を押すように促す保護機能を外す。)
電源からAnti Sure Supportを[無効]に設定。
APM Configurationを選択しAC 電源切断後の復旧モードを[Power On]に設定する。
RAIDカードの設定はHP SC40Geホスト バス アダプタ リファレンス ガイドを見る。
普段はこんな事はまとめないですが複数導入する予定なので次設定するとき設定し忘れが無いようにww