firewalld, разрешающий SSH только с определенного IP, который является частью другой зоны

моя цель состоит в том, чтобы служить ldap каждому клиенту на 172.26.143.0/24, но SSH должен быть доступен только для 172.26.143.3. Я пробовал со следующим:

# This is where eth0 is and no services/ports are assigned to this zone:
firewall-cmd --set-default-zone=drop
firewall-cmd --zone=internal --add-source=172.26.143.0/24 --permanent
firewall-cmd --zone=internal --add-service=ldap --permanent
firewall-cmd --zone=trusted --add-source=172.26.143.3 --permanent
firewall-cmd --zone=trusted --add-service=ssh --permanent
firewall-cmd --reload

С этой конфигурацией 172.26.143.3 не может SSH к этому хосту. Только если добавлю ssh-сервис в zone=internal, который мне не нужен. Как я могу это сделать?

30
задан scaarup
17.12.2022 9:25 Количество просмотров материала 3034
Распечатать страницу

1 ответ

конкретный ответ заключается в создании расширенного правила (прямое правило тоже будет работать, я полагаю), поскольку они оба оцениваются перед источниками и интерфейсами.

firewall-cmd --permanent --zone=trusted --add-rich-rule='rule family=ipv4 source address=172.26.143.3 accept'

почему это не работает, потому что определения источников во внутренней и доверенной зонах перекрываются. Это слабость / раздражение / ошибка(?) firewalld где перекрытия источника действительно не позволены. Он работает, но это зависит от порядка firewalld оценивает зоны, когда есть перекрытие, как это. Я не смотрел на код, но некоторые пояснения скажу, когда есть перекрытие зон оцениваются по алфавиту и где-то на основании этого правила были определены. В любом случае, в вашем примере внутренняя зона получает трафик SSH и отбрасывает его.

1
отвечен scttfrdmn 2022-12-18 17:13

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх