iptables blokuje dostęp do portu 8000 z wyjątkiem adresu IP

Nigdy nie używałem iptables, a dokumentacja online wydaje się nieco nieprzejrzysta.

Chciałbym zablokować wszystkie żądania do portu 8000 na moim serwerze z wyjątkiem tych pochodzących z określonego adresu IP. Jak to zrobić za pomocą iptables?

Author: will, 2011-09-15

3 answers

To pytanie powinno być na Błąd serwera . Niemniej jednak, poniższe powinno załatwić sprawę, zakładając, że mówisz o TCP i IP, na które chcesz zezwolić, to 1.2.3.4:

iptables -A INPUT -p tcp --dport 8000 -s 1.2.3.4 -j ACCEPT
iptables -A INPUT -p tcp --dport 8000 -j DROP
 123
Author: Jon Bright,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-09-14 21:50:29

Inną alternatywą jest;

sudo iptables -A INPUT -p tcp --dport 8000 -s ! 1.2.3.4 -j DROP

Miałem podobny problem, że 3 bridged virtualmachine po prostu potrzebują dostępu do siebie z inną kombinacją, więc przetestowałem to polecenie i działa dobrze.

Edit * *

Zgodnie z komentarzem Fernando i tym linkiem wykrzyknikiem (!) zostanie umieszczony przed parametrem -s:

sudo iptables -A INPUT -p tcp --dport 8000 ! -s 1.2.3.4 -j DROP
 16
Author: HRgiger,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-03-20 10:18:14

Zawsze możesz użyć iptables, aby usunąć reguły. Jeśli masz wiele reguł, po prostu wypuść je za pomocą następującego polecenia.

iptables-save > myfile

vi aby edytować je z linii poleceń. Wystarczy użyć "dd", aby usunąć wiersze, których już nie chcesz.

iptables-load < myfile and you're good to go.  

PAMIĘTAJ, ŻE JEŚLI NIE SKONFIGURUJESZ SYSTEMU OPERACYJNEGO DO ZAPISYWANIA REGUŁ W PLIKU, A NASTĘPNIE ZAŁADUJESZ PLIK PODCZAS ROZRUCHU, TWOJE REGUŁY ZOSTANĄ UTRACONE.

 4
Author: RecentCoin,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-05-15 23:01:32