Linuxでiptablesを使用してLAN上の特定のユーザーにインターネットアクセスを制限する方法

Linuxでiptablesを使用してLAN上の特定のユーザーにインターネットアクセスを制限する方法

LANにAとBという2人のユーザーがいるとします。 iptables ルールを使用してユーザー A のインターネットアクセスを制限し、再起動後も有効な状態に保つようにルールを保存する方法。また、特定の時点でこのユーザーにアクセス権を付与したい場合は、どのように再度有効にしますか? Ubuntu Linux 10.04を使用しています。私はしばしば自分のコンピュータにログインするためにローカルSSHログインを使用しているので、誰かがコマンドラインでこれを行う方法を教えてくれたらいいでしょう。

ベストアンサー1

私は、ユーザーAとBが管理者である同じLinuxシステムを使用していると仮定します。 (質問では完全には明確ではありません。AとBの両方が独自のコンピュータを持っていて、管理者であればまったく異なる質問です。)

次のコマンドは、uid 1234を持つユーザーがインターフェイスからパケットを送信するのを防ぎます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ガイド基本的にツールに慣れてください(そして、マングルテーブルなどの詳細については、マニュアルページを参照してください)。

ユーザーはまだpingを実行できますが(setuidルートであるため)、他の操作を実行することはできません。他のユーザーがローカルプロキシを起動した場合でも、そのユーザーは引き続きプロキシに接続できます。

このルールを削除するには、-D上記のコマンドに追加してください。

ルールを永続的にするには、ルールをに追加します/etc/network/if-up.d/my-user-restrictions(で始まる実行可能スクリプトで作成します#!/bin/sh)。または以下を使用してくださいiptables-save(参照Ubuntu iptablesガイドより多くの情報を知りたい場合)。

おすすめ記事