Last update: 2013/11/25
|
仮 想 マ シ ン で Fedora サ ー バ ◇◇◇ お金をかけずに簡単簡潔 ◇◇◇ サーバ構築公開手順 覚書き ◇◇◇
|
| ||||||||||||||||||||||||||||||||||
サーバ構築Top
> 12.各種セキュリティ設定
> (1)iptablesによる監視
| ||||||||||||||||||||||||||||||||||
12. 安全性をより高めるための各種セキュリティ設定 | ||||||||||||||||||||||||||||||||||
前章までの設定でウェブサーバとメールサーバのひととおりの機能が構築されました。
次はいよいよサーバの公開に向けて準備をするところですが、ここまでの状態でサーバを実際に公開するのはセキュリティ面から見るとまだ不安な面があります。
本章では改めて各サーバのセキュリティ関連の設定を見直し、安全性を高めるための各種ソフトウェアを導入していきます。
(1) iptablesによる監視
まずはじめにiptablesによるセキュリティ強化を再検討します。 iptablesの基本的な設定については 8.ファイアウォールサーバの構築 などで行いました。 このページでは、不正アクセスに対する監視やサーバへのアクセス制限をより厳しくする方法について記載していきます。 ◇ ◇ ◇ <各種不正アクセスへの対応> 外部ネットワークからの不正アクセスに対応するためには、下記の各設定やルールの追加が考えられます。 (以下の各種不正アクセス対応はファイアウォールサーバ上で設定することを想定しています。) SYN Flood攻撃、Smurf攻撃、Ping of Death等のDoSへの対策 DoS(Denial of Service)とは、ターゲットとなるネットワークに故意に大きな負荷をかけることなどにより、サーバが提供するサービスをダウンさせる攻撃です。 DoSのひとつであるSYN Flood攻撃は、外部から大量のSYNパケット(TCP接続開始要求)をサーバに送信することでサーバの機能を停止させます。 Smurf攻撃は、ブロードキャストアドレス宛に不正なPingコマンドを送りつけ、ネットワークに負荷をかけます。 また、Ping of Death攻撃もPingを利用して、不正な手段でサービスを妨害します。 これらの攻撃を防ぐために、下記のような設定を行います。 rootユーザでログインしたあと、下記のコマンドを打ちます。
さらに、/etc/sysctl.confファイルを編集します。
下記の行を追加します。
変更内容を保存してviを終了します。 次にiptablesのルールに下記を追加します。
上記はサーバへのアクセス連続10回までは許可(limit-burst 10)、その後は1秒に1回(limit 1/s)まで許可、の場合の例です。 1秒以上パケットが来なければ段階的に連続回数限度が10まで復帰します。 設定値は環境にあわせて調整します。 (limit 6/m →1分間に6回まで許可、など) 上記-m limitを使用したアクセス制限では接続元のIPアドレスによらず、全ての接続をカウントしてしまいますが、例えばこれををIPアドレスごとの回数制限にする場合には、limitの代わりにhashlimitを使用します。 その場合、上記の例の上から2行目は、
となります。 hashlimit-nameには任意の名前を、hashlimitには接続を許可する頻度を、hashlimit-burstには制限前の連続接続許可回数をそれぞれ指定します。 hashlimit-htable-expireにはリセットされる時間(ミリ秒)を指定します。 上記の例では、同じIPアドレスからの接続に対して、はじめの3回は無条件に許可、その後は1分に1回のみ許可します。 ファイアウォールサーバへのPingを許可している場合は、下記のルールも検討します。
(注)icmp-type 8:Echo Request ポートスキャン対策 ポートスキャンとは、コンピュータ上のポートをチェックして、開いているポートを調べる処理を言います。 外部から不正侵入する場合はまずこのポートスキャンを試みることが多いので、これに対して対策が必要な場合は下記のようなルールを検討します。
上記の例では、PORTSCANチェックを行った後、問題ない場合はRETURNして、その他のルールの参照に戻るようにしています。 IP Spoofing対策 IP Spoofing(なりすまし)は、送信元のIPアドレスを別のIPアドレス(内部ネットワーク内のIPアドレスなど)に偽装した上で、ターゲットを攻撃したり不正侵入を試みたりするものです。 これを防ぐためには下記のルールを追加します。
ブラックリストによるアクセス制限 特定のIPアドレスからの不正アクセスが頻繁にある場合には、そのIPアドレスからの接続を一切受け付けないように設定することができます。
xxx.xxx.xxx.xxxの部分には特定のIPアドレスを指定します。 ブラックリストには、xxx.xxx.xxx.xxxのように単一のIPアドレスを指定する以外に、xxx.xxx.xxx.xxx/xxの形式でIPアドレスの範囲を指定することもできます。 (例:xxx.xxx.xxx.xxx/29など) ◇ ◇ ◇ <ログの監視> 続いてiptablesのログの管理についても検討します。 iptablesのログは通常/var/log/messagesに出力されますが、iptablesから出力したログは別ファイルに保存されるように設定してみます。 まずiptables用のログファイルを用意します。
次に、/etc/rsyslog.confを編集します。
rsyslog.confの編集の仕方には以下の2パターンがありますので、どちらかの設定を行います。 (方法1)ログを/var/log/messagesと/var/log/iptables.logの双方に出力する場合 iptablesからのログのlog-levelを"warning"に設定している場合は下記の行を追加します。
(注)または、iptablesから出力するログのlog-prefix先頭に"IPTABLES:"をつけた上で、下記の行を追加する方法もあります。
(方法2)ログを/var/log/messagesには出力せず、/var/log/iptables.logのみに出力する場合 log-levelが"debug"のログはデフォルトでどこにも出力されないので、iptablesから出力されるログのlog-levelを全て"debug"に設定した上で、これを/var/log/iptables.logへ出力します。 この場合はrsyslog.confに下記の行を追加します。
(方法1)または(方法2)でrsyslog.confを編集しましたら、保存して閉じたあと、rsyslogサービスを再起動します。
以上でiptablesのログが専用のファイルに出力されるようになります。 ログがあまり頻繁に出力されるとログの量が多くなり、管理も大変になります。 ログの出力回数を制限する場合は、下記の例のように、ログ出力のルールにhashlimit等を使用して調整します。
(注)iptablesのルールを変更した場合はルールのsaveとiptablesサービスの再起動を行います。 ◇ ◇ ◇ 続いて次ページでは、アンチウィルスソフトを各サーバに導入します。
12.安全性をより高めるための各種セキュリティ設定: ›(1)iptablesによる監視 (2)アンチウィルスの導入 (3)ModSecurity (4)ログ解析ツール (5)その他のセキュリティ設定 | ||||||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||||
Copyright (C) 2011-2024 rurihabachi. All rights reserved. |