さくらのVPS を使いはじめる 2 – sudo と SSH ポート変更
さくらのVPS への作業メモ 2。今回は sudo 設定、SSH のポート変更をおこなう。
前回までの記事
さくらのVPS を使いはじめる
もくじ
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 に置かれていることが多いのだが、初期状態の一般ユーザーではこれらのパスが通っていない。そのためコマンドを呼び出すときにフルパスで指定しなくてはならず面倒なので、パスを通す。
ユーザーの 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 というファイルがあるので、間違わないように注意する。正しいものは 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 の設定についても書きたかったのだが、時間がないので今回はここまで。
viの操作が解らず苦戦しました。
viエディター操作メモ
http://bit.ly/qAepX8
.bash_profile にパスを追加する際
記事からコピペでパスを貼り付けたところ
パスが通りませんでした。
改行箇所を手打ちで修正したところパスが通りました。
どうやら記事中の改行コードに問題があるようです。
@kakyoin
おそらく原因は、ソースの表示に使用している WordPress の SyntaxHighlighter が、空行によけいな半角スペースを入れるためだと思われます。iptables の設定ファイルでも、同様の問題が発生しています。
この記事を書いた時点の SyntaxHighlighter では大丈夫だったのですが、現行のものは空行問題が起きます。とはいえ、ハイライト表示には便利なプラグインであるのと、バグとして認識されているようなので、修正を待ちたいと思います。