さくらインターネットさんのさくらVPS1Gの設定として、最初にSELinuxを無効にし、rootでのSSH接続を禁止しました。

SELinuxの無効化

  • ブート時にSELinuxを無効にするため、「/etc/selinux/config」に記載されている「SELINUX=enforcing」を「SELINUX=disabled」に変更しました。
    # cd /etc/selinux/
    # cp config config.org
    # nano config
    
    ###SELINUX=enforcing
    SELINUX=disabled
    SELINUXTYPE=targeted
    
  • リブートした後、SELinuxが無効になっているかどうか、getenforceコマンドで確認しました。
    # getenforce
    Enforcing
    # reboot
    # getenforce
    Disabled
    

SSHルートログインの禁止

  • さくらVPS1GのVPSコントロールパネルからリモートコンソールでrootログインし、SSH接続するためのアプリケーションがインストールされているかどうか確認した所、既にopensshがインストールされていました。

    # rpm -qa | grep ssh
    openssh-server-6.4p1-8.el7.x86_64
    libssh2-1.4.3-8.el7.x86_64
    openssh-6.4p1-8.el7.x86_64
    openssh-clients-6.4p1-8.el7.x86_64
    #
    
  • 「/etc/ssh/sshd_config」に「PermitRootLogin no」を記載して、ルートでのSSH接続を禁止しました。
    # cd /etc/ssh/
    # cp sshd_config sshd_config.org
    (# yum install nano)
    # nano sshd_config
    
    #PermitRootLogin yes
    PermitRootLogin no
    
  • systemctlコマンドで、さくらVPSのsshdを再起動しました。
    # systemctl restart sshd
    #
    
  • 一旦ログアウトし、iMacのターミナルからrootでSSH接続が出来ないことを確認しました。
    # exit
    iMac27:~ $ ssh root@xxx.xx.xx.xx
    root@xxx.xx.xx.xx's password: 
    Permission denied, please try again.
    root@xxx.xx.xx.xx's password: 
    
  • iMacのターミナルから、インストール時に作成した一般ユーザー(sakura)でSSH接続が出来ることを確認しました。
    iMac27:~ $ ssh sakura@xxx.xx.xx.xx
    sakura@xxx.xx.xx.xx's password:
    $
    

firewallの設定

  • firewall-cmdでファイアウォールの設定を確認しました。sshは、デフォルトでサービス設定されていました。
    # firewall-cmd --list-all
    public (default, active)
      interfaces: eth0
      sources: 
      services: dhcpv6-client ssh
      ports: 
      masquerade: no
      forward-ports: 
      icmp-blocks: 
      rich rules:
    
  • /etc/ssh/sshd_configを編集して、SSHサーバーのポートをデフォルト値(22)から変更(10022)しました。
    # cd /etc/ssh/
    (# cp sshd_config sshd_config.org)
    # nano sshd_config
    
    • 「#Port=22」の下に「Port=10022」を追記しました。
      #Port=22
      Port=10022
      
  • firewall-cmdで古いSSHサーバーのポート(port=22/tcp)を閉じて、新しいSSHサーバーのポート(port=100221/tcp)を解放するように設定しました。
    # firewall-cmd --permanent --remove-port=22/tcp
    success
    # firewall-cmd --permanent --add-port=10022/tcp
    success
    
  • systemctlコマンドで、firewalldを再起動しました。
    # systemctl restart firewalld
    
  • firewall-cmdで、新しいSSHサーバーのポート(ports: 10022/tcp)が追加されていることを確認しました。
    # firewall-cmd --list-all
    public (default, active)
      interfaces: eth0
      sources: 
      services: dhcpv6-client ssh
      ports: 10022/tcp
      masquerade: no
      forward-ports: 
      icmp-blocks: 
      rich rules: 
    
  • systemctlコマンドで、sshdを再起動しました。
    # systemctl restart sshd
    
  • iMacのターミナルから古いSSHサーバーのポート(port 22)でログイン出来ないことを確認しました。
    $ ssh sakura@xxx.xx.xx.xx
    ssh: connect to host xxx.xx.xx.xx port 22: Connection refused
    $
    
  • iMacのターミナルから新しいSSHサーバーのポート(port 10022)でログインしてsuコマンドでルートになることが出来ることを確認してSSHの設定を終了しました。
    $ ssh -p10022 sakura@xxx.xx.xx.xx
    sakura@xxx.xx.xx.xx's password: 
    $ su -
    パスワード:
    #