1,000円を切る低価格で登場、「さくらのVPS」をチェック――サーバー構築編 3ページ
作業用ユーザーの作成
SSHでのログインに成功したら、続いて作業用として使用するユーザーアカウントを作成する(リスト2)。ここでは例として作業ユーザー用のグループ「staff」を作成し、「staff」に所属するユーザー「foobar」を作成しているが、これらはユーザーの環境に合わせて適当に変更してほしい。
リスト2 作業用アカウントの作成
# groupadd staff # useradd -d /home/foobar -m -g staff foobar # passwd foobar Changing password for user foobar. New UNIX password: ←foobarのパスワードを入力 Retype new UNIX password: ←同じパスワードを再入力 passwd: all authentication tokens updated successfully.
VPSに限ることではないが、UNIX/Linuxサーバーを運用する場合、普段の作業は一般ユーザーで行い、root権限が必要な各種設定やソフトウェアのインストールなどの作業を行う場合はその都度root権限を取得して操作を行う、という方式が一般的だ。root権限の取得には「su」コマンドを用いる方法と、「sudo」コマンドを用いる方法の2通りがあるが、操作がログに記録されるsudoコマンドの利用が推奨されることが多い。
なお、sudoコマンドについて詳しくは「ユーザの実行権限を柔軟に割り当てるsudoのリスクとメリット」で説明されているので、興味のある方はこちらをご参照いただきたい。
作成したユーザーでsudoコマンドを実行できるようにするには、root権限で「visudo」コマンドを実行し、設定を行っておく必要がある(リスト3)。visudoコマンドを実行するとVimが起動するので、「root ALL=(ALL) ALL」という行の下に「<ユーザー名> ALL=(ALL) ALL」という行を追加し、保存して終了する。
リスト3 ユーザー「foobar」でsudoを利用できるようにする場合の設定例
# visudo : (Vimが起動するので、下記の個所までスクロールする) : : ## Allow root to run any commands anywhere root ALL=(ALL) ALL foobar ALL=(ALL) ALL ←この1行を追加 : :
以上の設定が完了したらいったんログアウトし、作成したユーザーでログインやsudoコマンドが実行できるかどうか確認しておこう。
SSHの設定
さくらのVPSでのデフォルト設定では、rootユーザーを含むすべてのユーザーでSSHログインが許可されている。しかし、外部からrootユーザーでのログインを許可するのは危険であり、禁止しておくことが推奨される。sshdの設定は、「/etc/ssh/sshd_config」ファイルで行う。root権限でこのファイルを編集して設定を行おう。
$ sudo vi /etc/ssh/sshd_config
変更すべき個所はリスト4のとおりだ。
リスト4 sshd_config内で変更すべき個所
: : # Authentication: #LoginGraceTime 2m #PermitRootLogin yes PermitRootLogin no ←この行を追加(rootでのログインを禁止) #StrictModes yes #MaxAuthTries 6 : :
変更を行ったら、/sbin/serviceコマンドでsshdサービスを再起動する。もしここで再起動に失敗した場合は、再度sshd_configファイルを確認してほしい。
$ sudo /sbin/service sshd restart Stopping sshd: [ OK ] Starting sshd: [ OK ]
公開鍵認証でのみログインできるようにする |
---|
よりSSHのセキュリティを強固にしたいなら、sshd_configファイルのリスト5の個所を修正してパスワード認証を無効にし、公開鍵認証でのみログインできるようにする設定をお勧めする。 リスト5 チャレンジ&レスポンス認証を無効にする # To disable tunneled clear text passwords, change to no here! PasswordAuthentication no ←パスワード認証を無効に(「no」に設定) この場合、あらかじめ公開鍵をアップロードして設定しておいたユーザーでしかログインできなくなる。自由度は若干減るものの、パスワード総当たり攻撃などによる認証の突破を防ぐことが可能だ。 なお、公開鍵は各ユーザーの.sshディレクトリ以下、「authorized_keys」ファイルとして格納しておく(リスト6)。 リスト6 クライアントがUNIX系OSの場合の公開鍵設定 $ scp .ssh/id_rsa.pub foobar@***.***.***.***: ←公開鍵をアップロード id_rsa.pub 100% 395 0.4KB/s 00:00 $ ssh foobar@***.***.***.*** : : $ cd ‾/ $ mkdir -m 770 .ssh $ cat id_rsa.pub > .ssh/authorized_keys ←公開鍵を.ssh/authorized_keysファイルに格納 $ chmod 600 .ssh/authorized_keys ←設定ファイルのパーミッションを変更しておく $ cat .ssh/authorized_keys ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAyWEI5pUYY4wM654xHdo3FV... : : |