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
を実行すると機能しません。
なぜ機能しないのかわかりません。 localhost
は127.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
IPv6についても同じことを行います... localhostはIPv4とIPv6の両方のアドレスに解決され、v6が優先されます。
編集1:
ip6tables -I OUTPUT -o lo -p tcp --dport 5000 --match owner --uid-owner 1000 -j DROP