Linux'ta iptables kullanarak belirli bir kullanıcı için internet erişimini kısıtlama


11

LAN üzerinde A ve B olmak üzere iki kullanıcı olduğunu varsayalım. Ayrıca, o kullanıcıya bir noktada erişim izni vermek istediğimi varsayalım; tekrar nasıl etkinleştirebilirim? Ubuntu Linux 10.04 kullanıyorum. Birisi bana yerel bir ssh girişi kullanarak makineye giriş yaptığım için komut satırından nasıl yapılacağını gösterirse iyi olur.

Yanıtlar:


17

A ve B kullanıcılarının yönetici olduğunuz aynı Linux makinelerini kullandığını varsayıyorum. (Sorunuzdan tamamen net değil. A ve B'nin yönetici oldukları kendi bilgisayarları varsa, bu tamamen farklı bir sorundur.)

Aşağıdaki komut, uid 1234 olan kullanıcının arabirimde paket göndermesini önler eth0:

iptables -t mangle -A OUTPUT -o eth0 -m owner --uid-owner 1234 -j DROP

Aracı temel olarak tanımak için Ubuntu iptables rehberini okumanızı tavsiye ederim (ve mangle tablosu gibi gelişmiş şeyler için man sayfasına bakın).

Kullanıcı yine de ping'i çalıştırabilir (çünkü setuid köküdür), ancak başka bir şey yapamaz. Bu proxy başka bir kullanıcı tarafından başlatılmışsa kullanıcı yine de yerel bir proxy'ye bağlanabilecektir.

Bu kuralı kaldırmak -Diçin yukarıdaki komuta ekleyin .

Kuralı kalıcı hale getirmek için, şuna ekleyin /etc/network/if-up.d/my-user-restrictions(ile başlayan bir yürütülebilir komut dosyası yapın #!/bin/sh). Veya kullanın iptables-save( daha fazla bilgi için Ubuntu iptables kılavuzuna bakın).


Çok teşekkür ederim. Ve evet varsayımlarınız doğru. Cevabınıza ve bahsedilen ubuntu rehberine dayanarak, kısıtlı kullanıcı ssh erişimi vermek istiyorsanız (bazen ssh üzerinden hesabını kullanarak giriş yapmak istiyorum): iptables -t mangle -A OUTPUT - o eth0 -m sahibi --uid-sahibi 1234 -p tcp --dport ssh -j kabul edilebilir iptables -t mangle -A ÇIKIŞ -o eth0 -m sahibi --uid-sahibi 1234 -j DROP Bu kuralları olduğu gibi koydum belirtilen dosya ve işler iyi çalışıyor gibi görünüyor.
Marwan Tanager

@Marwan Bence bu doğru. Ssh erişimine izin verirseniz, ssh'ın diğer protokolleri önemsiz bir şekilde tünelleyebileceğinden hemen hemen her şeye izin verdiğinizi unutmayın.
Gilles 'SO- kötü olmayı bırak'

0

Bunun için iptables kullanmazdım.

A ve B'nin sabit IP'ler ClientA ve ClientB ile ilişkili olduğunu varsayıyorum. Internet Proxy'nizin ServerI (Ubuntu-Sunucunuz?) Olduğunu varsayıyorum.

Bu yüzden bir reddetme / bırak yönlendirme girişi ClientA dan ServerI eklemek istiyorum.

Ubuntu kullanmıyorum - bu yüzden bu ayarı kalıcı hale getirmek için hangi yapılandırma dosyasını kullanacağınızı söyleyemem (yeniden başlatmadan sağ kalmayı).

Belki birisi bu detayı ekleyebilir mi?

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.