OpenBSDのpf:特定のユーザーへのネットワークアクセス(sshを除く)を無効にします。

OpenBSDのpf:特定のユーザーへのネットワークアクセス(sshを除く)を無効にします。

OpenBSD のデフォルトのファイアウォールを使用している場合は、1 つだけではなく、一般ユーザーのすべてのネットワークアクセスを無効にするようにファイアウォールを変更するにはどうすればよいですか?ランダムホストからユーザーにSSHを接続したい!

たとえば、ユーザーが "wgetgoogle.com"を望む場合は、ファイアウォール権限を持ってはいけません。 scpを介して任意のコンピュータからユーザーに何かをコピーするには、ファイアウォールでそれを許可する必要があります。ユーザーが他のホストにSSHで接続したい場合は、アクセス権を持ってはいけません。

ベストアンサー1

私の考えでは、あなたがauhpfを探していると思います。

http://www.openbsd.org/faq/pf/authpf.html

Authpf(8) は、ゲートウェイの認証に使用されるユーザーシェルです。認証ゲートウェイは、ゲートウェイがトラフィックを許可する前にユーザーが最初にゲートウェイに自分自身を認証する必要があることを除いて、通常のネットワークゲートウェイ(ルーターとも呼ばれます)と同じです。ユーザーシェルが/usr/sbin/authpfに設定されている(つまり、ユーザーシェルをksh(1)、csh(1)などに設定するのではなく)、ユーザーがSSHを使用してログインすると、authpfはアクティブシェルを使用します。 pf(4)ルールセット - ユーザーのトラフィックはフィルタを通過するか、ネットワークアドレス変換またはリダイレクトを使用して変換されます。ユーザーがログオフするかセッションが切断されると、authpfはユーザーにロードされたすべてのルールを削除し、ユーザーが開いたすべてのステートフル接続を終了します。これにより、ユーザーはSSHセッションを開いたままにしてゲートウェイを介してトラフィックを転送できます。

# macros
wifi_if = "wi0"
ext_if  = "fxp0"
dns_servers = "{ 10.0.1.56, 10.0.2.56 }"

table <authpf_users> persist

# filter
block drop all

pass out quick on $ext_if inet proto { tcp, udp, icmp } \
   from { $wifi_if:network, $ext_if }

pass in quick on $wifi_if inet proto tcp \
   from $wifi_if:network to $wifi_if port ssh

pass in quick on $wifi_if inet proto { tcp, udp } \
   from <authpf_users> to $dns_servers port domain

anchor "authpf/*" in on $wifi_if

おすすめ記事