はじめに
サーバって何からやればよいのだろうという疑問についてのメモ。業務でする際にはどういうセキュリティをすべきなのかとかそういったものを解説サイトを見ながら自分なりのメモ付きで再編集しています。
利用環境:
利用PCのOS:Windows 10 Pro
サーバに接続するソフトウェア:Teraterm
サーバ:CentOS 7 ※さくらのVPSを利用
前提条件
サーバの最小インストールまでが終わっていること
rootのパスワード設定が終わっていること
Teratermを使ってサーバにアクセスする
TeratermでIPアドレスを指定し、ssh(port 22)で接続する
設定したrootとパスワードを使ってサーバに入る
OSをアップデートする
なぜするのか:
CentOSを最新版にすることでセキュリティパッチなどの更新があるため
yum update` #OSを最新版にアップデートする
Is this ok [y/d/N]: #左記が出たらyを押してEnterを押す(2,3分はかかる)
Complete #と出たら完了
一般ユーザーを作る
なぜするのか
rootユーザでの操作の禁止、root権限を使用したユーザの特定のため
管理者以外のユーザを作成する。作成した一般ユーザーからアクセスする。根幹の機能ファイルを変更したいなどの場合は、その一般ユーザーからroot権限を呼び出し、実行する。そうすることによって誰がroot権限を呼び出し実行をしたのかがわかるようになる。
adduser [ユーザ名]
#新規ユーザーを作成する
ex) adduser shuthimaru #「shuthimaru」という一般ユーザーを作成する
作った一般ユーザにパスワードをかける
passwd [ユーザー名]
#[ユーザ名]のパスワードを設定する
ex) passwd shuthimaru # 「shuthimaru」のパスワードを設定する
Changing password for user vpsuser.
New password: ←1回目のパスワードを入力
Retype new password: ←2回目のパスワードを入力
passwd: all authentication tokens updated successfully. #成功すればこの文が出る、パスワードが不適切だとやり直しになる
上手く出来たら一度exit
を打ってログアウトして再度接続して一般ユーザから入りなおしてみよう。
rootだと最後が#だったのが一般ユーザだと$になっていることを確認する。
確認ができたら、su -
と打ってみるとパスワードを求められる。これはroot権限を呼び出すコマンドであり、rootのパスワードを求められる。パスワードを入力するとroot権限を得ることができる。
rootでサーバに入れないようにする
なぜするのか:rootはどんなサーバにもあるIDだから
rootはすべてのサーバにあるIDのため、ブルートフォース攻撃(片端からパスワードを入力しこじ開けてしまうサイバー攻撃)を受けてしまう危険性がある。今のままではrootでアクセスができてしまうのでそれを止めてしまう。具体的にはsshサーバの設定を変更して行う。
コマンド
# cd /etc/ssh #etc→sshに移動する
# cp sshd_config sshd_config.old
#sshd_configというファイルをコピーしてsshd_config.old を作る
# vim sshd_config
#PermitRootLogin yes
49行目付近の左記を
PermitRootLogin no
に変える
これでsshでroot権限からの接続を拒否する準備ができた。
後は下記systemctlコマンドを実行してsshサーバを再起動する。
systemctl restart sshd.service #sshdサービスを再起動する
ん?っと思ったら鋭い。実はsshもサーバを使う。初期状態からsshサーバがPC内に立っているというイメージ。sshdはSecure Socket Layer Daemonという意味(だったはず)。daemonは守護者や代行者的な意味を持つ。プロトコル名+dときたらイコールサーバだと思ってよいと思う。
exit
してrootでアクセスしてみるとアクセスできないはず。
これでとりあえずのセキュリティはOK.