Web サーバーへの異常なアクセスを排除する 【Linux】

Linux

Web サーバーを運用していて、異常なアクセスがあったときの対処方法についてまとめておきます。
具体的には、異常なアクセスをしてくる IP アドレスを指定して排除する手順などについてまとめておきます。

環境: サーバ(ConoHa VPS)、CentOS、Apache、WordPress

背景

先日、サーバーをレンタルして Web サイトを稼働させました。
たまたま、Web サーバー(Linux、Apache)のアクセスログを見たところ、海外から、継続的に異常に多いアクセスがあります。
どうも、PHP や WordPress の脆弱性を狙ったものと思われます。

放置しておくのも気持ちが悪いですし、怪しいものは IP アドレスごと排除してしまったほうが安心です。
サーバー内の .htaccess ファイルで IP アドレスを設定してみたところ、正常に排除できるようになりました。
そこで、手順をまとめておくことにします。(IP アドレスを変えられると、イタチごっこになりますけれども。。)

対処手順1:オーソドックスな方法

① Web サーバーのコンソールを起動し、ドキュメントルートに移動します。
# cd /var/www/html/  (例)
# ls -al
② .htaccess を編集し、排除したい IP アドレスを追記します。
# vi .htaccess
★ このページ末尾の設定例を参考に、排除したい IP アドレスを記載してください。

③ 編集したファイルを保存します。
★ vi エディタを使っている場合、”[esc] + “:” + “wq” + [enter] として保存できます。
④ 念のため、Web サーバを再起動しておきます。
# systemctl restart httpd
⑤ ウェブサイトにアクセスし、サイトが正常に動作していることを確認します。

→ これで完了です。
サーバーのアクセスログを確認することで、アクセスできなくなっていることを確認できると思います。

対処手順2:経験的な方法 2025年1月

サーバーをレンタルして数年間、サイトの運用をしてきました。
アクセス記録を確認すると、2024年の段階で、下記のような異常なアクセスがありました。

異常なアクセスの例:
あるIPアドレスから、数分間の間に、合計200回を超えるアクセスがある。各ページの URL をすでに把握しているようであり、各ページに数秒アクセスするとページを変え、計数百を超えるアクセスとなっている。
人が読めるようなスピードではなく、事前に URL を把握した、機械的なアクセスと考えられる。
上記のアクセスから数週間経過すると、IP アドレスを変え、また同様のアクセスがある。これがずっと続く(数年?)。IP アドレスが毎回変わるため、上記の対処手順1のような、通常の対策が効かない。

コピーサイトを作っているのか、検索サービスをやっているのか、どうもサイトの各ページのデータを一定期間ごとに機械的に収集してきているようです。IP アドレスを調べる方法などは下記の関連リンクでまとめていますが、異常なアクセスをしてくるのは、某国などなど、とだいたい決まっているようです。そこで、ページのいくつかのソースに以下の記載をしました。

記載例:
<div id=”☆☆”><span style=”font-size: 10px; color: #ffffff;”>※※</span></div>
☆☆、※※は、某各国で使用が難しいワード/使用すると当該国の公的機関の調査が入るワードとする。

サイト内にこのような記載を複数行ったところ、前述の異常なアクセスが徐々に減り、3か月程度経過すると、異常なアクセスが解消しました。現在のところ効果的と考えられますので、公開しておくことにします。

なお先日、某有名大学で、大学のサイトでのタグの記載に関するニュースがありました。
ニュースの解説では某国からの入学試験などのアクセスを減らすためではないか等となっていましたが、解説が間違っていると思いました。
自分が管理責任となっているサーバーの各ページに海外から異常なアクセスが続く。そのため、サーバーへの負荷を軽減するために行ったのではないかと思います。DDoS攻撃、サイバー攻撃などの潜在的な可能性を少しでも低減するためには妥当な措置と考えられます。サーバーの管理を経験された方であれば、ご理解いただけるのではないかと思います。

まとめ

サイトに異常なアクセスがあったときの対応手順をまとめました。

WordPress などに脆弱性対応のためのツール類を入れたとしても、アクセスログを確認してみると、脆弱性を狙ったアクセスは、現にずっと来ていることがわかります。
サイバー攻撃のニュースがよくありますが、異常なアクセスをチェックをして随時対処していくのがよさそうです。

関連リンクにアクセスログの確認方法などについてもまとめています。皆様も確認してみてください。危険さがおわかりかと。

関連リンク
・ Web サーバーのアクセスログの確認方法 【Linux】
・ 【WordPress】 ログイン画面へのアクセスを IP アドレスで制限する方法
・ URL、IP アドレスの危険性判定サービスのまとめ

 参考: .htaccess の記載の例

Order allow,deny
allow from all
deny from .ru
deny from .cn
deny from .kr
deny from .ro
deny from .hr
deny from .il
deny from 2.57.122.
deny from 23.90.145.
deny from 27.115.124.
deny from 34.76.47.
deny from 35.205.219.
deny from 36.250.68.
deny from 37.233.77.
deny from 39.
deny from 40.74.124.
deny from 45.148.121.
deny from 46.229.168.
deny from 51.254.59.
deny from 52.255.203.
deny from 54.38.81.
deny from 60.191.20.
deny from 62.210.6.
deny from 64.227.38.
deny from 65.155.30.
deny from 66.249.68.
deny from 71.6.
deny from 74.82.
deny from 74.120.
deny from 80.82.
deny from 82.221.105.
deny from 83.97.
deny from 83.244.
deny from 92.118.160.
deny from 93.174.95.
deny from 94.23.
deny from 94.102.
deny from 95.142.
deny from 95.127.158.
deny from 101.32.
deny from 102.165.30.
deny from 104.199.36.
deny from 104.237.233.
deny from 106.52.81.
deny from 106.75.32.
deny from 107.6.171.
deny from 111.231.215.
deny from 116.193.153.
deny from 122.
deny from 128.14.
deny from 128.199.
deny from 129.144.
deny from 129.152.
deny from 132.145.
deny from 137.116.
deny from 138.68.249.
deny from 139.162.
deny from 140.86.
deny from 142.4.213.
deny from 157.245.
deny from 160.34.
deny from 162.142.125.
deny from 164.52.24.
deny from 167.99.108.
deny from 167.114.229.
deny from 167.248.133.
deny from 170.106.36.
deny from 172.104.108.
deny from 172.105.89.
deny from 173.212.225.
deny from 176.10.99.
deny from 176.58.121.
deny from 178.
deny from 179.43.169.
deny from 180.149.125.
deny from 182.18.165.
deny from 183.
deny from 184.105.
deny from 185.
deny from 190.
deny from 192.35.
deny from 192.241.
deny from 193.
deny from 195.
deny from 196.52.43.
deny from 197.242.184.
deny from 202.
deny from 208.
deny from 209.
deny from 212.83.128.
deny from 213.
deny from 216.218.206.
deny from *.googleusercontent.com
タイトルとURLをコピーしました