SSHの設定はポリシー的なところ大きいので設定の仕方というご案内はできないんですが、だいたいこんなルールでやってます。
- Rootのログインは基本禁止。*但し鍵認証+IP制限が可能であればOK。問題は鍵の管理になります。
- パスワード認証は基本禁止。鍵認証推奨。*とはいえ「なんでパスワードでログインできないの?」って言われます。
- ポートは22じゃない方がいい。4桁ぐらいの使っていないポート。
- SSH1とかは使わない。
あとはデフォルトのままでいいと思う。
インストールと設定
CentOS7のデフォルトかどうかわからないけど、クラウドサーバとかVPNとかだと、OpenSSH_6.6.1p1がインストールされているっぽい。これちょっと古いです。
最新にしたい方はOpenSSHを最新にバージョンアップ CentOS6でやってみてください。CenOS7でもいけると思います。くれぐれもコンパネとかからログインできるコンソール画面やtelnetなどで繋いでやってください。
なのでインストールは割愛。
また鍵の設定とかも別項で。iptablesとかFirewallとかhosts.allowとかでその他の設定はいろいろ後でやることになるので、ここでは基本的な設定のみ。
sshd_configの設定
# 12: コメント外して22 → 7648
Port 7648
# 80: yesをコメントアウトしてnoのコメント外す
PasswordAuthentication no
その他はデフォルトでよいかと。
ちなみにポートを変更するとたぶんiptableとかfirewall関連も変更が必要になると思います。
再起動
systemctl restart sshd.service
待ち受けポートの確認
ss -t -l -n
State Recv-Q Send-Q Local Address:Port Peer Address:Port
LISTEN 0 128 *:7648 *:* ← 設定したポートが開いている
LISTEN 0 100 127.0.0.1:25 *:*
LISTEN 0 128 :::3949 :::*
LISTEN 0 128 :::80 :::*
LISTEN 0 100
プロセス確認
ps aux | grep "sshd"
root 3129 0.0 0.4 110244 4472 ? Ss 23:07 0:00 sshd: root@pts/0
root 3155 0.0 0.3 105480 3980 ? Ss 23:09 0:00 /usr/sbin/sshd -D
root 3200 0.0 0.1 22672 1604 pts/0 S+ 23:28 0:00 vi sshd_config
root 3203 0.0 0.4 110112 4468 ? Ss 23:40 0:00 sshd: root@pts/1
root 3231 0.0 0.0 9032 660 pts/1 S+ 23:43 0:00 grep --color=auto sshd