アカベコマイリ

HEAR NOTHING SEE NOTHING SAY NOTHING

さくらのVPS を使いはじめる 2 - sudo と SSH ポート変更

さくらの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 akabeko 2011-07-26T22:54:57Z

    @kakyoin おそらく原因は、ソースの表示に使用している WordPress の SyntaxHighlighter が、空行によけいな半角スペースを入れるためだと思われます。iptables の設定ファイルでも、同様の問題が発生しています。

    この記事を書いた時点の SyntaxHighlighter では大丈夫だったのですが、現行のものは空行問題が起きます。とはいえ、ハイライト表示には便利なプラグインであるのと、バグとして認識されているようなので、修正を待ちたいと思います。

  • タビエル タビエル 2011-12-19T18:05:20Z

    ありがとうございます。なんとかこのページもクリアしました。

Copyright © 2009 - 2023 akabeko.me All Rights Reserved.