Previous Topへ Next

UNIXコマンドを実戦に使う3/UNIX commands in action 3

OSXのセキュリティについて

前段でUNIXではルートは神の権限ということを説明しました。

MacOSXではデフォルトでできないように設定されていますが、ルート権限でログインすることもできます。またterminalでルートを設定しておけば、GUI環境のMacOSでもルートでログインできるようになります。

これは実行しておくとトラブルシューティングの時などに色々便利ではありますが、先に書いた通りUNIXへの攻撃の大部分はルート権限乗っ取りというクラッキングであることを思えば、慎重になった方が良いと思います。

そこでこのプロセスを実行する前にOSXのセキュリティについて書きます。
まずぜひとも実行していただきたいのが、ファイアーウォールの開始です。
これは10.2(ジャガー)以降ではGUI環境で簡単にできますので、必ずやって下さい。

手順は
1)システム環境設定を起動する
2)共有を開く
3)ファイアウォールタブに入る
4)ファイアウォール開始ボタンをクリックする

これだけです。たったこれだけの手順であなたのMacは飛躍的にセキュアになりますので是非実行することを薦めます。


環境設定のファイアウォールに入って開始ボタンをクリックする
初心者にも簡単なので是非実行してほしい


会社のLANなどで共有フォルダなどを開く必要がある場合も、ここのサービスタブに入って必要な共有を開いて下さい。
カスタムポートが必要な場合もファイアウォールタブの中の編集に入って開く必要があるポート番号を設定することができます。

重要なのは

不必要なポートを開いたままにしておかないということです。


MacOSXのファイアウォールは開始した時点で全てのポートを塞ぐようになっています。
そこから必要なポートを選んで開いていくというシンプルな構成になっていますが、これは実に合理的です。

Windowsのファイアウォールのように 最初から穴だらけ というものは、使いこなすには かなりのスキルが必要です。
実際 ビジネス用途で使っている人たちの大部分 には、そんなスキルがあるとは到底思えません。

これだけセキュリティの重要性が言われながら、相変わらずウィルス騒ぎが絶えないのは Windowsの構造的欠陥の問題があるのです。
Windowsはユーザアクティベート用にも専用ポートを開いていたり、ファイアウォールに最初からいくつも穴があいていてちゃんとそこを突いてくるワームも出てきています。

全てのポートを塞ぐと起動できなくなると言う笑えないような問題も起きています。
マイクロソフトにはシェアナンバーワンの OSであるという責任と自覚を早くもってもらいたいものです。

それ以外に私が実行しているのは、 Checkmate というウイルス検出ペイン(Freeware)を定期的に実行すること。

MacScan というトロイの木馬系のワーム検出ソフトを使うことです。

よく シマンテックなどのアンチウイルスのようなウィルス定義ソフトを入れて安心している人がいますが、これはシステムの動作を遅くするだけでたいして有効とは思えません。

まして最近のウイルス作者はシマンテックの動作をよく研究していて、新しい感染先を見つける度に自らのファイル名やファイルサイズを変更するという 新種のウイルス もでてきており、こういう種類のウィルスに対して、アンチウィルスのようなセキュリティソフトは無力だと専門家も認めています。

こういうソフトは使うとしてもあくまで補助的な物と考えるべきでしょう。


<後日追記>

このセキュリティソフトに関する認識は後日相当変わった。
ひとつは今の私はMacScanをほぼ信頼していない。
またCheckMateはOS10.2対応を最後にアップデートを止めてしまった。
こうしたシステムファイル書き換えを監視するようなソフトは、Macの世界ではほぼない。
どうしてもClamXavのようなシグネチャーマッチタイプのソフトに頼ってしまうことは仕方がないと思う。
セキュリティの要諦についてはTipsのページにまとめているので、そちらを参照してもらいたい。







注意:このブロックのコマンドはセキュリティについてのスキルの無い人にはお薦めできません。



上記のセキュリティについての注意をよく読んで、最低これだけは実行して下さい。

また自分でネット検索をかけてOSXのセキュリティ向上についての情報を集めて下さい。
そういうことができない人には以下のプロセスを実行することはお薦めできません。

仮設的にルートになってコマンドを実行するという方法を前段で紹介しました。
しかしルートになることも可能です。
メリットとしては

1)sudo等のコマンドを使わなくても全てのコマンドをルート権限で実行できる。
2)GUI環境でもルートでログインできるのでシステムメンテナンスが容易になる。

デメリットとしては

1)セキュリティ上の危険が増大する。
2)ルートでログインしている時にタイプミスすると取り返しがつかないことになる。

まずバックアップ用のストレージハードディスクを用意して内蔵ディスクを完全にバックアップすることをお薦めします。

(07年11月11日注釈:この文章を書いた当時の私はrootを有効にしていないとセキュリティ上のリスクが少ないかのような書き方をしているが、rootログインを不可にする〜それとOSXのrootの安全性についてという記事に書いたように、現在の私はOSXの場合はrootを無効にしていてもセキュリティ上のリスクは減少しないと考えている。このあたり誤解を生みそうなので註釈しておく)


rootを有効にする

sudo passwd root

このコマンドをterminalに入力して実行すると、2回パスワードを訊かれます。
パスワードを入力して下さい。
ユーザログインのパスワードではなく、システムをインストールした時に設定したルートのパスワードです。

これで次回起動時からルートでログインすることができます。
ルートでログインするコマンドは

su

です。
これでプロンプトの表示が%から#に変わったはずです。
これがルートでログインできた印です。



試しに自分は誰か訊いてみましょう。
ルートでログインする前に

whoami

とタイプしてみて下さい。
システムはあなたのユーザ名を答えるでしょう。
今度はsuを実行して同じくwhoamiを実行すると、今度は

root

と答えるはずです。
このプロンプトが#になった状態ではあらゆるコマンドはルート権限で実行されます。
ルートを終了したい時には

exit

とタイプして下さい。もとの%のプロンプトに戻ってユーザとしてのログインになります。

ちなみにterminalを終了する時も念のためにこの

exit

は毎回実行してから、terminalを終了した方が良いと思います。
もしその時に実行中のプロセスがあれば警告してくれますので安全です。

この状態でGUIのMacOS環境でログアウトして下さい。
お馴染みのログイン画面が出てきますが、ここにユーザ名を「root」、パスワードを先ほどterminalで設定したパスワードを入力してログインしてみて下さい。
いつもとは違うデスクトップにログインできるはずです。
これであなたはルートとしてGUIでもログインできています。

前にも書きましたが時々ゴミ箱で削除できないファイルができてしまうことがありますが、こういう物もこのデスクトップにログインした時には削除できます。
何度もいいますが、この時にはシステムと同じく「神の権限」を持っていますので、削除などの操作には注意してください。
何をするにも大丈夫か何度も確認することです。







たびたび強調しますが、MacOSXがOS9以前のクラシックOSと決定的に違うのは

UNIXがベースのOSになった

ということです。

WindowsとMacOS9、MacOSXを比較すればMacOS9はOSXよりもまだWindowsに近いOSです。

UNIXではSolaris、OS2、BSDなど多くのバリエーショングループを生んでいます。
最近話題になっているLinuxもそういうバリエーションのひとつです。
UNIXグループは実はどれもおおむね似た操作環境を持っています。

例えば今ここで練習しているシェルコマンドもこれらのグループでは微妙にバリエーションがありますが、かなり似ています。
ですのでこのMacOSXで採用されているBSDシェルコマンドは、覚えておくと例えば急にLinuxを使わなければいけなくなったとしてもあまり苦労せずにそのコマンドを覚えられるということになります。

さらにUNIXをベースにしたことで多くのメリットを獲得しました。
UNIXの最大のメリットはその安定性です。

私自身今OSX環境でかなりMacを酷使していますが、MacOS9では頻繁に経験していたシステムが落ちるという現象をまだ一度も経験していません。
この安定性はMacOS9はもちろん、Windows2000やXPと比較してもはるかに高いといえます。

そしてもうひとつのUNIXのメリットはUNIXの膨大なソフトウエア資産を活用できるということです。

MacOSはまだ生まれて十数年のOSです。WindowsもGUIとして完成してからまだ事実上8年程度の歴史しかありません。
どちらもコンピュータの世界では歴史が浅いOSといえます。

それに対してUNIXはもう生まれて30年以上になります。
UNIXは生まれた時から無償OSとして配付されましたので、その開発コミュニティは世界中に広がっています。例えばフィンランドからLinuxが生まれてくるというように、そのコミュニティは厚い層を形成しています。

その著作権はGPL、General Public Licenseで守られています。
つまり「技術は無償で公開するが、著作権は放棄しない。技術の改良についてはコミュニティの了承を得て利用技術も無償で公開すること」という規約に基づいて、タダで公開されているというわけです。

そこでコミュニティがお互いに公開してきたのが、膨大な無償ソフトの資産です。

先に書いたOSXバンドルのファイアウォールもそういうもののひとつですし、ここで触れるJounaling File Systemもそうです。

何か大きなファイルを書き換えしている時にアプリが落ちたとします。
そうするとディスクには書きかけで未決のままのアロケーション(書き込みのブロック単位)ができてしまい、それはそのまま不良アロケーションとして残ってしまいます。

これがひとつ、ふたつのうちはたいした問題ではないのですが、長年使っていて大量に溜まってくると最後にはシステムの動作不安定を招いたりディスクそのものが死んでしまったりすることもあり得ます。

そういうことは普段からのメンテナンスで防げるのですが、できるだけメンテナンスフリーで使えるようにするというのもUNIXの開発目的の中に入っているようです。
(毎週パッチを当てなくては、危なくてインターネットにもつなげないWindowsの開発目的にはこういう項目は入っていないようです)

そういう壊れたアロケーションを自動的に作業の前の状態に戻す機能がJournaling File Systemです。
このファイルシステムユーティリティは今、UNIXの世界ではトレンドになっているようですが、MacOSXでも10.23からサポートするようになりました。

ただし未だにOSXではこのJFSをデフォルトではオフの状態にしています。
またこういう機能があるということも特にユーザにアピールしていません。
こういうAppleの不親切さもなんとかしてもらいたいもんです。

そこでやはりterminalを使ってこの機能を開始することができます。

JFSを有効にする

sudo diskutil enableJournal /

を実行します。
すると

Password:

とパスワードを訊いてきます。

(suでログインして

diskutil enableJournal /

だけで実行することもできます。この場合はパスワードを訊いてきません)
パスワードを入力して実行すると

Allocated 8192K for journal file.
Journaling has been enabled on /

というように管理するアロケーションの数とジャーナリングを始めたという表示を返してきます。
またJFSを停止することもできます。

JFSを無効にする

sudo diskutil disableJournal /

Photoshopなどの大物グラフィックソフトを使う場合は、動作が遅くなるのでJFSを 停止した方が良いという人もいます。
JFSが入ることで、どれくらい動作が遅くなるのか実感したことがありません。
なんせ私のG3環境ではJFSを実行していなくてもPhotoshopは遅いです。(^^;)

しかしシステムの安定というメリットを考えれば、JFSは是非活用するべきだと考えています。











Previous Topへ Next





site statistics