OshiHa.com

ConoHaでAlpine Linux 3.8

初期のセキュリティ設定

2018/09/01  2018/09/01

◆◇◆ 【衝撃価格】VPS512MBプラン!月額630円/1時間1円【ConoHa】 ◆◇◆

1. SSHサーバーのセキュリティ設定

  1. 鍵認証の設定(*****は SSH接続するユーザー名)

    alpine:~$ mkdir /home/*****/.ssh
    ここに WinSCP などを利用して、事前に作成している「authorized_keys」をアップロードする。

    ディレクトリとキーのパーミッションを変更
    alpine:~$ chmod 700 /home/*****/.ssh/
    alpine:~$ sudo chmod 600 /home/*****/.ssh/authorized_keys

    所有者を変更
    alpine:~$ sudo chown *****:***** /home/*****/.ssh/authorized_keys

  2. SSH の設定

    設定ファイルを編集する前に、設定ファイル(/etc/ssh/sshd_config)をバックアップしておく。
    alpine:~$ sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.org
    alpine:~$ sudo vi /etc/ssh/sshd_config

    # 13行目:ポート番号変更
    - #Port 22
    + Port *****
    
    # 32行目:rootユーザでのログインを禁止
    - #PermitRootLogin prohibit-password
    + PermitRootLogin no
    
    # 57行目:パスワード認証を禁止
    - #PasswordAuthentication yes
    + PasswordAuthentication no
    
    # 最終行:ログインできるユーザーを制限(*****はユーザー名)
    + AllowUsers *****

2. ファイアウォールの設定

  1. iptables のインストール
    alpine:~$ sudo apk add iptables
  2. 設定されているルールを /etc/iptables ファイルに書き出す。
    alpine:~$ sudo /etc/init.d/iptables save
  3. iptables の起動・サービス登録
    alpine:~$ sudo rc-service iptables start
    alpine:~$ sudo rc-update add iptables
  4. 初期状態の iptables の確認
    alpine:~$ sudo iptables -L
    Chain INPUT (policy ACCEPT)
    target     prot opt source               destination
    
    Chain FORWARD (policy ACCEPT)
    target     prot opt source               destination
    
    Chain OUTPUT (policy ACCEPT)
    target     prot opt source               destination
  5. 全てのルールを初期化(全削除)
    alpine:~$ sudo iptables --flush
  6. ファイアウォールの設定
    • 受信パケットを全て拒否
      alpine:~$ sudo iptables -P INPUT DROP

      *ここで SSH接続が切れるので、ConoHaコントロールパネルのコンソールから入力を続ける。

    • 転送パケット(通過)は全て拒否(ルーティングしないため)
      alpine:~$ sudo iptables -P FORWARD DROP
    • 送信パケットは全て許可
      alpine:~$ sudo iptables -P OUTPUT ACCEPT
    • 自ホストからのアクセスをすべて許可(ループバックは許可)
      alpine:~$ sudo iptables -A INPUT -i lo -j ACCEPT
    • 内部からのアクセスをすべて許可
      alpine:~$ sudo iptables -A INPUT -s 127.0.0.1 -j ACCEPT
    • 内部から行ったアクセスに対する外部からの返答アクセスを許可(確立済みの通信は許可)
      alpine:~$ sudo iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
    • 外部から SSHへのアクセスを許可(*****は上で変更した SSHポート番号)
      alpine:~$ sudo iptables -A INPUT -p tcp --dport ***** -j ACCEPT
  7. iptables の設定反映
    alpine:~$ sudo rc-service iptables restart
  8. iptables の設定確認
    alpine:~$ sudo iptables -L
    Chain INPUT (policy DROP)
    target     prot opt source               destination
    ACCEPT     all  --  anywhere             anywhere
    ACCEPT     all  --  alpine.my.domain     anywhere
    ACCEPT     all  --  anywhere             anywhere             state RELATED,ESTABLISHED
    ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:*****
    
    Chain FORWARD (policy DROP)
    target     prot opt source               destination
    
    Chain OUTPUT (policy ACCEPT)
    target     prot opt source               destination
  9. 再起動
    alpine:~$ sudo reboot

*これで新たに設定した SSHポート番号で SSH鍵を利用して SSHクライアントから接続できる。


◆◇◆ 【衝撃価格】VPS512MBプラン!月額630円/1時間1円【ConoHa】 ◆◇◆

ConoHa VPSの攻略
Alpine Linux 3.8

TOP