FreeStyleWiki

ラズパイ管理

このエントリーをはてなブックマークに追加

[Linux,RaspberryPi,サーバ管理]

ラズパイ管理

  SSH

公開鍵をサーバーに登録する

# ログイン
$ ssh [email protected]
# フォルダとファイルを作る(既に存在している場合は実行しなくても可)
$ mkdir ~/.ssh
$ touch ~/.ssh/authorized_keys
# 権限の設定。ここを間違えると、公開鍵認証でログイン出来ないので注意
$ chmod 700 ~/.ssh
$ chmod 600 ~/.ssh/authorized_keys
# 追記
$ vim ~/.ssh/authorized_keys

パスワード認証を禁止する

  • 対象サーバーへログインした状態で以下のようにsshdを設定
    • よくある話だが、sshd_config.d/以下にファイルを設定しオリジナルのファイルはいじらぬが吉
$ sudo vi /etc/ssh/sshd_config.d/pi.conf

PasswordAuthentication no
ChallengeResponseAuthentication no
PermitRootLogin no <-- rootでログインしないのであれば

ログインテスト

  • 別のコンソールで公開鍵認証でSSHできればOK、出来なければ設定を見直す
$ sudo systemctl reload sshd

ファイアウォール

# apt-get install -y ufw
# ufw allow 10022/tcp
Rule added
Rule added (v6)

# vim /etc/ssh/sshd_config
Port 10022
# systemctl reload sshd
  • SSHの許可と拒否は/etc/hosts.{allow,deny}でもできる

ufwのルール表示(番号付き)

$ sudo ufw status numbered verbose

ルールの削除

$ sudo ufw delete

任意のホストからのアクセスを許可する

$ sudo ufw allow from 192.168.0.0/24 to any port 10022

  Apache

SFTPでリモートログインしたときに/var/www/html以下をpiユーザーで読み書きできないと不便なので、設定を変える。

# www-data グループがあることを確認
[email protected]:/var/www $ sudo cat /etc/group | grep www-data
www-data:x:33

# /var/www/html/ 以下の権限を変更
$ sudo chown -R www-data:www-data /var/www/html/
$ sudo chmod 775 /var/www/html/

# piユーザーをwww-dataに加える
$ sudo usermod -aG www-data pi

これで公開ディレクトリ「/var/www/html/」内に一般ユーザーがファイルをアップロードできるようになる。。。

  WOL(対向サーバであるDebian11の設定)

$ nmcli d
DEVICE           TYPE      STATE            CONNECTION      
enp7s0           ethernet  接続済み         有線接続 1 
  • 以下のようにnmcliを実行
$ sudo nmcli c modify "有線接続 1" 802-3-ethernet.wake-on-lan magic
  • WOL有効化
$ sudo ethtool -s enp7s0 wol g

  VPNクライアント

接続の匿名化のためにVPNサービスにつなぎたい

cyberghostvpn公式のやり方をアレンジ

openvpnのインストール

$ sudo apt-get install openvpn openssl openresolv

設定ファイルをclient以下にコピー

// このconf名がsystemctlで使われる
$ sudo cp CG_JP.conf /etc/openvpn/client/

$ sudo cp ca.cert /etc/openvpn/client/
$ sudo cp client.crt /etc/openvpn/client/
$ sudo cp client.key /etc/openvpn/client/

openvpn client起動

$ sudo systemctl start [email protected]_JP

起動確認

$ sudo systemctl status [email protected]_JP
● [email protected]_JP.service - OpenVPN tunnel for CG_JP
     Loaded: loaded (/lib/systemd/system/[email protected]; disabled; vendor preset: enabled)
     Active: active (running)

curlでグローバルIPアドレスが変われば成功

$ curl httpbin.org/ip
{
  "origin": "xxx.xxx.xxx.xxx"
}

OKならば自動起動にする

$ sudo systemctl enable [email protected]_JP