суббота, 10 сентября 2011 г.

Проброс порта в FortiGate 50B внутрь локальной сети.

Небольшая заметка для себя об особенностях проброса порта в FortiGate 50B внутрь локальной сети. Поднимал у клиента почтовый сервер на базе exim+dovecot с авторизацией в Active Directory. Протестировал изнутри - все работает как надо, нужно публиковать сервис в интернет. В качестве маршрутизатора/фаервола у клиента стоит FortiGate 50B. Собственно, мои действия.
1. Идем в Firewall Objects -> Virtual IP -> Virtual IP,
1.1. Создаем новую запись "vMailSrv",
1.2. Выбираем из списка внешний интерфейс (если несколько интерфейсов внешних)
1.3. В полях External IP Address/Range задаем внешний IP-адрес (в моем случае один IP-адрес два раза нужно указать, поскольку он единственный)
1.4. В полях Mapped IP Address/Range задаем внутренний IP-адрес
1.5. Ставим галочку Port Forwarding
1.6. Protocol - TCP
1.7. External Service Port - 25
1.8. Map to Port - 25
2. Идем в Firewall Objects -> Service -> Predefined и ищем есть уже определенная служба TCP/25 порт (уже есть, называется SMTP). Если требуется нестандартная служба - заходим в Firewall Objects -> Service -> Custom и создаем новую (нужно будет указать имя службы, протокол, порты источника и назначения).
3. Идем в Policy -> Policy, чтобы задать проброс порта с внешнего интерфейса на ранее созданный виртуальный IP.
3.1. Выбираем нужный внешний интерфейс (в моем случае wan1) и правильное направление WAN -> INTERNAL
3.2. Создаем новое правило с именем "SMTP to vMailSrv"
3.3. Source Interface - WAN1
3.4. Source address - all
3.5. Destination Interface - Internal
3.6. Destination Address - выбираем ранее созданный виртуальный IP (vMailSrv, созданный на этапе 1)
3.7. Service - выбираем тип службы (SMTP или другую, созданную на этапе 2)
3.8. Action - ACCEPT, принимать трафик
3.9. Ставим галочку Log Allowed Traffic
3.10. Важный момент: если поставить галочку Enable NAT, то будет производиться "полный" NAT, т.е. и адрес назначения, и адрес источника будут меняться. Галочку НЕ ставить, если серверу важно знать адрес источника, что в моем случае важно, потому как без нее все соединения к серверу идут от IP-адреса FortiGate. Например, в логах exim:

2011-09-10 12:13:30 SMTP connection from fortigate50b.domain.com (mail-gy0-f172.google.com) [172.16.0.254]:47506 I=[172.16.0.126]:25 closed by QUIT

среда, 7 сентября 2011 г.

Ошибка в логах exim при обновлении Clamav.

Собственно, получил ошибку в логах exim. Это произошло после обновления clamav со стороннего  репозитория atrpms.net, верней после удаления старой версии clamav и установки новой.
2011-09-07 11:08:45 1R1DBd-0004GU-3I malware acl condition: clamd: ClamAV returned: /var/spool/exim/scan/1R1DBd-0004GU-3I/1R1DBd-0004GU-3I.eml: lstat() failed: Permission denied. ERROR
Проблема с полномочиями. Clamav не может прочитать файлы в домашней директории exim. Смотрим:
# id exim
uid=93(exim) gid=93(exim) groups=93(exim),12(mail)
# id clamav
uid=497(clamav) gid=494(clamav) groups=494(clamav)
Добавляем clamav в группу exim.
# usermod -G exim clamav
Проверяем:
# id clamav
uid=497(clamav) gid=494(clamav) groups=494(clamav),93(exim)

Перезапускаем exim и clamav:
# service exim restart
# service clamav restart