xtavras 18.01.2010 15:49
Есть проблема! — [РЕШЕНО] Нет доступа по telnet на postfix
Играюсь с постфиксом, при попытке зайти по telnet на 25 порт выдает:
1 |
debian-mail:# telnet localhost 25
|
порты не блокированы, система полностью чистая. в инете находил такую же проблему, но без решения.
в логах mail и syslog ошибок нет
мой main.cf
мой master.cf
hostname -f
debian-mail.verwaltung.kh-berlin.de
/etc/hosts
127.0.0.1 localhost
127.0.1.1 debian-mail.verwaltung.kh-berlin.de debian-mail
192.168.5.200 debian-opsi.verwaltung.kh-berlin.de debian-opsi
192.168.5.11 ubuntu-client.verwaltung.kh-berlin.de ubuntu-client
ну вообще это мой hostname, система виртуальная, но в реальной сети.
hosts.allow hosts.deny погляди. а вообще как это в логах ничего нет ? :) если это так то забудь про postfix и переходи на exim4. хотя включение дебага я думаю поможет.
еще один момент: у тебя постфикс через inetd запускается или сам демон ?
еще один момент: у тебя постфикс через inetd запускается или сам демон ?
c хостами все ок. по проекту только постфикс могу юзать, так что эксим не подходит, запускается по иниту,и да, ошибка все таки есть в mail.err
Jan 6 17:34:30 debian-mail postfix/smtpd<12380>: fatal: no SASL authentication
с датой у меня косяк был, поэтому подумал на старую недельной давности, на самом деле сегодняшняя.
Jan 6 17:34:30 debian-mail postfix/smtpd<12380>: fatal: no SASL authentication
с датой у меня косяк был, поэтому подумал на старую недельной давности, на самом деле сегодняшняя.
попробуй запустить с теми ключиками которые в inetd postfix, и проведи стандартную сессию типа:
EHLO localhost
MAIL FROM: root@localhost
RCPT TO: root@localhost
DATA
TEST
.
EHLO localhost
MAIL FROM: root@localhost
RCPT TO: root@localhost
DATA
TEST
.
Виноват, туплю спросонья.
(фраза была вызвана отсутствием в main.cf строки вида 'smtpd_tls_auth_only = no')
(фраза была вызвана отсутствием в main.cf строки вида 'smtpd_tls_auth_only = no')
> Jan 6 17:34:30 debian-mail postfix/smtpd<12380>: fatal: no SASL authentication
`dpkg -l postfix*` - в студию
`dpkg -l postfix*` - в студию
+++-====================-====================-========================================================
ii postfix 2.5.5-1.1 High-performance mail transport agent
un postfix-cdb (keine Beschreibung vorhanden)
un postfix-ldap (keine Beschreibung vorhanden)
ii postfix-mysql 2.5.5-1.1 MySQL map support for Postfix
un postfix-pcre (keine Beschreibung vorhanden)
un postfix-pgsql (keine Beschreibung vorhanden)
un postfix-tls (keine Beschreibung vorhanden)
ii postfix 2.5.5-1.1 High-performance mail transport agent
un postfix-cdb (keine Beschreibung vorhanden)
un postfix-ldap (keine Beschreibung vorhanden)
ii postfix-mysql 2.5.5-1.1 MySQL map support for Postfix
un postfix-pcre (keine Beschreibung vorhanden)
un postfix-pgsql (keine Beschreibung vorhanden)
un postfix-tls (keine Beschreibung vorhanden)
Ура! libsasl2 был, а вот libsasl2-modules-sql не было, все заработало, огромное спасибо!!!
а ведь еще вчера я нашел в первой строке гугления по "fatal: no SASL authentication" тот же рецепт. Видимо я слишком хорошо думаю о людях.
ну да, моя вина, ибо это я не гуглил, а гуглил конкретно telnet, и да этого рецепта в первых 5 результатах не нашел, дальше искать не стал.
у меня подозрение, не пишешь ли ты mail client ? while (я пишу mail client) {остановись и подумай. }.
ничего не понял.. я пишу "fatal: no SASL authentication" и смотрю первые 5 результатов поиска, возможно у нас разные региональные настройки гугла и вообще это не суть, просто такие комменты немного задевают.
Для начала определись, не работает постфикс, или сама система не пускает.
На сервере останови постфикс и запусти nc -l -p 25, и попробуй подключиться к 25 порту.
Если подключился, смотри в сторону постфикса, иначе смотри hosts.allow/deny и фаервол.
На сервере останови постфикс и запусти nc -l -p 25, и попробуй подключиться к 25 порту.
Если подключился, смотри в сторону постфикса, иначе смотри hosts.allow/deny и фаервол.
Для начала определись, не работает постфикс, или сама система не пускает.
постфикс стартует без проблем вроде, вот вывод postfix -v start link
На сервере останови постфикс и запусти nc -l -p 25
выдает
debian-mail:~# nc -l -p 25
Can't grab 0.0.0.0:25 with bind
что-то тут не то
В iptables везде ACCEPT, хосты уже проверял, там все ок.
выдает
debian-mail:~# nc -l -p 25
Can't grab 0.0.0.0:25 with bind
debian-mail:~# nc -l -p 25
Can't grab 0.0.0.0:25 with bind
Значит кто-то уже слушает порт, постфикс точно останавили?
Узнать кто слушает порт можно так, от рута сделать netstat -lpnt последний столбец PID/имя процесса.
Например у меня:
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
...
tcp 0 0 0.0.0.0:25 0.0.0.0:* LISTEN 5502/master
Это и есть postfix.
видимо все таки потом его стартанул, моя вина, ибо изначально реакции на nc -l -p 25 не было, вот вывод
netstat -lpnt
tcp 0 0 0.0.0.0:25 0.0.0.0:* LISTEN 3319/master
то есть по идее все как надо
netstat -lpnt
tcp 0 0 0.0.0.0:25 0.0.0.0:* LISTEN 3319/master
то есть по идее все как надо
Ну так если остановить postfix и запустить nc, телнетом можно зайти на 25 порт, или нет?
Сорри за тупость, делаю вот так:
debian-mail:~# postfix stop
postfix/postfix-script: stopping the Postfix mail system
debian-mail:~# nc -l -p 25 &
<1> 3422
debian-mail:~# telnet localhost 25
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^>'.
и все висит, ответа нет, или я не так делаю?
debian-mail:~# postfix stop
postfix/postfix-script: stopping the Postfix mail system
debian-mail:~# nc -l -p 25 &
<1> 3422
debian-mail:~# telnet localhost 25
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^>'.
и все висит, ответа нет, или я не так делаю?
Похоже подключился успешно. Ответа и не будет, сейчас 25 порт слушает nc, он ничего не пишет, он только слушает и принятое выводит в консоль, но у тебя он запущен в фоне.
Чтоб все стало понятно, сделай так:
Чтоб все стало понятно, сделай так:
- Останови postfix.
- В первой консоли запусти nc -l -p 25. Без всяких амперсандов.
- Перейди во вторую консоль, или открой вторую ssh сессию.
- Во второй консоли подключись телнетом: (telnet 127.0.0.1 25 ) и понабирай какой-нибудь текст.
- Переключись в первую консоль, на ней должен отобразиться введенный текст.
Да все так и происходит, как Вы написали, но постфикс уже заработал, вот тут решение
В любом случае огромное спасибо за помощь и убитое время :)
В любом случае огромное спасибо за помощь и убитое время :)
Поздравляю.
P.S. Если надо могу дать самописный анализатор логов postfix'а с подсветкой, фильтрацией по отправителям/получателям и группировкой строк по письмам.
P.S. Если надо могу дать самописный анализатор логов postfix'а с подсветкой, фильтрацией по отправителям/получателям и группировкой строк по письмам.
А почему бы его для всех не выложить? Думаю не только мне пригодится.
debian-mail:~# netstat -lnt
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 127.0.0.1:3306 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:110 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:143 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:60431 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN
tcp 0 0 127.0.0.1:2000 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:119 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:25 0.0.0.0:* LISTEN
tcp6 0 0 :::110 :::* LISTEN
tcp6 0 0 :::143 :::* LISTEN
tcp6 0 0 :::80 :::* LISTEN
tcp6 0 0 ::1:2000 :::* LISTEN
tcp6 0 0 :::22 :::* LISTEN
tcp6 0 0 :::119 :::* LISTEN
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 127.0.0.1:3306 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:110 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:143 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:60431 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN
tcp 0 0 127.0.0.1:2000 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:119 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:25 0.0.0.0:* LISTEN
tcp6 0 0 :::110 :::* LISTEN
tcp6 0 0 :::143 :::* LISTEN
tcp6 0 0 :::80 :::* LISTEN
tcp6 0 0 ::1:2000 :::* LISTEN
tcp6 0 0 :::22 :::* LISTEN
tcp6 0 0 :::119 :::* LISTEN
Может в этом дело?