Форум русскоязычного сообщества Ubuntu


Увидели сообщение с непонятной ссылкой, спам, непристойность или оскорбление?
Воспользуйтесь ссылкой «Сообщить модератору» рядом с сообщением!

Автор Тема: Корректное использование ipset  (Прочитано 154901 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн CALL|KA

  • Автор темы
  • Участник
  • *
  • Сообщений: 105
  • Водитель НЛО
    • Просмотр профиля
Корректное использование ipset
« : 19 Августа 2024, 23:21:42 »
Всем привет.
Есть хотелка - настроить недо-хинипот и собирать айпишники, с которых пытаются стучаться по указанным портам, в список. Правилом iptables блочить все дальнейшие подключения к хосту с этих адресов.
Первая часть со сбором адресов отрабатывает нормально. файл /proc/net/xt_recent/portscanners_list плавно наполняется адресами.
Но вот проблема во второй части, а именно первое правило не дропает подключения. Счетчик пакетов стоит на нуле. Подскажите, пожалуйста, ЧЯДНТ?
PS: я знаю, что не все перечисленные тут порты udp и не все tcp.

# записи в portscanners_list будут существовать неделю (бан на неделю)
ipset create portscanners_list iphash timeout 604800 family inet maxelem 2000000

#дропаем пакеты
-A INPUT -i eth0 -m set --match-set portscanners_list src -j DROP
#наполняем список
-A INPUT -i eth0 -p tcp -m multiport --dports 21,22,23,53,110,115,137,139,143,445 -m recent --set --name portscanners_list --rsource
-A INPUT -i eth0 -p tcp -m multiport --dports 465,587,993,995,2525,3389,5000,5900,6000,8888 -m recent  --set --name portscanners_list --rsource
-A INPUT -i eth0 -p udp -m multiport --dports 21,22,23,53,110,115,137,139,143,445 -m recent --set --name portscanners_list --rsource
-A INPUT -i eth0 -p udp -m multiport --dports 465,587,993,995,2525,3389,5000,5900,6000,8888 -m recent  --set --name portscanners_list --rsource

Оффлайн ALiEN

  • Администратор
  • Старожил
  • *
  • Сообщений: 7766
  • We were here
    • Просмотр профиля
Re: Корректное использование ipset
« Ответ #1 : 19 Августа 2024, 23:58:39 »
sudo iptables-save
🖥 AsRock B550M Pro4 :: AMD Ryzen 5 3600 :: 16 GB DDR4 :: AMD Radeon RX 6600 :: XFCE
💻 ACER 5750G :: Intel Core i5-2450M :: 6 GB DDR3 :: GeForce GT 630M :: XFCE

Оффлайн CALL|KA

  • Автор темы
  • Участник
  • *
  • Сообщений: 105
  • Водитель НЛО
    • Просмотр профиля
Re: Корректное использование ipset
« Ответ #2 : 20 Августа 2024, 10:12:18 »
Сохранил через iptables-save. Но странно то, что файл /proc/net/xt_recent/portscanners_list плавно наполняется адресами. А счетчики пакетов и байт на первом правиле не меняются:

iptables -nvL --line-numbers | less
..........
23       0     0 DROP       all  --  eth0   *       0.0.0.0/0            0.0.0.0/0            match-set portscanners_list src
24     225 10376            tcp  --  eth0   *       0.0.0.0/0            0.0.0.0/0            multiport dports 21,22,23,53,110,115,
137,139,143,445 recent: SET name: portscanners_list side: source mask: 255.255.255.255
25     117  5220            tcp  --  eth0   *       0.0.0.0/0            0.0.0.0/0            multiport dports 465,587,993,995,2525
,3389,5000,5900,6000,8888 recent: SET name: portscanners_list side: source mask: 255.255.255.255
26     130 10221            udp  --  eth0   *       0.0.0.0/0            0.0.0.0/0            multiport dports 21,22,23,53,110,115,
137,139,143,445 recent: SET name: portscanners_list side: source mask: 255.255.255.255
27       3   142            udp  --  eth0   *       0.0.0.0/0            0.0.0.0/0            multiport dports 465,587,993,995,2525
,3389,5000,5900,6000,8888 recent: SET name: portscanners_list side: source mask: 255.255.255.255

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 28506
    • Просмотр профиля
Re: Корректное использование ipset
« Ответ #3 : 20 Августа 2024, 15:23:06 »
CALL|KA, iptables-save показывайте. Вам уже намекнули один раз.

Пользователь добавил сообщение 20 Августа 2024, 15:27:54:
-A INPUT -i lo -j ACCEPT
-A INPUT -m conntrack --ctstate INVALID -j DROP
-A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A INPUT -m conntrack --ctstate DNAT -j ACCEPT

-A INPUT -i mac0 -p tcp -m multiport --dports 22 -m conntrack --ctstate NEW -j SSH_BLOCK
-A INPUT -i mac0 -p tcp -m multiport --dports 9,22,23,25,110,4899 -m conntrack --ctstate NEW -j SSH_CHECK

-A SSH_BLOCK -m recent --rcheck --seconds 3600 --reap --hitcount 2 --name SSH_BLOCK --mask 255.255.255.255 --rsource -j NOWAY
-A SSH_CHECK -m recent --set --name SSH --mask 255.255.255.255 --rsource
-A SSH_CHECK -m recent --rcheck --seconds 90 --reap --hitcount 4 --name SSH --mask 255.255.255.255 --rsource -j NOWAY
« Последнее редактирование: 20 Августа 2024, 15:27:54 от AnrDaemon »
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

Прежде чем [Отправить], нажми [Просмотр] и прочти собственное сообщение. Сам-то понял, что написал?…

Оффлайн CALL|KA

  • Автор темы
  • Участник
  • *
  • Сообщений: 105
  • Водитель НЛО
    • Просмотр профиля
Re: Корректное использование ipset
« Ответ #4 : 20 Августа 2024, 18:55:02 »
iptables-save показывайте. Вам уже намекнули один раз.
Можно было просто сказать с самого начала. Без обид.
На дату в файле не обращайте внимания, правлю его руками и применяю через iptables-restore.

cat /etc/iptables/rules.v4

*filter
:INPUT DROP [0:0]
:FORWARD DROP [0:0]
#for WG0 static FW rules
-A FORWARD -i eth0 -o wg0 -j ACCEPT
-A FORWARD -i wg0 -j ACCEPT
#log other packages
-A FORWARD -j LOG --log-prefix "FORWARD logged packet >>>>>>>"
-A FORWARD -j REJECT --reject-with icmp-port-unreachable
:OUTPUT ACCEPT [0:0]
:DOCKER - [0:0]
:DOCKER-ISOLATION-STAGE-1 - [0:0]
:DOCKER-ISOLATION-STAGE-2 - [0:0]
:DOCKER-USER - [0:0]
-A FORWARD -j DOCKER-USER
-A FORWARD -j DOCKER-ISOLATION-STAGE-1
-A FORWARD -o docker0 -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -o docker0 -j DOCKER
-A FORWARD -i docker0 ! -o docker0 -j ACCEPT
-A FORWARD -i docker0 -o docker0 -j ACCEPT
-A DOCKER-ISOLATION-STAGE-1 -i docker0 ! -o docker0 -j DOCKER-ISOLATION-STAGE-2
-A DOCKER-ISOLATION-STAGE-1 -j RETURN
-A DOCKER-ISOLATION-STAGE-2 -o docker0 -j DROP
-A DOCKER-ISOLATION-STAGE-2 -j RETURN
-A DOCKER-USER -j RETURN
-A INPUT -i lo -j ACCEPT
-A INPUT -i eth0 -m state --state RELATED,ESTABLISHED -j ACCEPT
#portscan and other protections
-A INPUT -i eth0 -p tcp -m tcp --tcp-flags FIN,SYN,RST,PSH,ACK,URG FIN,SYN,RST,PSH,ACK,URG -j DROP
-A INPUT -i eth0 -p tcp -m tcp --tcp-flags FIN,SYN,RST,PSH,ACK,URG NONE -j DROP
-A INPUT -i eth0 -p tcp -m tcp ! --tcp-flags FIN,SYN,RST,ACK SYN -m state --state NEW -j DROP
-A INPUT -i eth0 -p tcp -m tcp --tcp-flags FIN,SYN FIN,SYN -m limit --limit 5/min --limit-burst 7 -j DROP
-A INPUT -i eth0 -p tcp -m tcp --tcp-flags FIN,SYN FIN,SYN -j DROP
-A INPUT -i eth0 -p tcp -m tcp --tcp-flags SYN,RST SYN,RST -j DROP
-A INPUT -i eth0 -p tcp -m tcp --tcp-flags FIN,SYN,RST,PSH,ACK,URG NONE -m limit --limit 5/min --limit-burst 7 -j LOG --log-prefix "NULL Packets>>>>>>>>>>>>>>>>>"
-A INPUT -i eth0 -p tcp -m tcp --tcp-flags FIN,SYN,RST,PSH,ACK,URG NONE -j DROP
-A INPUT -i eth0 -p tcp -m tcp --tcp-flags RST RST -m limit --limit 2/sec --limit-burst 2 -j ACCEPT
-A INPUT -i eth0 -p tcp --tcp-flags ALL NONE -j DROP
-A INPUT -i eth0 -p tcp --tcp-flags SYN,FIN SYN,FIN -j DROP
-A INPUT -i eth0 -p tcp --tcp-flags SYN,RST SYN,RST -j DROP
-A INPUT -i eth0 -p tcp --tcp-flags ALL SYN,RST,ACK,FIN,URG -j DROP
-A INPUT -i eth0 -p tcp --tcp-flags FIN,RST FIN,RST -j DROP
-A INPUT -i eth0 -p tcp --tcp-flags ACK,FIN FIN -j DROP
-A INPUT -i eth0 -p tcp --tcp-flags ACK,PSH PSH -j DROP
-A INPUT -i eth0 -p tcp --tcp-flags ACK,URG URG -j DROP
-A INPUT -i eth0 -m state --state INVALID -j DROP
#blocking and adding portscan IPs to the list portscanners_list
-A INPUT -i eth0 -m set --match-set portscanners_list src -j DROP
-A INPUT -i eth0 -p tcp -m multiport --dports 21,22,23,53,110,115,137,139,143,445 -m recent --set --name portscanners_list --rsource
-A INPUT -i eth0 -p tcp -m multiport --dports 465,587,993,995,2525,3389,5000,5900,6000,8888 -m recent  --set --name portscanners_list --rsource
-A INPUT -i eth0 -p udp -m multiport --dports 21,22,23,53,110,115,137,139,143,445 -m recent --set --name portscanners_list --rsource
-A INPUT -i eth0 -p udp -m multiport --dports 465,587,993,995,2525,3389,5000,5900,6000,8888 -m recent  --set --name portscanners_list --rsource
#allow Wireguard in from WAN
-A INPUT -i eth0 -p udp -m udp --dport 45696 -j ACCEPT
#allow SSH from WAN
-A INPUT -i eth0 -p tcp -m tcp --dport 45697 -j ACCEPT
#reject other from WAN
#-A INPUT -i eth0 -j LOG --log-prefix "INPUT eth0 logged packet >>>>>>>"
-A INPUT -i eth0 -j REJECT --reject-with icmp-port-unreachable
#WG0
#WG0 ICMP allow
-A INPUT -i wg0 -p icmp -j ACCEPT
# PI_HOLE plain DNS
-A INPUT -i wg0 -p udp -m udp --dport 53 -j ACCEPT
-A INPUT -i wg0 -p tcp -m tcp --dport 53 -j ACCEPT
# pi-hole admin interface
-A INPUT -i wg0 -p tcp -m tcp --dport 21055 -j ACCEPT
#drop other
-A INPUT -i wg0 -j LOG --log-prefix "INPUT wg0 logged packet >>>>>>>"
-A INPUT -i wg0 -j REJECT --reject-with icmp-port-unreachable
COMMIT
# Completed on Thu Jul 18 17:48:47 2024
# Generated by iptables-save v1.8.7 on Thu Jul 18 17:48:47 2024
*nat
:PREROUTING ACCEPT [0:0]
:INPUT ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]
#for WG0 static FW rule
-I POSTROUTING -o eth0 -j MASQUERADE
:DOCKER - [0:0]
-A PREROUTING -m addrtype --dst-type LOCAL -j DOCKER
-A OUTPUT ! -d 127.0.0.0/8 -m addrtype --dst-type LOCAL -j DOCKER
-A POSTROUTING -s 172.17.0.0/16 ! -o docker0 -j MASQUERADE
-A DOCKER -i docker0 -j RETURN
COMMIT

Заранее благодарен.

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 28506
    • Просмотр профиля
Re: Корректное использование ipset
« Ответ #5 : 22 Августа 2024, 13:32:48 »
Нам нужны именно текущие правила. Тем более докер стоит, который вертит ими как ему надо.
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

Прежде чем [Отправить], нажми [Просмотр] и прочти собственное сообщение. Сам-то понял, что написал?…

Оффлайн CALL|KA

  • Автор темы
  • Участник
  • *
  • Сообщений: 105
  • Водитель НЛО
    • Просмотр профиля
Re: Корректное использование ipset
« Ответ #6 : 26 Августа 2024, 15:39:50 »
текущие правила
Прошу прощения за задержку
iptables -L -v -n
Chain INPUT (policy DROP 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         
66717   27M ACCEPT     all  --  lo     *       0.0.0.0/0            0.0.0.0/0           
 119M   39G ACCEPT     all  --  eth0   *       0.0.0.0/0            0.0.0.0/0            state RELATED,ESTABLISHED
    1    60 DROP       tcp  --  eth0   *       0.0.0.0/0            0.0.0.0/0            tcp flags:0x3F/0x3F
    0     0 DROP       tcp  --  eth0   *       0.0.0.0/0            0.0.0.0/0            tcp flags:0x3F/0x00
30004 6048K DROP       tcp  --  eth0   *       0.0.0.0/0            0.0.0.0/0            tcp flags:!0x17/0x02 state NEW
    0     0 DROP       tcp  --  eth0   *       0.0.0.0/0            0.0.0.0/0            tcp flags:0x03/0x03 limit: avg 5/min burst 7
    0     0 DROP       tcp  --  eth0   *       0.0.0.0/0            0.0.0.0/0            tcp flags:0x03/0x03
    0     0 DROP       tcp  --  eth0   *       0.0.0.0/0            0.0.0.0/0            tcp flags:0x06/0x06
    0     0 LOG        tcp  --  eth0   *       0.0.0.0/0            0.0.0.0/0            tcp flags:0x3F/0x00 limit: avg 5/min burst 7 LOG flags 0 level 4 prefix "NULL Packets>>>>>>>>>>>>>>>>>"
    0     0 DROP       tcp  --  eth0   *       0.0.0.0/0            0.0.0.0/0            tcp flags:0x3F/0x00
25052 1005K ACCEPT     tcp  --  eth0   *       0.0.0.0/0            0.0.0.0/0            tcp flags:0x04/0x04 limit: avg 2/sec burst 2
    0     0 DROP       tcp  --  eth0   *       0.0.0.0/0            0.0.0.0/0            tcp flags:0x3F/0x00
    0     0 DROP       tcp  --  eth0   *       0.0.0.0/0            0.0.0.0/0            tcp flags:0x03/0x03
    0     0 DROP       tcp  --  eth0   *       0.0.0.0/0            0.0.0.0/0            tcp flags:0x06/0x06
    0     0 DROP       tcp  --  eth0   *       0.0.0.0/0            0.0.0.0/0            tcp flags:0x3F/0x37
    0     0 DROP       tcp  --  eth0   *       0.0.0.0/0            0.0.0.0/0            tcp flags:0x05/0x05
    0     0 DROP       tcp  --  eth0   *       0.0.0.0/0            0.0.0.0/0            tcp flags:0x11/0x01
    0     0 DROP       tcp  --  eth0   *       0.0.0.0/0            0.0.0.0/0            tcp flags:0x18/0x08
    0     0 DROP       tcp  --  eth0   *       0.0.0.0/0            0.0.0.0/0            tcp flags:0x30/0x20
 7308  560K DROP       all  --  eth0   *       0.0.0.0/0            0.0.0.0/0            state INVALID
    0     0 DROP       all  --  eth0   *       0.0.0.0/0            0.0.0.0/0            match-set portscanners_list src
 4366  192K            tcp  --  eth0   *       0.0.0.0/0            0.0.0.0/0            multiport dports 21,22,23,53,110,115,137,139,143,445 recent: SET name: portscanners_list side: source mask: 255.255.255.255
 2761  133K            tcp  --  eth0   *       0.0.0.0/0            0.0.0.0/0            multiport dports 465,587,993,995,2525,3389,5000,5900,6000,8888 recent: SET name: portscanners_list side: source mask: 255.255.255.255
 3428  274K            udp  --  eth0   *       0.0.0.0/0            0.0.0.0/0            multiport dports 21,22,23,53,110,115,137,139,143,445 recent: SET name: portscanners_list side: source mask: 255.255.255.255
   35  1581            udp  --  eth0   *       0.0.0.0/0            0.0.0.0/0            multiport dports 465,587,993,995,2525,3389,5000,5900,6000,8888 recent: SET name: portscanners_list side: source mask: 255.255.255.255
1459K  138M ACCEPT     udp  --  eth0   *       0.0.0.0/0            0.0.0.0/0            udp dpt:45696
1684K   95M ACCEPT     tcp  --  eth0   *       0.0.0.0/0            0.0.0.0/0            tcp dpt:45697
5193K  915M REJECT     all  --  eth0   *       0.0.0.0/0            0.0.0.0/0            reject-with icmp-port-unreachable
 335K   20M ACCEPT     icmp --  wg0    *       0.0.0.0/0            0.0.0.0/0           
    0     0 ACCEPT     udp  --  wg0    *       0.0.0.0/0            0.0.0.0/0            udp dpt:53
    0     0 ACCEPT     tcp  --  wg0    *       0.0.0.0/0            0.0.0.0/0            tcp dpt:53
 488K   25M ACCEPT     tcp  --  wg0    *       0.0.0.0/0            0.0.0.0/0            tcp dpt:21055
58746   16M LOG        all  --  wg0    *       0.0.0.0/0            0.0.0.0/0            LOG flags 0 level 4 prefix "INPUT wg0 logged packet >>>>>"
58746   16M REJECT     all  --  wg0    *       0.0.0.0/0            0.0.0.0/0            reject-with icmp-port-unreachable

Chain FORWARD (policy DROP 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         
 124M  105G ACCEPT     all  --  eth0   wg0     0.0.0.0/0            0.0.0.0/0           
 112M   29G ACCEPT     all  --  wg0    *       0.0.0.0/0            0.0.0.0/0           
    0     0 LOG        all  --  *      *       0.0.0.0/0            0.0.0.0/0            LOG flags 0 level 4 prefix "FORWARD logged packet >>>>>>>"
    0     0 REJECT     all  --  *      *       0.0.0.0/0            0.0.0.0/0            reject-with icmp-port-unreachable
    0     0 DOCKER-USER  all  --  *      *       0.0.0.0/0            0.0.0.0/0           
    0     0 DOCKER-ISOLATION-STAGE-1  all  --  *      *       0.0.0.0/0            0.0.0.0/0           
    0     0 ACCEPT     all  --  *      docker0  0.0.0.0/0            0.0.0.0/0            ctstate RELATED,ESTABLISHED
    0     0 DOCKER     all  --  *      docker0  0.0.0.0/0            0.0.0.0/0           
    0     0 ACCEPT     all  --  docker0 !docker0  0.0.0.0/0            0.0.0.0/0           
    0     0 ACCEPT     all  --  docker0 docker0  0.0.0.0/0            0.0.0.0/0           

Chain OUTPUT (policy ACCEPT 168M packets, 123G bytes)
 pkts bytes target     prot opt in     out     source               destination         

Chain DOCKER (1 references)
 pkts bytes target     prot opt in     out     source               destination         

Chain DOCKER-ISOLATION-STAGE-1 (1 references)
 pkts bytes target     prot opt in     out     source               destination         
    0     0 DOCKER-ISOLATION-STAGE-2  all  --  docker0 !docker0  0.0.0.0/0            0.0.0.0/0           
    0     0 RETURN     all  --  *      *       0.0.0.0/0            0.0.0.0/0           

Chain DOCKER-ISOLATION-STAGE-2 (1 references)
 pkts bytes target     prot opt in     out     source               destination         
    0     0 DROP       all  --  *      docker0  0.0.0.0/0            0.0.0.0/0           
    0     0 RETURN     all  --  *      *       0.0.0.0/0            0.0.0.0/0           

Chain DOCKER-USER (1 references)
 pkts bytes target     prot opt in     out     source               destination         
    0     0 RETURN     all  --  *      *       0.0.0.0/0            0.0.0.0/0           

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 28506
    • Просмотр профиля
Re: Корректное использование ipset
« Ответ #7 : 26 Августа 2024, 17:25:28 »
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

Прежде чем [Отправить], нажми [Просмотр] и прочти собственное сообщение. Сам-то понял, что написал?…

Оффлайн CALL|KA

  • Автор темы
  • Участник
  • *
  • Сообщений: 105
  • Водитель НЛО
    • Просмотр профиля
Re: Корректное использование ipset
« Ответ #8 : 26 Августа 2024, 19:32:14 »
iptables-save
# Generated by iptables-save v1.8.7 on Mon Aug 26 22:15:38 2024
*filter
:INPUT DROP [0:0]
:FORWARD DROP [0:0]
:OUTPUT ACCEPT [172958848:125131108320]
:DOCKER - [0:0]
:DOCKER-ISOLATION-STAGE-1 - [0:0]
:DOCKER-ISOLATION-STAGE-2 - [0:0]
:DOCKER-USER - [0:0]
-A INPUT -i lo -j ACCEPT
-A INPUT -i eth0 -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -i eth0 -p tcp -m tcp --tcp-flags FIN,SYN,RST,PSH,ACK,URG FIN,SYN,RST,PSH,ACK,URG -j DROP
-A INPUT -i eth0 -p tcp -m tcp --tcp-flags FIN,SYN,RST,PSH,ACK,URG NONE -j DROP
-A INPUT -i eth0 -p tcp -m tcp ! --tcp-flags FIN,SYN,RST,ACK SYN -m state --state NEW -j DROP
-A INPUT -i eth0 -p tcp -m tcp --tcp-flags FIN,SYN FIN,SYN -m limit --limit 5/min --limit-burst 7 -j DROP
-A INPUT -i eth0 -p tcp -m tcp --tcp-flags FIN,SYN FIN,SYN -j DROP
-A INPUT -i eth0 -p tcp -m tcp --tcp-flags SYN,RST SYN,RST -j DROP
-A INPUT -i eth0 -p tcp -m tcp --tcp-flags FIN,SYN,RST,PSH,ACK,URG NONE -m limit --limit 5/min --limit-burst 7 -j LOG --log-prefix "NULL Packets>>>>>>>>>>>>>>>>>"
-A INPUT -i eth0 -p tcp -m tcp --tcp-flags FIN,SYN,RST,PSH,ACK,URG NONE -j DROP
-A INPUT -i eth0 -p tcp -m tcp --tcp-flags RST RST -m limit --limit 2/sec --limit-burst 2 -j ACCEPT
-A INPUT -i eth0 -p tcp -m tcp --tcp-flags FIN,SYN,RST,PSH,ACK,URG NONE -j DROP
-A INPUT -i eth0 -p tcp -m tcp --tcp-flags FIN,SYN FIN,SYN -j DROP
-A INPUT -i eth0 -p tcp -m tcp --tcp-flags SYN,RST SYN,RST -j DROP
-A INPUT -i eth0 -p tcp -m tcp --tcp-flags FIN,SYN,RST,PSH,ACK,URG FIN,SYN,RST,ACK,URG -j DROP
-A INPUT -i eth0 -p tcp -m tcp --tcp-flags FIN,RST FIN,RST -j DROP
-A INPUT -i eth0 -p tcp -m tcp --tcp-flags FIN,ACK FIN -j DROP
-A INPUT -i eth0 -p tcp -m tcp --tcp-flags PSH,ACK PSH -j DROP
-A INPUT -i eth0 -p tcp -m tcp --tcp-flags ACK,URG URG -j DROP
-A INPUT -i eth0 -m state --state INVALID -j DROP
-A INPUT -i eth0 -m set --match-set portscanners_list src -j DROP
-A INPUT -i eth0 -p tcp -m multiport --dports 21,22,23,53,110,115,137,139,143,445 -m recent --set --name portscanners_list --mask 255.255.255.255 --rsource
-A INPUT -i eth0 -p tcp -m multiport --dports 465,587,993,995,2525,3389,5000,5900,6000,8888 -m recent --set --name portscanners_list --mask 255.255.255.255 --rsource
-A INPUT -i eth0 -p udp -m multiport --dports 21,22,23,53,110,115,137,139,143,445 -m recent --set --name portscanners_list --mask 255.255.255.255 --rsource
-A INPUT -i eth0 -p udp -m multiport --dports 465,587,993,995,2525,3389,5000,5900,6000,8888 -m recent --set --name portscanners_list --mask 255.255.255.255 --rsource
-A INPUT -i eth0 -p udp -m udp --dport 45696 -j ACCEPT
-A INPUT -i eth0 -p tcp -m tcp --dport 45697 -j ACCEPT
-A INPUT -i eth0 -j REJECT --reject-with icmp-port-unreachable
-A INPUT -i wg0 -p icmp -j ACCEPT
-A INPUT -i wg0 -p udp -m udp --dport 53 -j ACCEPT
-A INPUT -i wg0 -p tcp -m tcp --dport 53 -j ACCEPT
-A INPUT -i wg0 -p tcp -m tcp --dport 21055 -j ACCEPT
-A INPUT -i wg0 -j LOG --log-prefix "INPUT wg0 logged packet >>>>>"
-A INPUT -i wg0 -j REJECT --reject-with icmp-port-unreachable
-A FORWARD -i eth0 -o wg0 -j ACCEPT
-A FORWARD -i wg0 -j ACCEPT
-A FORWARD -j LOG --log-prefix "FORWARD logged packet >>>>>>>"
-A FORWARD -j REJECT --reject-with icmp-port-unreachable
-A FORWARD -j DOCKER-USER
-A FORWARD -j DOCKER-ISOLATION-STAGE-1
-A FORWARD -o docker0 -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -o docker0 -j DOCKER
-A FORWARD -i docker0 ! -o docker0 -j ACCEPT
-A FORWARD -i docker0 -o docker0 -j ACCEPT
-A DOCKER-ISOLATION-STAGE-1 -i docker0 ! -o docker0 -j DOCKER-ISOLATION-STAGE-2
-A DOCKER-ISOLATION-STAGE-1 -j RETURN
-A DOCKER-ISOLATION-STAGE-2 -o docker0 -j DROP
-A DOCKER-ISOLATION-STAGE-2 -j RETURN
-A DOCKER-USER -j RETURN
COMMIT
# Completed on Mon Aug 26 22:15:38 2024
# Generated by iptables-save v1.8.7 on Mon Aug 26 22:15:38 2024
*nat
:PREROUTING ACCEPT [15349006:1748980734]
:INPUT ACCEPT [3099296:229007745]
:OUTPUT ACCEPT [459490:119303764]
:POSTROUTING ACCEPT [56854:4968267]
:DOCKER - [0:0]
-A PREROUTING -m addrtype --dst-type LOCAL -j DOCKER
-A OUTPUT ! -d 127.0.0.0/8 -m addrtype --dst-type LOCAL -j DOCKER
-A POSTROUTING -o eth0 -j MASQUERADE
-A POSTROUTING -s 172.17.0.0/16 ! -o docker0 -j MASQUERADE
-A DOCKER -i docker0 -j RETURN
COMMIT
# Completed on Mon Aug 26 22:15:38 2024

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 28506
    • Просмотр профиля
Re: Корректное использование ipset
« Ответ #9 : 02 Сентября 2024, 08:51:12 »
1. Поздно дропать INALID пакеты после RELATED,ESTABLISHED
2. Весь мусор перед --state INVALID можно удалить.
3. У вас правило дропа никакого отношения к правилу, которое собирает адреса, не имеет.
ipset и xt_recent - это разные модули.
К тому же, как только у вас оно заработает, вы сами не сможете к серверу подключиться.
У вас нет ни разрешающих условий, ни условий очистки списка.
Я привёл рабочий пример выше.
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

Прежде чем [Отправить], нажми [Просмотр] и прочти собственное сообщение. Сам-то понял, что написал?…

Оффлайн CALL|KA

  • Автор темы
  • Участник
  • *
  • Сообщений: 105
  • Водитель НЛО
    • Просмотр профиля
Re: Корректное использование ipset
« Ответ #10 : 18 Сентября 2024, 18:27:22 »
Благодарю за развернутый ответ.
1. Поздно дропать INALID пакеты после RELATED,ESTABLISHED
Так воде бы RELATED,ESTABLISHED касаются соединений, которые инициирует сервер, а на них прилетает ответ (RELATED).

2. Весь мусор перед --state INVALID можно удалить.
принял

3. У вас правило дропа никакого отношения к правилу, которое собирает адреса, не имеет.
ipset и xt_recent - это разные модули.
К тому же, как только у вас оно заработает, вы сами не сможете к серверу подключиться.
Доступ не потеряю, ssh живет на 45697 порту. Да и консоль есть у хостера на самый крайний случай.
Подскажите, пожалуйста, как модифицировать правила, чтоб моя хотелка заработала?

собирать айпишники, с которых пытаются стучаться по указанным портам, в список. Правилом iptables блочить все дальнейшие подключения к хосту с этих адресов

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 28506
    • Просмотр профиля
Re: Корректное использование ipset
« Ответ #11 : 03 Ноября 2024, 11:05:04 »
Уже привёл. Вчитайтесь, разберите правила, модифицируйте под себя
https://forum.ubuntu.ru/index.php?topic=322005.msg2499992#msg2499992

Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

Прежде чем [Отправить], нажми [Просмотр] и прочти собственное сообщение. Сам-то понял, что написал?…

kac

  • Гость
Re: Корректное использование ipset
« Ответ #12 : 03 Ноября 2024, 13:30:47 »
maybe useful will be
fail2ban

 

Страница сгенерирована за 0.085 секунд. Запросов: 26.