Jak mogę na moim serwerze ubuntu, w Iptables zezwalać tylko na jeden adres IP na określonym porcie?
Dzięki
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
INPUT
goOUTPUT
zablokował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.--src 1.2.3.4/30
iptables -I xxx --src 7.8.9.10 -j ACCEPT
Oto przykład z jednego z moich systemów CentOS (adresy zostały zaciemnione):
źródło
service iptables save
.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
źródło