Linuxの基礎学
今回の話題は「Linuxにウィルスってあるの?」です。
2003年8月に猛威を振るったウィルスといえば「MSブラスター」が有名ですが、
いままで聞いたことのあるコンピュータウィルスはWindowsに感染するものばかりではないですか?
Windowsがインストールされているパソコンが圧倒的に多いから、当然といえば当然なんですが・・・。
でも、そこでひとつの疑問というか、不安がでてきます。
「Linuxってウィルス対策は必要ないの。。。?」って・・・そうです。
Linuxだって同じコンピュータ上で動くソフトウェアの一つです。バクやセキュリティーホールが
あったっておかしくないはずです。
そうなるとそこを攻撃するウィルスもあるはず。
そこで、Linuxのコンピュータウィルスがないのかと以前調査したことがありました。
(といってもそんな大げさなことはしてませんが・・・。(^^;)
結論としては
Linuxにもウィルスは存在します。
シマンテックのウィルス辞典で検索してみたら現在1000件程度ヒットしました。Windows
ほど数は多くないもののかなりの数です。
やはり。Linuxも何らかのウィルス対策が必要になってくるとわけですが、有名なもので
はウィルス駆除ソフトがあります。これだけ、ウィルスが存在すれば、駆除ソフトも当然
存在するわけですが、その値段にびっくりしました(苦笑)
当時無知だったのもありますが、Linuxはサーバー用途が多く企業向けということもあるのでしょうが、
ライセンス数での購入になり、有名メーカーではだいたい数万〜10万円程度のものがほとんどでした。
はっきり言って個人での購入は無理ではないでしょうか。少なくとも私には無理です・・(笑)。
「じゃあ、どうすればいいの?」ということになると思いますが、下記に個人でもできるウィルス対策を紹介します。
・無料のウィルススキャンソフトを使用する(最初から言えよって声が聞こえてきそうですが・(^^;))
・アップデートをマメにおこなう。セキュリティー情報を常にチェックする
ということが考えれます。
無料のウィルススキャンソフトには個人用途に限り,無償で使用し続けることができる
「Sophos Anti-Virus for UNIX (シー・エス・イー)」
と、GPLライセンスに従って利用することができるオープンソースのソフトウェアの
「Clam Antivirus」
という対策ソフトがあり、それらを導入するのがよいでしょう。
設定には多少の知識が必要になりますが、セキュリティー上の問題を考えれば、導入すべきです。
そして何より自分のサーバーがウィルスに感染しているのは気持ちのいいものではないですし(^^;)
設定方法は今後「UNIX/Linuxコマンド Topics」でも取り上げる予定ですが、いち早く知
りたいという方は下記のサイトを参照してくださいね。
http://www.zdnet.co.jp/help/howto/security/special5/index.html
次にアップデートをマメにおこなう。
セキュリティー情報を常にチェックするということ
が大切です。
Linuxはオープンソースですので、世界中のLinuxエンジニア、ユーザが日夜無償でLinuxの改良を行っています。
その中でバクやセキュリーホールといった不具合が日々みつかるからです。
それらの不具合に対して、すばやく修正パッチなどを適用しアップデートする必要があります。
セキュリティー情報に関しては各ディトリビューション、Linux関連サイトでセキュリティーアナウンスを確認するか、
セキュリティー専用のメールマガジンを購読することをお勧めします。セキュリティー問題にかんしてはサーバー
管理者として常に目を光らせる必要があります。
turbolinuxセキュリティーセンター
http://www.turbolinux.co.jp/security/
Red Hat Errata・アップデート
http://rhn.redhat.com/errata/
日本の Linux 情報
http://www.linux.or.jp/
どうでしたか?無償のウィルススキャンソフトと使用しているディストリビューションの
サイトを毎日確認することによって、あなたのサーバーを外部からの攻撃から守ることが
できます。セキュリティー対策を格段にアップさせ、セキュリティー意識の高い管理者に
なりましょう!
Linuxとは厳密にはカーネルと呼ばれている部分をさすということは、以前ご
紹介しましたね。
[ 以前の記事 ]
Linuxがもし、カーネルだけだったとしたら、Linuxはあなたの言うことをきい
てくれません。そこで必要になるのが「シェル」です。
シェルはLinuxとあなたをつなぐ、橋の役割をします。通訳といっても良いか
もれません。このサイトの「コマンド Topic」で紹介しているコマンドは
「コマンドラインシェル」とよばれるシェルを使用することにより、動作し
ています。
そんなシェルにもいくつかの種類があります。シェルの最も基本的なものは
「Bシェル」と呼ばれるものです。Linuxに標準で使われているシェルは、そ
のBシェルを強化した「bash(Borne Again Shell)」と呼ばれているものです。
そのほかにも「Cシェル」と呼ばれるものや、C言語に似た「tcsh」、更にbas
hを強化した「zsh」などがあります。とりあえず、Linux標準の「bash」を覚
えることに専念しましょう。
ところで、あなたはなぜシェルが「シェル」と呼ばれるのか知ってますか?
貝をイメージしてほしいのですが、Linuxは厳密には「カーネル」と呼ばれる
「核」ということを意味しています。いやゆる貝でいう「実」の部分です。
そして、それを包み込む「貝殻」ようなイメージで「シェル(殻)」と名づ
けられているのが由来です。
使う人が直接カーネルを操作しなくても、Linuxを操作できるようにしている
利便性とカーネルを直接操作できなくすることによって、それをを守ってい
るための意味もあります。
シェルはそのコマンドひとつでも十分に役に立ちますが、コマンドを並べて、
組み合わせることでもっと、便利になります。
それが「シェルスクリプト」と呼ばれているものです。
コマンドをいくつか憶えると一連の作業をこのシェルスクリプトで自動化でき
るのが一番の魅力です。
人が手入力で一つ一つ入力したコマンドはすべて自動化できると思っていいで
しょう!
とりあえず、シェルスクリプトを見てみたいという人は「/etc/rc.d/init.d」
や「/etc/init.d」に入っているファイルの中身をみてみると良いでしょう。
例)
view httpd
多分、はじめて見る人のほとんどは記号の羅列にしか見えないかも知れませんね
(笑)
プロセスは、タスクともよばれるLinux上で動作中のプログラムのことをいいます。
たとえば、あなたがシェルから実行したプログラムは、実行中はプロセスとして、
Linux上扱われ、管理されます。
同じプログラムを続けて実行しても、プロセス上は別のものとして、扱われます。
実際に、現在起動しているプロセスを確認するには「ps」コマンドを実行してみると
いいでしょう。
# ps ax
PID TTY STAT TIME COMMAND
1 ? S 0:04 init
2 ? SW 0:00 [keventd]
3 ? SW 0:00 [kapm-idled]
4 ? SWN 0:00 [ksoftirqd_CPU0]
5 ? SW 0:08 [kswapd]
6 ? SW 0:00 [kreclaimd]
7 ? SW 0:00 [bdflush]
8 ? SW 0:00 [kupdated]
9 ? SW 0:00 [i2oevtd]
10 ? SW< 0:00 [mdrecoveryd]
48 ? SW 0:00 [khubd]
290 ? SW 0:00 [eth0]
388 ? S 0:00 /usr/sbin/apmd -p 10 -w 5 -W
440 ? S 0:00 syslogd -m 0
450 ? S 0:00 klogd
..................
「ps ax」と入力すると現在サーバー上で起動しているプロセスをすべて、表示
させることができます。
あなたのLinuxも上と同じような表示がされたのではないでしょうか?
これが、私たちが目に見ることができるプロセスです。
よく、マルチタスクという言葉を聞くとおもいますが、これは複数のプロセス
(プログラム)が実行されている状態のことをいいます。
ですが、これは正確な表現ではありません。
厳密には、プログラムを、複数、実行させているように、見せていると言った
方がいいでしょう。
普通、コンピュータのCPUは1台につき1つしかありません。
1つのCPUが処理できるプログラムも1つないのです。
では、どうやって複数のプログラムを処理しているかというと、
コンピュータは時分割方式(Time Sharing System)という方式をつかって、複数
のプログラムを高速に切り替えることにより、同時に処理しているようにあな
たに見せているのです。
簡単にいうと、プログラムを時間単位で細かく切って、少しずつCPUに・・・・。
どうも、言葉が難しいむずかしいですね(笑)
例えると、いま、あなたが、勉強しているとします。
あなたがCPU、そして、勉強教科がプロセスだとすると、数学を5分、科学を
5分、社会を5分と勉強して、また数学を5分勉強するといったように、細か
く時間で分割しながら勉強するといったことです。
コンピュータはこの動きを高速で行うため、まるで、同時に処理させているか
のようにみえるのです。
そして、これがマルチタスクです。
プロセス管理という言葉がありますが、これは、プロセス同士がCPUや、メモリ
を奪いあって混乱しないようにするための機能です。
この機能が、Linuxは強力なため、ここまで、堅牢で安定度の高い人気のある
サーバーOSになったといってもいいでしょう。
ホームへ戻る