■htopを叩き負荷を可視化する。
容量の大きなログファイルでリアルタイムで容量が増えているものを探す
絞り込み例ログ
841 watch ls -lha /var/log/httpd/[a-c]*
842 watch ls -la /var/log/httpd/[a-c]*
843 watch ls -la /var/log/httpd/[d-g]*
844 watch ls -la /var/log/httpd/[i-n]*
845 watch ls -la /var/log/httpd/[o-s]*
846 watch ls -la /var/log/httpd/[o-x]*
847 watch ls -la /var/log/httpd/[o-s]*
848 watch ls -la /var/log/httpd/[t-x]*
849 watch ls -la /var/log/httpd/[t-v]*
850 watch ls -la /var/log/httpd/[w-y]*
851 watch ls -la /var/log/httpd/[wwww.a-www.g]*
852 watch ls -la /var/log/httpd/[wwww.a-www.b]*
853 watch ls -la /var/log/httpd/[wwww\.a-www\.b]*
854 watch ls -la /var/log/httpd/www[a-b]*
855 watch ls -la /var/log/httpd/www.[a-b]*
856 watch ls -la /var/log/httpd/www.[a]*
857 watch ls -la /var/log/httpd/www.[a-ap]*
858 watch ls -la /var/log/httpd/www.[a-ac]*
859 watch ls -la /var/log/httpd/www.a[a-b]*
860 watch ls -la /var/log/httpd/www.a[s-v]*
861 watch ls -la /var/log/httpd/www.a[a-s]*
862 watch ls -la /var/log/httpd/www.a[a-r]*
863 watch ls -la /var/log/httpd/www.a[a-s]*
864 watch ls -la /var/log/httpd/www.a[a-r]*
865 watch ls -la /var/log/httpd/[a-e]
866 watch ls -la /var/log/httpd/[a-e]*
867 watch ls -la /var/log/httpd/[a-d]*
868 tail -f /var/log/httpd/access_log
以下コマンドで指定のIPをブロックする
iptables -A INPUT -s ********** -j DROP
--------------------------------------------------------------------------------
■xmlrpcの記述■
xmirpc
order allow,deny
deny from all
「ドメイン名.conf」ファイルを探して開き、上記の4行が無ければ追記する。
例
第一候補
/etc/httpd/sites-available/aihome.biz.conf ←あいホームの例
第二候補
/etc/httpd/conf.d/default.conf
全てのの中に書く。
書き終えたら
/etc/init.d/httpd reload
/etc/init.d/httpd restart
この2つを実行することで反映される。
--------------------------------------------------------------
■不審なアクセスと思われるIPアドレスの調査■
アクセスログファイルを確認する
ssl非対応であれば
/var/log/httpd/*****_access_log
ssl対応であれば
/var/log/httpd/*****_ssl_access_log
xmlrpcへのアクセスログを探す
-------------------------------------------------------------
xmlrpcへのアクセスが確認できたらログファイルを編集用にコピーする
例
cp /var/log/httpd/*****_log access_log
または
cp /var/log/httpd/*****_ssl_access_log access
xmlrpcへのアクセスを試みているIPアドレスの一覧を作成するため
以下の正規表現を入力
「xmlrpc」を含むログのIPアドレス以外を削除する
:%s/^\(.*\)\(xmlrpc\)\(.*\)/#\1\2\3/g
:%s/^/@/g
:%s/^@#//g
:%s/^@.*\n//g
:%s/^\([0-9]\+\.[0-9]\+\.[0-9]\+\.[0-9]\+\).*/\1/g
:sort u
[SHIFT][↓]で以下の行を選択してペーストすれば一括処理可能
:%s/^\(.*\)\(xmlrpc\)\(.*\)/#\1\2\3/g
:%s/^/@/g
:%s/^@#//g
:%s/^@.*\n//g
:%s/^\([0-9]\+\.[0-9]\+\.[0-9]\+\.[0-9]\+\).*/\1/g
:sort u
抽出されたIPアドレスが多数の場合は「■シェルスクリプトファイルの作成■」へ
抽出されたIPを下記に組み込みターミナルで実行
①iptables -I INPUT -s xxx.xxx.xx.xxx -j DROP
②iptables -A INPUT -s xxx.xxx.xx.xxx -j DROP
②のほうの記述をiptables.shにも貼り付ける
完了
-------------------------------------------------------------
■シェルスクリプトファイルの作成■
ソートされた各行の頭に「iptables -I INPUT -s」
各行の末尾に「-j DROP」を追記する
:%s/^/iptables\ \-I\ INPUT\ \-s /g
:%s/$/\ \-j\ DROP/g
編集用にコピーしたログファイルをシェルスクリプトファイルに変更
例
mv access_log defence.sh
vimで開き「#!/bin/bash」を先頭行に追記
vim defence.sh
実行する
sh defence.s
vimでファイルを開き、-Iを-Aに置き換えてもう一度実行
vim defence.sh
:%s/iptables \-\I/iptables \-\A/g
実行する
sh defence.sh
iptables.shに「このファイルの実行とログ廃棄」を追記
例
sh /root/defence.sh > /dev/null
---------------------------------------------------------
iptables.shにBAN設定する
#bot.semrush.com
iptables -I INPUT -s 185.191.171.0/24 -j DROP
#ブルガリアからのブルートフォース(メールサーバー)
iptables -I INPUT -s 212.70.149.0/24 -j DROP
#216.224.66.227
iptables -I INPUT -s 216.224.66.227 -j DROP
---------------------------------------------------------
iptables.shにBAN設定する
#bot.semrush.com
iptables -I INPUT -s 185.191.171.0/24 -j DROP
#ブルガリアからのブルートフォース(メールサーバー)
iptables -I INPUT -s 212.70.149.0/24 -j DROP
#216.224.66.227
iptables -I INPUT -s 216.224.66.227 -j DROP
---------------------------------------------------------
ログがある程度取れたらの処理
swatchログからIPアドレスのリストを作る
cp /var/log/swatch/swatch.log [任意のファイル名]
以下を参考に作成
:%s/^.*\? .*\? .*\? .*\? .*\? .*\? (.*)\? .*$/\1/g
:%s/^.............................
:%s/.........$
/\(.*\) /\1/g
.* なんでもマッチ
swatchログを固める
:%s/\(.*\)\s\+/\1#A#/g
:%s/\(.*\)\s\+/\1#B#/g
:%s/\(.*\)\s\+/\1#C#/g
:%s/.*#C#//g
:%s/#B#.*//g
:%s/Resource\n//g
:%s/^/iptables -I INPUT -s /g
:%s/$/ -j DROP/g
/abc
:%s/abc/ABC/g
特定の文言の行に目印(#)を付ける、xmlrpcの例
:%s/.*xmlrpc.*/#\0/g
:%s/^/@/g
:%s/^@#//g
:%s/^@.*\n//g
:%s/^.\{-}\s\+.\{-}\s\+.\{-}\s\+.\{-}\s\+.\{-}\s\+.\{-}\s\+\(.*\)\s\+.*$/\1/g
:%s/\s\+.*$//g
:%s/iptables:\n//g
:%s/<.*\?>//g
:%s/<.\{-}>//g
作成後BANを行ったら↓
swatchのBANスクリプトをsysadminに避難させる
mv /etc/swatch/xmlrpc_def.conf /home/sysadmin/
swatchを再起動
/etc/init.d/swatch restart
swatchのログを削除
1011 ls /var/log/swatch/
1012 rm -rf /var/log/swatch/1*
1013 ls /var/log/swatch/
1014 rm -rf /var/log/swatch/2*
1015 rm -rf /var/log/swatch/3*
1016 rm -rf /var/log/swatch/4*
1017 rm -rf /var/log/swatch/5*
1018 rm -rf /var/log/swatch/6*
1019 rm -rf /var/log/swatch/7*
1020 rm -rf /var/log/swatch/8*
1021 rm -rf /var/log/swatch/9*
1022 ls /var/log/swatch/
1023 /etc/init.d/swatch restart ←ログ削除後もswatchを再起動
-------------------------------------------------------------
■諸外国からのアクセスを規制するファイル(の置き場所)
/etc/cron.daily/iplist_check.sh
-------------------------------------------------------------
**********************************
swatchへの追記
■swatchの場所■
/etc/swatch/
上記に*******.conf を作成し置く
■例-------------------------------------------------------
# logfile /var/log/httpd/aihome-access_log
watchfor /wp-login.php.*Ubuntu/
pipe "/usr/local/bin/swatch_action.sh 1 lock"
throttle=00:00:10
watchfor /xmlrpc.php/
pipe "/usr/local/bin/swatch_action.sh 1 lock"
throttle=00:00:10
# lightpress
watchfor /wp-login.php.*500.*Ubuntu/
pipe "/usr/local/bin/swatch_action.sh 1 lock"
throttle=00:00:10
-------------------------------------------------------
【メモ】1 lock の「1」とはログファイルにIPアドレスが」記載されている箇所
「aihome-access_log」の内容を参照する
# logfile /var/log/httpd/aihome-access_log
Ubuntuからwp-login.php へのアクセスを検知したら該当ホストからのアクセスを24時間規制
watchfor /wp-login.php.*Ubuntu/
pipe "/usr/local/bin/swatch_action.sh 1 lock"
throttle=00:00:10
xmlrpc.php へのアクセスを検知したら該当ホストからのアクセスを24時間規制
watchfor /xmlrpc.php/
pipe "/usr/local/bin/swatch_action.sh 1 lock"
throttle=00:00:10
# lightpress
watchfor /wp-login.php.*500.*Ubuntu/
pipe "/usr/local/bin/swatch_action.sh 1 lock"
throttle=00:00:10
-------------------------------------------------------
上記ファイルを保存したらhttpdを再起動
/etc/init.d/httpd restart
**********************************
-------------------------------------------------------
cp /var/log/swatch/swatch.log [任意のファイル名]
:%s/^.*\? .*\? .*\? .*\? .*\? .*\? (.*)\? .*$/\1/g
:%s/^.............................
:%s/.........$
/\(.*\) /\1/g
.* なんでもマッチ
swatchログを固める
:%s/\(.*\)\s\+/\1#A#/g
:%s/\(.*\)\s\+/\1#B#/g
:%s/\(.*\)\s\+/\1#C#/g
:%s/.*#C#//g
:%s/#B#.*//g
:%s/Resource\n//g
:%s/^/iptables -I INPUT -s /g
:%s/$/ -j DROP/g
/abc
:%s/abc/ABC/g
特定の文言の行に目印(#)を付ける、xmlrpcの例
:%s/.*xmlrpc.*/#\0/g
:%s/^/@/g
:%s/^@#//g
:%s/^@.*\n//g
:%s/^.\{-}\s\+.\{-}\s\+.\{-}\s\+.\{-}\s\+.\{-}\s\+.\{-}\s\+\(.*\)\s\+.*$/\1/g
:%s/\s\+.*$//g
:%s/iptables:\n//g
:%s/<.*\?>//g
:%s/<.\{-}>//g
作成後BANを行ったら↓
swatchのBANスクリプトをsysadminに避難させる
mv /etc/swatch/xmlrpc_def.conf /home/sysadmin/
swatchを再起動
/etc/init.d/swatch restart
swatchのログを削除
1011 ls /var/log/swatch/
1012 rm -rf /var/log/swatch/1*
1013 ls /var/log/swatch/
1014 rm -rf /var/log/swatch/2*
1015 rm -rf /var/log/swatch/3*
1016 rm -rf /var/log/swatch/4*
1017 rm -rf /var/log/swatch/5*
1018 rm -rf /var/log/swatch/6*
1019 rm -rf /var/log/swatch/7*
1020 rm -rf /var/log/swatch/8*
1021 rm -rf /var/log/swatch/9*
1022 ls /var/log/swatch/
1023 /etc/init.d/swatch restart ←ログ削除後もswatchを再起動
-------------------------------------------------------------------
970 vim /etc/httpd/conf.d/default.conf
971 vim /etc/httpd/sites-available/sasazo.conf
972 vim /etc/swatch/xmlrpc_def.conf
973 mv /etc/swatch/xmlrpc_def.conf /home/sysadmin/ ←sysadminへ移動
974 /etc/init.d/swatch restart ←swatchをリスタート
975 ls /var/log/swatch/
976 rm -rf /var/log/swatch/1* ←swatchログを消去
977 ls /var/log/swatch/
978 rm -rf /var/log/swatch/2* ←swatchログを消去
979 rm -rf /var/log/swatch/3* ←swatchログを消去
980 rm -rf /var/log/swatch/4* ←swatchログを消去
981 rm -rf /var/log/swatch/5* ←swatchログを消去
982 rm -rf /var/log/swatch/6* ←swatchログを消去
983 rm -rf /var/log/swatch/7* ←swatchログを消去
984 rm -rf /var/log/swatch/8* ←swatchログを消去
985 rm -rf /var/log/swatch/9* ←swatchログを消去
986 ls /var/log/swatch/
987 /etc/init.d/swatch restart ←swatchをリスタート
988 history
989 exit