トップページ > 対応事例

自宅サーバ構築MY HOME SERVER

セキュリティー設定 ファイアウオール ルータポート開放について ポート開放テスト ウイルスソフト(Clam AntiVirus)

- セキュリティー設定 -

自宅サーバを外部公開する場合、セキュリティに留意する必要があります。外部からの不正アクセス、乗っ取られて踏み台にされる、ウイルス感染、 データの改ざん等に対する対策を講じる必要があります。Linux系OSは普及率がWindowsに比べて断然低いことから、攻撃対象とされる可能性が低い です。しかし不特定多数を相手に公開する場合、やはりセキュリティ対策を講じて置かないと、自宅サーバばかりでなく外部ネットワークに対して も被害を及ぼすことになります。 不正進入対策としてパケットフィルタリング(iptables)、ウイルス対策としてアンチウイルスソフト(ClamAV)の導入方法について説明します。



- ファイアウオール -

SUSE Linux Enterprise Server 11をインストール完了した時点では、ファイアウオールは無効にしています。上位層にルータがあれば、ルータがパケット フィルタリングの役目をしています。ルータがない場合は、iptablesの設定が必須となります。

サーバ設定に際して、ルータ及びサーバのファイアウォールの両方のポートを開放する作業がどうしても必要になってきます。外部からのアクセスはさせないで、 内部(ローカルネットワーク)だけサーバにアクセスさせると言うのであれば、サーバのファイアウォールのポート開放だけの作業になります。 本サイトで紹介しているサーバ機能追加の際、開放が必要なポート番号は以下のとおりです。尚、上位層のルータのファイアウオール機能だけ使うのであれば、 サーバのファイアウォールは無効のまま使用します。

ポート番号 プロトコール 用途
21 ftp ファイル転送
22 ssh SSH(暗号化)
25 smtp メール送受信:SMTP
53 domain DNS
80 http WWW
110 pop3 メール受信(POP)
137 netbios 名前解決
138 netbios ブラウジング
139 netbios ファイル/プリンタ共有
143 imap メール(IMAP)
443 https WWW(暗号化)
465 smpts SMTP Over SSL
587 smtp smtp認証
993 imap SSL(暗号化)
995 pop SSL(暗号化)

外部からのアクセスを認める場合、ルータ側のポートも開放をしますが、ftpやsshに関しては 必要な場合のみ開けるようにしてください。

サーバとクライアント間のファイル転送はftpよりも、ssh接続のほうが暗号化通信できる点 から考えるとセキュリティーが強化されています。


WWW(ウエブページ)の外部公開はルータのポート開放をする必要があります。メールに関しても メールを外部ドメインとの間で、送受信するのであればルータのポート開放が必要です。

netbiosポート番号(137,138,139)はsamba(ファイル共有サーバ)導入時に、iptables側だけ開放します。
ルータ側は開放しません。






外部ドメインから自宅メールサーバにアクセスする場合、SSL(暗号化)通信が必須です。そのために に必要なボート番号をルータ側でも開放する必要があります。

ポート開放例

・ftp接続は必要な場合のみサーバのファイアウォールのポート開放。ルータ側ポート開放はしない。
・SSH接続はiptablesのみポート開放。ルータ側ポート開放は外部ドメインから操作する必要がある場合のみ。
・ファイル共有(samba)はサーバのファイアウォールのみポート開放。
・ウエブサーバ(Aache)及びウエブメールは外部公開する場合、サーバのファイアウォール及びルータのポート開放
・メールサーバはサーバのファイアウォール及びルータのポート開放
・ウエブファイル共有(WebDAV)はサーバのファイアウォールのみポート開放。ルータ側は外部ドメインから操作する場合のみ。

SUSE Linux Enterprise Server 11の場合、YaST2コントロールセンターを使用してファイアウォールを有効、無効にしたり ルールの設定をします。

YaST2コントロールセンターを開きます。
      
hoge123:/ # yast2

  

「Security and Users」、「Firewall」を選択して、Enterキーを押します。


Tabキーを利用して「Start-Up」、「Enable Firewall Automatic Starting」に移動、スペースキーを使ってチェックを入れます。 無効にする場合は、「Disable Firewall Automatic Starting」を選択します。


スペースキーを利用して「Custom Rules」に移動して、Enterキーを押します。Tabキーで「Add」を選択して、 Enterキーを押します。


「Source Network」に192.168.0.0/24(ローカルネットワークのみ許可。外部からも許可する場合は、0/0と入力)、「Protocol」はTCPまたはUDPを選択、「Destination Port」に 開放ポート番号を入力して、「Add」を選択後、Enterキーを押します。


22番ポートを開放するルールが追加されました。終了する場合は、「Next」、「Finish」、「Quit」の順に選択します。 ポート番号を追加する場合は、「Add」を選択して、同様の作業を繰り返します。


追加設定例の最初の部分です。ウエブページは(80番、443番)一般公開するため、「Source Network」を0/0に設定しています。 メール(25番)も外部から受信できるように0/0に設定します。外部ドメインからメールクライアントを使用して、自宅 サーバのメールクライアントにアクセスする場合、ポート番号465番、993番、 995番も0/0に設定する必要があります。


追加設定例の最後の部分です。終了するには「Next」を選択して、Enterキーを押します。


「Finish」を選択して、Enterキーを押します。


「Quit」を選択して、Enterキーを押します。


設定を反映させるため、システムを再起動します。
      
hoge123:/ # shutdown -r now

  



- ルータポート開放について -

ルータのポート開放はメーカーなどによって違いますが、静的NATやIPマスカレード等のメニュー表示を選択して開放するポート番号 を入れて設定を保存します。詳細はネット上で、「ポート開放」等の項目で検索してください。

既にウエブサーバ(Apache)の設定済みと仮定して、80番と443番ポートを開放する例で説明します。設定するルータはNTT PR-S300SE です。ルータにアクセスするため、ルータのIPアドレスを調べます。

ウインドウズの「スタート」、「ファイル名を指定して実行」を選択します。「ファイル名を指定して実行」のWindow が出てきたら、cmd と入力します。後は、コマンドプロンプトで確認します。 Win7の場合、検索Windowに cmd と入力します。
C:\Documents and Settings\hogehoge>ipconfig ← ipconfig と入力します。


Windows IP Configuration


Ethernet adapter ローカル エリア接続:

        Connection-specific DNS Suffix  . :
        IP Address. . . . . . . . . . . . : 192.168.0.13
        Subnet Mask . . . . . . . . . . . : 255.255.255.0
        Default Gateway . . . . . . . . . : 192.168.0.1 ← ルータのIPアドレスです  

C:\Documents and Settings\hogehoge>exit


IEを開きアドレスに192.168.0.1 を入力します。ルータに既に設定してあるユーザ名、パスワードを入力して「OK」を押します。 不明な場合、ルータのマニュアルを参照してください。

18.jpg(26137 byte)


左メニュから詳細設定を選択します。 19.jpg(70571 byte)

「静的NAT設定」を選択します。 20.jpg(66337 byte)

下図はTCPポート 80番を開け、アクセスを待ち受けているサーバのIPアドレスを入力した例です。入力後、 「設定」を押して保存します。80番が終わったら、ポート443を開ける設定をしますが、下図の例では 変換対象ポートを443にして変更を保存します。
これでルータのポート番号80、 443は開放されました。他のポート番号を開けるときも、まったく同じ方法で 開けます。 21.jpg(64802 byte)



- ポート開放テスト -

外部からサーバのポート開放の状態を確認します。 ここをクリックしてください。

サーバの「ドメイン名」、「確認ポート番号」を入力します。「制約事項」にチェックを入れ「ポートチェック実行」 を押します。下図のように応答があれば、80番ポートは開放されています。

今度は、443を入れて確認します。下図はポートは開放されているけれども、待ち受けるサーバのサービスが起動 していなか、サービスが別のポート番号を使用している事を示します。443はwwwでSSLを用いるときに使用される ポートです。今回は、まだSSLは利用されていないので下記結果が出てきました。ApacheでSSLを利用するには、 モジュールを組み込む必要があります。
ウエブページ暗号化(SSL) の設定が完了していれば、ポート443は「アクセスできました」 に変わります。

もし、下図のような文言が表示された場合、対象ポートがブロックされていることを示します。ルータ及びサーバのファイアウォールの 設定を見直す必要があります。



- ウイルスソフト(Clam AntiVirus) -

※メールサーバ導入予定の場合、最初にメールサーバを導入してからウイルスソフトをインストールしてください。
Linux系OSはウイルス感染しない、と思っている人がたくさんいます。実際に感染例がほとんどないことから、導入しないで 使用して良いかはサーバ管理者の判断になります。Windowsの場合ユーザが多いことから、セキュリティホールを突いた攻撃をよく受けますが Linuxの場合、使用者が少ないことから攻撃されにくいと言うのは事実です。

しかしファイル共有やメールサーバ用途で運用している場合、Windowsで感染するウイルスが入ってくるかもしれません。その場合、Linuxでは 感染しなくても、Linuxサーバを経由して他のWindowsパソコンへの感染拡大の手伝いをするかもしれません。 その可能性を低くするためにサーバにはウイルスソフトが必要です。

今回は無償提供されているClamav をダウンロード・インストールします。
      
hoge123:/ # zypper install -y clamav
hoge123:/ # vi /etc/freshclam.conf

NotifyClamd /etc/clamd.conf
↓ 先頭に#を付けて、コメントアウトします
#NotifyClamd /etc/clamd.conf


ウイルス定義ファイルのアップデート、スキャンを実施します。
hoge123:/ # freshclam ← パターンファイルの更新をします。
hoge123:/ # clamscan --log=/var/log/clamav.log --infected --remove --recursive /home/

----------- SCAN SUMMARY -----------
Known viruses: 1271402
Engine version: 0.97.5
Scanned directories: 21
Scanned files: 14
Infected files: 0 ← 感染ファイルが0であることを示しています。
Data scanned: 0.01 MB
Data read: 0.00 MB (ratio 2.00:1)
Time: 9.945 sec (0 m 9 s)

hoge123:/ # wget -P /home/ http://www.eicar.org/download/eicar.com ← 試験用無害のウイルスファイルをダウンロードします。
hoge123:/ # clamscan --log=/var/log/clamav.log --infected --remove --recursive /home/

----------- SCAN SUMMARY -----------
Known viruses: 1271402
Engine version: 0.97.5
Scanned directories: 21
Scanned files: 15
Infected files: 1 ← 感染ファイルが1個見つかったことを示しています。(削除されています)
Data scanned: 0.01 MB
Data read: 0.00 MB (ratio 2.00:1)
Time: 9.912 sec (0 m 9 s)


自動更新するように定義ファイルを作成し、毎日、ウイルススキャンする設定をします。感染ファイルを保管する方法です。 homeディレクトリを検索対象にするのは、メールサーバを構築したときのためです。ファイル共有サーバ構築時も、共有フォルダ はhomeディレクトリ配下に置くことで検索対象になります。

感染ファイルを指定するフォルダーに移動する方法です。

hoge123:/ # mkdir /var/log/clamav
hoge123:/ # chmod -R 777 /var/log/clamav
hoge123:/ # mkdir /var/tmp/infected ← 感染ファイルを保管するフォルダです。

hoge123:/ # chmod 771 /var/tmp/infected
hoge123:/ # crontab -e

下記内容を貼り付け・保存します。 3時間毎にウイルス定義ファイルの自動更新が行われ、毎日03:00にウイルススキャンを行います。 スキャンするフォルダはhomeディレクトリの中だけにします。結果はfreshclam.log、clamav.logに記録されます。
00 0-23/3 * * * /usr/bin/freshclam --quiet -l /var/log/clamav/freshclam.log
00 03 * * * /usr/bin/clamscan -r -i --move=/var/tmp/infected --log=/var/log/clamav.log /home


感染ファイルを削除する方法です。

hoge123:/ # mkdir /var/log/clamav
hoge123:/ # chmod -R 777 /var/log/clamav
hoge123:/ # crontab -e

下記内容を貼り付け・保存します。 3時間毎にウイルス定義ファイルの自動更新が行われ、毎日03:00にウイルススキャンを行います。 スキャンするフォルダはhomeディレクトリの中だけにします。結果はfreshclam.log、clamav.logに記録されます。
00 0-23/3 * * * /usr/bin/freshclam --quiet -l /var/log/clamav/freshclam.log
00 03 * * * /usr/bin/clamscan --log=/var/log/clamav.log --infected --remove --recursive /home



自宅サーバ構築(SUSE Linux Enterprise Server 11)に戻る


Copyright(C) PCDEMAGIC All Rights Reserved.