Iptables: Jak zezwolić tylko na jeden ip przez określony port?

25

Jak mogę na moim serwerze ubuntu, w Iptables zezwalać tylko na jeden adres IP na określonym porcie?

Dzięki

Anonimowy12345
źródło

Odpowiedzi:

48

Jedna wkładka:

iptables -I INPUT \! --src 1.2.3.4 -m tcp -p tcp --dport 777 -j DROP  # if it's not 1.2.3.4, drop it

Bardziej eleganckie rozwiązanie:

iptables -N xxx # create a new chain
iptables -A xxx --src 1.2.3.4 -j ACCEPT  # allow 1.2.3.4
iptables -A xxx --src 1.2.3.5 -j ACCEPT  # allow 1.2.3.5
iptables -A xxx --src 1.2.3.6 -j ACCEPT  # allow 1.2.3.6
iptables -A xxx -j DROP  # drop everyone else
iptables -I INPUT -m tcp -p tcp --dport 777 -j xxx  # use chain xxx for packets coming to TCP port 777
Cristian Ciupitu
źródło
Czy wiesz, czy powinienem również dodać to do WYJŚCIA?
Anonimowy12345
@Camran: musisz być bardziej szczegółowy. W tym szczególnym przypadku zastąpienie INPUTgo OUTPUTzablokowałoby niektóre pakiety wysłane przy użyciu niektórych adresów samego serwera (i nie były routowane / przekazywane). Wątpię, czy to ma sens, chyba że chcesz zablokować programy, które wiążą się z określonymi interfejsami.
Cristian Ciupitu
1
Nie zapominaj, że możesz również określić swoje źródła w łańcuchu, takim jak:--src 1.2.3.4/30
deed02392
Jak później dodać nowy dozwolony adres IP do łańcucha? Czy najpierw muszę usunąć DROP, a następnie wprowadzić nowego użytkownika i włożyć DROP ponownie, czy jest lepsze rozwiązanie?
maddo7
2
@Matthias:iptables -I xxx --src 7.8.9.10 -j ACCEPT
Cristian Ciupitu
0

Oto przykład z jednego z moich systemów CentOS (adresy zostały zaciemnione):

-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp -s 1.2.3.4 -d 5.6.7.8 --dport 22 -j ACCEPT
zaciemnienie
źródło
na centos, gdzie ustawić tę konfigurację na stałe? (w Ubuntu możemy użyć /etc/network/if-up.d/anyfile)
Kokizzu 18.03.13
CentOS jest: service iptables save.
Martin Zeitler
0

Używam ściany brzegowej do konfigurowania tabeli IP. Użyj reguły takiej jak akceptacja z jednego hosta na port 123.

ZAAKCEPTUJ netto: 192.0.2.1 $ FW tcp 1234

BillThor
źródło