Все технические форумы на одном сайте Удобный поиск информации с популярных форумов в одном месте
Вопрос: Как определяется адрес почтового сервера при отправке письма?

Всем привет. Пытаюсь разобраться с postfix, но у меня вопрос необычный - не по конфигам или как сделать анти-спам или еще что-то, а более фундаментальное. Воюя с настройками, я в какой-то момент понял, что не понимаю, как именно устроена вся эта почтовая кухня, а без этого ковыряние конфигов не стоит начинать.

1) описывается, как определяется адрес и хост почтового сервера, но как администратор почтового сервера добавляет эти MX записи? Они добавляются на почтовом сервере(адрес после собачки) и запрашиваются с него же или же админ как-то должен выложить эти МХ записи в инет? Например, есть домен gmail.com, а МХ записи у него . Как они это сделали, на своей стороне что-то прописали или в какой-то общедоступный публичный ресурс выложили?

2) Теперь уже ближе к postfix. У меня есть боевой почтовый сервер mail.company.org, а также тестовый test.company.org. Я правильно понимаю, что теперь все письма на адреса вида [email=]***@company.org будут идти на оба сервера, в зависимости от приоритета МХ записей, естественно. А если я хочу поиграться с тестовым сервером, получать письма только от него и писать только на него и вообще, держать его на отдельном инстансе postfix на другом сервере (для обкатки всяких настроек и плагинов), как это сделать в рамках одного домена? То есть, если не хочу мешать между собой, должен либо зарегать домен типа company2.org и там в Мх записях прописать тестовый сервер, либо в качестве адреса после собачки использовать поддомен, типа test.company.org, можно так сделать?

3) Если можно обойтись одним доменом, а для игр с тестовым постфиксом можно как-то после собачки использовать поддомен, то правильно ли я понял, что теперь и адреса моих юзеров(они сейчас лежат в базе) должны быть вида имя@test.company.org?

4) Вообще туманная часть - как взаимосвязаны myorigin, mydestination, myhostname + содержимое /etc/hosts + адрес после собачки? Я понимаю так - адрес после собачки= myorigin, myhostname=MX запись для адреса после собачки, mydestination = не знаю. etc/hosts - для почтового софта (dovecot, postfix) реально важно, что там написано? Они это юзают? я так понял, надо маппить айпи почтового сервера на myhostname, обязательно ли именно так делать?

5) Везде пишут, что нельзя открывать свой релей, чтобы в спамеры не записали. Пустой hostrelay в конфигах postfix это же не значит открытый? Если пустой не открытый, то какой конфиг был бы плохим (открытым)?
Ответ:
BaurzhanS
Теперь у меня 2 кейса, один из которых я могу тестить уже сейчас.


Гугл говорит, что
1) Кейс - небольшой чемодан, плоская прямоугольная ёмкость с ручкой для переноски и хранения предметов.
2) Кейс — кофр для хранения музыкальных инструментов.

Какой из случев Вы имеете ввиду?

BaurzhanS
1) Отправка на внешние гмаил и тд с командной строки (проверка, что не блек листах, не попадаю в спаммеры).


Вы же пишете, что отправка почты с командной строки удалась. Отправляйте на gmail и смотрите, в чем проблема?
Единственное что нужно учесть: gmail первое письмо пользователю с неизвестного ранее домена положит в спам независимо от качества его настроек. Это нормально, так устроена у них антиспам защита.

BaurzhanS
Хочу проверить плохую настройку с открытым релеем, как его открыть?

Согласно вики:
Открытый релей (открытый почтовый релей) — почтовый релей, принимающий и передающий почту от неограниченного круга лиц.
Смотрите у Вас в настройках постфикс, как именно ограничено, от кого принимать письма для отправки и уберите это ограничение.
Например, задать mynetworks = 0.0.0.0/0 или посмотреть, как постфикс примет, типа mynetworks = 255.0.0.0/8 mynetworks = 0.0.0.1/8

BaurzhanS
2) Отправка на внутреннюю почту c внутренней/внешней.

Внетренняя, это какая? Туда отправить к командной строки - никак? Тогда пробуйте почтовым клиентом :)

BaurzhanS
Где лежат входящие на хосте? /home/mailboxes/maildir/{username}?


Откуда мы можем знать, где лежит и в каком виде(maildir или mailbox) у Вас лежит входящая почта, если Вы сами задали это в настройках постфикс?

Увы, лично у меня в школе по предмету "телепатия" были одни двойки...

---
Вопрос: Кодировка на сервере

Столкнулся с такой проблемой. Перенёс сайт с хостинга на свой сервер. На хостинге всё работало нормально. После переноса тексты, которые были в БД на русском языке, стали отображаться на сайте вопросительными знаками. А при добавлении нового текста с сайта, в БД он отображается каракулями, а на сайте - нормально. Очевидно, имеет место несоответствие кодировок. В коде PHP кодировка нигде не была указана. Видимо, на прошлом сервере, была где-то задана нужная кодировка по умолчанию. Вопрос - где? В конфиге Апатча, PHP, или глобально для всего сервера. И как вообще корректно сделать: указывать в конфиге, или в коде PHP, или и там, и там?
Ответ: Нашёл, вроде вариант, вечером попробую
Тут можно пойти двумя путями - либо через конфиг файл:

---- Файл my.cnf
# Для местного клиента
default-character-set=cp1251
....

# Для всего сервера
default-character-set=cp1251
....

либо

shell> mysqld --character-set-server=cp1251

Ещё можно при конфигурировании задать кодировку по умолчанию

shell> ./configure --with-charset=latin1

Но лучше, когда кодировка настраивается прямо в соединении.
Только не написано, где расположен нужный конфиг файл.
И по поводу последнего пункта не очень понятно. Они имеют в виду не использовать всё это, а указывать кодировку в PHP?

Добавлено через 9 часов 43 минуты
Короче, из всего, что я перепробовал, помогла только отправка запроса
SQL
1
SET names utf8
с каждой страницы. Думаю, это не правильно, надо установить правильную дефолтную кодировку раз и навсегда, а не отправлять каждый раз запросы.
Редактирование файла my.cnf в лучшем случае не давало никакого эффекта, а в худшем вообще роняло mysql.
Команды из предыдущего комента не работают (может я не так вводил?)
Блин, вот уже слов приличных не хватает. Чтобы элементарное действие выполнить, я уже третий вечер подряд с бубном пляшу! Бред какой-то
Вопрос: Очень много запросов к DNS (bind)

Добрый день, прошу помочь новичку в следующем вопросе.
Настроен Bind на центосе, в настройках описана только обратная зона. Есть одна PTR запись для почтовика.
Рекурсивные запросы отключены. allow-query включен для всех (возможно в этом причина).

Суть в том, что при проверке DNStop-ом показывает очень много запросов (A, ANY) к моему серверу. Около 1-2к в минуту (или я не правильно понимаю вывод днс топа):
Sources Count %
--------------- --------- ------
47.88.1.138 74 26.7
121.135.130.189 45 16.2
67.190.143.114 45 16.2
75.197.244.41 1 0.4
(это за пару секунд)

В логах приблизительно следующее:
security: info: client 53.245.187.5#9457: query (cache) 'kvoxefcjajwnabal.' denied

То есть, как я понимаю, все таки запросы не обрабатываются, а отбрасываются.
Просьба обьяснить в чем причина такого явления, правильно ли я понял, что эти запросы отбрасываются. При чем при настройке iptables на блокировку всех входящих соединений (iptables -P INPUT DROP) все равно вывод dnstop-a растет. Прекращает только когда убираю нат на роутере.

Добавлено через 21 минуту
Первое, что приходить на ум - настроить fail2ban для блокировки ИПов с которых слишком часто приходят запросы.
Ответ: Принял решение отсекать левые запросы с помощью fail2ban:
Code
1
2
3
4
5
6
7
8
9
[named-refused-udp]
enabled   = true
port      = domain,953
protocol  = udp
filter    = named-refused
action    = iptables-multiport[name=Named, port="domain,953", protocol=udp]
logpath   = /var/log/named/sequrity.log
bantime   = 31536000
maxretry  = 7
Как показала практика, создавать ACL на маршрутизаторе нет смысла, так как количество IP адресов, с которых идут запросы, постоянно растет (блокируешь 1 ИП с которого больше всего запросов, через некоторое время с него перестают идти, но начинают с другого. за час полтора до 50 IP адресов).
Есть так же метод, описанный на хабре - блокировать по заголовку запроса, например, что б не пропускать запросы типа A, необходимо добавить в iptables:
-A INPUT -p udp --dport 53 -m string --algo kmp --hex-string "|00 01 00 01|" -j DROP (но, кстати, большая часть запросов именно типа ANY)
Вопрос: Как в postfix сделать адрес после собачки в виде поддомена?

Всем привет. Пытаюсь разобраться с postfix, но у меня вопрос необычный - не по конфигам или как сделать анти-спам или еще что-то, а более фундаментальное. Воюя с настройками, я в какой-то момент понял, что не понимаю, как именно устроена вся эта почтовая кухня, а без этого ковыряние конфигов не стоит начинать. Все ниже происходит в контексте Debian.

1) описывается, как определяется адрес и хост почтового сервера, но как администратор почтового сервера добавляет эти MX записи? Они добавляются на почтовом сервере(адрес после собачки) и запрашиваются с него же или же админ как-то должен выложить эти МХ записи в инет? Например, есть домен gmail.com, а МХ записи у него . Как они это сделали, на своей стороне что-то прописали или в какой-то общедоступный публичный ресурс выложили?

2) Теперь уже ближе к postfix. У меня есть боевой почтовый сервер mail.company.org, а также тестовый test.company.org. Я правильно понимаю, что теперь все письма на адреса вида [email=]***@company.org будут идти на оба сервера, в зависимости от приоритета МХ записей, естественно. А если я хочу поиграться с тестовым сервером, получать письма только от него и писать только на него и вообще, держать его на отдельном инстансе postfix на другом сервере (для обкатки всяких настроек и плагинов), как это сделать в рамках одного домена? То есть, если не хочу мешать между собой, должен либо зарегать домен типа company2.org и там в Мх записях прописать тестовый сервер, либо в качестве адреса после собачки использовать поддомен, типа test.company.org, можно так сделать?

3) Если можно обойтись одним доменом, а для игр с тестовым постфиксом можно как-то после собачки использовать поддомен, то правильно ли я понял, что теперь и адреса моих юзеров(они сейчас лежат в базе) должны быть вида имя@test.company.org?

4) Вообще туманная часть - как взаимосвязаны myorigin, mydestination, myhostname + содержимое /etc/hosts + адрес после собачки? Я понимаю так - адрес после собачки= myorigin, myhostname=MX запись для адреса после собачки, mydestination = не знаю. etc/hosts - для почтового софта (dovecot, postfix) реально важно, что там написано? Они это юзают? я так понял, надо маппить айпи почтового сервера на myhostname, обязательно ли именно так делать?

5) Везде пишут, что нельзя открывать свой релей, чтобы в спамеры не записали. Пустой hostrelay в конфигах postfix это же не значит открытый? Если пустой не открытый, то какой конфиг был бы плохим (открытым)?
Ответ: Дополнение к 3
BaurzhanS
адрес после собачки= myorigin, myhostname=MX запись для адреса после собачки


для домена первого уровня все понятно, myorigin=company.org, myhostname=test.company.org. А если у меня адрес после собачки сам является поддоменом myorigin=test.company.org, то что тогда в хостнейм? тоже test.company.org (что на самом деле правдивое имя хоста) или хостнейм обязательно должен быть доменом большего уровня относительно ориджна и придется городить что-то типа myhostname=sub.test.company.org? Если второе, то тогда вообще непонятно что писать в конфах и /etc/hosts, подскажите, плиз.
Вопрос: 20 минут грузится вновь установленная ubuntu

Здравствуйте. Установил на ноут Asus X53B Ubuntu 15.10. Проблема в том, что оона загружается около 20 минут после включения ноута. Появляется надпись Убунту и точки внизу не бегают. Через 20 минут загружается окно для ввода пароля.
dmeg показывает, что простой происходит вот в следующих местах:
Кликните здесь для просмотра всего текста
[ 31.859381] IPv6: wlp4s0: IPv6 duplicate address fe80::466d:57ff:fe4c:8eeb detected!
[ 240.270869] INFO: task plymouthd:287 blocked for more than 120 seconds.
[ 240.270888] Not tainted 4.2.0-16-generic #19-Ubuntu
[ 240.270894] "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this


Кликните здесь для просмотра всего текста

240.271521] [<ffffffff817ef9f2>] entry_SYSCALL_64_fastpath+0x16/0x75
[ 360.284527] INFO: task plymouthd:287 blocked for more than 120 seconds.
[ 360.284546] Not tainted 4.2.0-16-generic #19-Ubuntu
[ 360.284551] "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this


Кликните здесь для просмотра всего текста

[ 480.298648] INFO: task gpu-manager:574 blocked for more than 120 seconds.
[ 480.298656] Not tainted 4.2.0-16-generic #19-Ubuntu
[ 480.298660] "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.


И еще несколько раз так.
Подскажите, в чем может быть проблема? Аппаратная часть или просто несовместимость с железом? Что можно еще посмотреть чтобы более точно диагностировать?
Спасибо.
Ответ: Если бы гуглеж мне помог, я вряд ли стал бы создавать эту тему.

Добавлено через 1 минуту
попробовал различные предыдущие версии, и проблема не решилась. Значит, дело не в версии убунту.
Вопрос: С какого момента после редакция начинает работать cron?

Доброго времени суток!
Я понимаю, что вопросы по CRON тут уже всех достали. Но сам не могу разобраться.
Борюсь с cron-он уже вторую неделю.
Вот мой лист crontab
*/10 * * * * /home/htms/proj1/run.sh

По логике вещей он должен заработать через 10 минут после сохранения.
А вот нифига. В терминале висит htop и никакой активности не наблюдается.
Да, после этой стоки стоит одна пустая.
Что бы понять, в чем затык пробовал даже
* * * * * echo "Hello"
результатов нет.
Сам cron запущен, это видно в htop. Все запущено и работает от одного пользователя htms

Подскажите куда смотреть в чем затык.
ОС ubuntu srerver 14.04
Ответ: Просто так работает крон (либо запускается /bin/sh -c, либо то, что указано в SHELL в кронтабе с опцией -s)
А шелл (а не сразу exec) запускается чтоб можно было запускать скрипты (правильным интерпретатором)
автор
lubomudr@lvl-suse:~> grep $USER /etc/passwd # мой дефолтовый шелл -- он не имеет значения
lubomudr:x:1000:100:Vyacheslav Lyubomudrov:/home/lubomudr:/bin/bash

lubomudr@lvl-suse:~> cat my_prog.pl
#!/usr/bin/perl
my $rc=`ps -ef|grep my_prog`;
print $rc;
exit 0;

lubomudr@lvl-suse:~> crontab -l
# DO NOT EDIT THIS FILE - edit the master and reinstall.
# (/tmp/crontab.hTZBKZ installed on Thu Sep 8 11:48:25 2016)
# (Cronie version 4.2)
50 11 * * * /home/lubomudr/my_prog.pl > /home/lubomudr/my_prog.log

lubomudr@lvl-suse:~> cat my_prog.log
lubomudr 1351 1350 0 11:50 ? 00:00:00 /bin/sh -c /home/lubomudr/my_prog.pl > /home/lubomudr/my_prog.log # Авраам родил Исаака
lubomudr 1352 1351 0 11:50 ? 00:00:00 /usr/bin/perl /home/lubomudr/my_prog.pl # Исаак родил Иакова
lubomudr 1353 1352 0 11:50 ? 00:00:00 sh -c ps -ef|grep my_prog # Иаков родил Иуду
lubomudr 1355 1353 0 11:50 ? 00:00:00 grep my_prog # и братьев его

lubomudr@lvl-suse:~> crontab -l
# DO NOT EDIT THIS FILE - edit the master and reinstall.
# (/tmp/crontab.hTZBKZ installed on Thu Sep 8 11:57:35 2016)
# (Cronie version 4.2)
SHELL=/bin/bash
58 11 * * * /home/lubomudr/my_prog.pl > /home/lubomudr/my_prog.log1

lubomudr@lvl-suse:~> cat my_prog.log1
lubomudr 1594 1593 0 11:58 ? 00:00:00 /bin/bash -c /home/lubomudr/my_prog.pl > /home/lubomudr/my_prog.log1
lubomudr 1595 1594 0 11:58 ? 00:00:00 /usr/bin/perl /home/lubomudr/my_prog.pl
lubomudr 1600 1595 0 11:58 ? 00:00:00 sh -c ps -ef|grep my_prog
lubomudr 1607 1600 0 11:58 ? 00:00:00 grep my_prog

Вопрос: Доступ к домашнему серверу убунту из интернета

Возможно я разделом ошибся, но видел тут похожие темы.
Для начала здрасте!
Нужна помощь в настройке моего домашнего сервера для входа на него из интернета. Сразу скажу я в этом полный чайник, а может и хуже. Надеюсь на понимание.
Есть домашний компьютер, на него поставил ubeuntu 14.04 server x64 как ОС, далее Ngingx+php+mysql+openssh короче и т.д.
ну сразу по рекомендациям из гугла все это настроил(более менее шарю, во всяком случае для того что мне надо) и настроил так сказать сеть для сервера(nano /etc/network/interfaces).

Там было следующее:
# The primary network interface
auto eth0
#iface eth0 inet dhcp

Я прописал:
# The primary network interface
auto eth0
iface eth0 inet static
address 192.168.0.110
netmask 255.255.255.0
network 192.168.0.0
broadcast 192.168.0.255
gateway 192.168.0.1
dns-nameservers 8.8.8.8

Тем самым при заходе по адресу 192.168.0.110 на моем компе или другом компе в сети подключенному к моему роутеру я попадаю на страницу приветствия моего nginx(ну естественно когда все включено и настроено).
Ну далее все что я пропишу в index.html ну и прочих нужных для меня настройках и переходах будет влиять на то что вместо страницы приветствия появится. Ну допустим там будет какой-то веб-сайт.
Далее мне надо зайти на этот сайт откуда угодно, из интернета, введя в адресную строку допустим адрес. Исключительно как пример вот 185.26.28.28. Если вбить это адрес в адресную строку мы увидем еррор 403 о том что на данный момент nginx не настроен(этот адрес чисто для примера, он чужой, таких можно найти миллионы в инете), однако он есть и включен и на него по этому адресу можно зайти с интернета.
Как мне сделать так чтобы я мог вбить мой адрес так же как этот и попасть на мой сервер. В будущем вероятно что этот адрес я привяжу или перенаправлю на домен(пока с адресом бы разобраться, а там будет видно). Помогите плз это сделать, желательно с 0 и по слогам.
Роутер с выходом в интернет вот такой
Айп в разделе WAN меняется с каждым реконектом, однако при тесте скорости всегда показывает одинаковый айп(вообще не такой как пишется в роутере).
Ответ: DynamicDNS решает проблему динамических IP, а не NAT'а.
Без белого IP можно обойтись, подняв VPS где-нибудь в интернете, с VPN сервером. Это, вероятно, дороже.
Вопрос: Настройка маршрутизации между eth0 и usb0

к пк подключен eth0 и usb-модем. как мне настроить маршрутизацию, чтобы через eth0 ходили только в подсеть 10.0.0.0, а по всем остальным адресам (в эти ваши интернеты) через usb0.
может кто поможет с файлом interface ?
Код
eth0      Link encap:Ethernet 
          inet addr:10.40.176.12  Bcast:10.40.176.255  Mask:255.255.255.0

usb0      Link encap:Ethernet 
          inet addr:192.168.42.113  Bcast:192.168.42.255  Mask:255.255.255.0
Добавлено через 1 час 46 минут
сейчас у меня
Код
auto lo
iface lo inet loopback

iface usb0 inet dhcp
auto usb0 

up route add -net 192.168.0.0 netmask 255.255.0.0 usb0
up route add -net 0.0.0.0 netmask 255.255.255.255 usb0

iface eth0 inet dhcp
auto eth0

up route add -net 10.0.0.0 netmask 255.0.0.0 eth0
не работает
Ответ: i_am_kisly, dhcp - зло.
Вопрос: Как увеличить время достука к DHCP-серверу?

Ага, именно достука.
DHCP-сервер находится в головной компании и я даже не уверен, что в нашем городе.
На ночь почти все компы выключают. Утром все включают компы и начинается нападение на DHCP-сервер.
То ли в Windows адреса ловятся без проблем, то ли уже после загрузки Windows делает поиск несколько раз, но Windows-пользователи ни разу не жаловались на отсутствтие сети.
Зато каждое утро обязательно хотя бы один Linux-пользователь не получает адрес. Соответственно не монтрируются диски, а поскольку весь софт на смонтированных дисках, то не работает и софт и полностью не подгружается окружение. То есть, приходится не только ловить сеть, монтировать диск, но и перелогиниваться пользователем.

Искал искал в интернетах - вообще нет никаких упоминаний, что у DHCP-клиента есть временной параметр достука к серверу.
Linux-пользоватаелей не так много. Если им всем увеличить время, чтобы они подольше искали сервер или подольше ждали ответ от него, то возможно ситуация улучшилась бы.
Ответ: Сразу скажу, что сегодня в понедельник не было ни одной жалобы, что может быть совпадением, а может быть следствием того, что в:
/etc/dhclient-eth0.conf
прописал:
timeout 120.

miksoft писал, что "таймаут по умолчанию целых 300 секунд", но это общий, задаётся параметром retry, а каждый кусок достука по 60 сек, видимо в нашей сети не хватает 60 секунд, пришлось поставить 120 пока для эксперимента.

Про ещё один DHCP-сервер не знаю, возможно, надо будет поискать, сеть большая.
В нашем поддомене больше ста машин, а сколько всего в домене - не знаю, может тысяча, и DHCP-сервер, и AD, как я понимаю тутошнюю сеть, один на всех.

На совет bga83 про автоматическое поднятие интерфейса отвечу, что он и так прописан, но когда он не получает адреса, то почему-то оказывается выключен. Причём, если бы автомат не был прописан, то он не поднимался бы на одной и той же машине при каждой перезагрузке, а так это случалось раз от разу на совершенно разных машинах.

Ну в общем, на данный момент, после увеличения timeout на капризных машинах, вроде жалоб нету, надеюсь, что навсегда.

Всем Спасибо!
Вопрос: BIND 9 не сразу доступны корневые серверы.

Всем здравствовать!
На Ubuntu Server настроен кеширующий ДНС на базе bind. К серверу подключено несколько каналов. Белые IP получаются после pptp на одном и pppoe на другом канале. В локальной сети существует еще один ДНС сервер, который имеет свой канал и может разрешать имена.
Вопрос такой: имеется ли возможность настроить bind так, чтобы при недоступности корневых серверов он форвардил запросы к локальному серверу-соседу, а при доступности - отправлял запросы в мир?
Ответ:
ЗАЧЕМ 0.0.0.0 тут?
Фактически вы пересылаете запросы на xxx.xxx.xxx.xxx свой сервер. А если он не отвечает, то уже отправляет запросы в мир. А не наоборот, как вы описывали в задаче