Skip to content

Псто скорее для SEO-продвижения :)

Т.к. проблема, которая тут описывается - тривиальная. Но поскольку я последний раз настраивал почтовик годика два назад - уже всё забылось.

Сейчас уже все вспомнил, но, если кто-то столкнется с аналогичной проблемой - возможно этот пост ему поможет быстрее настроить почтовик.

 

Настраивал Postfix для работы с Yandex в качестве релея, и долго не мог понять почему вот такое происходит:

Nov 25 13:20:53 relay postfix/smtp[7604]: connect to gmail-smtp-in.l.google.com[74.125.136.26]:25: No route to host
Nov 25 13:20:53 relay postfix/smtp[7606]: connect to gmail-smtp-in.l.google.com[74.125.136.26]:25: No route to host
Nov 25 13:20:53 relay postfix/smtp[7603]: connect to gmail-smtp-in.l.google.com[74.125.136.26]:25: No route to host
Nov 25 13:21:23 relay postfix/smtp[7604]: connect to gmail-smtp-in.l.google.com[2a00:1450:400c:c05::1a]:25: Connection timed out
Nov 25 13:21:23 relay postfix/smtp[7603]: connect to gmail-smtp-in.l.google.com[2a00:1450:400c:c05::1a]:25: Connection timed out
Nov 25 13:21:23 relay postfix/smtp[7606]: connect to gmail-smtp-in.l.google.com[2a00:1450:400c:c05::1a]:25: Connection timed out
Nov 25 13:21:23 relay postfix/smtp[7605]: connect to gmail-smtp-in.l.google.com[2a00:1450:400c:c05::1b]:25: Connection timed out
Nov 25 13:21:23 relay postfix/smtp[7605]: connect to gmail-smtp-in.l.google.com[74.125.136.26]:25: No route to host
Nov 25 13:21:53 relay postfix/smtp[7604]: connect to alt1.gmail-smtp-in.l.google.com[2a00:1450:400c:c05::1a]:25: Connection timed out
Nov 25 13:21:53 relay postfix/smtp[7603]: connect to alt1.gmail-smtp-in.l.google.com[2a00:1450:400c:c05::1a]:25: Connection timed out
Nov 25 13:21:53 relay postfix/smtp[7606]: connect to alt1.gmail-smtp-in.l.google.com[2a00:1450:400c:c05::1a]:25: Connection timed out
Nov 25 13:21:53 relay postfix/smtp[7604]: connect to alt1.gmail-smtp-in.l.google.com[74.125.143.26]:25: No route to host
Nov 25 13:21:53 relay postfix/smtp[7603]: connect to alt1.gmail-smtp-in.l.google.com[74.125.143.26]:25: No route to host
Nov 25 13:21:53 relay postfix/smtp[7604]: connect to alt2.gmail-smtp-in.l.google.com[173.194.79.26]:25: No route to host
Nov 25 13:21:53 relay postfix/smtp[7606]: connect to alt1.gmail-smtp-in.l.google.com[74.125.143.26]:25: No route to host
Nov 25 13:21:53 relay postfix/smtp[7606]: connect to alt2.gmail-smtp-in.l.google.com[173.194.79.26]:25: No route to host
Nov 25 13:37:42 relay postfix/smtp[7913]: connect to mx.yandex.ru[93.158.134.89]:25: No route to host
Nov 25 13:37:42 relay postfix/smtp[7913]: connect to mx.yandex.ru[213.180.204.89]:25: No route to host
Nov 25 13:37:42 relay postfix/smtp[7913]: connect to mx.yandex.ru[213.180.193.89]:25: No route to host
Nov 25 13:37:42 relay postfix/smtp[7913]: connect to mx.yandex.ru[87.250.250.89]:25: No route to host
Nov 25 13:37:42 relay postfix/smtp[7913]: connect to mx.yandex.ru[77.88.21.89]:25: No route to host

Оказалось - у провайдера закрыт 25 порт, чтобы от завирусованных абонентских компьютеров спам не валил.

И надо его открывать где-то в личном кабинете.

Собственно обнаруживается закрытый 25 порт так:

telnet mx.yandex.ru 25
Trying 87.250.250.89...
Trying 93.158.134.89...
Trying 213.180.193.89...
Trying 213.180.204.89...
Trying 77.88.21.89...
telnet: Unable to connect to remote host: No route to host

 

Из места, в котором SMTP порт не закрыт - подключение через telnet выглядит так:

telnet mx.yandex.ru 25
Trying 87.250.250.89...
Connected to mx.yandex.ru.
Escape character is '^]'.
220 mxfront40.mail.yandex.net (Want to use Yandex.Mail for your domain? Visit http://pdd.yandex.ru)

 

Запишу пример, чтобы в следующий раз не писать заново.

for i in `cat /proc/vz/veinfo | awk '{print $1}'|egrep -v '^0$'`;
do echo "Container $i"; vzctl exec $i /etc/init.d/zabbix_agentd restart;
done

 

for i in `cat /proc/vz/veinfo | awk '{print $1}'|egrep -v '^0$'`; do echo "Container $i";
vzctl exec $i 'echo -e "deb http://repo.zabbix.com/zabbix/2.0/debian wheezy main\ndeb-src http://repo.zabbix.com/zabbix/2.0/debian wheezy main" > /etc/apt/sources.list.d/zabbix.list';
done

 

Нужно разрешить абонентам заходить в Приват24 дл пополнения счета (доступ к интернетам при этом должен быть отключен).

Собственно у ПриватБанка есть несколько серверов, на которые идут обращения, в процессе работы с privat24. Так что прописать на фаерволе в ALLOW только один какой-то адрес не получится.

Узнать, какие именно сервера задействованы - можно при помощи дебаггера, встроенного в браузер. В Opera это Dragonfly, в Mozilla - Firebug, в Chrome - дебаггер, который вызывается комбинацией Ctrl+Shift+I.

Буду рассказывать на примере того, который в гуглохроме.

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

Кнопка выключения остановки при эксепшене указана на скриншоте.

1

 

Потом идём в раздел Network, в котором собсна и отображаются ресурсы, к которым идут обращения. Перезагружаем страничку, фильтруем по домену, выбираем понравившиеся и вносим их в какой-нибудь файл, например назовём его privat-hosts-pre. Можно заюзать Save All as HAR и сохранить всё.

2

Достаём домены.

cat /tmp/privat-hosts-pre | grep -A1 -i "host"|grep value|sort -n|uniq|sed 's/"value": "//g'|sed 's/"//g' > /tmp/privat-hosts

Дальше берём и парсим этот файл, при этом резолвя доменные имена в IP адреса.

Вот так:

while read line; do dig A $line|grep 'IN'|grep 'A'|grep -Eo '([0-9]{1,3}\.){3}[0-9]{1,3}'| sort | uniq;done < privat-hosts

 

Полученные адреса добавляем в список разрешенных адресов в фаерволе.

Радуемся жизни :)

We need to get the line: starting with "["; containing "5060"; containing "conv".

Example usage:

cat gateway.cfg | grep '^\[\|5060\|conv'

or

cat gateway.cfg | egrep '^\[|5060|conv'

If we need to get lines with one of our patterns - use grep -e option. Example:

grep -e "test" -e "second pattern" -e "third pattern"

 

Недавно поборол такое:

resume: libgcrypt version 1.4.5
resume: could not stat the resume device file /dev/sdb3

Где /dev/sdb3 - swap партиция.

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

Как оказалось - этот глюк лечится удалением строки с упоминанием имени партиции sdb3 из /etc/uswsusp.conf

Как она туда попала - хрен знает. Магия блеать.

P.S.: find+grep  рулит :)

Если нужно в зависимости от того, пингуется хост или нет, что-то делать - юзаем такую конструкцию:

ip_addr=8.8.8.8

if ping -q -c 1 -n ${ip_addr} >/dev/null
then
	echo -e "All ok"
else
	echo -e "Host ${ip_addr} seems down"
fi

 

π