LAN上にAとBの2人のユーザーがいるとします。iptablesルールを使用してユーザーAのインターネットアクセスを制限し、再起動後も有効になるようにルールを保存するにはどうすればよいですか。また、ある時点でそのユーザーにアクセスを許可したいとします。どうすれば再度有効にできますか? UbuntuLinux10.04を使用しています。私はローカルのsshログインを使用してマシンにログインすることが多いので、誰かがコマンドラインからそれを行う方法を教えてくれるといいでしょう。
承認された回答:
ユーザーAとBは、あなたが管理者である同じLinuxマシンを使用していると思います。 (あなたの質問からは完全には明らかではありません。AとBが管理者である独自のコンピューターを持っている場合、それはまったく別の問題です。)
次のコマンドは、uid1234を使用するユーザーがインターフェースeth0
でパケットを送信できないようにします。 :
iptables -t mangle -A OUTPUT -o eth0 -m owner --uid-owner 1234 -j DROP
ip6tables -t mangle -A OUTPUT -o eth0 -m owner --uid-owner 1234 -j DROP
このツールの基本的な知識を得るために、Ubuntu iptablesガイドを読むことをお勧めします(マングルテーブルなどの高度な機能については、manページを参照してください)。
ユーザーは引き続きpingを実行できますが(setuid rootであるため)、それ以外は実行できません。ローカルプロキシが別のユーザーによって開始された場合でも、そのユーザーはローカルプロキシに接続できます。
このルールを削除するには、-D
を追加します 上記のコマンドに移動します。
ルールを永続的にするには、ルールを/etc/network/if-up.d/my-user-restrictions
に追加します (#!/bin/sh
で始まる実行可能スクリプトを作成します )。または、iptables-save
を使用します (詳細については、Ubuntu iptablesガイドを参照してください)。