Apacheアクセス制限

サイトを丸ごとコピーして独自広告を追加するパクリサイト出現という事だ。幸か不幸かまだコピられていないようなので、まずはsites-enabled/*.confでアクセス制限をかけようかと思ったのだが、VirtualHost毎に制御する必要が無いどころかTCPの接続すら受付たくないので、ufwでサクッと門前払いしてしまう事に。

yano@vps:~$ sudo ufw insert 1 reject from 91.208.99.0/24
Rule inserted
yano@vps:~$ sudo ufw status
Status: active
To                         Action      From
--                         ------      ----
Anywhere                   REJECT      91.208.99.0/24
Apache Full                ALLOW       Anywhere
Dovecot Secure POP3        ALLOW       Anywhere
Dovecot POP3               ALLOW       Anywhere
Postfix                    ALLOW       Anywhere
Postfix SMTPS              ALLOW       Anywhere
Postfix Submission         ALLOW       Anywhere
iperf                      ALLOW       Anywhere
123                        ALLOW       Anywhere
DNS                        ALLOW       Anywhere
OpenSSH                    ALLOW       Anywhere
Apache Full (v6)           ALLOW       Anywhere (v6)
Dovecot Secure POP3 (v6)   ALLOW       Anywhere (v6)
Dovecot POP3 (v6)          ALLOW       Anywhere (v6)
Postfix (v6)               ALLOW       Anywhere (v6)
Postfix SMTPS (v6)         ALLOW       Anywhere (v6)
Postfix Submission (v6)    ALLOW       Anywhere (v6)
iperf (v6)                 ALLOW       Anywhere (v6)
123 (v6)                   ALLOW       Anywhere (v6)
DNS (v6)                   ALLOW       Anywhere (v6)
OpenSSH (v6)               ALLOW       Anywhere (v6)
yano@vps:~$ sudo ufw reload
Firewall reloaded
yano@vps:~$

ついでに、最近「IPアドレス」でアクセスしてくる不届きな輩が気になっていたので、改めて対処法を調べてみたところ「“ServerName any"の節を用意し、403を返すように"DocumentRoot"をあらぬところに向ければ良い」という事がわかった。 /etc/apache2/apache2.confを見たところ

212 # Include of directories ignores editors' and dpkg's backup files,
    213 # see README.Debian for details.
    214
    215 # Include generic snippets of statements
    216 IncludeOptional `conf-enabled/*.conf`
    217
    218 # Include the virtual host configurations:
    219 IncludeOptional `sites-enabled/*.conf`

という具合にconf-enabled/*.confを先に読むようになってたので、/etc/apache2/conf-available/disable-numberd-access.confとして

<VirtualHost *:80>
    ServerName  any
    DocumentRoot /tmp
    UserDir disable
</VirtualHost>

という設定を作成し、

yano@vps:~$ sudo a2enconf disable-numberd-access
Enabling conf disable-numberd-access.
To activate the new configuration, you need to run:
  service apache2 reload
yano@vps:~$ service apache2 reload

でOK。

名前ベースのバーチャルホストで運用して「IPアドレス」でのアクセスは禁止していたはずなのに、IPv6 by auひかり導入後のアクセスログをチェックで気付いたのだが、昨年Ubuntu 14.04 (Trusty)にアップデートした後1年以上も見過ごしていたとは、うっかりにも程があるね。

参照

INTERNET Watch http://internet.watch.impress.co.jp/

スターフィールド株式会社 https://ja.wikipedia.org/wiki/

Apache HTTP サーバ バージョン 2.4 http://httpd.apache.org/docs/2.4/ja/

Wikipedia https://ja.wikipedia.org/wiki/