いつき over TCP / TimePlant

Security

セキュリティの話
最初に……

自分がやっている、簡単なWindows/Unixの(ネットワーク)セキュリティ対策についてつらつら書きます。
え?MACですか?……使ってないので分かりません(^^;
Lv.1「これくらいはやろうよぉ〜(^^;;」
Lv.2「これだけやっておけば、まぁ普通は大丈夫かな」
という2段階に分けてみました。
セキュリティの確保は、必ずしも、ここに書いてあるだけで十分という物ではありません。
時間の経過と共に、必要な項目は(きっと)増えていきます。
また、各個人のそのマシンの使い方次第で、対策も変わってきます。

ここに書いてある事をやったのに、何かされたという人、文句を言わないでください。
絶えず最新情報を追いかけないと、セキュリティの確保は難しいのです。
ちなみに、自分は、セキュリティホールMemoをよく参照しています。 興味のある人は、bugtraq(-jp)とか(JP)CERTのMLに入っておくと、勝手に(最新)情報が流れてくるので非常に楽です。
どこからはいるかは、googleとかで調べて下さい。
(これくらい調べられない人は、もっと基本的な事を勉強するか、考えを改めましょう:-))


とはいっても、超基本的な事くらいはだいたい共通なので、そのへん参考にしてもらえると嬉しいです。

間違いとか、おかしいところとかあったら言ってください(^^;
多分何カ所かはあるでしょう……
一番最後に、簡易版ですが、中で使っている用語の説明をのっけておきました。


- 全体 -
基本的には……

必要の無いポートは閉じる。
必要のないサービスは行わない。
怪しいプログラムは実行しない。
ソフトは出来る限り新しい物を使う。
ウイルス検知ソフトがあると○。
可能であれば、ファイアーウオールで守る。


- Windows Lv.1 編 -
必要でないポートを閉じる/必要の無いサービスは行わない

ネットワーク共有を、インターネットに繋がっているカード等に使用しない。
インターネットプロトコル(TCP/IP)以外のバインド(使用)は必要ないです。
コントロールパネル(多分、スタートメニューの設定の中にあるでしょう)のネットワークとダイヤルアップ(ないしは、それに似た名前)のインターネットに繋がっている(と思われる)設定を開いて、関係のないもののチェックをはずしましょう。

Windows 2000/NT使ってる人は、よけいなサービスを止めましょう。
特に、Web(HTTP/IIS?)/FTP/TFTP/SMTP/POP3/Telnet/IndexService/NetLogin等は常識的には不必要です。
まぁ、IISでなければ、Web(http)サービスを立ち上げても良いかもしれませんが……十分に注意して下さい。

怪しいプログラムは実行しない

特にメールに添付されているファイルです。
知り合いから来たファイルでもウイルスに感染しているかもしれませんよ……
出来るだけ、ウイルス検知ソフトを入れましょう。
その方が安全です。

ソフトは出来る限り新しい物を使う

特に、Internet Explorer/Outlook/Outlook Expressは最新版ないしは、ServicePack(サービスパック)の最新版を(入れて)使いましょう。
最近はWindowsUpdateとか使うと楽に出来るみたいです。
Netscapeを使っている場合でも同様です。


- Windows Lv.2 編 -
Internet Explorerの設定

Java/JavaScript/Cookie/ActiveX/スタイルシートなどは、なるべく警告を出すようにするか、実行しないようにしておきましょう。
これだけで結構安全になります。

おすすめは、「普段Netscape(Java/JavaScript/Cookie/ActiveX/スタイルシート使用しない)を使って、どうしても見れないページに出くわしたらIE(普通状態/Java/JavaScript/Cookie/ActiveX/スタイルシート使用する)を使う」です。
というか、自分の使い方ですな。(最近はソース読んでるけど)

ウイルス検知ソフトを入れる

自分はtrendmicroのウイルスバスター2001を使っています。
年間3000円前後でウイルスから守ってくれるなら安いです。
(数ヶ月かけたデータとか、OSとかが消されたり、自分の個人情報がメールで色んな人に送信されても良いのなら、必要ないかもしれませんね:-))
あと、このソフトなら、「パーソナルファイアーウオール」というのがついてます。
よけいなポートを閉じるのにも役立ちます。

ファイアウオールを使う

真面目に作ろうとすると死にますが……
簡易でよいのなら、ブロードバンドルータなどが結構それに近い働きをしてくれることがあります。
これだけで、かなり安心感は変わります。特に外部からの攻撃に関しては。
(自分でアクセスしに行ったページや、ブラウザのバグなどからは保護してもらえないので注意。)


- Unix Lv.1 編 -
必要でないポートを閉じる/必要の無いサービスは行わない

特に、Redhat等は普通にインストールした直後はセキュリティホールだらけです。
inetd/xinetdから起動しているサービスは出来る限り少なく(クライアントとしての利用なら、そもそも立ち上げなくても良いのでは?)
tcp_wrapperやtcpserverを利用して、特定マシン以外からのアクセスを受け付けないようにする。
XWindowを使っている場合はipchainsやiptableの設定でXWindow関連のポートに外部からアクセスできなくする。
使わないのであれば、canna等の何らかのポートを開いているサービスは止める。
nfs関連のサービスは、(使わないのであれば)止める。というか、通常外部にむけて公開する必要は無いでしょう。
r系(rで始まるサービス)は極力使わない。

ソフトは出来る限り新しい物を使う

カーネルも、最低バグのない物を使いましょう。(Redhat 7.1のデフォルトではセキュリティホールがあります。と言っても普通に使い方ではあまり関係ないかもしれませんが)
特に、外部にサービスを公開する場合(http/smtp/pop3/dns/ftp)、最新版を使って下さい。
おすすめは、smtp/pop3 = qmail,dns=djbdnsです。(ほとんどアップデートがいらないのでは?)
公式ページにあるセキュリティ系パッチはすべて適応しましょう。

ユーザー・パスワード管理

/etc/passwdにパスワードが書かれている場合、さっさとシャドーパスワード対応にしてください。
おすすめはMD5サポートのあるものを使うことです。
ユーザー名・UIDは規則性のあるものを使うと、侵入検知がしやすくなります。
逆に、パスワードはキーボードをランダムに叩くなどして作った、8文字(MD5が可能な場合は、もっと長いもの)のパスワードを使いましょう。
記号・数字・空白などを入れるとより効率的です。


- Unix Lv.2 編 -
必要でないポートを閉じる/必要の無いサービスは行わない

ipchains,ipfw,iptables等を使って関係のあるポート以外からのアクセスをすべて拒否するようにしましょう。

遠隔ログイン

遠隔からログインする場合、SSHをつかいましょう。
また、FTP専用アカウント・SSH専用アカウント等を作ってパスワードを分けておくとより効率的です。


- 簡易版用語説明 -
IP

インターネットで使われている、プロトコル(決まり事)。 インターネットに接続されているすべてのコンピュータには「IPアドレス」を持っている。
まぁ、インターネット上でのそのコンピュータの「正式な名前」と考えておけば良いかもしれない。
このアドレスを知らないと、通信は出来ない。

IPアドレスを調べれば、どんなネットワークからアクセスしているか分かることが多い。

現在はIPv4というタイプで、0〜255までの数字、4つで表現されている事が多い。
例: 192.168.1.1

TCP/UDP/ICMP

インターネットで使われている、プロトコル(決まり事)。
あんまり深く知らなくても大丈夫。
むしろ、「ポート番号」が重要。
ちなみに、TCPの方が信頼性がある、UDPの方が早いなど、それぞれに利点がある。
ICMPは微妙にTCP/UDPとは違うかも。

ポート(番号)

TCP/UDPで使われる番号。
「データのやり取りの受付番号」とでも思っていれば良いかも?

IPアドレスが住所なら、ポート番号は受取人かな?

0〜1023までのポートは使用方法が決まっている(別に守らなくても良いけど、相手が混乱するかも)
例えば、
メール(SMTP):25/TCP
Web(HTTP):80/TCP
ドメイン(DNS):53/TCP,UDP
POP3:110/TCP
Web(HTTPS): 443/TCP
など。
IPアドレス:ポート番号/プロトコル名で書かれることが多い(?)

サーバー

特定のポートで待ち受けている、何らかのサービスを行うプログラム一般。ないしは、そのコンピュータ。
webサーバーは、80番ポートで待っている事が多い(というか、これが標準)

ドメイン

www.google.comなどのように、人間が覚えやすい形にした名前。
IPアドレスと対になっている。

ドメイン名からIPアドレスを調べたり、IPアドレスからドメイン名を調べたりするのは、DNSと呼ばれるシステムが行う。
ちなみに、ドメインを知っていてIPアドレスを知らない場合、そのサーバーと通信は出来ない。

HTTP/HTTPS

いわずもがなのサービス。
多分、このページを見てるのはHTTP。
HTTPSはHTTPの経路を暗号化した物。

FTP

自分のWebページを持っている人は多分使ったことがあると思いますが…
ファイルを送受信するためのプロトコル(決まり事)。
結構ややこしい。使うのはTCPの20,21番。

SMTP/POP3

SMTPはメールをサーバーに送るためのプロトコル(決まり事)。
POP3はメールをサーバーから受け取るためのプロトコル(決まり事)。
2つあわせてメールサーバーと言われることが多い。

NetBIOS

Windows用のファイル共有サービスとでも言えばいいのかな?
「共有」とかいうのや、マイネットワーク(ネットワーク上のコンピュータ)はこれを使っている事が多い。
ちなみに、Explorerで\\相手のマシン名またはIPアドレス でアクセスできる。(?)
TCP・UDPのポート135〜139・445・500を使ってる?

Telnet/SSH

Telnet/SSHは、遠隔のサーバーにログインするためのプロトコル(決まり事)。
マウスを使って〜とか言う人にはあまりなじみがないかもしれないが、コマンドライン(キーボードで文字を打ち込むことで操作)で操作する。
一般の人が直接使う事はほとんど無い。
(微妙には違うのだが)Telnetを暗号化した物がSSHと思ってOK。
Telnetは23番ポートを、SSHは22番ポートを使う。



[ トップページへ戻る ]


ITUKI over TCP / TimePlant


このページ及びそれ以下のページに関するすべての著作権は桐原樹/NIにあります
画像、文章などのデータの全て、または一部の無断転載、複製、配布などは禁止です

(c)Copyright 1999-2001 Ituki Kirihara/NI
All rights reserved.