web-dev-qa-db-ja.com

ローカルポートアクセスを特定のユーザーに制限する

Debianの特定のユーザーに対して特定のポートへのアクセスを制限しようとしています。

ユーザーのIDが1000で、ブロックするポートが5000であるとします。

次のコマンドでiptablesを使用してみました:

iptables -I OUTPUT -o lo -p tcp --dport 5000 --match owner --uid-owner 1000 -j DROP

ユーザーがcurl 127.0.0.1:5000またはcurl <machine_ip>:5000を実行すると機能しますが、ユーザーがcurl localhost:5000を実行すると機能しません。

なぜ機能しないのかわかりません。 localhost127.0.0.1に変換されました。違いは何ですか?

/ etc/hostsファイルに、

127.0.0.1   localhost

# The following lines are desirable for IPv6 capable hosts
::1 localhost   ip6-localhost ip6-loopback
3
Nicolas Mauti

IPv6についても同じことを行います... localhostはIPv4とIPv6の両方のアドレスに解決され、v6が優先されます。

編集1:

ip6tables -I OUTPUT -o lo -p tcp --dport 5000 --match owner --uid-owner 1000 -j DROP
3
tink