SlideShare una empresa de Scribd logo
1 de 11
Descargar para leer sin conexión
Linux デスクトップ環境のセキュリティを考えてみる
KenichiroMATOHARA
matoken@gmail.com(http://hpv.cc/~maty/)
はじめに
普通の PC やサーバは人の目や部屋に鍵を掛けるなどの物理的なセキュリティで守られて
いますが、NotePC の場合持ち運ぶので置き忘れたり盗まれたりといったことが起こりやすくな
ります。そうなると通常の状態では中のデータにはアクセスし放題になってしまうのでデータ
流出などが怖いです。万が一紛失した場合でも完全にとまでは行かないけれど安心するため
の方法を試してみます。一般的なリモートアクセスを警戒したり、アプリケーションの脆弱性に
対応するためにアップデートをこまめに行うと言うようなことはここでは取り上げません。
なお、ここでは Lenovo Thinkpad X201s に Ubuntu12.04 を導入した例を取り上げています。
BIOS の設定
Linux とは直接関係ありませんが BIOS でのセキュリティを考えてみます。
• 起動デバイスの制限。
制限しないと、USB メモリや CD、ネットワークなどから起動して中の Disk が読み書きでき
てしまいます。通常時は内蔵 HDD からのみ起動を許可としておきます。
• HDD パスワードの設定
この設定をしておくと、HDD を抜き出して他の端末に接続した時 HDD の中身が見えなく
なります。X201s の場合は内蔵、ドッキングステーション以外は認識できません。マスターパス
ワードとユーザパスワードが設定可能です。両方設定して普段はユーザパスワードを利用する
ようにしましょう。(この設定を行うと USB 外付けなどでは設定したマシンでも HDD の中身は
見えません。内蔵と、ドッキングステーションに入っている場合は OK です。但し、HDD パス
ワード入力後に HDD を差し替えると読み込めてしまうようです。これは ThinkPad x230 シリー
ズからできなくなっているそうです。)
• Intel ATM 無効
リモートから操作が可能な便利な機能ですが、無効にします。
• BIOS パスワード設定
BIOS パスワードを掛けておかないと設定しても誰でも変更できるのであまり意味がありま
せん。X201s の場合はマスターパスワードと、ユーザーパスワードが設定できます。ユーザーパ
スワードはバックアップバッテリを抜くと消えてしまうそうなのでマスターパスワードも掛けて通
常時はユーザパスワードを利用するようにしましょう。
• 起動時メモリ内容破壊
シャットダウンしたばかりだったり、起動中に電源を落としてすぐであればメモリの内容を読
34
み出すことが可能です。その読みだした内容から各種パスワード等を抜き出すことも可能で
す。そこで、マシン起動時にメモリの内容を破壊する機能を有効にしておきます。(この攻撃は
ターゲットのマシンのメモリを物理的に抜き出して別のマシンで起動することでも可能なので
万全ではありません。私はメモリスロットの蓋に封印シールを張っています。もしこのシールが
剥がれていたらメモリが抜き出された可能性があるという事がわかるのでパスワードや鍵の
変更が行えます。)
ストレージの暗号化
ストレージを暗号化していない場合、たとえ root 権限の物でも USB や CD などから別のシ
ステムで起動した OS からはデータが読み書きできてしまいます。これを防ぐために暗号化
ファイルシステムを設定します。Windows だと BitLocker(Vista 以降かつ
Ultimate/Enterprise/Server Edition)や1
TrueCrypt(サードパーティ製)で、Mac OS X だと
FileVault2(Lion 以降)2
でシステム全体を暗号化することが出来るようです。
Linux だと dm-crypt を利用することで/boot 以外の領域を暗号化することができます。ホー
ムディレクトリの暗号化だけであれば、eCryptfs などを利用することで暗号化することが可能
です。ログイン時に透過的に復号されるので意識せずに利用できます。Ubuntu のホームディ
レクトリの暗号化にも利用されています。
利用者が 1 人の場合は dm-crypt、複数人で利用するのであれば eCryptfs を利用するとい
いと思います。両方設定することも可能ですが、NotePC の HDD だと体感速度がかなり低下
します。
dm-crypt を使ったシステムの暗号化
最近のメジャーディストリビューションであれば大抵インストーラが対応しているので、イン
ストーラに任せてしまうのが楽です。Ubuntu12.04 の場合通常のデスクトップ版インストーラで
は未だ選択できないようです。Alternate 版や Server 版のインストーラを利用してください。
手動でパーティションを設定する場合の注意点としては、パーティション毎に dm-crypt を設
定すると、パスフレーズが全て同じだったとしてもそのパーティションの数だけパスフレーズを
入力する必要があります。3
そのため LVM で/boot 以外の領域を 1 つの暗号化システムとして
1 Windows2000Professional 以降で NTFS を利用すると EFS(EncryptingFileSystem)という暗号化ファ
イルシステムを利用することが可能。システムの暗号化はできない。
2 旧バージョンの FileVault は Mac OS X v10.3(Panther)以降に搭載されていますがこれはホームディ
レクトリのみの暗号化です。その他暗号化したディスクイメージ機能を利用して一部のデータのみ暗
号化を行うことも可能です。
3 例えば/boot, /, /var, /usr, /home, swap を別のパーティションにして/boot 以外を暗号化すると、起動時
に 5 回パスフレーズの入力が必要になります。
35
確保し、その中に LVM で利用したいパーティションを確保するとパスフレーズの入力が 1 回
となり運用が楽になります。
eCryptfs を使ったホームディレクトリの暗号化
Ubuntu であればインストール時のユーザ設定時や、ユーザ登録時にチェックボックスを on
にすることで設定ができます。この時パスワードはログイン時のものと同じに設定され、ログイ
ン時に透過的に復号化されます。
もし、ユーザ登録時にホームディレクトリ暗号化のチェックボックスが表示されない場合は
ecryptfs-utils パッケージを導入します。
$ sudo apt-get install ecryptfs-utils
既に存在するユーザのホームディレクトリを暗号化する
※念の為作業の前に対象ユーザのホームディレクトリをバックアップしておきましょう。
暗号化したい対象ユーザはログアウトしておきます。暗号化したいユーザアカウントとは別
の管理者権限を持ったアカウントを用意してそのアカウントでログインします。ecryptfs-utils
パッケージを導入します。
sudo apt-get install ecryptfs-utils
以下のコマンドでホームディレクトリの暗号化を行います。
sudo ecryptfs-migrate-home –u "ユーザ名"
eCryptfs の問題点
• ファイル名長制限
ファイル名も暗号化できますが、暗号化情報もファイル名中に保存されるのでファイル名
長が短くなってしまいます。最大ファイル名長が通常の 255 バイトの場合、144 バイト迄になっ
てしまうようです。ほとんど問題は起きないでしょうが何度かこの制限に遭遇したことがありま
す。
暗号化ファイルシステムのバックアップ
dm-Crypt
dm-Crypt はファイルシステムなので、そのままではファイル単位のバックアップは出来ませ
ん。マウントした状態でコピーを行う必要があります。私は、一日一回 rsync コマンドで外部スト
レージに差分バックアップを行なっています。この外部ストレージも dm-Crypt で暗号化してあ
ります。
$ rsync -avv --delete --exclude-from=/home/user/denylist --link-
dest=/export/home/user/`/bin/date -d '1 day ago' +%Y%m%d`/ /home/user/
/export/home/user/`date +%Y%m%d`/
36
このコマンドでホームディレクトリ以下を差分のみコピー、差分以外はハードリンクで見た目
毎日のフルバックアップが/export/home/user/以下に保存されます。これを crontab に設定して
います。
eCryptfs
eCryptfs は暗号状態でも通常のファイル、ディレクトリなので、暗号化状態のままバックアッ
プできます。但し、シグネチャが別途あるのでこれも忘れずにバックアップしましょう。データだ
けのバックアップだと復元できません。心配であれば復号状態でバックアップしてもいいかも
しれません。
Ubuntu の場合シグネチャ情報は以下の場所に有ります。
/home/.ecryptfs/ユーザ名/.ecryptfs/Private.sig
手動マウント方法
何時もは自動的にマウントしてくれますが、システムがおかしくなった時などにマウントでき
ないと困ることがあります。手動でのマウント方法を確認しておくと安心です。
dm-Crypt
一番楽な方法は Gnome 等の自動マウントやディスクユーティリティ(gnome-disk-utility)等
に任せる方法です。これだとパスフレーズの入力だけで OK です。Ubuntu の CD で起動する
ことでも利用できます。コマンドラインでの操作は以下のようになります。
/dev/sdc1 が dm-Crypt で暗号化された対象のパーティションで、/mnt にマウントする場合
の例です。
$ sudo losetup /dev/loop1 /dev/sdc1
$ sudo cryptsetup luksOpen /dev/loop1 enc
Enter passphrase for /dev/loop1: ←設定したパスフレーズの入力
$ ls /dev/mapper/
control enc
$ sudo mount -o ro /dev/mapper/enc /mnt
eCryptfs
上で書いたように復号化には暗号化したファイル、ディレクトリ以外にシグネチャ情報
(/home/.ecryptfs/ユーザ名/.ecryptfs/Private.sig)
も必要です。このファイルの中の 1 行目がマウント時のオプション ecryptfs_sig
2 行目が ecryptfs_fnek_sig になります。
以下は、/home/ecryptfs/.Private を/mnt に手動マウントする場合の例です。
$ sudo mount -t ecryptfs -o
ecryptfs_sig=xxxxxxxxxxxxxxxx,ecryptfs_fnek_sig=xxxxxxxxxxxxxxxx,ecryp
tfs_cipher=aes,ecryptfs_key_bytes=16,ro /home/ecryptfs/.Private /mnt
37
Passphrase: ←設定したパスフレーズの入力(ログインパスワード)
Enable plaintext passthrough (y/n) [n]:
Attempting to mount with the following options:
ecryptfs_unlink_sigs
ecryptfs_fnek_sig=379bf09f0b28a000
ecryptfs_key_bytes=16
ecryptfs_cipher=aes
ecryptfs_sig=b34bba975345fb8a
Mounted eCryptfs
暗号化ファイルシステムの問題点
暗号化ファイルシステムを利用することによって生のファイルシステムに比べてリソースを
消費するようになりディスクアクセスが遅くなります。CPU のリソースについてはここまでの暗
号化ファイルシステムは AES を利用しているので CPU に AES 支援機能があるとかなり軽く
なります。
$ grep aes /proc/cpuinfo
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge
mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe
syscall nx rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl
xtopology nonstop_tsc aperfmperf pni pclmulqdq dtes64 monitor ds_cpl
vmx smx est tm2 ssse3 cx16 xtpr pdcm pcid sse4_1 sse4_2 popcnt aes
lahf_lm ida arat dts tpr_shadow vnmi flexpriority ept vpid
としてみて AES の表示があればそのマシンは AES 支援機能があるはずです。C2D 以降
や GeodeLX では付いているようです。ハードディスクは 7200rpm の物を利用していますが、
dm-crypt か eCryptfs のどちらかだけの利用であればそこまで遅く感じません。でも、両方を有
効にすると遅くなるのが体感出来ました。最近 SSD に換装してみたところ両方を有効にして
いても問題ないくらい早くなりました。このあたりはセキュリティとパフォーマンスのトレードオ
フになります。自分しか利用しない NotePC の場合 dm-crypt のみでいいのではないかと思っ
ています。
USB メモリの暗号化
USB メモリにデータを入れて持ち運んだり4
、人とデータの受け渡しをすることもあるかと思
います。しかし、dm-crypt や eCryptfs は Linux でしか利用できません。マルチプラットホーム対
応の TrueCrypt を試してみましょう。
TrueCrypt の導入
先ずは TrueCrypt を導入します。http://www.truecrypt.org/downloads から Linux のパッ
ケージをダウンロードします。ダウンロードしたアーカイブを展開してできたファイルを実行しま
4 スニーカーネットって言葉最近は使わないんです?
38
す。これで/usr/bin 以下に導入されます。
USB メモリの用意
TrueCrypt で利用する USB メモリを用意します。この USB メモリは fat でフォーマットしてお
くと、他 OS でも利用できるので便利です。TrueCrypt のイメージはファイル5
や専用パーティ
ションが利用できます。常用する場合はパーティションを 2 つに分けて後ろのパーティションを
TrueCrypt の領域に確保するのをお勧めします。
前の領域は非暗号化領域にして、TrueCrypt の実行ファイルを保存しておきます。そうする
ことで TrueCrypt 非導入マシンでも TrueCrypt が利用できます。
今回は、4GB の USB メモリを 3GB と 1GB の 2 つに分けて前を fat 領域。後ろを TrueCrypt
の領域にしてみました。パーティションの設定はディスクユーティリティや GParted 等を利用す
ると便利です。
前の fat 領域は LiveUSB にしてみてもいいかもしれません。※1GB 以上あると「スタート
アップディスクの作成」の作成などで Ubuntu の導入も可能です。
TrueCrypt の設定
• TrueCrypt を起動します。
• 「Create Volume」ボタンを押します。
Create an encrypted file container
Create a volume within a partition/drive
の選択肢が表示されます。
今回はパーティションを利用するので後者を選択します。
Standard TrueCrypt volume
Hidden TrueCrypt volume
の選択肢が表示されます。後者は隠しボリュームが設定出来ます。通常の TrueCrypt のボ
リュームの中に更に隠しボリュームを作成して見つかりにくく出来ます。この場合 2 つのパス
ワードを設定してパスワードによってどちらかのボリュームがオープンできます。どちらか好み
の方を選択してください。
• Volume Location
自分の利用したいボリュームを指定します(/dev/sdb2 等)。選択したボリュームの内容は消
えてしまうので注意深く操作してください。
• Outer Volume Encryption Options
5 ファイルにしておくと暗号化はされますが、誤って削除してしまう可能性が高くなります。
39
暗号化のオプションが選択できます。ベンチマークが利用できるので、暗号強度と速度を
確認して選択してください。今回は、暗号化アルゴリズムに AES-Twofish を、ハッシュアルゴリ
ズムに SHA-512 を選択してみました。
• `Outer Volume Password'
TrueCrypt ボリュームを利用するためのパスワードを設定します。20 文字以下だと簡単なパ
スワードだと警告が表示されます。最大 64 文字まで設定可能です。忘れるとアクセスできなく
なるので注意しましょう。鍵ファイルでの運用も可能です。鍵ファイルを利用すると暗号化ファ
イルシステムの入った媒体、パスワードの他に鍵ファイルも必要になるので安全性が増します。
※逆にどれか一つでも紛失すると復号出来なくもなります。
利用するマシンが決まっているときなどはそのマシンにのみ鍵ファイルを保存しておくとそ
のマシンでしか開けなくなります。例えば、自宅と仕事場のマシンにのみ鍵ファイルを保存して
おき、その鍵を使って暗号化したストレージを持ち運ぶと、万が一落としたりしても鍵ファイル
とパスワードがわからないので復号できないといったような運用ができます。
• Outer Volume Format
ボリュームのフォーマットを行います。しばらく待ちましょう…。
手元の環境では 2 分程かかりました。
• Volume Created
の画面になったら完了です。Exit でウィザードを終了しましょう。
TrueCrypt ボリュームのマウントとアンマウント
TrueCrypt 画面で利用したい Slot(Windows の場合はドライブレター)を選択、`Select
Device'でさっき設定したボリュームのデバイス名を指定します。この状態で Mount ボタンを押
すとパスワードを聞かれてマウントできます。
アンマウント時はアンマウントしたいスロットを選択した状態で`Dismount'ボタンを押します。
TrueCrypt 非導入のマシンでも復号できるようにする
TrueCrypt 領域は TrueCrypt が無いとマウントできません。しかし、TrueCrypt の実行ファイ
ルを USB メモリの非暗号化領域に保存しておくと、TrueCrypt を導入していないマシンでも利
用できるようになります。Windows 版の TrueCrypt にはトラベラーディスクという Windows の
実行ファイルを書き出す機能があります。Linux や Mac でも実行ファイルをコピーしておくこと
で同じことが可能でした。Linux 版は以下のような方法で実行ファイルの保存が可能です。
TrueCrypt のインストーラを起動します。「Extract .tar Package file」ボタンを押します。ライセ
ンスの確認画面が表示され、I accept ボタンを押すと/tmp に.tar ファイルが保存されます。こ
れを USB メモリの非暗号化領域に展開することで利用できるようになります。
40
※利用マシン上に必要なパッケージがないと利用できないことがあります。これまでに fuse
が無くて利用できないことがありました。
画面ロックの設定
暗号化ファイルシステムを利用していても、当たり前ですがマシンが起動してマウントしてい
る間は普通にアクセスできます。離席時などはスクリーンロックをして他者がアクセスできない
ようにするように心がけましょう。
スクリーンロックのショートカットは Ctrl+Alt+l です。ロック忘れの対策のために自動ロック
の設定もしておきましょう。「システム設定」->「画面の明るさとロック」で、ロックするをオンに、
画面ロックまでの時間を指定、手元では 3 分にしています。サスペンドからの復帰時にパス
ワードを要求するにチェックとしています。
これで、3 分以上放置すると自動的に画面ロックがかかりログインパスワードを入力しない
とアクセスできなくなります。
なお、Ubuntu11.10 以降設定画面から無くなった電源管理の詳細設定ですが、dconf であ
る程度以前の設定が可能です。dconf-tools を導入して org.gnome.settings-
daemon.plugins.power 以下を設定すると以前とほぼ同じ設定が可能です。
※実はスクリーンロックをかけていてもメモリ内の情報を読み込むことで各種パスワードを
盗む攻撃が可能です6
。長時間目を離す場合にはシャットダウンしましょう。
離席時の自動ロック7
Whindows や Mac だと IC カードの社員証などを利用して離席時に自動的にスクリーンロッ
クをするソリューションがあります。似たようなことが Linux でも BlueProximity というアプリ
ケーションと BlueThooth デバイスを利用して可能です。
BlueThooth デバイス(スマートフォンなど)が別に必要になります。このデバイス側には特に
アプリケーションなどは必要有りません。恐らく BlueThooth のペアリングさえ出来れば何でも
良さそうです。手元では Andoroid の IDEOS(BM-IDEOS-200D)という端末で動作確認をしま
した。このデバイスを身に付けておき、離席して PC からデバイスの BlueThooth の電波が弱く
なるとスクリーンセーバを起動、席に戻ってきて BlueThooth の電波が強くなると自動的にスク
リーンセーバを解除といったことが可能になります。スクリーンセーバの復帰時にはパスワード
6 "Lest We Remember: Cold Boot Attacks on Encryption Keys » Center for Information Technology
Policy at Princeton" https://citp.princeton.edu/research/memory/ 次の動画が判りやすいです。 "Lest
We Remember: Cold Boot Attacks on Encryption Keys - YouTube" https://www.youtube.com/watch?
v=JDaicPIgn9U
7 http://goo.gl/LGAHW
41
を求めるように設定しておき、他者は利用できないようにしておきます。
利用には blueproximity パッケージを導入して起動します。メニューバーにアイコンが表示
されるのでクリックすると設定画面が表示されます。利用する BlueThooth デバイスを待ち受
け状態にした状態で「Scan for devices」ボタンを押し、利用したいデバイスが表示されるのを
待ちます。表示されたら利用したいデバイスを選択して、「Use selected device」ボタンを押しま
す。これでペアリングができたはずです。
引き続き「Scan channels on device」ボタンを押して利用可能チャンネルを探します。
「usable」になっているチャンネルを選択します。(usable になっていても利用できない場合があ
るのでその時は別のチャンネルを選択します。)
電波強度の設定を行います。電波強度はステータスバーのアイコンにマウスオーバーする
とステータスが表示されるのでそれを参考に設定します。ステータスバーで「Simulation
Mode」になっている場合はアイコンの表示は Online/Offline で変わりますが、実際にコマンド
は発行されない状態です。
もし、BlueThooth デバイスの電池が切れた場合などでも手動でログインパスワードを入力
することでアンロック可能です。手動ロックした場合も、BlueProximity で自動アンロックされて
しまいます。アンロックのコマンドランを空白にして自動アンロック機能を無効にするのもあり
かもしれません。
ウィンドウマネージャの設定
最近のディストリビューションでは PC を起動して、ウィンドウマネージャが起動するとログイ
ンユーザを入力しなくても選択してパスワードを入力するだけでログイン出来るようになってい
ます。ログインユーザの名前が表示されないとユーザ名とパスワードの両方を推測する必要
がありますが、標準状態だととパスワードを推測するだけでログイン出来るようになります。ロ
グインユーザを表示しないようにして、ついでにゲストログインもできないようにしてみます。
Ubuntu11.04 以前は GDM というウィンドウマネージャが標準で利用されていました。この
GDM の場合は GUI の設定画面からログイン情報を非表示にすることが出来ましたが、
Ubuntu11.10 以降の Lightdm では GUI での設定は見つかりませんでした。調べてみたところ
設定ファイル(/etc/lightdm/lightdm.conf)を編集することで設定が可能でした。
/etc/lightdm/lightdm.conf の[SeatDefaults]セクションに「greeter-hide-users=true」を設定す
ることでログインユーザを非表示に、同様に[SeatDefaults]セクションに「allow-guest=false」を
設定することでゲストユーザのログインが不可になります。
以下は標準状態の/etc/lightdm/lightdm.conf にこの設定を加えた例です。
[SeatDefaults]
greeter-session=lightdm-gtk-greeter
user-session=ubuntu
autologin-user=
greeter-hide-users=true
42
allow-guest=false
紛失した PC を追跡する
万が一 PC を紛失してしまった場合追跡するための Adeona8
/Prey9
などといったアプリケー
ションがあります。PC の状態やカメラの画像などをリモートネットワークなどに保存するように
なっています。盗難時などにはこの情報を役立てることが出来るかもしれません。
私は以前 Adeona を利用していたのですが、残念ながら現在は開発が止まっているように
見えます。P2P ネットワークを利用してデータをアップロードしていたのですが利用者もいなく
なりこのネットワークにも接続できなくなってしまいました。
現在は似たようなことをする Script を書き、定期的に実行することで Adeona の代わりにし
ています。今から設定するのであれば Prey を利用するのが良さそうです。Prey は開発も活発
で各種プラットホームにも対応しています。
以下は私が実際に利用している Script の例です。リモートサーバとの間は ssh のパスフ
レーズなし鍵認証を利用しています。リモートサーバに鍵登録時はコマンドを指定するようにし
ましょう。そうでないとこの鍵を利用してサーバに侵入されてしまいます。http アクセスのために
w3m、カメラの操作に v4l-utils、キーロガーのために logkeys を利用しています。最後のコマン
ド実行は、リモートサーバにファイルを用意しておき、通常時は空のファイルにしておいて万が
一乗っ取られた場合このファイルの中に実行したいコマンドを記述してデータ消去やリモート
アクセスが出来るように設定してあります。
データ消去は理想は GNU core utilities の shred を全領域に掛けることですが時間がかか
るので特に危ないもの(ssh key など)だけは shred を実行、その後ホームディレクトリなどを削
除。めぼしいものがなくなったらまた shred を掛けると行ったことをすると安心かもしれません。
利用者の画面に警告メッセージなどを表示するのも効果的かもしれません。
#!/usr/bin/perl
$DATE=`/bin/date +%Y%m%d%H%M%S`;
chomp $DATE;
$LOG="~/var/adeona_m/$DATE";
open(FILE,">$LOG.txt");
open(STDERR,">&FILE");
print FILE "#-- iwconfig"; 無線 LAN 情報の取得
print FILE `/sbin/iwconfig`;
print FILE "#-- ifconfig"; ネットワーク情報の取得
8"Adeona: A Free, Open Source System for Helping Track and Recover Lost and Stolen
Laptops" http://adeona.cs.washington.edu/index.html
9"Open source anti-theft solution for your laptop, phone and tablet – Prey"
https://preyproject.com/
43
print FILE `/sbin/ifconfig`;
print FILE "#-- env"; ネットワーク環境変数の取得
print FILE `/usr/bin/w3m -dump http://replay.ne.jp/mk/cgi-
bin/env.cgi`;
print FILE `/usr/bin/w3m -dump http://ifconfig.me/all`;
close(FILE);
#-- カメラでの撮影
`/usr/bin/v4lctl webcam $LOG.jpg`;
#-- datacopy ログファイルの送信
`/usr/bin/scp -p $LOG.txt remoteuser@remoteserver:~/x201s.log/`;
`/usr/bin/scp -p `ls -t1 ~/.logkeys/ | head -1`
remoteuser@remoteserver:~/x201s.log/` キーロガーのログ送信
`/usr/bin/scp -p ~/.webcamd/pre-webcam.jpg
remoteuser@remoteserver:~/x201s.log/$DATE.jpg`; 撮影データ送信
#-- コマンド実行
`/usr/bin/scp -p remoteuser@remoteserver:~/x201s.log/command ~/tmp`;
`~/tmp/command`;
最後に
幸い実際に置き忘れたり盗まれたりといったことはまだないのですが、やってしまいそうな
のでこういった設定をしてみています。役に立たないほうがいいんですけどね。
一人で考えて設定しているのでどの程度セキュリティが保たれているか不安な部分があり
ます。ご意見をいただけると幸いです。
初出
小江戸らぐの以下の発表を元にしました。
• 20081213 12 月のオフな集まり(第 77 回) 「紛失した PC を追跡する Adeona」10
• 20081220 インストールパーティ in 電大鳩山 「Slax で暗号化 fs を持ち運ぶ」11
• 20110115 11 月のオフな集まり(第 102 回) 「偏執的な人の為の? NotePC セキュリティ HDD 編」12
• 20120609 6 月のオフな集まり(第 119 回) 「BT 端末を使って離席時に自動スクリーンロックをする」13
10 http://www.slideshare.net/matoken/koedo7720081213
11 http://www.slideshare.net/matoken/koedo20081220-install-party
12 http://www.slideshare.net/matoken/notepc-hdd-1102
13 http://hpv.cc/~maty/pukiwiki1/index.php?cmd=read&page=Linux%2FDesktop%2F%CE
%A5%C0%CA%BB%FE%A4%CE%BC%AB%C6%B0%A5%B9%A5%AF%A5%EA%A1%BC
%A5%F3%A5%ED%A5%C3%A5%AF
44

Más contenido relacionado

La actualidad más candente

企業システムにSELinuxを適用するときの検討事項
企業システムにSELinuxを適用するときの検討事項企業システムにSELinuxを適用するときの検討事項
企業システムにSELinuxを適用するときの検討事項Atsushi Mitsu
 
“bcache”を使ってSSDの速さと HDDの大容量のいいとこどり 2015-12-12
“bcache”を使ってSSDの速さと HDDの大容量のいいとこどり 2015-12-12“bcache”を使ってSSDの速さと HDDの大容量のいいとこどり 2015-12-12
“bcache”を使ってSSDの速さと HDDの大容量のいいとこどり 2015-12-12Nobuto Murata
 
TIME_WAITに関する話
TIME_WAITに関する話TIME_WAITに関する話
TIME_WAITに関する話Takanori Sejima
 
ROS 2 Client Library for E^2
ROS 2 Client Library for E^2ROS 2 Client Library for E^2
ROS 2 Client Library for E^2Hideki Takase
 
【GCC18】PUBGライクなゲームをUnityだけで早く確実に作る方法 〜ひとつのUnity上でダミークライアントを100個同時に動かす〜
【GCC18】PUBGライクなゲームをUnityだけで早く確実に作る方法 〜ひとつのUnity上でダミークライアントを100個同時に動かす〜【GCC18】PUBGライクなゲームをUnityだけで早く確実に作る方法 〜ひとつのUnity上でダミークライアントを100個同時に動かす〜
【GCC18】PUBGライクなゲームをUnityだけで早く確実に作る方法 〜ひとつのUnity上でダミークライアントを100個同時に動かす〜モノビット エンジン
 
外部キー制約に伴うロックの小話
外部キー制約に伴うロックの小話外部キー制約に伴うロックの小話
外部キー制約に伴うロックの小話ichirin2501
 
OpenVZ - Linux Containers:第2回 コンテナ型仮想化の情報交換会@東京
OpenVZ - Linux Containers:第2回 コンテナ型仮想化の情報交換会@東京OpenVZ - Linux Containers:第2回 コンテナ型仮想化の情報交換会@東京
OpenVZ - Linux Containers:第2回 コンテナ型仮想化の情報交換会@東京Kentaro Ebisawa
 
OpenStack マルチノード環境構築
OpenStack マルチノード環境構築OpenStack マルチノード環境構築
OpenStack マルチノード環境構築HommasSlide
 
いまさら聞けないarmを使ったNEONの基礎と活用事例
いまさら聞けないarmを使ったNEONの基礎と活用事例いまさら聞けないarmを使ったNEONの基礎と活用事例
いまさら聞けないarmを使ったNEONの基礎と活用事例Fixstars Corporation
 
CyberChefの使い方(HamaCTF2019 WriteUp編)
CyberChefの使い方(HamaCTF2019 WriteUp編)CyberChefの使い方(HamaCTF2019 WriteUp編)
CyberChefの使い方(HamaCTF2019 WriteUp編)Shota Shinogi
 
DockerCon EU 2015: Day 1 General Session
DockerCon EU 2015: Day 1 General SessionDockerCon EU 2015: Day 1 General Session
DockerCon EU 2015: Day 1 General SessionDocker, Inc.
 
Metasploitでペネトレーションテスト
MetasploitでペネトレーションテストMetasploitでペネトレーションテスト
Metasploitでペネトレーションテストsuper_a1ice
 
MITRE ATT&CKマッピングのペストプラクティスでたよ
MITRE ATT&CKマッピングのペストプラクティスでたよMITRE ATT&CKマッピングのペストプラクティスでたよ
MITRE ATT&CKマッピングのペストプラクティスでたよshuna roo
 

La actualidad más candente (20)

企業システムにSELinuxを適用するときの検討事項
企業システムにSELinuxを適用するときの検討事項企業システムにSELinuxを適用するときの検討事項
企業システムにSELinuxを適用するときの検討事項
 
“bcache”を使ってSSDの速さと HDDの大容量のいいとこどり 2015-12-12
“bcache”を使ってSSDの速さと HDDの大容量のいいとこどり 2015-12-12“bcache”を使ってSSDの速さと HDDの大容量のいいとこどり 2015-12-12
“bcache”を使ってSSDの速さと HDDの大容量のいいとこどり 2015-12-12
 
TIME_WAITに関する話
TIME_WAITに関する話TIME_WAITに関する話
TIME_WAITに関する話
 
ROS 2 Client Library for E^2
ROS 2 Client Library for E^2ROS 2 Client Library for E^2
ROS 2 Client Library for E^2
 
【GCC18】PUBGライクなゲームをUnityだけで早く確実に作る方法 〜ひとつのUnity上でダミークライアントを100個同時に動かす〜
【GCC18】PUBGライクなゲームをUnityだけで早く確実に作る方法 〜ひとつのUnity上でダミークライアントを100個同時に動かす〜【GCC18】PUBGライクなゲームをUnityだけで早く確実に作る方法 〜ひとつのUnity上でダミークライアントを100個同時に動かす〜
【GCC18】PUBGライクなゲームをUnityだけで早く確実に作る方法 〜ひとつのUnity上でダミークライアントを100個同時に動かす〜
 
Node-RED v2.0新機能紹介
Node-RED v2.0新機能紹介Node-RED v2.0新機能紹介
Node-RED v2.0新機能紹介
 
外部キー制約に伴うロックの小話
外部キー制約に伴うロックの小話外部キー制約に伴うロックの小話
外部キー制約に伴うロックの小話
 
ゼロからはじめるKVM超入門
ゼロからはじめるKVM超入門ゼロからはじめるKVM超入門
ゼロからはじめるKVM超入門
 
ARM Compute Library
ARM Compute LibraryARM Compute Library
ARM Compute Library
 
はじめてのScriptable Build Pipeline
はじめてのScriptable Build PipelineはじめてのScriptable Build Pipeline
はじめてのScriptable Build Pipeline
 
OpenVZ - Linux Containers:第2回 コンテナ型仮想化の情報交換会@東京
OpenVZ - Linux Containers:第2回 コンテナ型仮想化の情報交換会@東京OpenVZ - Linux Containers:第2回 コンテナ型仮想化の情報交換会@東京
OpenVZ - Linux Containers:第2回 コンテナ型仮想化の情報交換会@東京
 
大昔のMMU
大昔のMMU大昔のMMU
大昔のMMU
 
Ext4 filesystem(1)
Ext4 filesystem(1)Ext4 filesystem(1)
Ext4 filesystem(1)
 
OpenStack マルチノード環境構築
OpenStack マルチノード環境構築OpenStack マルチノード環境構築
OpenStack マルチノード環境構築
 
いまさら聞けないarmを使ったNEONの基礎と活用事例
いまさら聞けないarmを使ったNEONの基礎と活用事例いまさら聞けないarmを使ったNEONの基礎と活用事例
いまさら聞けないarmを使ったNEONの基礎と活用事例
 
WiredTigerを詳しく説明
WiredTigerを詳しく説明WiredTigerを詳しく説明
WiredTigerを詳しく説明
 
CyberChefの使い方(HamaCTF2019 WriteUp編)
CyberChefの使い方(HamaCTF2019 WriteUp編)CyberChefの使い方(HamaCTF2019 WriteUp編)
CyberChefの使い方(HamaCTF2019 WriteUp編)
 
DockerCon EU 2015: Day 1 General Session
DockerCon EU 2015: Day 1 General SessionDockerCon EU 2015: Day 1 General Session
DockerCon EU 2015: Day 1 General Session
 
Metasploitでペネトレーションテスト
MetasploitでペネトレーションテストMetasploitでペネトレーションテスト
Metasploitでペネトレーションテスト
 
MITRE ATT&CKマッピングのペストプラクティスでたよ
MITRE ATT&CKマッピングのペストプラクティスでたよMITRE ATT&CKマッピングのペストプラクティスでたよ
MITRE ATT&CKマッピングのペストプラクティスでたよ
 

Similar a Linux デスクトップ環境のセキュリティを考えてみる

Linux/DB Tuning (DevSumi2010, Japanese)
Linux/DB Tuning (DevSumi2010, Japanese)Linux/DB Tuning (DevSumi2010, Japanese)
Linux/DB Tuning (DevSumi2010, Japanese)Yoshinori Matsunobu
 
ちょっと古いマシンにLinuxを
ちょっと古いマシンにLinuxをちょっと古いマシンにLinuxを
ちょっと古いマシンにLinuxをKenichiro MATOHARA
 
Tremaで試すFirewall
Tremaで試すFirewallTremaで試すFirewall
Tremaで試すFirewallM Hagiwara
 
本当にわかる Spectre と Meltdown
本当にわかる Spectre と Meltdown本当にわかる Spectre と Meltdown
本当にわかる Spectre と MeltdownHirotaka Kawata
 
PXE で linux インストールな本 -1 スピンドルマシンも Linux 化-
PXE で linux インストールな本 -1 スピンドルマシンも Linux 化-PXE で linux インストールな本 -1 スピンドルマシンも Linux 化-
PXE で linux インストールな本 -1 スピンドルマシンも Linux 化-Kenichiro MATOHARA
 
VarnishCache入門Rev2.1
VarnishCache入門Rev2.1VarnishCache入門Rev2.1
VarnishCache入門Rev2.1Iwana Chan
 
【学習メモ#4th】12ステップで作る組込みOS自作入門
【学習メモ#4th】12ステップで作る組込みOS自作入門【学習メモ#4th】12ステップで作る組込みOS自作入門
【学習メモ#4th】12ステップで作る組込みOS自作入門sandai
 
Osc10do linux nextstep
Osc10do linux nextstepOsc10do linux nextstep
Osc10do linux nextstepsmokey monkey
 
NetBSDのクロスビルドのしくみとインストール済みLive Imageの作成
NetBSDのクロスビルドのしくみとインストール済みLive Imageの作成NetBSDのクロスビルドのしくみとインストール済みLive Imageの作成
NetBSDのクロスビルドのしくみとインストール済みLive Imageの作成Izumi Tsutsui
 
OpenStackクラウド基盤構築ハンズオンセミナー 第1日:ハンズオンNo1
OpenStackクラウド基盤構築ハンズオンセミナー 第1日:ハンズオンNo1OpenStackクラウド基盤構築ハンズオンセミナー 第1日:ハンズオンNo1
OpenStackクラウド基盤構築ハンズオンセミナー 第1日:ハンズオンNo1Etsuji Nakai
 
はじめてのSSD,MicroSD,USBメモリ延命方法 in Linux Beginner for Linux long-lifetime in USB...
はじめてのSSD,MicroSD,USBメモリ延命方法 in Linux  Beginner for Linux long-lifetime in USB...はじめてのSSD,MicroSD,USBメモリ延命方法 in Linux  Beginner for Linux long-lifetime in USB...
はじめてのSSD,MicroSD,USBメモリ延命方法 in Linux Beginner for Linux long-lifetime in USB...Netwalker lab kapper
 
osoljp201105_ZFSjiman_nslope
osoljp201105_ZFSjiman_nslopeosoljp201105_ZFSjiman_nslope
osoljp201105_ZFSjiman_nslopeNoriyasu Sakaue
 
DTM用PCのストレージ運用に関する考察
DTM用PCのストレージ運用に関する考察DTM用PCのストレージ運用に関する考察
DTM用PCのストレージ運用に関する考察あーる
 
2017年05月27日 AITCシニア技術者勉強会 第6回「OpenCV入門」
2017年05月27日 AITCシニア技術者勉強会 第6回「OpenCV入門」2017年05月27日 AITCシニア技術者勉強会 第6回「OpenCV入門」
2017年05月27日 AITCシニア技術者勉強会 第6回「OpenCV入門」aitc_jp
 
Lxc cf201207-presen
Lxc cf201207-presenLxc cf201207-presen
Lxc cf201207-presenKouhei Maeda
 
Postgre SQL security_20170412
Postgre SQL security_20170412Postgre SQL security_20170412
Postgre SQL security_20170412Kazuki Omo
 
Infinite Debian - Platform for mass-producing system every second
Infinite Debian - Platform for mass-producing system every secondInfinite Debian - Platform for mass-producing system every second
Infinite Debian - Platform for mass-producing system every secondTaisuke Yamada
 
OpenSolaris Printing Environment
OpenSolaris Printing EnvironmentOpenSolaris Printing Environment
OpenSolaris Printing EnvironmentNaruhiko Ogasawara
 
EthernetやCPUなどの話
EthernetやCPUなどの話EthernetやCPUなどの話
EthernetやCPUなどの話Takanori Sejima
 

Similar a Linux デスクトップ環境のセキュリティを考えてみる (20)

Linux/DB Tuning (DevSumi2010, Japanese)
Linux/DB Tuning (DevSumi2010, Japanese)Linux/DB Tuning (DevSumi2010, Japanese)
Linux/DB Tuning (DevSumi2010, Japanese)
 
ちょっと古いマシンにLinuxを
ちょっと古いマシンにLinuxをちょっと古いマシンにLinuxを
ちょっと古いマシンにLinuxを
 
Tremaで試すFirewall
Tremaで試すFirewallTremaで試すFirewall
Tremaで試すFirewall
 
本当にわかる Spectre と Meltdown
本当にわかる Spectre と Meltdown本当にわかる Spectre と Meltdown
本当にわかる Spectre と Meltdown
 
PXE で linux インストールな本 -1 スピンドルマシンも Linux 化-
PXE で linux インストールな本 -1 スピンドルマシンも Linux 化-PXE で linux インストールな本 -1 スピンドルマシンも Linux 化-
PXE で linux インストールな本 -1 スピンドルマシンも Linux 化-
 
VarnishCache入門Rev2.1
VarnishCache入門Rev2.1VarnishCache入門Rev2.1
VarnishCache入門Rev2.1
 
【学習メモ#4th】12ステップで作る組込みOS自作入門
【学習メモ#4th】12ステップで作る組込みOS自作入門【学習メモ#4th】12ステップで作る組込みOS自作入門
【学習メモ#4th】12ステップで作る組込みOS自作入門
 
Osc10do linux nextstep
Osc10do linux nextstepOsc10do linux nextstep
Osc10do linux nextstep
 
Debian emdebian 20100817
Debian emdebian 20100817Debian emdebian 20100817
Debian emdebian 20100817
 
NetBSDのクロスビルドのしくみとインストール済みLive Imageの作成
NetBSDのクロスビルドのしくみとインストール済みLive Imageの作成NetBSDのクロスビルドのしくみとインストール済みLive Imageの作成
NetBSDのクロスビルドのしくみとインストール済みLive Imageの作成
 
OpenStackクラウド基盤構築ハンズオンセミナー 第1日:ハンズオンNo1
OpenStackクラウド基盤構築ハンズオンセミナー 第1日:ハンズオンNo1OpenStackクラウド基盤構築ハンズオンセミナー 第1日:ハンズオンNo1
OpenStackクラウド基盤構築ハンズオンセミナー 第1日:ハンズオンNo1
 
はじめてのSSD,MicroSD,USBメモリ延命方法 in Linux Beginner for Linux long-lifetime in USB...
はじめてのSSD,MicroSD,USBメモリ延命方法 in Linux  Beginner for Linux long-lifetime in USB...はじめてのSSD,MicroSD,USBメモリ延命方法 in Linux  Beginner for Linux long-lifetime in USB...
はじめてのSSD,MicroSD,USBメモリ延命方法 in Linux Beginner for Linux long-lifetime in USB...
 
osoljp201105_ZFSjiman_nslope
osoljp201105_ZFSjiman_nslopeosoljp201105_ZFSjiman_nslope
osoljp201105_ZFSjiman_nslope
 
DTM用PCのストレージ運用に関する考察
DTM用PCのストレージ運用に関する考察DTM用PCのストレージ運用に関する考察
DTM用PCのストレージ運用に関する考察
 
2017年05月27日 AITCシニア技術者勉強会 第6回「OpenCV入門」
2017年05月27日 AITCシニア技術者勉強会 第6回「OpenCV入門」2017年05月27日 AITCシニア技術者勉強会 第6回「OpenCV入門」
2017年05月27日 AITCシニア技術者勉強会 第6回「OpenCV入門」
 
Lxc cf201207-presen
Lxc cf201207-presenLxc cf201207-presen
Lxc cf201207-presen
 
Postgre SQL security_20170412
Postgre SQL security_20170412Postgre SQL security_20170412
Postgre SQL security_20170412
 
Infinite Debian - Platform for mass-producing system every second
Infinite Debian - Platform for mass-producing system every secondInfinite Debian - Platform for mass-producing system every second
Infinite Debian - Platform for mass-producing system every second
 
OpenSolaris Printing Environment
OpenSolaris Printing EnvironmentOpenSolaris Printing Environment
OpenSolaris Printing Environment
 
EthernetやCPUなどの話
EthernetやCPUなどの話EthernetやCPUなどの話
EthernetやCPUなどの話
 

Más de Kenichiro MATOHARA

ゲーミングプラットホームのLutris
ゲーミングプラットホームのLutrisゲーミングプラットホームのLutris
ゲーミングプラットホームのLutrisKenichiro MATOHARA
 
Raspberry PiのUSB OTGを試す
Raspberry PiのUSB OTGを試すRaspberry PiのUSB OTGを試す
Raspberry PiのUSB OTGを試すKenichiro MATOHARA
 
Raspberry piのsdl等に対応したreal vncを試してみた
Raspberry piのsdl等に対応したreal vncを試してみたRaspberry piのsdl等に対応したreal vncを試してみた
Raspberry piのsdl等に対応したreal vncを試してみたKenichiro MATOHARA
 
鹿児島Linux勉強会2016.04
鹿児島Linux勉強会2016.04鹿児島Linux勉強会2016.04
鹿児島Linux勉強会2016.04Kenichiro MATOHARA
 
Raspberry Piにdiskless modeのalpine linuxを導入してみる
Raspberry Piにdiskless modeのalpine linuxを導入してみるRaspberry Piにdiskless modeのalpine linuxを導入してみる
Raspberry Piにdiskless modeのalpine linuxを導入してみるKenichiro MATOHARA
 
勉強会向けサーバを作ってみる2 / Rasbian jessieを試す/ Google Authenticatorのパスコードを作る
勉強会向けサーバを作ってみる2 / Rasbian jessieを試す/ Google Authenticatorのパスコードを作る勉強会向けサーバを作ってみる2 / Rasbian jessieを試す/ Google Authenticatorのパスコードを作る
勉強会向けサーバを作ってみる2 / Rasbian jessieを試す/ Google Authenticatorのパスコードを作るKenichiro MATOHARA
 
オープンソースカンファレンス大分参加報告 & 勉強会向けサーバを作ってみる
オープンソースカンファレンス大分参加報告 & 勉強会向けサーバを作ってみるオープンソースカンファレンス大分参加報告 & 勉強会向けサーバを作ってみる
オープンソースカンファレンス大分参加報告 & 勉強会向けサーバを作ってみるKenichiro MATOHARA
 
鹿児島らぐはじめました(オープンソースカンファレンス2015大分LT)
鹿児島らぐはじめました(オープンソースカンファレンス2015大分LT)鹿児島らぐはじめました(オープンソースカンファレンス2015大分LT)
鹿児島らぐはじめました(オープンソースカンファレンス2015大分LT)Kenichiro MATOHARA
 
マウスを使わないでキーボードで快適に生活する方法(GNU Screen/tmux/byobu/awesome)
マウスを使わないでキーボードで快適に生活する方法(GNU Screen/tmux/byobu/awesome)マウスを使わないでキーボードで快適に生活する方法(GNU Screen/tmux/byobu/awesome)
マウスを使わないでキーボードで快適に生活する方法(GNU Screen/tmux/byobu/awesome)Kenichiro MATOHARA
 
鹿児島らぐC87配布ペーパー
鹿児島らぐC87配布ペーパー鹿児島らぐC87配布ペーパー
鹿児島らぐC87配布ペーパーKenichiro MATOHARA
 
鹿児島に引っ越しました
鹿児島に引っ越しました鹿児島に引っ越しました
鹿児島に引っ越しましたKenichiro MATOHARA
 
技適なBluetooth GNSS/GPSレシーバーをRaspberryPiで作りたい2
技適なBluetooth GNSS/GPSレシーバーをRaspberryPiで作りたい2技適なBluetooth GNSS/GPSレシーバーをRaspberryPiで作りたい2
技適なBluetooth GNSS/GPSレシーバーをRaspberryPiで作りたい2Kenichiro MATOHARA
 
鹿児島らぐはじめました & オープ ンソースアンカンファレンス鹿児 島のお誘い
鹿児島らぐはじめました & オープ ンソースアンカンファレンス鹿児 島のお誘い鹿児島らぐはじめました & オープ ンソースアンカンファレンス鹿児 島のお誘い
鹿児島らぐはじめました & オープ ンソースアンカンファレンス鹿児 島のお誘いKenichiro MATOHARA
 
「BluetoothでLinuxマシンとAndroidを繋いで話が出来るようにした話」「台風で停電になって省電力の設定をした話」「ネットワークの設定が引き...
「BluetoothでLinuxマシンとAndroidを繋いで話が出来るようにした話」「台風で停電になって省電力の設定をした話」「ネットワークの設定が引き...「BluetoothでLinuxマシンとAndroidを繋いで話が出来るようにした話」「台風で停電になって省電力の設定をした話」「ネットワークの設定が引き...
「BluetoothでLinuxマシンとAndroidを繋いで話が出来るようにした話」「台風で停電になって省電力の設定をした話」「ネットワークの設定が引き...Kenichiro MATOHARA
 
技適なBluetooth GNSS/GPSレシーバーをRaspberryPiで作りたい
技適なBluetooth GNSS/GPSレシーバーをRaspberryPiで作りたい技適なBluetooth GNSS/GPSレシーバーをRaspberryPiで作りたい
技適なBluetooth GNSS/GPSレシーバーをRaspberryPiで作りたいKenichiro MATOHARA
 

Más de Kenichiro MATOHARA (20)

PQI Air Pen Hack
PQI Air Pen HackPQI Air Pen Hack
PQI Air Pen Hack
 
ゲーミングプラットホームのLutris
ゲーミングプラットホームのLutrisゲーミングプラットホームのLutris
ゲーミングプラットホームのLutris
 
USBを保護するUSBGuard
USBを保護するUSBGuardUSBを保護するUSBGuard
USBを保護するUSBGuard
 
Raspberry PiのUSB OTGを試す
Raspberry PiのUSB OTGを試すRaspberry PiのUSB OTGを試す
Raspberry PiのUSB OTGを試す
 
Let’s Encrypt更新話
Let’s Encrypt更新話Let’s Encrypt更新話
Let’s Encrypt更新話
 
Raspberry piのsdl等に対応したreal vncを試してみた
Raspberry piのsdl等に対応したreal vncを試してみたRaspberry piのsdl等に対応したreal vncを試してみた
Raspberry piのsdl等に対応したreal vncを試してみた
 
鹿児島Linux勉強会2016.04
鹿児島Linux勉強会2016.04鹿児島Linux勉強会2016.04
鹿児島Linux勉強会2016.04
 
Raspberry Piにdiskless modeのalpine linuxを導入してみる
Raspberry Piにdiskless modeのalpine linuxを導入してみるRaspberry Piにdiskless modeのalpine linuxを導入してみる
Raspberry Piにdiskless modeのalpine linuxを導入してみる
 
勉強会向けサーバを作ってみる2 / Rasbian jessieを試す/ Google Authenticatorのパスコードを作る
勉強会向けサーバを作ってみる2 / Rasbian jessieを試す/ Google Authenticatorのパスコードを作る勉強会向けサーバを作ってみる2 / Rasbian jessieを試す/ Google Authenticatorのパスコードを作る
勉強会向けサーバを作ってみる2 / Rasbian jessieを試す/ Google Authenticatorのパスコードを作る
 
オープンソースカンファレンス大分参加報告 & 勉強会向けサーバを作ってみる
オープンソースカンファレンス大分参加報告 & 勉強会向けサーバを作ってみるオープンソースカンファレンス大分参加報告 & 勉強会向けサーバを作ってみる
オープンソースカンファレンス大分参加報告 & 勉強会向けサーバを作ってみる
 
OSC15OT 配布ペーパー
OSC15OT 配布ペーパーOSC15OT 配布ペーパー
OSC15OT 配布ペーパー
 
鹿児島らぐはじめました(オープンソースカンファレンス2015大分LT)
鹿児島らぐはじめました(オープンソースカンファレンス2015大分LT)鹿児島らぐはじめました(オープンソースカンファレンス2015大分LT)
鹿児島らぐはじめました(オープンソースカンファレンス2015大分LT)
 
マウスを使わないでキーボードで快適に生活する方法(GNU Screen/tmux/byobu/awesome)
マウスを使わないでキーボードで快適に生活する方法(GNU Screen/tmux/byobu/awesome)マウスを使わないでキーボードで快適に生活する方法(GNU Screen/tmux/byobu/awesome)
マウスを使わないでキーボードで快適に生活する方法(GNU Screen/tmux/byobu/awesome)
 
鹿児島らぐC87配布ペーパー
鹿児島らぐC87配布ペーパー鹿児島らぐC87配布ペーパー
鹿児島らぐC87配布ペーパー
 
鹿児島に引っ越しました
鹿児島に引っ越しました鹿児島に引っ越しました
鹿児島に引っ越しました
 
技適なBluetooth GNSS/GPSレシーバーをRaspberryPiで作りたい2
技適なBluetooth GNSS/GPSレシーバーをRaspberryPiで作りたい2技適なBluetooth GNSS/GPSレシーバーをRaspberryPiで作りたい2
技適なBluetooth GNSS/GPSレシーバーをRaspberryPiで作りたい2
 
鹿児島のOSM状況
鹿児島のOSM状況鹿児島のOSM状況
鹿児島のOSM状況
 
鹿児島らぐはじめました & オープ ンソースアンカンファレンス鹿児 島のお誘い
鹿児島らぐはじめました & オープ ンソースアンカンファレンス鹿児 島のお誘い鹿児島らぐはじめました & オープ ンソースアンカンファレンス鹿児 島のお誘い
鹿児島らぐはじめました & オープ ンソースアンカンファレンス鹿児 島のお誘い
 
「BluetoothでLinuxマシンとAndroidを繋いで話が出来るようにした話」「台風で停電になって省電力の設定をした話」「ネットワークの設定が引き...
「BluetoothでLinuxマシンとAndroidを繋いで話が出来るようにした話」「台風で停電になって省電力の設定をした話」「ネットワークの設定が引き...「BluetoothでLinuxマシンとAndroidを繋いで話が出来るようにした話」「台風で停電になって省電力の設定をした話」「ネットワークの設定が引き...
「BluetoothでLinuxマシンとAndroidを繋いで話が出来るようにした話」「台風で停電になって省電力の設定をした話」「ネットワークの設定が引き...
 
技適なBluetooth GNSS/GPSレシーバーをRaspberryPiで作りたい
技適なBluetooth GNSS/GPSレシーバーをRaspberryPiで作りたい技適なBluetooth GNSS/GPSレシーバーをRaspberryPiで作りたい
技適なBluetooth GNSS/GPSレシーバーをRaspberryPiで作りたい
 

Linux デスクトップ環境のセキュリティを考えてみる

  • 1. Linux デスクトップ環境のセキュリティを考えてみる KenichiroMATOHARA matoken@gmail.com(http://hpv.cc/~maty/) はじめに 普通の PC やサーバは人の目や部屋に鍵を掛けるなどの物理的なセキュリティで守られて いますが、NotePC の場合持ち運ぶので置き忘れたり盗まれたりといったことが起こりやすくな ります。そうなると通常の状態では中のデータにはアクセスし放題になってしまうのでデータ 流出などが怖いです。万が一紛失した場合でも完全にとまでは行かないけれど安心するため の方法を試してみます。一般的なリモートアクセスを警戒したり、アプリケーションの脆弱性に 対応するためにアップデートをこまめに行うと言うようなことはここでは取り上げません。 なお、ここでは Lenovo Thinkpad X201s に Ubuntu12.04 を導入した例を取り上げています。 BIOS の設定 Linux とは直接関係ありませんが BIOS でのセキュリティを考えてみます。 • 起動デバイスの制限。 制限しないと、USB メモリや CD、ネットワークなどから起動して中の Disk が読み書きでき てしまいます。通常時は内蔵 HDD からのみ起動を許可としておきます。 • HDD パスワードの設定 この設定をしておくと、HDD を抜き出して他の端末に接続した時 HDD の中身が見えなく なります。X201s の場合は内蔵、ドッキングステーション以外は認識できません。マスターパス ワードとユーザパスワードが設定可能です。両方設定して普段はユーザパスワードを利用する ようにしましょう。(この設定を行うと USB 外付けなどでは設定したマシンでも HDD の中身は 見えません。内蔵と、ドッキングステーションに入っている場合は OK です。但し、HDD パス ワード入力後に HDD を差し替えると読み込めてしまうようです。これは ThinkPad x230 シリー ズからできなくなっているそうです。) • Intel ATM 無効 リモートから操作が可能な便利な機能ですが、無効にします。 • BIOS パスワード設定 BIOS パスワードを掛けておかないと設定しても誰でも変更できるのであまり意味がありま せん。X201s の場合はマスターパスワードと、ユーザーパスワードが設定できます。ユーザーパ スワードはバックアップバッテリを抜くと消えてしまうそうなのでマスターパスワードも掛けて通 常時はユーザパスワードを利用するようにしましょう。 • 起動時メモリ内容破壊 シャットダウンしたばかりだったり、起動中に電源を落としてすぐであればメモリの内容を読 34
  • 2. み出すことが可能です。その読みだした内容から各種パスワード等を抜き出すことも可能で す。そこで、マシン起動時にメモリの内容を破壊する機能を有効にしておきます。(この攻撃は ターゲットのマシンのメモリを物理的に抜き出して別のマシンで起動することでも可能なので 万全ではありません。私はメモリスロットの蓋に封印シールを張っています。もしこのシールが 剥がれていたらメモリが抜き出された可能性があるという事がわかるのでパスワードや鍵の 変更が行えます。) ストレージの暗号化 ストレージを暗号化していない場合、たとえ root 権限の物でも USB や CD などから別のシ ステムで起動した OS からはデータが読み書きできてしまいます。これを防ぐために暗号化 ファイルシステムを設定します。Windows だと BitLocker(Vista 以降かつ Ultimate/Enterprise/Server Edition)や1 TrueCrypt(サードパーティ製)で、Mac OS X だと FileVault2(Lion 以降)2 でシステム全体を暗号化することが出来るようです。 Linux だと dm-crypt を利用することで/boot 以外の領域を暗号化することができます。ホー ムディレクトリの暗号化だけであれば、eCryptfs などを利用することで暗号化することが可能 です。ログイン時に透過的に復号されるので意識せずに利用できます。Ubuntu のホームディ レクトリの暗号化にも利用されています。 利用者が 1 人の場合は dm-crypt、複数人で利用するのであれば eCryptfs を利用するとい いと思います。両方設定することも可能ですが、NotePC の HDD だと体感速度がかなり低下 します。 dm-crypt を使ったシステムの暗号化 最近のメジャーディストリビューションであれば大抵インストーラが対応しているので、イン ストーラに任せてしまうのが楽です。Ubuntu12.04 の場合通常のデスクトップ版インストーラで は未だ選択できないようです。Alternate 版や Server 版のインストーラを利用してください。 手動でパーティションを設定する場合の注意点としては、パーティション毎に dm-crypt を設 定すると、パスフレーズが全て同じだったとしてもそのパーティションの数だけパスフレーズを 入力する必要があります。3 そのため LVM で/boot 以外の領域を 1 つの暗号化システムとして 1 Windows2000Professional 以降で NTFS を利用すると EFS(EncryptingFileSystem)という暗号化ファ イルシステムを利用することが可能。システムの暗号化はできない。 2 旧バージョンの FileVault は Mac OS X v10.3(Panther)以降に搭載されていますがこれはホームディ レクトリのみの暗号化です。その他暗号化したディスクイメージ機能を利用して一部のデータのみ暗 号化を行うことも可能です。 3 例えば/boot, /, /var, /usr, /home, swap を別のパーティションにして/boot 以外を暗号化すると、起動時 に 5 回パスフレーズの入力が必要になります。 35
  • 3. 確保し、その中に LVM で利用したいパーティションを確保するとパスフレーズの入力が 1 回 となり運用が楽になります。 eCryptfs を使ったホームディレクトリの暗号化 Ubuntu であればインストール時のユーザ設定時や、ユーザ登録時にチェックボックスを on にすることで設定ができます。この時パスワードはログイン時のものと同じに設定され、ログイ ン時に透過的に復号化されます。 もし、ユーザ登録時にホームディレクトリ暗号化のチェックボックスが表示されない場合は ecryptfs-utils パッケージを導入します。 $ sudo apt-get install ecryptfs-utils 既に存在するユーザのホームディレクトリを暗号化する ※念の為作業の前に対象ユーザのホームディレクトリをバックアップしておきましょう。 暗号化したい対象ユーザはログアウトしておきます。暗号化したいユーザアカウントとは別 の管理者権限を持ったアカウントを用意してそのアカウントでログインします。ecryptfs-utils パッケージを導入します。 sudo apt-get install ecryptfs-utils 以下のコマンドでホームディレクトリの暗号化を行います。 sudo ecryptfs-migrate-home –u "ユーザ名" eCryptfs の問題点 • ファイル名長制限 ファイル名も暗号化できますが、暗号化情報もファイル名中に保存されるのでファイル名 長が短くなってしまいます。最大ファイル名長が通常の 255 バイトの場合、144 バイト迄になっ てしまうようです。ほとんど問題は起きないでしょうが何度かこの制限に遭遇したことがありま す。 暗号化ファイルシステムのバックアップ dm-Crypt dm-Crypt はファイルシステムなので、そのままではファイル単位のバックアップは出来ませ ん。マウントした状態でコピーを行う必要があります。私は、一日一回 rsync コマンドで外部スト レージに差分バックアップを行なっています。この外部ストレージも dm-Crypt で暗号化してあ ります。 $ rsync -avv --delete --exclude-from=/home/user/denylist --link- dest=/export/home/user/`/bin/date -d '1 day ago' +%Y%m%d`/ /home/user/ /export/home/user/`date +%Y%m%d`/ 36
  • 4. このコマンドでホームディレクトリ以下を差分のみコピー、差分以外はハードリンクで見た目 毎日のフルバックアップが/export/home/user/以下に保存されます。これを crontab に設定して います。 eCryptfs eCryptfs は暗号状態でも通常のファイル、ディレクトリなので、暗号化状態のままバックアッ プできます。但し、シグネチャが別途あるのでこれも忘れずにバックアップしましょう。データだ けのバックアップだと復元できません。心配であれば復号状態でバックアップしてもいいかも しれません。 Ubuntu の場合シグネチャ情報は以下の場所に有ります。 /home/.ecryptfs/ユーザ名/.ecryptfs/Private.sig 手動マウント方法 何時もは自動的にマウントしてくれますが、システムがおかしくなった時などにマウントでき ないと困ることがあります。手動でのマウント方法を確認しておくと安心です。 dm-Crypt 一番楽な方法は Gnome 等の自動マウントやディスクユーティリティ(gnome-disk-utility)等 に任せる方法です。これだとパスフレーズの入力だけで OK です。Ubuntu の CD で起動する ことでも利用できます。コマンドラインでの操作は以下のようになります。 /dev/sdc1 が dm-Crypt で暗号化された対象のパーティションで、/mnt にマウントする場合 の例です。 $ sudo losetup /dev/loop1 /dev/sdc1 $ sudo cryptsetup luksOpen /dev/loop1 enc Enter passphrase for /dev/loop1: ←設定したパスフレーズの入力 $ ls /dev/mapper/ control enc $ sudo mount -o ro /dev/mapper/enc /mnt eCryptfs 上で書いたように復号化には暗号化したファイル、ディレクトリ以外にシグネチャ情報 (/home/.ecryptfs/ユーザ名/.ecryptfs/Private.sig) も必要です。このファイルの中の 1 行目がマウント時のオプション ecryptfs_sig 2 行目が ecryptfs_fnek_sig になります。 以下は、/home/ecryptfs/.Private を/mnt に手動マウントする場合の例です。 $ sudo mount -t ecryptfs -o ecryptfs_sig=xxxxxxxxxxxxxxxx,ecryptfs_fnek_sig=xxxxxxxxxxxxxxxx,ecryp tfs_cipher=aes,ecryptfs_key_bytes=16,ro /home/ecryptfs/.Private /mnt 37
  • 5. Passphrase: ←設定したパスフレーズの入力(ログインパスワード) Enable plaintext passthrough (y/n) [n]: Attempting to mount with the following options: ecryptfs_unlink_sigs ecryptfs_fnek_sig=379bf09f0b28a000 ecryptfs_key_bytes=16 ecryptfs_cipher=aes ecryptfs_sig=b34bba975345fb8a Mounted eCryptfs 暗号化ファイルシステムの問題点 暗号化ファイルシステムを利用することによって生のファイルシステムに比べてリソースを 消費するようになりディスクアクセスが遅くなります。CPU のリソースについてはここまでの暗 号化ファイルシステムは AES を利用しているので CPU に AES 支援機能があるとかなり軽く なります。 $ grep aes /proc/cpuinfo flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc aperfmperf pni pclmulqdq dtes64 monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr pdcm pcid sse4_1 sse4_2 popcnt aes lahf_lm ida arat dts tpr_shadow vnmi flexpriority ept vpid としてみて AES の表示があればそのマシンは AES 支援機能があるはずです。C2D 以降 や GeodeLX では付いているようです。ハードディスクは 7200rpm の物を利用していますが、 dm-crypt か eCryptfs のどちらかだけの利用であればそこまで遅く感じません。でも、両方を有 効にすると遅くなるのが体感出来ました。最近 SSD に換装してみたところ両方を有効にして いても問題ないくらい早くなりました。このあたりはセキュリティとパフォーマンスのトレードオ フになります。自分しか利用しない NotePC の場合 dm-crypt のみでいいのではないかと思っ ています。 USB メモリの暗号化 USB メモリにデータを入れて持ち運んだり4 、人とデータの受け渡しをすることもあるかと思 います。しかし、dm-crypt や eCryptfs は Linux でしか利用できません。マルチプラットホーム対 応の TrueCrypt を試してみましょう。 TrueCrypt の導入 先ずは TrueCrypt を導入します。http://www.truecrypt.org/downloads から Linux のパッ ケージをダウンロードします。ダウンロードしたアーカイブを展開してできたファイルを実行しま 4 スニーカーネットって言葉最近は使わないんです? 38
  • 6. す。これで/usr/bin 以下に導入されます。 USB メモリの用意 TrueCrypt で利用する USB メモリを用意します。この USB メモリは fat でフォーマットしてお くと、他 OS でも利用できるので便利です。TrueCrypt のイメージはファイル5 や専用パーティ ションが利用できます。常用する場合はパーティションを 2 つに分けて後ろのパーティションを TrueCrypt の領域に確保するのをお勧めします。 前の領域は非暗号化領域にして、TrueCrypt の実行ファイルを保存しておきます。そうする ことで TrueCrypt 非導入マシンでも TrueCrypt が利用できます。 今回は、4GB の USB メモリを 3GB と 1GB の 2 つに分けて前を fat 領域。後ろを TrueCrypt の領域にしてみました。パーティションの設定はディスクユーティリティや GParted 等を利用す ると便利です。 前の fat 領域は LiveUSB にしてみてもいいかもしれません。※1GB 以上あると「スタート アップディスクの作成」の作成などで Ubuntu の導入も可能です。 TrueCrypt の設定 • TrueCrypt を起動します。 • 「Create Volume」ボタンを押します。 Create an encrypted file container Create a volume within a partition/drive の選択肢が表示されます。 今回はパーティションを利用するので後者を選択します。 Standard TrueCrypt volume Hidden TrueCrypt volume の選択肢が表示されます。後者は隠しボリュームが設定出来ます。通常の TrueCrypt のボ リュームの中に更に隠しボリュームを作成して見つかりにくく出来ます。この場合 2 つのパス ワードを設定してパスワードによってどちらかのボリュームがオープンできます。どちらか好み の方を選択してください。 • Volume Location 自分の利用したいボリュームを指定します(/dev/sdb2 等)。選択したボリュームの内容は消 えてしまうので注意深く操作してください。 • Outer Volume Encryption Options 5 ファイルにしておくと暗号化はされますが、誤って削除してしまう可能性が高くなります。 39
  • 7. 暗号化のオプションが選択できます。ベンチマークが利用できるので、暗号強度と速度を 確認して選択してください。今回は、暗号化アルゴリズムに AES-Twofish を、ハッシュアルゴリ ズムに SHA-512 を選択してみました。 • `Outer Volume Password' TrueCrypt ボリュームを利用するためのパスワードを設定します。20 文字以下だと簡単なパ スワードだと警告が表示されます。最大 64 文字まで設定可能です。忘れるとアクセスできなく なるので注意しましょう。鍵ファイルでの運用も可能です。鍵ファイルを利用すると暗号化ファ イルシステムの入った媒体、パスワードの他に鍵ファイルも必要になるので安全性が増します。 ※逆にどれか一つでも紛失すると復号出来なくもなります。 利用するマシンが決まっているときなどはそのマシンにのみ鍵ファイルを保存しておくとそ のマシンでしか開けなくなります。例えば、自宅と仕事場のマシンにのみ鍵ファイルを保存して おき、その鍵を使って暗号化したストレージを持ち運ぶと、万が一落としたりしても鍵ファイル とパスワードがわからないので復号できないといったような運用ができます。 • Outer Volume Format ボリュームのフォーマットを行います。しばらく待ちましょう…。 手元の環境では 2 分程かかりました。 • Volume Created の画面になったら完了です。Exit でウィザードを終了しましょう。 TrueCrypt ボリュームのマウントとアンマウント TrueCrypt 画面で利用したい Slot(Windows の場合はドライブレター)を選択、`Select Device'でさっき設定したボリュームのデバイス名を指定します。この状態で Mount ボタンを押 すとパスワードを聞かれてマウントできます。 アンマウント時はアンマウントしたいスロットを選択した状態で`Dismount'ボタンを押します。 TrueCrypt 非導入のマシンでも復号できるようにする TrueCrypt 領域は TrueCrypt が無いとマウントできません。しかし、TrueCrypt の実行ファイ ルを USB メモリの非暗号化領域に保存しておくと、TrueCrypt を導入していないマシンでも利 用できるようになります。Windows 版の TrueCrypt にはトラベラーディスクという Windows の 実行ファイルを書き出す機能があります。Linux や Mac でも実行ファイルをコピーしておくこと で同じことが可能でした。Linux 版は以下のような方法で実行ファイルの保存が可能です。 TrueCrypt のインストーラを起動します。「Extract .tar Package file」ボタンを押します。ライセ ンスの確認画面が表示され、I accept ボタンを押すと/tmp に.tar ファイルが保存されます。こ れを USB メモリの非暗号化領域に展開することで利用できるようになります。 40
  • 8. ※利用マシン上に必要なパッケージがないと利用できないことがあります。これまでに fuse が無くて利用できないことがありました。 画面ロックの設定 暗号化ファイルシステムを利用していても、当たり前ですがマシンが起動してマウントしてい る間は普通にアクセスできます。離席時などはスクリーンロックをして他者がアクセスできない ようにするように心がけましょう。 スクリーンロックのショートカットは Ctrl+Alt+l です。ロック忘れの対策のために自動ロック の設定もしておきましょう。「システム設定」->「画面の明るさとロック」で、ロックするをオンに、 画面ロックまでの時間を指定、手元では 3 分にしています。サスペンドからの復帰時にパス ワードを要求するにチェックとしています。 これで、3 分以上放置すると自動的に画面ロックがかかりログインパスワードを入力しない とアクセスできなくなります。 なお、Ubuntu11.10 以降設定画面から無くなった電源管理の詳細設定ですが、dconf であ る程度以前の設定が可能です。dconf-tools を導入して org.gnome.settings- daemon.plugins.power 以下を設定すると以前とほぼ同じ設定が可能です。 ※実はスクリーンロックをかけていてもメモリ内の情報を読み込むことで各種パスワードを 盗む攻撃が可能です6 。長時間目を離す場合にはシャットダウンしましょう。 離席時の自動ロック7 Whindows や Mac だと IC カードの社員証などを利用して離席時に自動的にスクリーンロッ クをするソリューションがあります。似たようなことが Linux でも BlueProximity というアプリ ケーションと BlueThooth デバイスを利用して可能です。 BlueThooth デバイス(スマートフォンなど)が別に必要になります。このデバイス側には特に アプリケーションなどは必要有りません。恐らく BlueThooth のペアリングさえ出来れば何でも 良さそうです。手元では Andoroid の IDEOS(BM-IDEOS-200D)という端末で動作確認をしま した。このデバイスを身に付けておき、離席して PC からデバイスの BlueThooth の電波が弱く なるとスクリーンセーバを起動、席に戻ってきて BlueThooth の電波が強くなると自動的にスク リーンセーバを解除といったことが可能になります。スクリーンセーバの復帰時にはパスワード 6 "Lest We Remember: Cold Boot Attacks on Encryption Keys » Center for Information Technology Policy at Princeton" https://citp.princeton.edu/research/memory/ 次の動画が判りやすいです。 "Lest We Remember: Cold Boot Attacks on Encryption Keys - YouTube" https://www.youtube.com/watch? v=JDaicPIgn9U 7 http://goo.gl/LGAHW 41
  • 9. を求めるように設定しておき、他者は利用できないようにしておきます。 利用には blueproximity パッケージを導入して起動します。メニューバーにアイコンが表示 されるのでクリックすると設定画面が表示されます。利用する BlueThooth デバイスを待ち受 け状態にした状態で「Scan for devices」ボタンを押し、利用したいデバイスが表示されるのを 待ちます。表示されたら利用したいデバイスを選択して、「Use selected device」ボタンを押しま す。これでペアリングができたはずです。 引き続き「Scan channels on device」ボタンを押して利用可能チャンネルを探します。 「usable」になっているチャンネルを選択します。(usable になっていても利用できない場合があ るのでその時は別のチャンネルを選択します。) 電波強度の設定を行います。電波強度はステータスバーのアイコンにマウスオーバーする とステータスが表示されるのでそれを参考に設定します。ステータスバーで「Simulation Mode」になっている場合はアイコンの表示は Online/Offline で変わりますが、実際にコマンド は発行されない状態です。 もし、BlueThooth デバイスの電池が切れた場合などでも手動でログインパスワードを入力 することでアンロック可能です。手動ロックした場合も、BlueProximity で自動アンロックされて しまいます。アンロックのコマンドランを空白にして自動アンロック機能を無効にするのもあり かもしれません。 ウィンドウマネージャの設定 最近のディストリビューションでは PC を起動して、ウィンドウマネージャが起動するとログイ ンユーザを入力しなくても選択してパスワードを入力するだけでログイン出来るようになってい ます。ログインユーザの名前が表示されないとユーザ名とパスワードの両方を推測する必要 がありますが、標準状態だととパスワードを推測するだけでログイン出来るようになります。ロ グインユーザを表示しないようにして、ついでにゲストログインもできないようにしてみます。 Ubuntu11.04 以前は GDM というウィンドウマネージャが標準で利用されていました。この GDM の場合は GUI の設定画面からログイン情報を非表示にすることが出来ましたが、 Ubuntu11.10 以降の Lightdm では GUI での設定は見つかりませんでした。調べてみたところ 設定ファイル(/etc/lightdm/lightdm.conf)を編集することで設定が可能でした。 /etc/lightdm/lightdm.conf の[SeatDefaults]セクションに「greeter-hide-users=true」を設定す ることでログインユーザを非表示に、同様に[SeatDefaults]セクションに「allow-guest=false」を 設定することでゲストユーザのログインが不可になります。 以下は標準状態の/etc/lightdm/lightdm.conf にこの設定を加えた例です。 [SeatDefaults] greeter-session=lightdm-gtk-greeter user-session=ubuntu autologin-user= greeter-hide-users=true 42
  • 10. allow-guest=false 紛失した PC を追跡する 万が一 PC を紛失してしまった場合追跡するための Adeona8 /Prey9 などといったアプリケー ションがあります。PC の状態やカメラの画像などをリモートネットワークなどに保存するように なっています。盗難時などにはこの情報を役立てることが出来るかもしれません。 私は以前 Adeona を利用していたのですが、残念ながら現在は開発が止まっているように 見えます。P2P ネットワークを利用してデータをアップロードしていたのですが利用者もいなく なりこのネットワークにも接続できなくなってしまいました。 現在は似たようなことをする Script を書き、定期的に実行することで Adeona の代わりにし ています。今から設定するのであれば Prey を利用するのが良さそうです。Prey は開発も活発 で各種プラットホームにも対応しています。 以下は私が実際に利用している Script の例です。リモートサーバとの間は ssh のパスフ レーズなし鍵認証を利用しています。リモートサーバに鍵登録時はコマンドを指定するようにし ましょう。そうでないとこの鍵を利用してサーバに侵入されてしまいます。http アクセスのために w3m、カメラの操作に v4l-utils、キーロガーのために logkeys を利用しています。最後のコマン ド実行は、リモートサーバにファイルを用意しておき、通常時は空のファイルにしておいて万が 一乗っ取られた場合このファイルの中に実行したいコマンドを記述してデータ消去やリモート アクセスが出来るように設定してあります。 データ消去は理想は GNU core utilities の shred を全領域に掛けることですが時間がかか るので特に危ないもの(ssh key など)だけは shred を実行、その後ホームディレクトリなどを削 除。めぼしいものがなくなったらまた shred を掛けると行ったことをすると安心かもしれません。 利用者の画面に警告メッセージなどを表示するのも効果的かもしれません。 #!/usr/bin/perl $DATE=`/bin/date +%Y%m%d%H%M%S`; chomp $DATE; $LOG="~/var/adeona_m/$DATE"; open(FILE,">$LOG.txt"); open(STDERR,">&FILE"); print FILE "#-- iwconfig"; 無線 LAN 情報の取得 print FILE `/sbin/iwconfig`; print FILE "#-- ifconfig"; ネットワーク情報の取得 8"Adeona: A Free, Open Source System for Helping Track and Recover Lost and Stolen Laptops" http://adeona.cs.washington.edu/index.html 9"Open source anti-theft solution for your laptop, phone and tablet – Prey" https://preyproject.com/ 43
  • 11. print FILE `/sbin/ifconfig`; print FILE "#-- env"; ネットワーク環境変数の取得 print FILE `/usr/bin/w3m -dump http://replay.ne.jp/mk/cgi- bin/env.cgi`; print FILE `/usr/bin/w3m -dump http://ifconfig.me/all`; close(FILE); #-- カメラでの撮影 `/usr/bin/v4lctl webcam $LOG.jpg`; #-- datacopy ログファイルの送信 `/usr/bin/scp -p $LOG.txt remoteuser@remoteserver:~/x201s.log/`; `/usr/bin/scp -p `ls -t1 ~/.logkeys/ | head -1` remoteuser@remoteserver:~/x201s.log/` キーロガーのログ送信 `/usr/bin/scp -p ~/.webcamd/pre-webcam.jpg remoteuser@remoteserver:~/x201s.log/$DATE.jpg`; 撮影データ送信 #-- コマンド実行 `/usr/bin/scp -p remoteuser@remoteserver:~/x201s.log/command ~/tmp`; `~/tmp/command`; 最後に 幸い実際に置き忘れたり盗まれたりといったことはまだないのですが、やってしまいそうな のでこういった設定をしてみています。役に立たないほうがいいんですけどね。 一人で考えて設定しているのでどの程度セキュリティが保たれているか不安な部分があり ます。ご意見をいただけると幸いです。 初出 小江戸らぐの以下の発表を元にしました。 • 20081213 12 月のオフな集まり(第 77 回) 「紛失した PC を追跡する Adeona」10 • 20081220 インストールパーティ in 電大鳩山 「Slax で暗号化 fs を持ち運ぶ」11 • 20110115 11 月のオフな集まり(第 102 回) 「偏執的な人の為の? NotePC セキュリティ HDD 編」12 • 20120609 6 月のオフな集まり(第 119 回) 「BT 端末を使って離席時に自動スクリーンロックをする」13 10 http://www.slideshare.net/matoken/koedo7720081213 11 http://www.slideshare.net/matoken/koedo20081220-install-party 12 http://www.slideshare.net/matoken/notepc-hdd-1102 13 http://hpv.cc/~maty/pukiwiki1/index.php?cmd=read&page=Linux%2FDesktop%2F%CE %A5%C0%CA%BB%FE%A4%CE%BC%AB%C6%B0%A5%B9%A5%AF%A5%EA%A1%BC %A5%F3%A5%ED%A5%C3%A5%AF 44