屋根裏Linux

04 Raspberry Pi 初期セキュリティ設定等

投稿日:May 4, 2014 投稿者:camelinsect

Raspberry PiのファイルシステムをHDDに移行する前に初期のセキュリティ設定だけ実施してしまいましょう。
あと、設定に欠かせないviエディタを高機能版のvimに置き換えます。
もうちょっとちゃんとしたセキュリティ設定は後ほど嫌というほどやりますので今回は以下だけです。

1.OSとファームウェアのアップデート
2.作業ユーザーの作成と初期ユーザーpiの無効化
3.vimのインストールと設定
4.SSHの設定(接続ポートの変更とrootユーザーでのログイン禁止)

【1.OSとファームウェアのアップデート】

まずアップデート
sudo apt-get update
sudo apt-get upgrade
途中の質問にはyを入力。

ラズベリーパイのファームウェアもアップデート
sudo rpi-update

更新が終わったら一度再起動します。
sudo reboot

再起動したら再度TeraTermでログインします。

【2.作業ユーザーの作成と初期ユーザーpiの無効化】

作業用ユーザーの作成

ユーザーrootは何でもできてしまう管理者ユーザーです。
システムを破壊するのも簡単にできてしまいます。
安全なサーバ運営を実施するため、普段は一般ユーザーを使い、必要な時だけrootになるようにします。
またデフォルトユーザーpiは周知なので、セキュリティ向上のため別名のユーザーを作成してpiと同等の権限を与えます。

sudo adduser username (usernameに好きな名前を入れてください)
Adding user `username' ...
Adding new group `username' (1004) ...
Adding new user `username' (1001) with group `username' ...
Creating home directory `/home/username' ...
Copying files from `/etc/skel' ...
Enter new UNIX password: ←パスワードを入力
Retype new UNIX password: ←パスワードの再入力
passwd: password updated successfully
Changing the user information for username
Enter the new value, or press ENTER for the default
Full Name []: この辺はそのまま空欄でエンターでOK
Room Number []:
Work Phone []:
Home Phone []:
Other []:
Is the information correct? [Y/n] y

※ユーザーを追加するコマンドはadduserとuseraddの2つがあります。
adduserは対話式にユーザーを追加するコマンドです。
useraddではオプションをつけて新規作成するユーザーの設定を追加します。
自動化する場合はuseraddのほうが使いやすいのかもしれません。

作成したユーザーをpiと同じグループへ追加します。
まずpiが所属しているグループを調べる。
groups pi
pi : pi adm dialout cdrom sudo audio video plugdev games users netdev input spi gpio

新しく作ったユーザーをこのグループに追加。
sudo usermod -G pi,adm,dialout,cdrom,sudo,audio,video,plugdev,games,users,netdev,input,spi,gpio username
注)
コマンドで指定するグループは","で区切る。","の前後にスペースはいれてはだめ。
最後のusernameのところは作成したユーザー名に変更する。

ちゃんと登録されたか確認
groups username
username : username adm dialout cdrom sudo audio video plugdev games users pi netdev input spi gpio

新しく作ったユーザーにスイッチ
su username

※suは後ろに何も書かずに実行するとrootになれますが、後ろにユーザー名を入れると他のユーザーになれます。
ちなみにsuはswitch userの略でsuper userの略ではない。

ホームディレクトリへ移動
cd

※cdコマンドはchange directoryの略でディレクトリを移動するコマンド。
後ろに何もつけないで実行するとホームディレクトリへ移動できる。

piのホームディレクトリの内容をコピー
cp -r /home/pi/* /home/username

ここまで設定したら一度ログアウトする。
exit ←これでスイッチ元のユーザーpiに戻る
exit ←これでログアウト

初期ユーザーpiの無効化

今度は新しく作ったユーザーでログイン
再度TeraTermで接続します。

ユーザーpiの名前を変更(削除してしまうのがためらわれたので、とりあえず名前だけ変えておきます)
sudo usermod -l pi2 pi
[sudo] password for username: ←作業ユーザーのパスを入力

確認します。
su pi
No passwd entry for user 'pi' ←piというユーザーはいなくなりました。

ちなみに名前を変更してもホームディレクトリは自動で変更されません。
作業ユーザーの作成はここまでです。
作業ユーザーでの作業になれたら初期ユーザーpiは削除してしまったほうがいいと思います。

【3.vimのインストールと設定】

vimのインストール
これから設定ファイルをいじるにあたって、viは使いにくいので高機能版のvimを入れておきます。
sudo apt-get install vim
質問にはy

bashの設定
viコマンドでvimが自動で実行されるようにbashを設定しておきます。
エリアスファイルの作成
vim .bash_aliases
新しいファイルが開くので以下1行追加して保存終了
alias vi='vim'
追加した設定を有効にする
source ~/.bashrc

vim設定ファイルの編集
参考:
http://www.ksknet.net/vi/vim.html
http://www.ksknet.net/vi/vi.html

vimの設定を作成します。まず、デフォルト設定ファイルをホームディレクトリへコピー
cp /etc/vim/vimrc ~/.vimrc

vimでこの設定ファイルを開きます。(bashを設定したのでviコマンドで開けます)
vi .vimrc

色分けの設定
18行目付近から
コメント行などを色分けして表示させる。
" Vim5 and later versions support syntax highlighting. Uncommenting the next
" line enables syntax highlighting by default.
syntax on ←この行の頭の"を消すと色分けされる。

22行目付近から
背景が暗い設定の時はここをオンにして色分けの仕方を変える。
ここは好みに応じてでいいと思う。自分は黒背景だけどそのままコメントアウトしてる。
" If using a dark background within the editing area and syntax highlighting
" turn on this option as well
"set background=dark ←ここの頭の"を消すと色分けが変わる

個人的な設定を追加。
私は、行番号を表示する、オートインデントさせる、インデント幅をスペース4にする設定を入れました。
上記のため、ファイルの最後に以下を追加
" Personal settings
set number "Display columun number
set tabstop=4 "Set tab length
set autoindent "Enable auto indent
"colorscheme evening "Set colorscheme

上記の一番下に追加したのはカラースキーム(色分け)の設定です。eveningがカラースキーム名なので、
ここを色々変更すると色分けを変えることができます。
好みに合わせてコメントアウト(行頭の")をなくして変更してみてください。
なおインストールされているカラースキームファイルは一度vimを終了して以下のコマンドで確認できます。
ls /usr/share/vim/vim73/colors/

blue.vim delek.vim evening.vim murphy.vim README.txt slate.vim
darkblue.vim desert.vim koehler.vim pablo.vim ron.vim torte.vim
default.vim elflord.vim morning.vim peachpuff.vim shine.vim zellner.vim

最後にrootにも今までの設定をコピーしておきます。
rootにスイッチ
su -
cd /home/username
cp .bashrc .vimrc .bash_aliases /root
source .bashrc
exit

【4.SSHの設定(接続ポートの変更とrootユーザーでのログイン禁止)】

SSHの基本的なセキュリティ設定をしておきます。今回はここまでで終わる予定。

元の設定ファイルをバックアップ
sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.org
SSHの設定ファイルを開きます。
sudo vi /etc/ssh/sshd_config

【sshd_configの編集内容】
①ポート番号の変更
SSHのポート番号22は広く知られており、外部からアクセスできるようにした場合攻撃の対象になります。
なのでポート番号を予測しにくい任意の番号に変えておきましょう。
ポートスキャンされればわかってしまうので気休めですが。
ちなみに自由に使えるポート番号は49152~65535です。
5行目ぐらいの以下行の数字22を書き換えます。
Port 22

Port 50022 (例えばの例です上記範囲なら好きに設定していいです)

②rootユーザーのSSHログインを禁止
セキュリティ向上のためrootユーザーでのログインを禁止します。
root権限が必要な場合は今まで同様に一般ユーザーでログインし、rootにスイッチするかsudoで対応します。
27行目付近のPermitRootLoginをyesからnoに変更します。
PermitRootLogin yes

PermitRootLogin no

以上変更が終わったら保存終了。
SSHデーモンを再起動します。
sudo /etc/init.d/ssh restart
[ ok ] Restarting OpenBSD Secure Shell server: sshd.

別ウィンドウでTeraTermを開いてアクセスしてみます。
今開いているTeraTermのファイルメニューから新しい接続を選びます。

ポート番号を22のまま接続してみます。
→「接続が拒否されました」と表示されればOK

もう一度新しい接続を開きます。
今度はポート番号をさっき設定した番号に変更して接続してみます。
→認証画面が出ればOK
rootでログインを試みます。
→「認証に失敗しました.再試行してください.」と出ればOK。接続断ボタンで閉じます。

最後にちゃんと一般ユーザーでログインできるか確認します。
再度新しい接続を開き、ポート番号を変更して接続します。
新しく作ったユーザー名とパスワードでログインします。
無事ログインできればOK

もし上記でうまくいかなかった場合は元のTeraTermに戻って設定ファイルをオリジナルのものに戻しましょう。
sudo rm /etc/ssh/sshd_config
sudo cp /etc/ssh/sshd_config.org /etc/ssh/sshd_config
んでSSHを再起動
sudo /etc/init.d/ssh restart

これでSSHの設定は元に戻るはず。

今回は以上です。お疲れ様でした。
次回はHDDへファイルシステムを移行する予定です。

2014年4月5日 作成
2014年5月4日 草稿公開
2014年5月17日 一部修正して草稿版から格上げ。(syntaxハイライトは重いので使うかまだ迷い中)
camelinsect

< 前の記事

03 Rasbianインストール~初回起動

次の記事 >

05 Raspberry PiファイルシステムHDD化 その1/3 (HDD接続~データ移行)