2011年11月13日日曜日

ZBOX nano に入れた Ubuntu Server にリモート接続する

Ubuntu Serverにちょっと触れる


どうも。
いち、プログラマのyu1rowです。
今回は、前回インストールが終わったUbuntu Serverをイジります。

課題1:電源を入れても画面(テレビ)に表示されない


インストールは我が家のテレビ(REGZA)に繋いで行いました。
そして完了後、そのまま操作を続けようとしたら何も表示されなくなりました。
これはバーチャルコンソールを使うという方法で前回は逃げていましたが、今回コレを解決しようと思います。

解決する方法はたったの2ステップ!

[1.ブートローダ(GRUB)の設定をイヂる]
ウンチクは置いときましょう。
とにかく設定ファイル(/etc/default/grub)の"GRUB_CMDLINE_LINUX_DEFAULT"に"nomodeset"を書くと、テキストがズラズラーっと流れていく昔ながらのLinuxの起動画面にできます。
低解像度になりますが、どうせ後で他のパソコンから接続するようにするんだからどーでもいい。
$ sudo vi /etc/default/grub
GRUB_CMDLINE_LINUX_DEFAULT='nomodeset'

※ファイル修正後に以下のようにupdate-grubコマンドで設定を反映しないと意味が無い。忘れないこと。
$ sudo update-grub

[2.再起動]
$ sudo reboot

以上です。

課題2:インターネットに繋げる


我が家ではDHCPサーバが既に稼動してまして、たぶんブロードバンドルータなどを使用している場所では大体DHCPサーバが動いてると思います。
そんなワケで、IPを自動で取得するなら以下の設定だけでOK。
あ、固定IPを割り振る設定方法はググって下さいw

[まずはeth0があるか確認]
ZBOX nanoでは以下のコマンドでeth0、wlan0、loが列挙されるハズ。
$ ifconfig -a

[設定ファイルの修正]
確認できたら今度は設定ファイル(/etc/network/interfaces)をいぢる。
$ sudo vi /etc/network/interfaces
auto lo
iface lo inet loopback

auto eth0
iface eth0 inet dhcp
※1、2行目は最初からあると思う。今回は4、5行目を追加。

[ネットワークの有効化]
設定ファイルを変更したら、以下のコマンドでネットワークを有効化できるはず。
$ sudo /etc/init.d/networking restart

[疎通確認]
googleさんに5回ほどpingでも送って確認してみましょか。
$ ping -c 5 google.com
↓こんな感じのメッセージが最後に表示されたら成功!
--- google.com ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 1000ms
rtt min/avg/max/mdev = 55.000/55.000/55.000/0.100 ms

閑話:vimをインストールする


設定ファイルを編集しながら、なんかviがすんげぇ使いづらいなぁって思ってたんです。
こりゃ普通のvimじゃないなぁって思って調べてみました。

"vi"を知らない?ちょー有名なテキストエディタだよ!ちょー有名なんだってばよ!
Windowsなら"メモ帳"って感じ?Linuxにはだいたい入ってる。
使い方から歴史まで、いろんな情報はグーグル先生が知ってる。
先生、詳しい説明はお願いします!
ちょー有名なテキストエディタにはemacsなんてのもあるけど、俺はダンゼンvi派!
viなんてどーでもいいよ!って人は閑話は読み飛ばしちゃってもかまいません。でもvi使おうよ。

まず、viのある場所を確認。
$ whereis vi
vi: /usr/bin/vi /usr/share/man/man1/vi.1.gz
そしたら、見っけたファイルを見てみる。
$ sudo ls -al /usr/bin/vi
lrwxrwxrwx 1 root root 20 2011-11-14 00:00 /usr/bin/vi -> /etc/alternatives/vi
/etc/alternatives/viにリンクしてるらしい。更に掘り進む。
$ sudo ls -al /etc/alternatives/vi
lrwxrwxrwx 1 root root 17 2011-11-14 00:00 /etc/alternatives/vi -> /usr/bin/vim.tiny
↑実体見っけました!・・・で、vim.tinyって何?って思ったときは迷わずググる。"vim-tiny"はvimの簡易版らしい。
っちゅーワケでネットにも繋がったし、vimの通常版をインストールすることにした。
インストールは(ネットに繋がっていれば)コマンド一つでOK!カンタン!
$ sudo apt-get install vim

実体はどうなったかな・・・?
$ sudo ls -al /etc/alternatives/vi
lrwxrwxrwx 1 root root 18 2011-11-14 00:00 /etc/alternatives/vi -> /usr/bin/vim.basic
↑よし!vim.basicに切り替わってた!これでviコマンドで使い慣れたvimが使える!よかったよかった!

課題3:OpenSSHをインストールする


いつまでもテレビに繋ぎっぱなしだと家族に怒られちゃいます。
そこで、他のパソコンから操作できるようにSSHサーバを入れてみます。
あ、ちゃんとインターネットに繋がるようにしてからじゃないとダメだかんね?

[探してみる]
Ubuntuのパッケージソフトを管理するソフトは"apt"っていうらしい。
単純に使うだけの表面上のお付き合いはそんなに難しくない。
まずはインストールできるソフトの一覧を更新して、その中かからお目当てのSSHサーバを探してみる。
SSHサーバの名前は"openssh-server"ってのは知ってるけど、一応探してみるんだ。自己満足で。
更新は"apt-get update"、検索は"apt-cache search"
$ sudo apt-get update
$ apt-cache search openssh-server
openssh-server - secure shell (SSH) server, for secure access from remote machines
↑ちゃんと"openssh-server"があった。

[そしてインストール]
ちょーカンタン。"apt-get install"でインストール。
$ sudo apt-get install openssh-server
インストール中に出てくる
[The following extra packages will be installed] は、インストールするソフトに必要な、他のソフト一覧、
[Suggested packages] は、そのほかオススメソフト一覧、
らしい。
Do you want to continue [Y/n]?って聞かれたら、"y"でインストールが始まる。

[繋いでみる]
インストールが終わったら、SSHサーバがちゃんと動いているか確認してみる。
自分で自分に繋ぐのが一番手っ取り早い。
$ ssh localhost
Are you sure you want to continue connecting (yes/no)? yes
steve@localhost's password: (パスワード)
↑初めて繋ぐときは公開鍵をローカルに保存したりとか、色々ごちゃごちゃやりますが、"yes"で接続できます。
ウェルカム的なメッセージが出たら接続成功!
↓接続を切るときは、"exit"とか"logout"で。
$ exit

課題4:ファイアーウォールを設定する


サーバーを運用するにはセキュリティってモノを考えるべきです。
今回は、外から誰かがサーバに繋ごうとすると全部シカトする設定をします。
でも、SSHサーバをインストールしたのでその接続だけは受け入れてやります。

設定には他のLinuxでもおなじみの"iptables"が使用できます。
でも、Ubuntuではカンタンにファイアーウォールの設定ができる"ufw"っていうコマンドがありました。
楽チンなんで、今回はこれを使います。

[ファイアーウォールを有効にして、接続をシカトする]
"ufw enable"でファイアーウォールを有効にします。
$ sudo ufw enable

[SSH(22番)だけ受け入れる]
SSHの接続には22番のポートを使用します。
"ufw allow"で22番の接続だけは受け入れてやります。
$ sudo ufw allow 22

[ファイアーウォールの状況、ルールを確認する]
ファイアーウォールが動作(active)しているか、22番ポートは許可されているかを"ufw status"で見てみます。
$ sudo ufw status
Status: active

To                         Action      From
--                         ------      ----
22                         ALLOW       Anywhere
22                         ALLOW       Anywhere (v6)
↑ファイアーウォールは有効(active)、22番だけ許可されている。

[ルールを消したり、リセットしたりする]
許可を取り消したい場合、"ufw delete allow"を、全部の許可ルールをリセットしたい場合、"ufw reset"を行います。
$ sudo ufw delete allow 22
$ sudo ufw reset

[ファイアーウォールを無効にする]
ファイアーウォールを無効にする場合、"ufw disable"とします。
これを実行した場合、全部の接続を受け入れることになります。
$ sudo ufw disable

[IPアドレスの調べ方]
他のパソコンから接続するには、接続する先のIPアドレスを知らなければなりません。
自分自身のIPアドレスが何なのか"ifconfig"を使用して調べます。
$ ifconfig eth0
eth0      Link encap:Ethernet  HWaddr 00:11:22:33:44:55
          inet addr:192.168.1.15  Bcast:192.168.1.255  Mask:255.255.255.0
"inet addr"のところの"192.168.1.15"ってなってるのがIPアドレス。

[他のパソコンから繋いでみる]
ちゃんと設定ができたら他のパソコンからSSHのクライアントソフトで22番ポートに繋げることができるはずです。
SSHクライアントソフトは無料のものがいくつもあります。
俺はその中でも良く使われている"putty""Poderosa"を併用しています。
サーバのIPアドレスがわかったら、繋いで確かめてみましょう。
SSH接続に必要な情報は以下の通りです。
ホスト(IPアドレス)上記で調べたIPアドレス。
ポート番号普通は22番。
SSHプロトコルバージョン今回入れたOpenSSHは、設定を変えなければバージョン"2"。
ユーザID接続するユーザID(今回の例では"steve")。
パスワードパスワードで認証する場合、ユーザのパスワード。
エンコーディング文字の表示方式です。UbuntuのデフォルトはUTF-8。
他のパソコンから操作できるようになったらもうテレビに繋ぐ必要もありません。
HDMIケーブルなんか引っこ抜いちゃいましょう!
まぁ、テレビ使い続けるってのもひとつのテですけどね?

番外編:タイムゾーンを変更する


本筋とは全然関係無いんですが、自分用のメモです。
Ubuntuのインストールをした後にタイムゾーンを変更したい場合、以下のコマンドを使用します。
ここで"Asia/Tokyo"を選ぶと日本時間(JST)を使用する設定に変更できます。
$ sudo dpkg-reconfigure tzdata

0 件のコメント:

コメントを投稿