Ситуация: я работаю в ISP. Сейчас внедряем новый биллинг. Он крутится на отдельной машине. Почта - тоже на отдельной. Соответственно, при заведении/изменении данных клиента на биллинге должны происходить некие изменения на почтовом сервере.
Я решил так: на почте крутится демон, слушающий в сеть. С биллинга клиент цепляется к серверу, передает, все, что надо на почтовый сервер, ну и демон на почтовом сервере выполняет все необходимые операции.
Вполне естественно, что все это является довольно таки значительной дыркой в безопасности.Вопрос: как повысить уровень безопасности?
Что я хочу сделать:
1). принимать даные только с определенного IPv4 адреса.
2). хочу еще сделать привязку к MAC адресу, как это сделать в C/C++ не знаю - ткните носом, куда смотреть надо...
3). поднять ipsec туннель между биллингом и почтой. Спасет ли это отца русской демократии? ;-))))Что еще? Многоуважаемый ALL, выскажитесь плиз.
С уважением, Солнышко
>Я решил так: на почте крутится демон, слушающий в сеть. С биллинга
>клиент цепляется к серверу, передает, все, что надо на почтовый сервер,
>ну и демон на почтовом сервере выполняет все необходимые операции.Гораздо проще и правильнее это делать по SNMP, подними snmpd, пропиши свой обработчик для нужного OID, настрой безопасность (ACL'и и пароли в snmpd.conf, прикрой доступ к чужим хостам через фаервол, плюс, если почтовый сервер и биллинг находятся в разных not trusted сетях, можно доступ к SNMP через шифрованный туннель прокинуть.)
> Ситуация: я работаю в ISP. Сейчас внедряем новый биллинг. Он крутится
>на отдельной машине. Почта - тоже на отдельной. Соответственно, при заведении/изменении
>данных клиента на биллинге должны происходить некие изменения на почтовом сервере.
>
>Я решил так: на почте крутится демон, слушающий в сеть. С биллинга
>клиент цепляется к серверу, передает, все, что надо на почтовый сервер,
>ну и демон на почтовом сервере выполняет все необходимые операции.
>Вполне естественно, что все это является довольно таки значительной дыркой в безопасности.
>
>
>Вопрос: как повысить уровень безопасности?
>Что я хочу сделать:
>1). принимать даные только с определенного IPv4 адреса.
>2). хочу еще сделать привязку к MAC адресу, как это сделать в
>C/C++ не знаю - ткните носом, куда смотреть надо...
>3). поднять ipsec туннель между биллингом и почтой. Спасет ли это отца
>русской демократии? ;-))))
>
>Что еще? Многоуважаемый ALL, выскажитесь плиз.
>
>С уважением, Солнышконекоторые почтовые системы умеют аутентифицировать пользователей через PAM, некоторые - через базы данных. Оба этих метода не привязаны к конкретному хосту, то есть pam_radius, pam_pgsql, pam_mysql - и авторизируйте юзеров, где хотите. Точто так же и большинство ftp понимает PAM или базы данных (в основном MySQL). Для апача также существует множество модулей, некоторые из которых работают.
Для апача также существует множество модулей, некоторые из которых работают.
>:)
> Для апача также существует множество модулей, некоторые из которых работают.Для почтового сервера, вполне можно авторизовать пользователей во внешней базе, при заборе почты по POP3 или IMAP, но проверять валидность логина при получении почты из вне и раскладывании его в почтовые ящики, через внешнюю систему аутентификации не вполне разумно.
Даже при небольшом ISPшном почтовом трафике в 100,000 писем в день и аутентификации через SQL запрос, SQL сервер будет работать практически для почтовой проверки наличия логина, это без учета пиков спамерских рассылок, когда MTA затыкается из-за потока одновременных соединений. При копировании .DB файлика с списком email=>логин, подобные проблемы решать не приходится.
Организовать безопасную синхронизацию файла с биллинг машины, не такая и сложная задача.1 Заводим пользователя и группу mail_sync.
2 Разрешаем через доступ пользователя mail_sync только с машины биллинга.
3 Создаем ключи для ssh и организуем безпарольный коннект с биллинговой машины.
4 Раз в 10 мин, при изменении списка пользователей, генерируем файлик и копируем его через scp на почтовый сервер.Подачу команд или выполнение удаленных типовых операций можно организовать по SNMP, если возникает необходимость.
Вот как у нас.
Стоит exim+mysql+pop3 на одной машине. В mysql хранятся логины и шифрованные пароли(login+passwd+POP_ID). С mysql работают и exim и pop3d.Теперь билинг.
На билинге крутится mysql+php+apache.
Web интерфейс умеет работать как с лолальным mysq так с "почтовым" mysql сервером.Через web интерфес юзверь сам себе создает почтовый ящик. А в билинге хранится POP_ID.
Т.е. когда полбзователь сам меняет себе пароль через билинговую систему (POP_ID - привязан к контракту пользователя в билинге) ... насамом деле он меняет пароль на другом сервере только делает это php.
А между серверами можно поднять stunel. и много чего для безопастности mysql трафика.
Эта общаяя схема. на самом деле все гораздо изощренее т.к. задействованна многодоменная схема. Пользователь прежде чем создать ящик выбрает домен. + можно создавать не ящик а алиас:)
Самое правильное решение - запихнуть всех пользователей в LDAP, и потом с ними можно делать что угодно (add, delete, modify) и откуда угодно (опрделяешь с каких IP, DNS и т.д.).В качестве ldap-сервера рекомедуется SUN ONE Directory Server 5.2
>Самое правильное решение - запихнуть всех пользователей в LDAP, и потом с
>ними можно делать что угодно (add, delete, modify) и откуда угодно
>(опрделяешь с каких IP, DNS и т.д.).
>
>В качестве ldap-сервера рекомедуется SUN ONE Directory Server 5.2Вот бы еще ссылку на дистрибудтв который будет работать не на SUN :-/
>>В качестве ldap-сервера рекомедуется SUN ONE Directory Server 5.2
>Вот бы еще ссылку на дистрибудтв который будет работать не на SUN
>:-/Если имеется в виду дистрибутив ldap-сервера, то http://www.openldap.org/, например. Там же можно посмотреть на каких платформах он работает.
>>>В качестве ldap-сервера рекомедуется SUN ONE Directory Server 5.2
>>Вот бы еще ссылку на дистрибудтв который будет работать не на SUN
>>:-/
>
>Если имеется в виду дистрибутив ldap-сервера, то http://www.openldap.org/, например. Там же можно
>посмотреть на каких платформах он работает.openldap - это отстой.
SUN ONE Directory Server 5.2 - есть под ВСЕ платформы забесплатно.
http://wwws.sun.com/software/download/products/3ee79e69.html
>openldap - это отстой.абсолютно безосновательное утверждение.
>
>
>SUN ONE Directory Server 5.2 - есть под ВСЕ платформы забесплатно.
>http://wwws.sun.com/software/download/products/3ee79e69.htmlхмм... что-то я не вижу там под FreeBSD (ну не хочу я эмуляцию на боевом сервере), зато вижу слово "trial".