Mam sieć z 80 komputerami i Ubuntu 12.04 jako GW. Ze względów bezpieczeństwa chcę ograniczyć komputery podłączone do tej sieci za pomocą wstępnie skompilowanej tabeli ARP. Innymi słowy, chcę narzędzie, które pozwala na dostęp do Internetu tylko wtedy, gdy para ARP --> [IP-MAC]
jest wstępnie skonfigurowana i ignoruje każdą inną kombinację. Dzięki tej technice chcę uniemożliwić użytkownikom zmianę adresatów IP przypisanych z rezerwacji DHCP oraz dostęp do nieograniczonych sieci i escape from iptable
reguł. Dzięki
linux
networking
ubuntu
iptables
emirjonb
źródło
źródło
Odpowiedzi:
To, czego naprawdę szukasz, to kontrola dostępu do sieci 802.1x. Działa to w RADIUS i wymaga uwierzytelnienia klienta przed dostępem do sieci. Istnieje kilka rozwiązań opartych na systemie Linux, w tym:
Dla klientów:
W przypadku serwera NAC:
Zakładając, że nie masz zarządzanych przełączników zdolnych do uruchamiania sieci VLAN, możesz chcieć korzystać z PacketFence w trybie in-line, opisanym w dokumentacji. Służy
ipset
do modyfikowania reguł zapory w celu umożliwienia ruchu, ale wymaga określonych separacji topologii (DNS na oddzielnym segmencie od hostów). Przełączniki, których może używać PacketFence, są wymienione tutajKOREKTA !: Istnieje inny wbudowany sposób zarządzania tabelą arp w Linuksie
man 5 ethers
. Dodajesz wpisy w postaci,ethernet ip
aby/etc/ethers
następnie uruchomić,arp -f
aby zaktualizować tabelę na tej podstawie. Zobaczman arp
szczegóły i http://gwallgofi.com/static-arp-linux/, aby uzyskać bardziej szczegółowe instrukcje.Aby odpowiedzieć na konkretne pytanie dotyczące tabel arp, utwórz plik
static-arp.conf
zawierający wpisy, takie jak:Następnie uruchomić:
Z jakiegoś powodu nie działało i musiałem przełączyć się na read -u, aby skonfigurować deskryptor pliku, nie jestem pewien, dlaczego ... ale to dodało wpisy jako wymienione. Następnie możesz rozpowszechniać to , co chcesz, za pośrednictwem nfs, git, rsync itp.
for I in
cat static-arp.conf
static-arp.conf
Vlans prawdopodobnie byłby jednak lepszym pomysłem. Informacje na temat korzystania z vlana w Linuksie znajdują się tutaj .
źródło
iptables -A FORWARD -s 192.168.1.1 -m mac ! --mac-source 00:01:02:03:04:05 -j DROP
. Nie-p tcp
powinno to być konieczne, ponieważ po prostu dopasowujemy adresy IP. W przeciwnym razie wygląda dobrze.iptables-save > testfile
testfile
iptables-restore < testfile
Szukasz czegoś tak prostego?
W ten sposób możesz ustawić tylko dozwolone adresy MAC, aby uzyskać dostęp do Internetu (możesz również podać adres IP i najprawdopodobniej będziesz potrzebować ładnego skryptu, aby go utrzymać). Inne rozwiązania zostały już omówione w komentarzach.
Edycja: Nie udało mi się rozwiązać negacji (nie działało), ale możesz to zrobić:
„Czy ta reguła odrzuca cały pakiet, który pochodzi z 192.168.1.1 i ma inny adres MAC, który został narzucony w regule?” Myślę, że o to prosiłeś.
Zwróć uwagę na kilka zmian - brakujące „!” i „-p tcp” - co upuszczałoby tylko pakiety tcp.
Uwaga 2: Pamiętaj, że wspomniany adres IP z innym adresem MAC nadal mógłby na przykład pingować router. Aby temu zapobiec, musisz zrobić to samo w łańcuchu INPUT.
źródło
Testowałem i wydaje się, że działa
Upuść, jeśli pakiety pochodzą z tego adresu IP z innym adresem MAC, jak wpisano w regule. Jedynym problemem jest to, że muszę ręcznie dodawać każdy adres IP, który muszę „chronić”. Na razie mam tylko 2
*A illusion of protect since exist MAC spoofing
w każdym razie zniechęca to użytkownikówźródło