- 2009-01-30 (金)
- 未分類
-

iPhoneを脱獄(jailbreak)して何も考えずにOpenSSH入れてませんか?
そのiPhoneはいつか侵入されるかもしれません。この記事ではOpenSSHを安全に使うための設定をご紹介します。
2009-01-30 記事改訂:記事内容を全面改定しました。情報の追加、より安全な設定例に変更。
SSHが必要かどうかを考える
脱獄後のiPhoneの使い方を紹介した記事において『SSHでiPhoneに接続して作業すること』を前提としたものがあります。確かにiPhoneの内部を母艦からサクサクいじれる便利なツールです。しかし、後述しているような危険性もあります。もし貴方がiPhoneにファイルを転送したいだけならiFunBoxなどのツールを用いてOpenSSHを導入しないと言う選択肢があります。是非ご検討ください。侵入されたら何がされる?
iPhone内部の情報は暗号化されていませんので大抵の情報が盗めます。- アドレス帳 /var/mobile/Library/AddressBook/AddressBook.sqlitedb
- 着信履歴 /var/mobile/Library/CallHistory/call_history.db
- Cookies /var/mobile/Library/Cookies/Cookies.plist
- 予測変換用入力履歴など /var/mobile/Library/Keyboard/*.dat
- etc…
侵入された事例
実際に侵入された事例が紹介されています。 脱獄iPhoneに侵入された事例と関連情報。(超最低限やること)root及びmobileユーザのパスワードを変更する
iPhoneにはユーザとして”root”及び”mobile”が登録されています。初期パスワードは両方とも”alpine”です。このままではあまりにも危険。OpenSSHを導入する、しないに関わらずパスワード変更はしましょう。 必須じゃないけどセキュリティー関連 – iphooone wiki 安全なパスワードとは – Google検索(超最低限やること)SBSetttings/BossPrefsでSSHサービスをON/OFFする
手動での切り替えは厳密にはセキュリティではないと思いますが…CydiaからBossPrefsもしくはSBSettingsを導入することで、SSHサービスのON/OFFを切替えることができます。必要ないときは切ると言うのも1つの手段かと思います。ちなみにOFFにしていてもiPhoneを再起動すると自動でONになっちゃいます。(私は常にONだったりします。その分設定でフォローします。) SBSetttings – ステータスバー(時計のあたり)をスリスリして起動します。
BossPrefs – ホーム画面のアイコンから起動します。
(最低限やること)鍵認証方式にする
長くても10文字前後のパスワードだけに頼るのではなく、鍵ファイルを持っていないとSSHログインができないような設定をしてみましょう。これをやっておくと安心感がぐっと増します。 以前はrootユーザでログインできる設定例としていましたが…2009-01-30 記事改訂に合わせてrootユーザではログインできない設定例に変更しました。 どうしてもrootユーザログインって方は手順を読み替えてください。2.RSA認証キーの作成 ・su mobileはsu rootに読み替える。 3.公開鍵の設置 4.秘密キーの設置 ・/var/mobileの部分を/var/rootに読み替える。 5.sshd_configの調整 ・PermitRootLogin yesにする。
参考サイト
SSH2: Secure Shell の利用 PuTTY, WinSCP こちらが大変参考になります。私が説明する必要ないくらいですが備忘録代わりに手順を紹介。1.PuttyでiPhoneに接続
iPhone上のmobile terminalでは入力が大変なので以下の作業はPC上から行います。 PuttyやUTF-8 TeraTerm Pro with TTSSH2などのツールをダウンロードしてSSH接続を行ってください。2.RSA認証キーの作成
# su mobile モバイルユーザになる… # ssh-keygen -t rsa Generating public/private rsa key pair. Enter file in which to save the key (/var/mobile/.ssh/id_rsa):Enter Created directory ‘/var/mobile/.ssh’. Enter passphrase (empty for no passphrase):パスフレーズを入力(ログイン時に使います。ユーザパスワードとは違うモノを。) Enter same passphrase again::パスフレーズを再度入力 Your identification has been saved in /var/mobile/.ssh/id_rsa. Your public key has been saved in /var/mobile/.ssh/id_rsa.pub. The key fingerprint is:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx
3.公開鍵の設置
# cat /var/mobile/.ssh/id_rsa.pub >> /var/mobile/.ssh/authorized_keys authorized_keysに公開鍵を追加して… # rm /var/mobile/.ssh/id_rsa.pub 公開鍵はもういらないので消しちゃう # chmod 700 /var/mobile/.ssh 権限を正しく設定(念のため) # chmod 600 /var/mobile/.ssh/authorized_keys 権限を正しく設定(念のため)
4.秘密キーの設置
PCからWinSCPなどでiphoneに接続し、 秘密鍵ファイル(/var/mobile/.ssh/id_rsa)をPC上に移動します。5.sshd_configの調整
/etc/ssh/sshd_configを調整します。sshd_configはCydiaからOpenSSHをアップデートすると上書きされますのでご注意ください。(折角の設定が消えちゃいます。) mobileユーザのままじゃいじれないのでrootになる。suまずはバックアップを取りましょう。
cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak.YYYYMMDDいじる。
vi /etc/ssh/sshd_config以下が変更点です。
# HostKey for protocol version 1 #HostKey /etc/ssh/ssh_host_key version1は使わない PermitRootLogin no rootユーザではログインさせない #RSAAuthentication yes PubkeyAuthentication yes AuthorizedKeysFile .ssh/authorized_keys 公開鍵方式を使う # To disable tunneled clear text passwords, change to no here! PasswordAuthentication no パスワード認証は行わない
6.サービスの再起動
launchctl stop com.openssh.sshd launchctl start com.openssh.sshd
7.鍵を使って接続
SSH2: Secure Shell の利用 PuTTY, WinSCP の[実際のログイン]を参考にして接続します。 windows+puttyなら以下のような手順になります。- puttygen.exe起動
- [load]-[id_rsa選択]-[パスコード入力]-[save privatekey]-[id_rsa.ppkで保存]
- puttyjp.exeを起動
- [接続:SSH:認証]-[認証のためのプライベートキーファイル]-[id_rsa.ppkを指定]
(さらに安全にするために)さらに突っ込んだ設定例
これ以降はさらに突っ込んだ設定例などを紹介していきます。余裕のある方は是非。LANからの接続に限定する
LANからのSSH接続のみ許可することもできます。/etc/ssh/sshd_configに以下のような1行を追加します。AllowUsers mobile@192.168.0.*192.168.0.*は環境によって変ります。設定を変更したらSSHサービスを再起動するのをお忘れなく。
launchctl stop com.openssh.sshd launchctl start com.openssh.sshd
SSHのポート変更
/etc/ssh/sshd_configを以下のように変更してみましょう。するとSSHサービスのポートが変更され、悪意を持った単純な攻撃から”ちょっとだけ”守れるかもしれません。Port 12345上記の設定例ではポート番号が12345になります。ただし、これは接続するプログラムでポート番号を指定しなくてはいけなかったり、ファイアーウォールの設定をいじらなくちゃいけなかったりします。私は都合により22番のままです。ポート番号は1024以降で空いているポートを指定します。10000番台ですかね。設定を変更したらSSHサービスを再起動するのをお忘れなく。
launchctl stop com.openssh.sshd launchctl start com.openssh.sshd
ログを取る
ログを取っておくとさらに安心です。 syslogd – iPhone iPod touchでsyslog for 2.0 – iPodayがsyslog取得に際して大変参考になります。私は/etc/syslog.confの中身を以下のようにして常にログを取るようにしています。auth.* /var/log/secureログを読む 定期的にログをチェックしましょう。以下はログイン失敗例。
Jan 30 00:00:00 iPhone22 sshd[348]: ROOT LOGIN REFUSED FROM xxx.xxx.xxx.xxx Jan 30 00:00:00 iPhone22 sshd[913]: Failed password for root from xxx.xxx.xxx.xxx port 35637 ssh2 Jan 30 00:00:00 iPhone22 sshd[976]: Received disconnect from xxx.xxx.xxx.xxx: 14:攻撃が連続しているときはSSHを切ったり、LAN環境だったらファイアーウォールを見直したりしましょう。攻撃者のIPアドレス(xxx.xxx.xxx.xxxの部分)をIPひろばなどで検索するとどこからの攻撃なのかわかります。
どんなアプリがどんな通信をしているのか知る
侵入のされやすさからいつも話題になるのはOpenSSHですが、ポートを開いているアプリケーションはそれだけではありません。lighttpd(HTTPサーバ)やVeency(VNCサーバ)などのサーバー系アプリケーションの導入は、OpenSSHと同程度に注意を払う必要があるかもしれません。 そして、どんなアプリがどんな通信をしているのか調べられるとさらに良いかと。たとえば… ポートを空けているプロセスを列挙
lsof -i -P|egrep "(LISTEN|ESTABLISHED)"
ネットワークを流れているパケットをダンプ
tcpdump -s 1600 -X
-
匿名
-
goodegg
-
匿名
-
goodegg
-
http://www.ittworks.co.jp/hibilog/2008/08/iphonenotes%e4%bd%bf%e3%81%84%e3%81%9f%e3%81%95%e3%81%abjailbreak%e3%81%ab%e3%81%a4%e3%81%84%e3%81%a6%e8%aa%bf%e3%81%b9%e3%81%a6%e3%81%bf%e3%81%9f/ iPhoneNotes使いたさにJailBreakについて調べてみた — hibilog 2008
-
あつし
-
goodegg
-
TTT
-
goodegg
-
TTT
-
goodegg
-
TTT
-
Pat
-
goodegg
-
Pat
-
taku
-
goodegg
-
…
-
http://web.zgo.jp/2008/1018/res355/ [脱獄]iPhoneに入れているJailbreak向けアプリ | Web scratch
-
http://watrix.org/blog/archives/167 iPhoneOS 2.2.1が来た。 « watrix
-
goodegg
-
知らない人
-
知らない人(素人の意)
-
goodegg
-
jailbreaker
-
知らない人(素人の意)
-
goodegg
-
知らない人
-
nobu
-
goodegg
-
nobu
-
goodegg
-
nobu
-
goodegg
-
まるぼろ
-
goodegg
-
まるぼろ
-
まるぼろ
-
nobu
-
goodegg
-
nobu
-
pine
-
goodegg
-
mon
-
baron
-
goodegg
-
fig
-
http://toyholic.com yui
-
goodegg
-
http://toyholic.com yui
-
http://toyholic.com/archives/1337 iPhone viエディタ インストール – O0ps
-
hermit
-
http://gori.me/?p=842 iPhone Jailbreak後のセキュリティ | gori.me
-
http://x2.xrea.jp/wp/?p=155 携帯PC技術研究所
-
http://gori.me/?p=859 iPhone向けのウィルスが登場 | gori.me
-
imatom
-
http://atpons.snapmix.jp/?p=971 atpons【あとぽんず♪】 » Blog Archive » iPhone/iPod touchを脱獄する前,した後に知っておく(やっておくべき)ポイント 【3.2.1版】
-
3g
-
カルパッチオ
-
himawari
-
goodegg
-
himawari
-
goodegg
-
himawari
-
http://iphonedays-satoshi.blogspot.com Satoshi
-
http://gajethouse.blog3.fc2.com/blog-entry-25.html ガジェットさん家
-
http://littlestrokes.orz.hm/wordpress/?p=2232 WordPress Note – JailBreak
-
http://toyholic.com/node/1766 iPhone 3.1.2 Open SSH 公開鍵認証 – O0ps
-
garako
-
http://littlestrokes.orz.hm/wordpress/?p=2388 WordPress Note – OpenSSH on iPhone4
-
http://littlestrokes.orz.hm/wordpress/?p=2391 WordPress Note – OpenSSH Port変更
-
yamada
-
http://kagayakikun.com/2011/02/10/iphone-ssh-change-password/ SSHパスワードの変更「iPhoneのJB済みのセキュリティを向上」 | カガブログ新館「マカオ」
