Web サーバーを運用していて、異常なアクセスがあったときの対処方法についてまとめておきます。
具体的には .htaccess ファイルで、異常なアクセスをしてくる IP アドレスを指定して排除する手順についてまとめておきます。
環境: サーバ(ConoHa VPS)、CentOS、Apache、WordPress
背景
先日、サーバーをレンタルして Web サイトを稼働させました。
たまたま、Web サーバー(Linux、Apache)のアクセスログを見たところ、海外から、継続的に異常に多いアクセスがあります。
どうも、PHP や WordPress の脆弱性を狙ったものと思われます。
放置しておくのも気持ちが悪いですし、怪しいものは IP アドレスごと排除してしまったほうが安心です。
サーバー内の .htaccess ファイルで IP アドレスを設定してみたところ、正常に排除できるようになりました。
そこで、手順をまとめておくことにします。(IP アドレスを変えられると、イタチごっこになりますけれども。。)
対処手順
① 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回を超えるアクセスがある。各ページに数秒アクセスするとページを変え、計数百を超えるアクセスがある。
上記のアクセスから数週間経過すると、IP アドレスを変え、同様のアクセスがある。これがずっと(数年?)続く。記事の URL を事前に把握しているような動きになっている。IP アドレスが毎回変わるため、通常の対策が効かない。
コピーサイトを作っているのか、検索サービスをやっているのか、どうもサイトの各ページのデータを一定期間ごとに機械的に収集してきているようです。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