Имя: Пароль:
IT
Админ
nftables не пропускает
0 прогакот
 
17.10.22
16:01
Установили Debian 11 в качестве сервера 1С:Предприятие 8.3 (8.3.22.1603)
1С работает.
Debian 11 в качестве фаервола использует nftables
  table inet filter {
        chain INPUT {
                type filter hook input priority filter; policy drop;
                iifname "lo" counter packets 180706 bytes 362229948 accept
                icmp type echo-reply counter packets 0 bytes 0 accept
                icmp type echo-request counter packets 2 bytes 108 accept
                tcp dport 1540 accept
                tcp dport 1541 accept
                tcp dport 1560-1591 accept
                ct state established,related counter packets 2835 bytes 2033283 accept
        }
При попытке подключиться к базе с клитента открывается окно:
  "Не удалось установить соединение"
  Ошибка установки соединения
  по причине:
  server_addr=doc descr=11001(0x00002AF9): Этот хост неизвестен.  line=581 file=src\core\src\Networking.cpp

Если отключаю nftables клиент подключается к базе на сервере.

Если запрещать и разрешать порты других служб, то всё работает нормально. Проблема только с 1C8.

Проблема где-то в правилах nftables, но не могу понять в чем.
Прошу совета, если кто-то уже работал с nftables.
1 arsik
 
гуру
17.10.22
17:10
(0) А нафига ты напрямую в nftables лезешь. Есть же нормальные инструменты тот же firewalld или ufw.
2 Asmody
 
17.10.22
17:10
(0) запросы dns пропускает?
3 b_ru
 
17.10.22
17:12
(0) Попробуй на клиенте указать IP вместо имени сервера и проверь с включенным фаерволом
4 прогакот
 
17.10.22
18:00
для aesik
А чем nftables не инструмент? firewalld ведь только надстройка.

для b_ru
Да, на клиенте указывается ip сервера.
в файле hosts прописно соответствие ip и имени
И если бы на клиенте была ошибка, то при отключении nftables к 1С нельзя было подключиться, но подключение производится нормально.

Такое впечатление как будто 1С8 какие-то другие порты использует. Но порты на которых 1С слушает стандартные.
команда  ss дает такой результат

# ss -lt
State         Recv-Q        Send-Q                Local Address:Port                       Peer Address:Port        Process
LISTEN        0             4096                        0.0.0.0:webmin                          0.0.0.0:*
LISTEN        0             128                       127.0.0.1:ipp                             0.0.0.0:*
LISTEN        0             128                         0.0.0.0:1560                            0.0.0.0:*
LISTEN        0             270                         0.0.0.0:postgresql                      0.0.0.0:*
LISTEN        0             128                         0.0.0.0:1947                            0.0.0.0:*
LISTEN        0             128                         0.0.0.0:22                              0.0.0.0:*
LISTEN        0             128                         0.0.0.0:1540                            0.0.0.0:*
LISTEN        0             128                         0.0.0.0:1541                            0.0.0.0:*
LISTEN        0             511                               *:http                                  *:*
LISTEN        0             128                           [::1]:ipp                                [::]:*
LISTEN        0             128                            [::]:1560                               [::]:*
LISTEN        0             270                            [::]:postgresql                         [::]:*
LISTEN        0             128                               *:1947                                  *:*
LISTEN        0             128                            [::]:22                                 [::]:*
LISTEN        0             128                            [::]:1540                               [::]:*
LISTEN        0             128                            [::]:1541                               [::]:*
LISTEN        0             50                                *:1576                                  *:*
5 arsik
 
гуру
17.10.22
18:50
(4) Ну что бы детских ошибок не допускать. Сделай из ufw аналогичные и посмотри что в nft.
6 vbus
 
18.10.22
00:15
Все правила покажи, может у тебя output policy drop или еще что-нибудь, если в цепочке input policy accept поставить соединяется?
7 b_ru
 
18.10.22
00:33
(4) >>Да, на клиенте указывается ip сервера. В файле hosts прописно соответствие ip и имени
И зачем ты тогда про hosts упомянул, если сервер прописан по айпи, а не по имени?

Когда сервер не отвечает на порту, другой номер ошибки у 1С. Здесь сообщение недвусмысленно намекает, что дело в разрешении имен. Оно, конечно, не факт, что так и есть. Может это из-за того, что у тебя фаервол drop'ает, а не reject'ит пакеты, но все-равно подозрительно. Возможно, твой фаервол ломает что-то глобально с сетью, а не порты 1С.
8 conscious
 
18.10.22
00:58
(0) sudo netstat -natup на сервере выведет названия демонов - можно будет  посмотреть, какой порт 1с-ка слушает.
9 Chai Nic
 
18.10.22
07:29
Чем дальше тем больше разочаровываюсь в линуксе. Сплошное велосипедостроение без реальной пользы. Ну чем скажите iptables не устраивал?
10 arsik
 
гуру
18.10.22
08:49
(9) Ну а чем тебя 7ка не устраивала? Тут так же. С новыми реалиями накапливаются проблемы в старом продукте.
Ну и никто сейчас напрямую, как в (0), не пишет.
11 vbus
 
18.10.22
09:16
(8) netstat - устаревшее
сейчас пользуются ss как в  (4)
12 прогакот
 
18.10.22
11:52
Всё, проблема решена!
Запустив netstat, обратил внимание на avahi-daemon
  udp        0      0 0.0.0.0:5353            0.0.0.0:*                           837/avahi-daemon: r

Разрешил правило
  udp dport 5353 accept

И всё заработало! Клиенты подключаются к 1С серверу.
13 Fram
 
18.10.22
12:58
(12) днс сервер вместе с 1с сервером это конечно странное решение. А страннее всего что админ этого даже не знает
14 vbus
 
18.10.22
14:08
(13) Причем тут DNS и в чем странность использования 1с и DNS?
15 Fram
 
19.10.22
22:56
(14) авахи разве не за разрешение имен отвечает?
16 vbus
 
20.10.22
08:21
Закон Брукера: Даже маленькая практика стоит большой теории.