それマグで!

知識はカップより、マグでゆっくり頂きます。 takuya_1stのブログ

習慣に早くから配慮した者は、 おそらく人生の実りも大きい。

iPhoneのSSHdを有効にしてログインユーザーを作り、セキュリティ対策

iPhoneにsshdをインストールしました。

sshd をインストール

cydia から sshd をインストール。

sshdの基本設定。

ssh経由のアクセスを許可すると、グローバルIP*1iPhoneはBrute Force Attack を喰らってしまう可能性があるので、パスワードログインとrootログインをオフにした。

rootのパスワードを変えるって言うのも面倒だったので公開鍵認証だけ許可するようにした

#中略
41 PermitRootLogin no
#中略
60 #PasswordAuthentication  yes
60 PasswordAuthentication  no
#中略
118 ## allow access from tethering connection
119 Match Address 172.20.10.*
120   PasswordAuthentication yes

設定は、次のことをしている。

  • rootのsshログインのオフ
  • パスワード認証のオフ
  • テザリングのクライアントIP (172.20.10.*)のみパスワードログイン許可

rootパスワードを変えて忘れちゃうと目も当てられないので、以上のことを行った。
もし、sshでログインできなくなってもcydia でモバイルターミナルをインストールすれば、iPhoneにTerminalがインストールされ緊急回避できる。

自分専用のユーザを追加。

root でログインも嫌だし、mobileユーザってのも芸がない。やっぱり自分のユーザーIDを作りたいよね。

iphonesshで接続して vi 起動するか、scp で次のファイルを転送

add_user.sh

#!/bin/bash
printf "Enter FullNneme: "
read fullname
printf "Enter User Name (Login name):"
read user
group=$user
uid=1000
gid=1000
home=/var/$user

echo home=$home
echo user=$user
echo fullname=$fullname
echo "$group:*:$gid:$user" #>> /private/etc/group
echo "$user::$uid:$gid::0:0:$fullname:$home:/bin/sh" #>> /private/etc/master.passwd
passwd $user
mkdir $home
chown $user:$group $home
id $user
echo user $user\($fullname\) added.

後はコレを実行して 自分の名前のユーザを追加し

root@iphone5s : bash ./add_user.sh

ユーザーが作られたことを確認

takuya@iPhone5s:~$ id
uid=1000(takuya) gid=1000(takuya) groups=1000(takuya)
takuya@iPhone5s:~$ pwd
/var/takuya

あとは、パスワードログインだと不便なので公開鍵を登録する。

ssh-copy-id iphone5s

として公開鍵を送り込めば終わり。これでいつものユーザーでいつものSSHサーバーの出来上がり。


iOSって純粋にUNIXなので本当に楽。
仮想マシンUNIX作らなくてもiOSで出来るんじゃね?ッて思ってしまう。

ポータブルなUNIX環境って素敵です。

あとはaptitude でインストール

cydia から aptitude をインストールすれば、いつものLinuxみたいに使えるようだ。今後試したい

ruby もあるし

takuya@takuyas-iPhone5c:~$ aptitude search ruby
p   ruby                                                - optimized for developer happiness
p   ruby1.8.6                                           - optimized for developer happiness
p   rubygems                                            - standard ruby package manager
takuya@takuyas-iPhone5c:~$

pythonも見つかる

takuya@takuyas-iPhone5c:~$ aptitude search python
p   iphone-python                                       - example applications (with source) in Python
p   python                                              - architectural programming language

phpもあるし

takuya@takuyas-iPhone5c:~$ aptitude search php
p   php                                                 - overly popular HTML templating language
p   touch-lighttpd-php-mysql                            - iOS WebStack (Lighttpd, PHP(GD), MySQL)

MySQLもある。

takuya@takuyas-iPhone5c:~$ aptitude search mysql
p   com.was.mysql                                       - world's most popular open source RDBMS
p   touch-lighttpd-php-mysql                            - iOS WebStack (Lighttpd, PHP(GD), MySQL)

Httpdもあるようだ

takuya@takuyas-iPhone5c:~$ aptitude search httpd
p   lighttpd                                            - very small, supposedly fast, webserver
p   net.limneos.sbstogglelighttpd                       - Lighttpd Toggle for SBSettings
p   net.was.lighttpd                                    - lighttpd toggle added to Settings app
p   touch-lighttpd-php-mysql                            - iOS WebStack (Lighttpd, PHP(GD), MySQL)


iPhoneiPad かAppleTVを脱獄してサーバーとして使えばそれなりに便利なんじゃないだろうか。

*1:最近のキャリアは網内ローカルIP割り当てるらしいですが