Raspberry Pi セットアップ
Webサーバーの為の セキュリティ設定
Webサーバーの為の セキュリティ設定
Raspberry Pi を、Webサーバーとして運用するための「セキュリティ設定」。
ポート番号とポートの役割(サービス名)
以下に、Raspberry Pi のセキュリティ対策を記載。
スポンサー リンク
Raspberry Pi の セキュリティ設定
1. root パスワードの設定とユーザの追加
root パスワードの設定。
sudo passwd root
root でログインし直す。
sudo su
pi ではない、新しい「xxxxxx」 ユーザの追加と sudo グループへの追加。
adduser xxxxxx
gpasswd -a xxxxxx sudo
gpasswd -a xxxxxx sudo
/etc/sudoersを編集し、xxxxxx ユーザの、コマンド毎でのパスワード入力を不要にする 。
nano /etc/sudoers
次の行を追記する。
xxxxxx ALL=(ALL) NOPASSWD: ALL
次の行を追記する。
xxxxxx ALL=(ALL) NOPASSWD: ALL
新しい「xxxxxx」 ユーザが作成できたので、pi ユーザーを削除したいのだが・・・。
userdel -r pi
user pi is curently used by process とのメッセージが出る。
理由:
初期設定のままだと、「Desktop Autologin」で【 pi 】ユーザーが使用されている。
初期設定のままだと、「Desktop Autologin」で【 pi 】ユーザーが使用されている。
そこで、自動ログインを停止する。
pi ユーザーを削除する。
userdel -r pi
2. sshのポート変更 と root でのログインを無効化
ssh接続で、root でのログインはディフォルトで不可になっている。
逆に、root でのログインを可能にするには、追記が必要。
逆に、root でのログインを可能にするには、追記が必要。
sudo nano /etc/ssh/sshd_config
PermitRootLogin yes ← 追記が必要
PermitRootLogin yes ← 追記が必要
ssh設定ファイルのバックアップ。
cd /etc/ssh/
sudo cp sshd_config sshd_config.org
sudo cp sshd_config sshd_config.org
sshのポート番号を変更し、SSHの root でのログインを無効にする。
sudo nano sshd_config
(自由に利用できる番号として、公式には 49152 - 65535 が規定されている)
Port 22 → nnnnn ← 変更
PermitRootLogin no ← 追記
(自由に利用できる番号として、公式には 49152 - 65535 が規定されている)
Port 22 → nnnnn ← 変更
PermitRootLogin no ← 追記
sshサーバを再起動。
cd
sudo service ssh restart
sudo service ssh restart
リモートアクセスのポート番号と役割
ポート番号とポートの役割(サービス名)は、下記のようになっており、リモートアクセスを行うポートは、通常、FTPの場合:21番、SSHの場合:22番となっている。(この22番ポートへのアクセスがうっとうしいので、変更。)
3. SSH接続のアクセス制限
SSH接続は、外部から破られコンピュータを乗っ取られる危険がある。
そこで、【ローカルLAN】または【指定IPアドレス】からの接続のみを許可するように、アクセス制限を行う。
hosts.denyファイルを修正する。
sudo nano /etc/hosts.deny
# アクセス制限を追加(すべてのアクセスを拒否)
sshd: ALL
# アクセス制限を追加(すべてのアクセスを拒否)
sshd: ALL
hosts.allowファイルを修正する。
sudo nano /etc/hosts.allow
# ローカルLANからのアクセスのみを許可
sshd: 192.168.11.0/24 127.0.0.0/8
# ローカルLANからのアクセスのみを許可
sshd: 192.168.11.0/24 127.0.0.0/8
4. ファイヤーウォールの導入
ファイヤーウォールの導入。
sudo apt-get install ufw
ステータスの確認。
sudo ufw status
inactive
inactive
アクセス制限の設定。Port 22 → nnnnn に変更済み番号。
sudo ufw limit nnnnn
ポート 80 と 443 を許可する。
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw allow 443/tcp
ファイヤウォールを有効にする。
sudo ufw enable
ステータスの確認。
sudo ufw status
active
active
5. SSH接続の公開鍵化
SSHの認証方式
①.パスワード認証方式
パスワード認証方式はデフォルトの認証方式で、ユーザー名とパスワードでログインする方式。
ユーザー名とパスワードは接続先OSのユーザーアカウントの情報が使用される。
②.公開鍵認証方式
公開鍵認証方式は公開鍵と秘密鍵の2つの鍵(キーペア)を使用した接続方式。
サーバーに公開鍵、クライアントに秘密鍵を置いて使用する。
①.パスワード認証方式
パスワード認証方式はデフォルトの認証方式で、ユーザー名とパスワードでログインする方式。
ユーザー名とパスワードは接続先OSのユーザーアカウントの情報が使用される。
②.公開鍵認証方式
公開鍵認証方式は公開鍵と秘密鍵の2つの鍵(キーペア)を使用した接続方式。
サーバーに公開鍵、クライアントに秘密鍵を置いて使用する。
以下の要領は、すでに公開鍵があり、同じものを使いまわす場合の手順を記載。
公開鍵を作成する場合の参考:
公開鍵ファイル id_rsa.pub をTera Termにドラッグアンドドロップする。
注意点。
SSH接続している Tera Term の『ユーザー』は、
公開鍵を設定するユーザーか確認?
公開鍵を設定するユーザーか確認?
ログインしたユーザ(一般ユーザ)のホームディレクトリに送信されるが、うまくいかない場合は、
ユーザ名のフォルダに、「id_rsa.pub」ファイルを作成し、元の【id_rsa.pub】の内容を貼り付ける。「xxxxxx」 は、ユーザ名。
$ sudo nano /home/xxxxxx/id_rsa.pub
鍵格納用フォルダを作り、作成したフォルダのパーミッションを設定した後、「id_rsa.pub」を鍵ファイルに移動する。「xxxxxx」 は、ユーザ名。
$ pwd
/home/xxxxxx
$ ls
id_rsa.pub
$ mkdir .ssh
$ chmod 700 .ssh
$ mv id_rsa.pub .ssh/authorized_keys
/home/xxxxxx
$ ls
id_rsa.pub
$ mkdir .ssh
$ chmod 700 .ssh
$ mv id_rsa.pub .ssh/authorized_keys
SSHの設定を、認証鍵方式のログインに変更。
sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.org2
sudo nano /etc/ssh/sshd_config
- - - - - 最下行に下記3行を追記
PubkeyAuthentication yes ← 追記
AuthorizedKeysFile %h/.ssh/authorized_keys ← 追記
PasswordAuthentication no ← 追記
sudo nano /etc/ssh/sshd_config
- - - - - 最下行に下記3行を追記
PubkeyAuthentication yes ← 追記
AuthorizedKeysFile %h/.ssh/authorized_keys ← 追記
PasswordAuthentication no ← 追記
以上で設定は終了。
SSHサーバーを再起動して設定を読み込ませる。
sudo service ssh restart
Raspberry Pi をWebサーバーとして運用するための「 セキュリティ設定 」は以上で完了。
次のステップ:
Raspberry Pi WordPress Webサーバー 構築手順
1-2. Raspberry Pi の セキュリティ設定
以上。
(2019.05.10)
(2019.05.10)
スポンサー リンク