そこで最近、RetroPie Debianベースの画像を使って小さな情熱プロジェクトを進めるためにRaspberry Piを購入しました。
これで、特定の接続のみを許可するようにサーバーを完全にブロックしたい手順に達しました。私のユースケースでは、次のようになります。
- サーバーと同じネットワークからのインバウンドSSH接続のみを許可する
- 特定のIPへのアウトバウンド接続のみを許可する
ufw
これを達成するために、私はインバウンド/アウトバウンド接続のインストールと設定とhosts.allow
追加のセキュリティという2つのアプローチを取りましたhosts.deny
。
これは私の現在の設定です。
hosts.allow
sshd: LOCAL
sshd: 192.168.1.0/255.255.255.0 # allow ssh from local network IPs only
sendmsg: 8.8.8.8 # allow ping google DNS to validate internet connectivity
hosts.deny
sshd: ALL
ufw:
Status: active
Logging: on (low)
Default: deny (incoming), deny (outgoing), disabled (routed)
New profiles: skip
To Action From
-- ------ ----
22/tcp ALLOW IN 192.168.1.0/24 # from local
XX.XX.XXX.XXX 443/tcp ALLOW OUT Anywhere # to specific IP
XX.XX.XXX.XXX 443/tcp ALLOW OUT Anywhere # to specific IP
XX.XX.XXX.XXX 443/tcp ALLOW OUT Anywhere # to specific IP
140.82.121.4 443/tcp ALLOW OUT Anywhere # to github
46.235.231.151 80/tcp ALLOW OUT Anywhere # to raspberry registry
93.93.128.193 80/tcp ALLOW OUT Anywhere # to raspberry registry
XX.XX.XXX.XXX 443/tcp ALLOW OUT Anywhere # to specific IP
現在何が起こっているのかは、サーバーが再起動されるたびに現在のIPアドレスが自分のコンピュータ(Raspberry PIと同じネットワーク上にある)からSSH経由で接続できないことです。192.168.1.65
動的かもしれませんが、決してリンクされません。 IP範囲に特定のIPを残さないでくださいhosts.allow
。
sudo systemctl stop ufw
サーバーを再起動するたびにSSH接続を使用できるように、キーボードを使用してPiに手動で接続する必要がありますなぜufw
ローカルIP範囲のポート22でTCP接続を許可するようにインバウンドルールを設定するとどうなりますか?ここで何か抜けましたか?
よろしくお願いします。
答え1
PasswordAuthentication no
これがなぜ問題を解決したのかはわかりませんが、無効にしてデフォルトでPermitEmptyPasswords no
sshのキー認証を強制した後は正しく機能するようです。
元の公開文書には変更はありませんhosts.*
。
また、変更を実行しsudo systemctl restart sshd
てsudo systemctl restart ufw
更新します。システムを再起動すると、作成した秘密鍵と公開鍵のペアを使用してログインできるようになりました。