Mod Securityが検知したIPアドレスの抜き出し。

やりたいこと

Mod Securityを導入してから、不正アクセスがerror.logに現れるようになりました。
そのアドレスをネガティブリストに放り込むことで後続のアクセスをブロックする方法は設定しました。

そこで、

  • 日ごとにerror.logで検知したログを確認し
  • IPアドレスのみを抜き出してリスト化する

設定を行います。

環境

  • Ubuntu 20.04(Linux Mint)
  • Apache 2.4
  • Mod Security

※ログは/var/lib/redmine/log に格納されています。

手順

一般ユーザで実施します。

参考:

https://linux.just4fun.biz/?%E9%80%86%E5%BC%95%E3%81%8DUNIX%E3%82%B3%E3%83%9E%E3%83%B3%E3%83%89/%E3%83%86%E3%82%AD%E3%82%B9%E3%83%88%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%81%8B%E3%82%89IP%E3%82%A2%E3%83%89%E3%83%AC%E3%82%B9%E3%81%AE%E3%81%BF%E6%8A%BD%E5%87%BA%E3%81%99%E3%82%8B

apacheのerror.logからIPアドレスを抜き出します。

cd /var/lib/redmine/log
cat error.log | awk 'match($0,/[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+/) { print  substr($0, RSTART, RLENGTH) }'
# IPアドレスのみ表示されることを確認。

IPアドレスを並べ替え、重複を除外します。

cd /var/lib/redmine/log
cat error.log | awk 'match($0,/[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+/) { print  substr($0, RSTART, RLENGTH) }' | sort | uniq
# 一意のアドレスのみが表示されることを確認。

自動実行するスクリプトを作成します。

cd /hoge/
vi negativelist.sh
スクリプト内容
#!/bin/sh

SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin

cd /var/lib/redmine/log
cat error.log | awk 'match($0,/[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+/) { print  substr($0, RSTART, RLENGTH) }' | sort | uniq > /var/lib/redmine/log/suspicious_ip.`date +%Y%m%d`

スクリプトに実行権限を付与します。

chmod +x negativelist.sh

日ごとに実行されるように設定します。

sudo su -
crontab -u www-data -e
# redmineのログプラグインで閲覧できるよう、apache実行ユーザのcronを編集します
cron内容
0 8 * * * /hoge/negativelist.sh

これで、「Mod Securityが不正アクセスと見なしたIPアドレスを日ごとに抜き出す」仕組みが整いました。

(シェルスクリプトで指定したディレクトリ内に、suspicious_ip.yyyymmdd というファイルが作成されます。
 また、/var/lib/redmine/log 配下に置くことで、redmineのログプラグインで表示することができます。)

直接ネガティブリストに追記しないのは、偽陽性で自分自身がブロックされるのを防ぐためです。

Mod SecurityによるIPアドレスブロック。(ネガティブリスト型)

攻撃の兆候

Mod Securityを導入して一昼夜――

公表していないURLであるにも関わらず、しっかりと攻撃の予兆がログに現れました。

※この方法で、サーバにアクセスすることなく、redmineへのログを一元管理しています。

この、不正アクセスの予兆を示したアクセス元を調べると

Torから来ている望ましくないものまであり、昨今の驚異を嫌でも感じずにいられません。

そこで、Apacheの設定ファイルではなくMod Securityの機能を用いてIPアドレスを遮断していきます。

参考:

Apache×Mod SecurityでカンタンWAF構築

https://qiita.com/m0nch1/items/ac7255399366fb113a82

環境

  • Ubuntu 20.o4 (Linux Mintでも同様)
  • Apache 2.4
  • Mod Security導入済み

手順

すべて管理者権限で実施しています。

バーチャルファイル編集

vi /etc/apache2/sites-available/VIRTUALHOST.conf
# 使っているバーチャルファイルに読み替えます
追記内容
## Negativelist
SecRule REMOTE_ADDR "@pmFromFile negativelist.txt" "phase:1,id:2,deny,msg:'Negativelisted IP address'"

ネガティブリスト作成

vi /etc/etc/apache2/sites-available/negativelist.txt
ネガティブリストの内容
XXX.XXX.XXX.XXX
YYY.YYY.YYY.YYY
#ブロックしたいIPアドレスを記入していきます
# 設定確認のため、自分自身のアクセス元を記入しました

ネガティブリスト反映

cd /etc/apache2/site-enabled
ln -s ../sites-available/negativelist.txt negativelist.txt
# 設定ファイルの位置を明示していないのでシンボリックリンクを張ります

設定変更

apache2ctl configtest
#Syntax OK を確認します
systemctl restart apache2

設定確認

上記手順で、「自分自身をブロックする」設定を入れ、redmineにアクセスして「403」が返ってくることとエラーログにその旨が記録されていることを確認。(その後、このアドレスは削除しています)

今後の展望

  • 不正アクセスを検知したらそのIPアドレスを自動的に追記する
  • 数が増え続けるため、いっそのことポジティブリストに切り替える

などが必要になってきます。

Apache + redmine環境にMod Security導入。

インターネット環境に構築したredmineに不正アクセスが飛んでくるというエントリーを投稿したところ、

「Mod Security導入も一つの手」

というコメントをいただき、早速導入することにしました。

環境

  • Ubuntu 20.04 (Linux Mintでも動作確認済み)
  • Apache 2.4

参考

インストール方法

全て管理者権限で実施しました。

システム全体のアップグレード

aptitude update
aptitude upgrade

Ubuntu 20.04にMod Securityをインストールします。

aptitude install libapache2-mod-security2
systemctl restart apache2

ModSecurity 設定ファイル/ディレクトリをコピーしていきます。

cp -pi /etc/modsecurity/modsecurity.conf-recommended /etc/modsecurity/modsecurity.conf
cd /tmp
git clone https://github.com/SpiderLabs/owasp-modsecurity-crs.git
cd /owasp-modsecurity-crs
cp -pi crs-setup.conf.example /etc/modsecurity/crs-setup.conf
cp -pir rules/ /etc/modsecurity/

ModSecurityの設定を行います。

vi /etc/apache2/mods-available/security2.conf
設定ファイル内容
<IfModule security2_module>
   # Default Debian dir for modsecurity's persistent data
   SecDataDir /var/cache/modsecurity

   # Include all the *.conf files in /etc/modsecurity.
   # Keeping your local configuration in that directory
   # will allow for an easy upgrade of THIS file and
   # make your life easier
   IncludeOptional /etc/modsecurity/*.conf
   Include /etc/modsecurity/rules/*.conf
</IfModule>

設定反映

systemctl restart apache2

redmine設定ファイル修正

vi /etc/apache2/sites-available/VIRTUALHOST.conf
# 各自のバーチャルホストファイルに読み替えます
追記内容
# Mod Security
SecRuleEngine On
## ModSecurity有効化
SecRequestBodyInMemoryLimit 524288000
SecRequestBodyLimit 524288000
## ファイルのアップロードをできるようにします。
SecRuleRemoveById 949110
SecRuleRemoveById 941310
SecRuleRemoveById 980130
SecRuleRemoveById 911100
SecRuleRemoveById 200002
SecRuleRemoveById 200003
## 上記を無効化しないとチケット更新時にエラーとなりました(偽陽性)ため、上記ルールを除外します。
    SecRule ARGS:modsecparam "@contains test" "id:4321,deny,status:403,msg:'ModSecurity test rule has triggered'"
## テスト用の検知パラメータを付け加えます。

設定反映

systemctl restart apache2

設定確認

ブラウザから

http://your-site-domain/redmine/?modsecparam=test

にアクセスし、「Forbidden」が表示されることを確認します。

また、

  • チケットの更新ができること
  • ファイルのアップロードができること

をそれぞれ確認しました。

“眼”の広がり、“背景”の広がり。

フィッシュアイ・キャップレンズでの広がり

先だってでかけた際、立ち寄ったところで魚眼を用いて撮影してみました。

魚眼の性質上、被写体をより広く撮れます。

撮影するものを選びますけれど、これもまた選択肢の一つとしてありだと思いました。

トレリス追加による背景の広がり

「紫陽花」に加え「ひまわり」のトレリスが加わったことで

背景の面積が「2倍」になりました。

これによって、撮影台にこのように配置ができて

フィギュアと背景が見切れることなく同時に配置ができました。

レンズと物理の広がり、更に意識して撮影しての検証がはかどります。

万年筆『ライティブ』ファーストインプレッション。

更に万年筆を積み上げました。

PILOT ライティブ

21年末に出たばかりの万年筆。

  • 比較的安価(2200円)
  • 大容量コンバータ対応
  • シールキャップ式

と、スペック盛り盛りの万年筆。文具コーナーで平積みされていたので購入です。

開封

かなりスッキリとしたシルエットと、長めのペン軸。(CON-70N)に対応しているので、インクも長持ちです。

感想

「不思議な感覚」というのが手に持った第一印象。ペンの長さに比して、軽いです。

それなのに、スーッと書けます。まるで、ボールペンのような滑りでペンが走りました。

そして、「プレピー」のようなパチンとハマるキャップも素敵です。これなら乾燥をある程度防いでくれるでしょう。

また、新たに書くための道具が加わりました。

盛夏の造花-百均グッズの撮影用小物(その14)-

背景用の枠を追加

先だっての「紫陽花」背景に気をよくし、更に追加しました。

ひまわりリングとワイヤ

購入したのはこちら。夏を象徴するかのような花、ひまわりの造花リングと

造花の先がワイヤーとなっているもの。これで、造花を留めつつ飾れるという一石二鳥が図れます。

背景作成

今回、ひまわりの差し色として朝顔のガーメントも配置することにしました。

だいたいのイメージを決めつつ

この“ワイヤー”で留めていきます。

そうこうしている間に完成。「夏概念」を象徴する背景です。

撮影

しっかりとアクリルスタンドと調和です。(特に、このキャラクターのストーリーに欠かせない花なので、この背景は悲願でした)

また、黄色一辺倒にならないように合間に添えた朝顔も活きました。

先の紫陽花と合わせ、梅雨〜盛夏のトレリスが2つ出来上がりです。

リュックとサコッシュ。(Workman ジョイントリュックとアタッチメント)

より多くのボードゲームを背負えることが分かったWorkmanのジョイントリュック。

容量以上に気になる機能がありました。

「ジョイント」式

右にあるサコッシュとチョーキングサコッシュは比較のために写したのではありません。

リュック本体に取り付けられるからだったりします。

チョーキングサコッシュ

ペットボトルをさっと取り出せそうなこちらは、リュック側面に取り付け可能。

地図やらモバイルバッテリー入れに役立つこの平たいサコッシュは背面に取り付けられます。

装着図

と、こんな形になりました。

この「超」大容量に加えてのカスタマイズ性はびっくりです。

ボドゲ運搬リュック(Workman ジョイントリュック容量検証)。

この用途だけでなく、本来の用途でも使えるものです。

Workman ジョイントリュック

ネットで、これは大きなボードゲームでも運搬できると聞いたので入手です。

「どのぐらいのボードゲームが入るのか?」を試してみます。

検証

大箱×2

まずは、わりと大きな場所を取る

  • テラフォーミング・マーズ
  • ウイングスパン

を試してみます。(これらは通常のリュックに入らない大きさ)

難なくクリア。

更に大きな箱と大きめの箱

そこで、小さいキャリーでも難しい箱にチャレンジ。『大鎌戦役』です。

まるごと入ります。

その上に『アグリコラ』まで詰めます。

空いた隙間に『パッチワーク』まで入る驚きの結果となりました。

検証結果

「極めて上々」というほかはありません。これだけ積んだのに外のポケット部分も機能するのも素晴らしく。

また、これによって、「輪行旅行をどうするか」の算段も立ちました。

2022年6月の紫陽花撮影。

自分の大好きな花、紫陽花が咲き乱れる梅雨の時期は嫌いではありません。

昨年のように、平日の休みを利用して紫陽花を撮影してきました。

A-X7での撮影

まずは、XF16-80mmF4 R OIS WRでの撮影。

さすが、F4開放をうたうだけあり、シーンを選びません。マクロレンズのように用いることができるのも見事です。

E-P7での撮影

続いて、カメラをE-p7に持ち替えての撮影。

小型軽量のため

  • 標準ズームレンズ
  • 単焦点レンズ
  • フィッシュアイ・キャップレンズ

の3つを状況に応じて使い分けられるのが魅力。また、多彩なフィルターも強みです。

  • きれいな写真を撮りたいフジ
  • 楽しく写真を撮れるオリンパス

というのが現時点での評価です。

統一感とデコレーション。

2022年6月時点の文具一覧。

  • iPad mini 6
  • Moto G pro
  • ほぼ日手帳
  • Lenovo Chromebook Duet 560
  • どや文具ペンケース

Chromebookを新調し、iPad mini のカバーもそれに合わせたことで、紺で統一されました。

前回同様、これを飾ってみます。

購入:フレークシール

そこで、これを手に入れました。木の葉をあしらったシールの詰め合わせ。

こんな風に貼っていきます。粘着力が程々なので、もしものときにも貼り直しも楽そうです。

キーボードレストにも程よいシールがあったのも収穫でした。

デコレーション後

思ったとおり、紺に金と緑がアクセントになってくれました。

一番手に持ち、目にするものだからこそ、こういう「飾り」で主張はしていきたいなと。

Page 1 of 149

Powered by WordPress & Theme by Anders Norén