さくらのVPS を使いはじめる 2 - sudo と SSH ポート変更
さくらのVPS への作業メモ 2。今回は sudo
設定、SSH のポート変更をおこなう。
- 2012/4/19 おしらせ
- 続編として、さくらのVPS(v3) 2GB プランへの作業メモ「さくらのVPS を改めて使いはじめる 2 – sudo と SSH ポート変更」を書いた
sudo を設定する
前回は root 権限が必要なコマンドなどは su
で root になってからおこなっていたが、root は万能なので思いがけず重要なファイルやディレクトリを破壊する危険性がある。よってコマンド単位で root 権限を与えるために sudo
を利用することにした。
まずは sudo
がインストールされていることを確認。
$ yum list installed | grep sudo
sudo.x86_64 1.7.2p1-7.el5_5 installed
インストールされているので wheel グループの設定をおこなう。wheel は root 権限を得られるユーザー グループ。これは usermod
コマンドで設定できるのだが root 権限が必要なので以下のように実行する。
$ su -
Password:
# usermod -G wheel XXXX
XXXX の部分がユーザー名。これで XXXX は wheel に属するようになったはずだが、本当にそうなっているのかを id
コマンドで確認しておく。wheel に属しているならば下記のように group へ 10(weel)
という表記が加わる。
# id XXXX
uid=500(XXXX) gid=500(XXXX) groups=500(XXXX),10(wheel)
次は、wheel グループに属するユーザへ sudo
を許可する。root になっている状態で visudo コマンドを実行する。
# visudo
すると sudo
の設定ファイルを編集するために vi が起動される。その中には wheel の実行権限がコメント アウトされているので
## Allows people in group wheel to run all commands
# %wheel ALL=(ALL) ALL
以下のようにそれを解除する。
## Allows people in group wheel to run all commands
%wheel ALL=(ALL) ALL
変更したら Esc キーを押してコマンドモードに戻り :wq
とタイプして Enter キーを押す。これで設定ファイルへの変更が保存され sudo
が利用できるようになった。
パスを通す
sudo
を通して実行するプログラムは /usr/sbin
や /usr/local/sbin
に置かれていることが多い。しかし sudo
時にはこれらのパスが通っていないことがある。この状態だとコマンドを呼び出すときにフルパス指定しなくてはならず面倒なのでパスを通す。
ユーザーの HOME に .bash_profile
というファイルが置かれているはずなので、それを開いて以下のようにパス設定を加えて保存する。
# User specific environment and startup programs
PATH=$PATH:$HOME/bin
PATH=$PATH:/sbin
PATH=$PATH:/usr/sbin
PATH=$PATH:/usr/local/sbin
保存したら再ログインするか以下のコマンドで反映する。
$ source ~/.bash_profile
SSH ポート変更
これまで SSH 接続にはポート 22 番を使用してきた。しかしこれは一般的な SSH のポートとしてよく知られているため、そのままにしておくと攻撃対象になる。攻撃者は 22 番が空いていることがわかると、ユーザーとパスワードを総当たりで侵入を試みるので、初歩的な対処としてポート番号を変更する。
以下のコマンドで sshd (SSH デーモン) の設定ファイルを開く。
$ sudo vi /etc/ssh/sshd_config
/etc/ssh の直下には、今回の編集対象となる sshd_config とよく似た ssh_config というファイルがあるので、間違わないように注意する。デーモン側は d 付きの sshd_config である。恥ずかしながら私は間違えて、あれれ、なんかダメだぞ、という状態に陥った。
ファイルを開くと Port 22 という設定があるので、これをコメントアウトして適当な数値を設定。値は 0 ~ 65535 を指定できる。解放されているポートの検索を早々に諦めてもらうために大きな数値にしておくとよい。
# $OpenBSD: sshd_config,v 1.73 2005/12/06 22:38:28 reyk Exp $
# This is the sshd server system-wide configuration file. See
# sshd_config(5) for more information.
# This sshd was compiled with PATH=/usr/local/bin:/bin:/usr/bin
# The strategy used for options in the default sshd_config shipped with
# OpenSSH is to specify options with their default value where
# possible, but leave them commented. Uncommented options change a
# default value.
#Port 22
Port XXXXXX
XXXXX の部分に数値を入れる。変更を保存したら sshd を再起動する。成功すれば以下のように OK と表示される。
$ sudo /etc/rc.d/init.d/sshd restart
Stopping sshd: [ OK ]
Starting sshd: [ OK ]
ここまでの設定が適切に反映されているならば TeraTerm や WinSCP でポート 22 番を指定して SSH 接続するとエラーになるはずである。その場合は新しいポート番号を指定することで従来どおり接続できる。
...iptables の設定についても書きたかったのだが、時間がないので今回はここまで。
Comments from WordPress
- kakyoin 2011-07-14T21:08:00Z
viの操作が解らず苦戦しました。
viエディター操作メモ
http://bit.ly/qAepX8 - kakyoin 2011-07-26T19:59:44Z
.bash_profile にパスを追加する際
記事からコピペでパスを貼り付けたところ
パスが通りませんでした。改行箇所を手打ちで修正したところパスが通りました。
どうやら記事中の改行コードに問題があるようです。 - akabeko 2011-07-26T22:54:57Z
@kakyoin おそらく原因は、ソースの表示に使用している WordPress の SyntaxHighlighter が、空行によけいな半角スペースを入れるためだと思われます。iptables の設定ファイルでも、同様の問題が発生しています。
この記事を書いた時点の SyntaxHighlighter では大丈夫だったのですが、現行のものは空行問題が起きます。とはいえ、ハイライト表示には便利なプラグインであるのと、バグとして認識されているようなので、修正を待ちたいと思います。
- タビエル 2011-12-19T18:05:20Z
ありがとうございます。なんとかこのページもクリアしました。