Jump to content
Калькуляторы

stateless iptables

Здравствуйте.

Есть бордер на Centos 7.
Пытаюсь настроить stateless iptables.
Задача избавиться от переполнения nf_conntrack.
NAT не используется, адреса белые.
 

iptables -F
iptables -X
iptables -t raw -I PREROUTING -j NOTRACK
iptables -t raw -I OUTPUT -j NOTRACK
iptables -A INPUT -p tcp \! --syn -j ACCEPT
iptables -P INPUT DROP
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT
#
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -p icmp -j ACCEPT
#
ipset -N bgp nethash
ipset -A bgp 1.1.1.1
ipset -A bgp 2.2.2.2
ipset -A bgp 3.3.3.3
ipset -A bgp 4.4.4.4
ipset -A bgp 5.5.5.5
iptables -A INPUT -p tcp --dport 179 -m set --match-set bgp src,dst -j ACCEPT


Но при таких настройках половина bgp сессий падает и висит в состоянии Connect.
Ладно если бы все сессии падали, а так неясно куда копать.
Что я делаю не так?
 

Edited by alex3179

Share this post


Link to post
Share on other sites

Цитата

iptables -A INPUT -p tcp --dport 179 -j LOG --log-prefix "DST was dropped: "
iptables -A INPUT -p tcp --sport 179 -j LOG --log-prefix "SRC was dropped: "

И смотреть что дропается

Share this post


Link to post
Share on other sites

Можно упростить строку ниже (какой же неудобный редактор постов).

iptables -A INPUT -p tcp --dport 179 -m set --match-set bgp src -j ACCEPT

Здесь же про INPUT, зачем ещё фильтровать по dst.

Также для экспериментов заменить её на безусловный "iptables -A INPUT -p tcp --dport 179 -j ACCEPT", и посмотреть помогло ли это.

 

Share this post


Link to post
Share on other sites

iptables -A INPUT -p tcp --dport 179 -j LOG --log-prefix "DST was dropped: "
iptables -A INPUT -p tcp --sport 179 -j LOG --log-prefix "SRC was dropped: "
Ничего не показало, а вот
iptables -A OUTPUT -j LOG --log-prefix "OUTPUT was dropped: "
показало дропы

Трафик нормально ходит только при
iptables -A INPUT -j ACCEPT

Если указать интерфейс, протокол или порт, то сразу дропы в OUTPUT
Хотя по дефолту iptables -P OUTPUT ACCEPT

Буду пробовать на новом ядре

Share this post


Link to post
Share on other sites

Цитата

iptables -A OUTPUT -j LOG --log-prefix "OUTPUT was dropped: "
показало дропы

Аутпут вообще не при делах. Там все правила принимаются. Кроме того это не дропы, а пакеты подпадающие под правилo, каммент подразумевался для инпута с дефолтполиси дроп,

 

 

В 20.03.2023 в 23:22, Ivan_83 сказал:

А нужен ли там вообще фаервол?

Кстати да, можно просто запретить загрузку nf_conntrack и всех связанных с ним модулей и хелперов на старте.

 

Share this post


Link to post
Share on other sites

С OUTPUT действительно это не дропы, я поторопился

iptables -A INPUT -j LOG --log-prefix "INPUT was dropped: " - вообще ничего не попадает в лог из того что надо, но трафик не ходит

А как без фаервола? Светить в мир 22, 161, 179, 2601, 2605 порты?
 

Edited by alex3179

Share this post


Link to post
Share on other sites

53 minutes ago, alex3179 said:

А как без фаервола? Светить в мир 22, 161, 179, 2601, 2605 порты?

А авторизации нет?

Можно было бы TTL выставить низким для локальных сервисов.

Share this post


Link to post
Share on other sites

Вот еще вариант блокировки ненужного без conntrack:

*raw
:PREROUTING ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:block_BGP - [0:0]
:block_out_IF - [0:0]
-A PREROUTING -p tcp -m tcp --dport 179 -j block_BGP
-A PREROUTING -p tcp -m tcp -m set --match-set LOCAL4 dst -m set --match-set save-ports dst -j DROP
-A PREROUTING -p udp -m udp -m set --match-set LOCAL4 dst -m set --match-set amplif-ports dst -j block_out_IF
-A PREROUTING -p udp -m udp --dport 123 -m u32 --u32 "0x0>>0x16&0x3c@0x8&0xff=0x2a" -j DROP
-A PREROUTING -m set --match-set flood src -j DROP
-A PREROUTING -i vlan226 -j NOTRACK
-A PREROUTING -i vlan2088 -j NOTRACK
-A PREROUTING -i vlan13 -j NOTRACK
-A block_BGP -m set --match-set bgp4 src -j ACCEPT
-A block_BGP -j DROP
-A block_out_IF -i vlan100 -j DROP
-A block_out_IF -i vlan226 -j DROP
-A block_out_IF -i vlan2088 -j DROP
-A block_out_IF -j ACCEPT
COMMIT

 

Правила в таблице raw, цепочка PREROUTING работает и для трафика приходящего на хост и на транзитный трафик, это надо учитывать. В сете bgp4 прописаны адреса bgp-пиров, в сете LOCAL4 прописаны адреса своих сетей, save-ports - порты типа 22, 161 итд, amplif-ports - порты применяемые для атаки на усиление, flood наполняет fail2ban. Интерфейсы vlan226 и vlan2088 смотрят в сторону аплинка, vlan13 смотрит в сторону локальной сети.

 

conntrack -L
conntrack v1.4.6 (conntrack-tools): 0 flow entries have been shown.

 

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.