OpenSSHを安全に運営する

1.sshdを稼働

「インストールして、起動、再起動後も自動的に立ち上がるように設定」。ここまではお定まりのコース

———————-

サーバで操作

———————-

$ sudo packman -S openssh
$ sudo systemctl start sshd.service
$ sudo systemctl enable sshd.service

————————————————

以降はクライアントから操作

———————————————–

2.sshdの設定

上の操作だけで十分稼働するのだが、セキュリティ上問題。なぜならデフォルトの設定ではrootで、パスワード認証で接続できるからだ。総当り攻撃などの危険にも晒される。そこで設定ファイルを編集する。

$ ssh ユーザ名@サーバのIPアドレスで接続。

$ sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.org

(オリジナルの設定ファイルを別名で保存しておく。)

$ sudo nano /etc/ssh/sshd_config

  • Port 22 デフォルトではポート22で稼働するが、これはぜひ変更しておきたい。sshはシステムを操作するもので、他のユーザに知れ渡っている必要は全く無いからだ。設定方法は#を削除し、22の表記を使用していないポート番号に変更するだけ(例:port 123456)。
  • Protocol 2 デフォルトで2で動いているようであるが、これも#を削除し、有効にしておいたほうが良いのでは?。
  • PubkeyAuthentication yes
    PermitRootLogin no
    PermitEmptyPasswords no (この3行は排他的でPubkeyAuthentication yesを選択すると、rootでログイン、空パスワードでのアクセスも禁止されるようだが、念の為、明示的に#を削除し、有効においたほうが良いと思う。)

$ mkdir ~/.ssh
$ chmod 700 ~/.ssh

(作成しておいたid_pubファイルを、authorized_keysの名前で保存するでディレクトリを作成し、そのディレクトリのパーミッションを700[ユーザのみによる読み書き、実行]にします。)

事前に公開鍵を作成していない場合は、クライアント側で$ ssh-keygen -t rsaを実行して鍵を作成してください。

クライアント側で

$ mkdir .ssh

$ cd ~/.ssh

$ ssh-keygen -t rsa

(この時点公開鍵キーが収納されたid_pubと秘密鍵を収納したid_rsaが生成される。)

 

秘密鍵は

$ chmod 600 id_rsa

を実行しておく。

$ scp id_pub ユーザ名@サーバのIPアドレス:/home/ユーザ名/.ssh/authorized_keys

(sftpクライアントで接続し、設置する方法もあるが、コマンドラインで設置)

$ chmod 400 ~/.ssh/authorized_keys
(パーミッションをユーザによる読み書きのみ。400でユーザによる読み込みだけのほうがもっと安全)

$ sudo systemctl restart sshd (再起動で有効にする)

$ logout

$ ssh -p 123456 ユーザ名@サーバのIPアドレス
(一旦ログアウト、再接続するときには、-pオプションで設定したポート番号を指定)

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です