D520にScientific Linux 5.6をインストールしたメモ

■D520にScientific Linux 5.6をインストールしたメモ
 CentOS5系からScientific Linux5系に移行するため、Dell D520にインストールを行った時のメモ。D520には4Gの物理メモリが搭載可能だがファームウェアの制限で4Gフルに利用することができない。ファームウェアがA04だったため最新のA08に入れ替えても同様だった(ファームウェアアップデートにはWindows OSが必要になるので注意)。ファームウェアで認識してくれないため、x86_64版のScientific Linuxをインストールしても最大メモリは約3.3Gとなる。HDDは日立製HTS723232A7A364。とても静かでシーク音もほとんど聴こえないくらい。D520のアイドル時の消費電力は18-32W程度。平均して26Wくらいか。ある程度稼働している状況で55Wくらい。

■ファームウェアの設定
 F2キーで設定画面。シリアル・パラレル・1394・PCカードなど使わないオンボードデバイスは全てオフ。サーバとして利用するのでディスプレイの輝度も最小に設定。HDDはperformance設定。

■インストール設定覚書
・パーテーション
 /boot 101M
 / 299872M
 swap 5248M
・ネットワーク
 IPv4は固定設定
 IPv6はDisableに
・インストールコンフィグ
 Serverのみチェック 
 今すぐカスタマイズ
・カスタマイズ内容
 SL Addon
  以下の2つをチェック
  FUSE
  Yum Utility
   yum-conf-epel yum-fastestmirrorのみチェック
 アプリケーション
  エディタとテキストベースのインターネットのみ
 サーバ
  以下の3つだけにして更に一部修正する
  MySQLデータベース mysql-python外す
  Webサーバ httpd-manual mod-perl mod-python php-ldap squid tux webalizer外す
        php-mysql付ける
  メールサーバ postfixとcyrus-sasl sendmailのみ
 ベースシステム
  java ダイアルアップネットワークサポートの2つ外す
・Firewall Configration
 SELinuxをDisable
 カスタマイズで HTTP/HTTPS/SMTPを追加
・System Services
 以下のものだけチェック
  cpuspeed
  crond
  dnsmasq
  httpd
  iptables
  irqbalance
  microcode_ctl
  network
  sendmail(最初はpostfixリストされない)
  smartd
  readahead_early
  sshd
  syslog
・再起動しておく

■再起動後基本設定
・まずはアップデート
 # yum update
・sshdとiptablesの設定変更
 # vi /etc/ssh/sshd_config
  #Port 22 を Port 10022 に変更
 # vi /etc/sysconfig/iptables
  -A RH-Firewall-1-INPUT -m state –state NEW -m tcp -p tcp –dport 10022 -j ACCEPT 追加
 # service sshd restart
 # service iptables restart
・sendmailからpostfixに変更
 # yum remove sendmail
 # ntsysv でpostfixにチェックがついているか確認

■パフォーマンス設定
・noatime設定の追加
 # vi /etc/fstab
  LABEL=/ / ext3 defaults,noatime 1 1 noatimeを追記
 # mount -o remount / で再マウント
 # mount でnoatimeが有効になっているか確認
  /dev/sda on / type ext3 (rw,noatime)
・I/Oスケジューラを変更
 # vi /etc/rc.d/rc.local
  echo deadline> /sys/block/sda/queue/scheduler 追記
 # cat /sys/block/sda/queue/scheduler で確認
  noop anticipatory [deadline] cfq
・利用可能な内部通信socketを増やす
 # vi /etc/rc.d/rc.local
  echo 16384 65535 > /proc/sys/net/ipv4/ip_local_port_range 追記
 # cat /proc/sys/net/ipv4/ip_local_port_range で確認
  16384 65535
・プロセススワップを抑制
 # vi /etc/sysctl.conf
  vm.swappiness = 0 追記
・1プロセスが同時に開けるファイル数を増やす
 # vi /etc/security/limits.conf
  root soft nofile 25600
  root hard nofile 25600
  mysql soft nofile 12800
  mysql hard nofile 12800
  apache soft nofile 12800
  apache hard nofile 12800 追記
・再起動して設定が有効なことを確認

ここからはSNS用サーバ設定を追加していく予定。
長文になるため別記事にする。

WhisperCore 0.5アップデートメモ

■WhisperCore 0.5アップデートメモ
 セキュア環境を目指すAndroidカスタムROM,WhisperCoreが0.4から0.5 (現在は0.5.2)にアップデートしているので、遅くなったがメモを書いておく。

 WhisperCore
 http://www.whispersys.com/whispercore.html
 WhisperCore 0.4アップデートメモ
 https://blog.isnext.net/issy/archives/1173
 NexusOneにWhisperCoreをインストールしたメモ
 https://blog.isnext.net/issy/archives/1094

■WhisperCore 0.5改良点
・アプリケーションのパーミッション設定を制御する機能を追加

■アップデート
 既にWhisperCoreをインストールしている場合は アプリ一覧から
 WhisperCoreUpdaterを開き、Check for Updatesボタンを押すだけ

■Selective Permissions
 Andoridではアプリケーションをインストールする際に、そのアプリケーションがアクセス可能なAPIを明示するため「このアプリケーションに許可するアクセス権」として表示し、それを了解して初めてインストールが可能になるという仕組みが用意されている。通常これは利用者が任意に選択許可することはできず、全て受け入れるか、受け入れないかの2択しかない。WhisperCoreが提供するSelective Permissionsアプリは任意のアプリがインストールされた後で、そのアプリケーションのいくつかのアクセス権を個別にON/OFFすることを可能にする。ON/OFFが可能になるアクセス権は全ての項目ではなく、位置情報や連絡先情報の読み書きなどプライバシーに関する項目がメインで、システムエラーを起こす可能性がある項目は設定することができなくなっているようだ。

 設定画面などはこちらを参照
 http://www.whispersys.com/permissions.html

 実際にMapsアプリで位置情報の読み込みをOFFにしたところ、GPS等が動作している状況でも「システム設定で現在位置情報を有効にしてください」とアラートが出て、現在位置を取得できなくなることを確認している。WhisperCoreではアプリケーションが誤作動を起こす可能性を回避するため、APIによる読み出しを拒否するのではなく空の応答を返すという実装をしているということなので、Selective Permissionsで設定を行ったことで、アプリのエラーなどシステム上に重大な問題が起きる可能性は比較的低いと思われる。

 セキュリティに詳しくアンドロイドのアプリのパッケージ(apk)構成に詳しい場合には、パーミッション設定を変更して再パッケージするという手段を使うこともできるが、アクセス権を適切に理解していないとエラーを引き起こす可能性もあり、一般の利用者には敷居が高い方法のため、Selective Permissionsのような実装は非常にリーズナブルであると思われる。

■WhisperCore0.5の使用感
 OS部分には大きな変更はなく0.4とほとんど体感で変わるものはない。ただ使っている中でひとつ面白いトラップに気がついた。WhisperCoreではストレージを暗号化してセキュリティを担保しているため、電源投入時に必ずパスフレーズの入力を求められるのだが、一度目でパスフレーズを間違うと「Try Agein」と「Reset」の選択肢が表示されるものの、「Try Again」は実質的に機能せず以降何度正しいパスフレーズを入力しても同じ繰り返しになるようになっている。電源ボタンで電源を落とすこともできないため、普通ならリセットするしかなくなってしまう。これがトラップで、実は一度パスフレーズを間違えたら素直に裏ぶたを開けて電池を入れ直し、電源投入からやり直す必要がある。ブルートフォースアタックに対する携帯端末で可能な対抗策としては、十分に現実的な対応だと思われる。なかなか面白い。

 WhisperCoreはAndroidのシステム的なセキュリティの在り方に現実的な実装という手段で提案を投げ掛ける非常に面白い存在だと思う。まだNexusOneとNexusSでしか利用できないのは残念ではあるが、ぜひいろんな人に試してもらえるようになるといいなぁと思う。Android向けのアンチウイルスソフトは雨後の筍のように増えてきたが、こうした取り組みはまだあまり聞かないので、他のセキュリティを看板にしている企業にもぜひがんばってもらいたい。当面WhisperCoreの利用は続けてみようと思う。