LINUX.ORG.RU
ФорумAdmin

iptables + ipset доступ с определенных ip

 , ,


1

1

Всем привет, подскажите пожалуйста, был такой набор правил

iptables -S

-P INPUT DROP
-P FORWARD DROP
-P OUTPUT ACCEPT
-N ICMP
-N TCP
-N UDP
-A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -m conntrack --ctstate INVALID -j DROP
-A INPUT -p udp -m conntrack --ctstate NEW -j UDP
-A INPUT -p tcp -m tcp --tcp-flags FIN,SYN,RST,ACK SYN -m conntrack --ctstate NEW -j TCP
-A INPUT -p icmp -m conntrack --ctstate NEW -j ICMP
-A INPUT -p udp -j REJECT --reject-with icmp-port-unreachable
-A INPUT -p tcp -j REJECT --reject-with tcp-reset
-A INPUT -j REJECT --reject-with icmp-port-unreachable
-A TCP -p tcp -m tcp --dport 2299 -j ACCEPT
-A TCP -p tcp -m tcp --dport 7006 -j ACCEPT

появилась необходимость сделать доступ только с определенных ip. Реализовал через ipset - создал list с именем allow_ip с нужными ip и добавил правило

iptables -I INPUT -m set ! --match-set allow_ip src -j DROP

Все заработало кроме одного, с хоста пропал интернет, точнее пакеты уходят, например на 8.8.8.8, а ответы отбрасываются, так как 8.8.8.8 нет в allow_ip

Что я делаю не так? Вроде как состояния NEW, RELATED и ESTABLISHED описаны.

Заранее спасибо за советы.

Давайте попытаемся догадаться что делает команда iptables -I INPUT -m set ! --match-set allow_ip src -j DROP ? Правильно, она добавляет это правило в начало цепочки INPUT.
Вообще не понятно зачем вы его добавляете именно в таком изложении, учитывая что у вас и так политика по умолчанию DROP. Добавьте без not ! (восклицательный знак) и с ACCEPT

anc ★★★★★ ()
Ответ на: комментарий от anc

да, именно к ним

# Generated by iptables-save v1.8.2 on Mon Jul 26 18:28:25 2021
*mangle
:PREROUTING ACCEPT [3152435627:441820296858]
:INPUT ACCEPT [2318212522:393394519299]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [1253633012:56735130282230]
:POSTROUTING ACCEPT [1253633012:56735130282230]
COMMIT
# Completed on Mon Jul 26 18:28:25 2021
# Generated by iptables-save v1.8.2 on Mon Jul 26 18:28:25 2021
*nat
:PREROUTING ACCEPT [901203457:60520978249]
:INPUT ACCEPT [27301067:1638297780]
:OUTPUT ACCEPT [80154976:5289666910]
:POSTROUTING ACCEPT [82129159:5368634230]
COMMIT
# Completed on Mon Jul 26 18:28:25 2021
# Generated by iptables-save v1.8.2 on Mon Jul 26 18:28:25 2021
*filter
:INPUT DROP [0:0]
:FORWARD DROP [0:0]
:OUTPUT ACCEPT [117320:11218179]
:ICMP - [0:0]
:TCP - [0:0]
:UDP - [0:0]
-A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -m conntrack --ctstate INVALID -j DROP
-A INPUT -p udp -m conntrack --ctstate NEW -j UDP
-A INPUT -p tcp -m tcp --tcp-flags FIN,SYN,RST,ACK SYN -m conntrack --ctstate NEW -j TCP
-A INPUT -p icmp -m conntrack --ctstate NEW -j ICMP
-A INPUT -p udp -j REJECT --reject-with icmp-port-unreachable
-A INPUT -p tcp -j REJECT --reject-with tcp-reset
-A INPUT -j REJECT --reject-with icmp-port-unreachable
-A TCP -p tcp -m tcp --dport 2299 -j ACCEPT
-A TCP -p tcp -m tcp --dport 7006 -j ACCEPT
# Completed on Mon Jul 26 18:28:25 2021
# Generated by iptables-save v1.8.2 on Mon Jul 26 18:28:25 2021
*raw
:PREROUTING ACCEPT [3152435626:441820296818]
:OUTPUT ACCEPT [1253633021:56735130284090]
COMMIT
# Completed on Mon Jul 26 18:28:25 2021

Пока не разберусь, я убрал правило

iptables -I INPUT -m set --match-set allow_ip src -j ACCEPT
sergeloid ()