Edited at

VPS 借りたので① セキュリティ関係の初期設定メモ

さくらで VPS 借りたので初期設定メモ。


ドットインストール見ながら調べた。



  • yum でパッケージアップデート




  • 日本語化


    • /etc/sysconfig/i18n ファイルが言語設定ファイル

      LANG="ja_JP.UTF-8"




  • ユーザー追加 / パスワード設定



    • # useradd hoge

      # passwsd hoge

      ちなみにユーザー追加するとホームフォルダは

      /home/hoge

      になる。




  • sudo 設定



    • # usermod -G wheel hoge

      wheel というグループは、UNIX系システム上でスーパーユーザー(root)特権を得ることのできるユーザーの属するグループの名称とのこと。

      sudo の設定は visudo コマンドで呼び出せる。

      Allows people in group wheel to run all commands

      の下の行をコメントアウト解除




  • 鍵認証


    • サーバ側に公開鍵保管場所 .ssh を作成。


    • PC側で鍵生成

      $ ssh-keygen -t rsa -b 4096 -v -C "your_email@hoge.com"

      -t 生成する鍵の種類を指定。

      -v 冗長表示モード。ssh-keygen が進行中のデバッグメッセージを表示。

      -b 鍵の長さ。初期値は 2048bit

      特にファイル名やパスは変更しなくてOKだけど、したかったら別途指定する。

      このへん参照

    • scp (Secure CoPy) で公開鍵転送


      $ scp ~/.ssh/id_rsa.pub hoge@IP.ADD.RE.SS:~/.ssh/authorized_keys
      //scp [オプション][転送したいファイル名][転送先ユーザ名]@[ホスト名]:[パス]

      ディレクトリを転送したいときは -r オプション(再帰的に実行するオプション)

    • PC 側でRSA読み込み指定

      $ ssh -i ~/.ssh/id_rsa hoge@IP.ADD.RE.SS

      -i identity

      RSAあるいはDSA認証で読み込まれるprivate keyの書かれたファイルを指定する。デフォルトでは、プロトコル1のときは~/.ssh/identityを読み込み、プロトコル2のときはRSA認証は~/.ssh/id_rsaで、DSA認証は~/.ssh/id_dsa。

    • 複数デバイスからのアクセス

      別デバイスからのアクセスは、都度、アクセスしたいデバイスで鍵ペアを作成。

      公開鍵をサーバ側の .ssh に追加して、authorized_keys に追記。

      $ cat id_rsa.hostA.pub >> ~/.ssh/authorized_keys

      ちなみに鍵の名前を id_rsa 以外にする場合は ~/.ssh/config に設定を追加する必要があるので注意。参考


    • 簡易アクセス設定

      .ssh フォルダに config ファイルを作成して設定

      詳細は以下

      参考:sshを公開鍵認証にする(複数ホスト対応)| オデの日記@WEB系




  • パーミッション


    • 変更 $ chmod *** ファイル(フォルダ)名

      *** の部分は、3桁の数字で、左からOwner権限、Group権限、Other権限。

      「4=読み込み許可(r) / 2=書き込み許可(w) / 1=実行・ディレクトリ一覧許可(x)」の数字を足し合わせて指定する。

    • 確認 $ ls -l

      -rw-rw-r-- 2 nakamuratou suri 2194 Dec 23 07:30 personal

      のように表示される。

      左からアクセス権、所有者、所有グループ、サイズ、更新日時、ファイルorディレクトリ名。

      フォルダのサイズ表示がよくわからない(中身の合計値じゃないっぽい)のと更新日時の年表示がないのが気になるけどわからなかった。




  • SSH 設定


    • ポート番号の変更

      デフォルトは22で、1024~65535 の範囲に変更する。

      設定ファイル /etc/ssh/sshd_config をバックアップ、その後編集。
      バックアップのファイル名は sshd_config.org がいいんじゃないかな。

      ポート番号のところ探してコメントアウト解除。数字設定。


    • パスワードログイン禁止

      PasswordAuthentication no


    • ルートログイン禁止

      PermitRootLogin no


    • 再起動

      $ service sshd restart


    • ポートを指定してログイン

      $ ssh -p YOUR_PORT_NUMBER dotinstall@IP.ADD.RE.SS




  • ファイアウォールの設定


    • 設定ファイルの作成

      # vim /etc/sysconfig/iptables

      中身はドットインストールのソースコピペした。


    • ファイアウォールスタート

      # service iptables restart


    • ファイアウォールの設定確認

      # iptables -L (list)




ちなみに iptables は、Linuxに実装されたIPv4用のパケットフィルタリングおよびネットワークアドレス変換 (NAT) 機能(複数のNetfilterモジュールとして実装されている)の設定を操作するコマンドのこと。Netfilterは、いわゆるファイヤウォールやルータとしての役割を果たす。IPv6 用の実装は ip6tables。


  • その他


    • # は root 、\$ は一般ユーザー


    • 常に root にする場合 sudo -s



長くなったのでこの辺で!


次回からはWebサーバーの設定など!