server
CentOS
vps

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サーバーの設定など!