カテゴリー
Linux

Fail2ban で不正アクセス防止 (apache 編)

Fail2ban を導入してから、dovecot の不正アクセス防止に効果があったので、httpd (apache) へも適用することにしました。

Fail2ban の基本的な設定としては jail.conf とフィルター設定が対になっていることがわかりました。dovecot では両方作成したのですが、apache については、インストール時に既定のjail.conf 設定とフィルター設定がいくつかあるので参考にしながら作成しました。

今回は Directory traversal 攻撃 への対策をしました。

1. jail.conf の変更

jail.conf をエディターで開いて、以下の設定を追加します。

[apache-exploit]
enabled  = true
filter   = apache-exploit
action   = iptables[name=apache-exploit, port=http, protocol=tcp]
           sendmail-whois[name=apache-exploit, dest=root, sender=fail2ban]
logpath  = /var/log/httpd/access_log
maxretry = 1

– フィルター名に apache-exploit、
– アクションには iptables で http のポート、tcp プロトコルをアクセス禁止にします。 そして、root 宛てにメールを送信します。
– スキャンするログファイルは apache のアクセスログを指定します。

2. apache-exploit.conf (フィルター) の作成

次にフィルターを作成します。フィルターとは、fail2ban にそのログからアクセスを禁止させたい失敗パターン(認証失敗など)を指定します。

/etc/fail2ban/filter.d/ の下に apache-exploit.conf 名前でファイルを作成して以下の内容で保存します。

[Definition]
failregex = ^ -.*"(GET|POST).*?.*../../../.* HTTP/.*$

ignoreregex = 

上記のフィルターで、以下のアクセスがマッチしてアクセス元のIP アドレスからのアクセスを禁止します。

1XX.XXX.XX.X - - [09/Oct/2012:09:00:35 +0900] "GET //index.php?option=com_Jgrid&controller=../../../../../../../../../../../../../../../proc/self/environ%00 HTTP/1.1" 404 294 "-" "libwww-perl/5.834"

fail2ban が不正アクセスを検出すると、以下のようなメールが送信されてきます。

~ 抜粋 ~
Hi,
 
The IP 1XX.XXX.XX.X has just been banned by Fail2Ban after
1 attempts against apache-exploit.
 
 
Here are more information about 1XX.XXX.XX.X:
~ 以下省略 ~

以上です。

カテゴリー
Linux

Fail2ban で不正アクセス防止 (dovecot 編)

最近、当サーバーに dovecot の不正アクセスが多いので fail2ban を利用してみることにしました。

Fail2ban は、ログファイルをスキャンして不正なアクセスを検出し、そのIPアドレスからのアクセスを一定時間禁止させることができるツールです。

CentOS から利用するには、Extra Packages for Enterprise Linux (EPEL) パッケージからインストールするのが簡単です。

参考: EPEL パッケージのインストール

fail2ban を稼働してから3日たち、その効果が確認できました。

1. fail2ban のインストール

EPELパッケージをインストールすると、yum で fail2ban をインストールできます。

# yum install fail2ban

2. jail.conf の変更

インストールすると、/etc/fail2ban/ に jail.conf ファイルがあります。
このファイルをエディタで開いて、以下の定義を追加します。

[dovecot-pop3imap]
enabled = true
filter = dovecot-pop3imap
action = iptables-multiport[name=dovecot-pop3imap, port="pop3,imap", protocol=tcp]
         sendmail-whois[name=dovecot-pop3imap, dest=root, sender=fail2ban]
logpath = /var/log/secure
maxretry = 3
findtime = 600
bantime = 60

すべてのオプションを把握してはいないのですが、

- enabled この設定を有効にするか true = 有効
- filter この設定で使用するフィルター名
- action では、不正と判定した場合の動作を記述します。
  iptables で pop3, imap のポート、tcp プロトコルをアクセス禁止にします。
  そして、root 宛てにメールを送信します。
- logpath スキャンするログファイルを指定
- maxretry は失敗の回数を指定。ここでは3回
- bantime は、不正なIPからのアクセスを禁止する時間(秒)
- findtime は、不正アクセスの件検出にかける時間(秒)

3. dovecot-pop3imap.conf の作成

上記ステップで、フィルタ名 (filter) に dovecot-pop3imap、
スキャンするログファイル (logpath) に /var/log/secure をしました。

次にフィルターを作成します。フィルターとは、fail2ban にそのログからアクセスを禁止させたい失敗パターン(認証失敗など)を指定します。

/etc/fail2ban/filter.d/ の下に dovecot-pop3imap.conf 名前でファイルを作成して以下の内容で保存します。

[Definition]
failregex = pam.*dovecot.*(?:authentication failure).*rhost=(?:::f{4,6}:)?(?P<host>S*)
ignoreregex =

上記パターンでは、以下のログがマッチします。

Oct 5 13:44:36 localhost dovecot-auth: pam_unix(dovecot:auth): authentication failure; logname= uid=0 euid=0 tty=dovecot ruser= rhost=::ffff:2XX.1XX.XX.XX

fail2ban が不正アクセスを検出すると、以下のようなメールが送信されてきます。

~ 抜粋 ~
Hi,

The IP 2XX.1XX.XX.XX has just been banned by Fail2Ban after3 attempts against dovecot-pop3imap.

Here are more information about 2XX.1XX.XX.XX:

~ 以下省略 ~

以上です。

参考サイト:https://wiki2.dovecot.org/HowTo/Fail2Ban

カテゴリー
Linux

Extra Packages for Enterprise Linux (EPEL) パッケージ

当サーバーは、CentOS 5.8 で運用しています。EPEL パッケージで提供されているソフトウェアを利用したいので、EPEL の リポジトリ パッケージをインストールしました。

どんなソフトが提供されているかは、こちらから見ることができます。

EPEL リポジトリ パッケージのインストール

# wget https://dl.fedoraproject.org/pub/epel/5/i386/epel-release-5-4.noarch.rpm
# rpm -ivh epel-release-5-4.noarch.rpm

or 

# rpm -ivh https://dl.fedoraproject.org/pub/epel/5/i386/epel-release-5-4.noarch.rpm

参考サイト:
https://centoshelp.org/resources/repos/
https://fedoraproject.org/wiki/EPEL/ja

カテゴリー
Linux

FitPC2

前回の続きで、FitPC2 をサーバーとして使用できるか検証しようとして Ubuntu Server 10.04.3 LTS を同じく USB メモリからインストールしてみました。

USBインストーラの作成方法は、こちらと同じ方法で、Ubuntu Server 10.04.04 LTS の iso イメージから作成しました。

インストール中は特にエラーもでなく終了したのですが、インストール後の再起動時に 画面の左上にカーソルが表示されたまま、止まってしまい、Ubuntu Server のログイン画面は表示されませんでした。

そこで、別の方法を試してみることに。

別のPCへインストールした Ubuntu Desktop の「システム」メニューから:

「システム管理」ー「スタートアップ・ディスクの作成」

で、Ubuntu Server 10.04.3 LTS の CD イメージをインストール元に指定して、USBメモリにスタートアップディスクを作成し、再度、FitPC2 でUSBメモリからブートしてインストールしてみたところ、正常に起動することができました。

Ubuntu Server を FitPC2 へUSB からインストールする場合は、この方法をおすすめします。

カテゴリー
Linux

Compulab FitPC2

Compulab FitPC2 という小型のPCがあります。

メーカーのサイトの情報をみると、Windows7, Ubuntu 9.10 は動作確認されているようですが、 前回作成した Ubuntu Desktop 10.04.3 LTS USB インストーラを使って Ubuntu Desktop 10.04 LTS をインストールしました。

インストールは問題なくできました。インストール後、Firefox を数時間使用していますが、少し動作がもたつく感じがしましたが問題なく使えるようです。

このPCはアルミダイキャストボディーにファンレス設計で、ディスクは2.5インチSATA HDD/SSDに対応しています。今回は、SSDを装着したものを試しました。本当に無音です。筐体はアルミダイキャスト製で放熱の役割もあるそうですが、触ると結構熱いですので、ふいに触れるとびっくりします。

HDMI コネクタから DVI-D への変換コネクタ付属してます。モニターが対応しているかあらかじめ確認してください。