2-13. Webサーバーのためのセキュリティ設定

1. root パスワードの設定

2. ユーザの追加

以下の作業は、root 権限で行うべし。

 ① ユーザの追加 adduser xxxxx パスワードも設定 yyyyy
 ② sudoグループを追加 gpasswd -a xxxxx sudo
 ③ Piユーザの削除 userdel -r pi
  又は、piユーザをsudoグループから外す gpasswd -d pi sudo
  /etc/sudoersを編集 nano /etc/sudoers
  piユーザはパスワードなしのsudo権限があるので、
  下記の行をコメントアウトしてsudoersから除外する
  pi ALL=(ALL) NOPASSWD: ALL → #pi ALL=(ALL) NOPASSWD: ALL
  追加したユーザをこの設定にすれば、パスワードの入力が不要になる
  xxxxx ALL=(ALL) NOPASSWD: ALL
 ④ ログアウト exit

3. sshポートの変更

① ssh設定ファイルのバックアップ
  cd /etc/ssh/ → sudo cp sshd_config sshd_config.org
 ② sshのポート変更 sudo leafpad sshd_config
  Port 22 を → nnnnn に変更 自由に利用できるポート番号は49152–65535番らしい
  ※変更するファイルは、sshd_configの方。(ssh_configではない)
 ③ sshサーバを再起動 sudo /etc/init.d/sshd reload または sudo service ssh restart

 ポート番号と役割=サービス名は下記のようになっている。  

4. ファイヤウォールの設定

ufw というソフトを導入した。
 ufw とは Ubuntu FireWall の略で、iptables を簡単に設定するツール。
 iptables とは、Linuxに実装されているファイヤウォールで、
 ネットワークの入出力を監視し、
 設定されたルールに沿って遮断したり、開放したり、
 ログを取ったりを指定するテーブル。
  Raspbian でも既にインストールされており自動で起動している。
  ※詳細はWebを参照。

 ① ファイヤーウォールの導入 sudo apt-get install ufw
 ② ステータスの確認 sudo ufw status → inactive
 ③ アクセス制限の設定 sudo ufw limit nnnnn
  ここでの nnnnn はsshのポート番号。limit にすると、
  30秒間に6回アクセスした接続が拒否される。
 ④ ポート 80 を許可する sudo ufw allow 80/tcp
    ポート 443 を許可する sudo ufw allow 443/tcp ← SSL化 忘れずに
 ⑤ ファイヤウォールを有効にする sudo ufw enable
 ⑥ ステータスの確認 sudo ufw status → active

4. SSH 接続のアクセス制限

 SSH接続は外部から破られるとコンピュータを乗っ取られるので、
 ローカルLANまたは指定IPからの接続のみを許可するように、アクセス制限を行う。  

 ① /etc/hosts.denyファイルを修正する。
  # アクセス制限を追加(すべてのアクセスを拒否)
   sshd: ALL
 ② /etc/hosts.allowファイルを修正する。
  # アクセス制限を追加
  # ローカルLANからのアクセスのみを許可
  # 必要なら外部の指定IPも書いておく。
   sshd: 192.168.11.0/24 127.0.0.0/8

5. SSHの root でのログインを無効にする

sudo nano /etc/ssh/sshd_config で、
 #PermitRootLogin yes を
 PermitRootLogin no に変更

6. セキュリティ設定の確認

Windows PC から、
 192.168.xx.yyy の,ユーザー名= xxxxx パスワード= yyyyy ポート= nnnnn で、確認 。
 ① Tera Term での確認
 ② FileZilla での確認







関連ページ