LINUX.ORG.RU

Сообщения spirit

 

Augeas и вложенные структуры

Пробовал ли кто-то с помощью augeas создать сценарий разбора текстового конфига с блоками произвольной вложенности ?
Интересует в частности nginx.conf, в нём могут быть вложенные секции location неизвестно какой глубины.
На сколько я понял из документации и попыток чего-то написать самому, он такого не умеет, ибо

let var = exp
Augeas does not support recursion, since var can not be used in exp

Или может я что-то недочитал, и кто-то знает секрет ?

 ,

spirit
()

Периодическая проблема с подключением к mysql

Имеется ubuntu-10.04-LTS сервер с apache + mod_php и mysql.
Периодически в логах apache проскакивают сообщения
> Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock'
с указанием php-файла, в котором возникла ошибка.
Ошибка возникает не постоянно, а изредка, какой-либо закономерности её возникновения замечено не было.

Естественно по указанному пути находится действующий mysql сокет с правами rw для всех, и права на каталоги тоже позволяют добраться к сокету всем.

Логины/пароли в php указаны заведомо верные (делал их вывод в том месте кода, где mysql_connect() отрабатывал с ошибкой, в отдельный лог - все параметры правильные).

Также заранее хочу указать на то, что лимит подключений к mysql не достигается, иначе ошибка была бы «Too many connections», и mysqltuner показывал, что max подключений было ~80% от лимита.

Значение net.core.somaxconn было выставлено > 1000, max_connections в mysql =768. Соответственно при любом наплыве одновременных подключений в очередь попадало бы гарантированно больше, чем мог принять mysql. Раз лимит не достигался, значит somaxconn тут не при чём.

Пробовал даже уменьшить somaxconn до 5 и натравить (с того же хоста) на apache ab с 150..500 параллельными запросами. За время теста из десятка запусков ab ошибка проявилась только 1 раз. strace всех процессов apache во время проведения теста не показал ничего интересного:
нормальный коннект
> [pid 21418] connect(40, {sa_family=AF_FILE, path=«/var/run/mysqld/mysqld.sock»}, 110) = 0
проблемный
> [pid 20010] connect(41, {sa_family=AF_FILE, path=«/var/run/mysqld/mysqld.sock»}, 110 <unfinished ...>
В логах mysql и dmesg тоже тишина.

Тест проводил ночью при спаде активности на сервере, днём таких ошибок в логи сыпется значительно больше.

Сегодня пробовал перевести все сайты на работу с mysql по tcp - снова вылезли глюки:
PHP Warning: mysql_connect(): Lost connection to MySQL server at 'reading initial communication packet', system error: 110

Версии ПО (установлены из стандартных пакетов):
mysql-5.1.62
php-5.3.2
apache2-2.2.14

Идеи справиться с проблемой кончились. Может кто сталкивался с таким или знает с какой ещё стороны можно подойти ?

 , ,

spirit
()

Ubuntu: автоматическая установка пакетов

Недавно столкнулся с необходимостью автоматической установки группы пакетов под Ubuntu server. Часть пакетов (mysql-server, phpmyadmin и т.п.) предполагают постустановочную конфигурацию - появляется ncurses меню и требует что-то ввести.
Мне же нужно установку оформить в виде обычного bash-скрипта, который запускается, всё делает и ничего не спрашивает.

В связи с чем возник вопрос: можно ли как-то указать через apt-get (или может есть другие утилиты) те параметры, которые он собирается у меня спрашивать, чтоб не было никаких меню, не задавалось абсолютно никаких вопросов ?

Сейчас пытаюсь решить это через expect, но есть предчувствие, что это несколько тяжёлая артилерия, и есть более простой и правильный способ.

spirit
()

В чём смысл ограничений на chroot в SFTP ?

Пытаюсь сделать FTP через SSH с использованием chroot в домашний каталог пользователя. В manual-е пишут, что владельцем всех компонентов пути (в том числе и каталога пользователя) должен быть root + никто посторонний не должен иметь прав записи туда:

All components of the pathname must be root-owned directories that are not writable by any other user or group. After the chroot, sshd(8) changes the working directory to the user's home directory.

Господа, может кто-нибудь доходчиво объяснить с чем связано данное ограничение ?
Почему все ftp-сервера испокон веков умеют делать chroot в домашний каталог без подобных ограничений, а openssh, несмотря на то, что 21-й век на дворе, никак не умеет ?
А то уже руки чешутся сделать patch, дабы отключить этот вопиющий маразм.

spirit
()

Странный torrent-трафик

Заметил недавно странный трафик в локальной сети...
На локальной тачке (192.168.1.17) делаю такое:
local-pc# tcpdump -pni eth0 'src 192.168.1.17 and dst 192.168.1.17'
16:28:18.447812 IP 192.168.1.17.44218 > 192.168.1.17.6881: S 1996540432:1996540432(0) win 5840 <mss 1460,sackOK,timestamp 62321063 0,nop,wscale 7>
16:28:19.994636 IP 192.168.1.17.44239 > 192.168.1.17.6881: S 2018044569:2018044569(0) win 5840 <mss 1460,sackOK,timestamp 62321450 0,nop,wscale 7>
....

Смотрю что такое порт 6881:
local-pc# netstat -nlp|grep :6881
tcp 0 0 0.0.0.0:6881 0.0.0.0:* LISTEN 5390/ktorrent
udp 1840 0 0.0.0.0:6881 0.0.0.0:* 5390/ktorrent

Тоже самое показывает аналогичный tcpdump и на шлюзе. Решил выяснить откуда берутся такие пакеты: приходят снаружи или создаются самой локальной тачилой. Добавляю на ней iptables-правила:
local-pc# iptables -I INPUT -s 192.168.1.17 -d 192.168.1.17 -i eth0 -j LOG --log-prefix "iptables INPUT: "
local-pc# iptables -I OUTPUT -s 192.168.1.17 -d 192.168.1.17 -o eth0 -j LOG --log-prefix "iptables OUTPUT: "

В итоге tcpdump на тачиле периодически показывает такие пакеты (прошу заметить - параметр "-p" не переводит карточку в promisc mode), а счётчики iptables равны нулю и в логах тишина....
ktorrent запущен от обычного user-а, не от root-а.
Может кто-нибудь объяснить как такое может быть ??? Как может не root-овая программа генерить трафик от себя себе же, при чем говорить ядру маршрутизировать его сразу на шлюз (!!!), а не по указанным маршрутам ???
Почему он выходя из тачилы не проходит по правилам iptables ?

P.S. Если выключить в ktorrent закачки/раздачи трафик прекращается.

spirit
()

Openldap и ссылки

Хочется такого:
иметь ветку с учётными записями пользователей
и отдельные ветки для сервисов (возможно с подветками для хостов).
Всех людей хранить в одном месте, а для сервисов понасоздавать ссылок
на людей, которых им нужно видеть.
Столкнулся с проблемой: при создании ссылок с помощью objectClass: alias,
для них работает поиск по фильтру, но не работает bind.
Если же "ссылки" делать через dynlist overlay,
тогда можно в объекте-ссылке дополнительно указать поле userPassword,
и будет работать bind, но пропадает возможность делать поиск по фильтру.

К примеру имеем:
dc=com
|---dc=users
|   |---uid=user1
|   |     cn: user1; uidNumber: 100; userPassword: xxx
|   \---uid=user2
|         cn: user2; uidNumber: 200; userPassword: yyy
\---dc=links
    |---uid=u1_alias
    |     objectClass: alias; aliasedObjectName: uid=user1,dc=users,dc=com; userPassword: xxx
    \---uid=u2_alias
          objectClass: dynamicListGroup; expandThisURL: ldap:///uid=user2,dc=users,dc=com??base?(objectclass=*); userPassword: yyy

Проверка на bind:
$ ldapsearch -b 'uid=u1_alias,dc=links,dc=com' -xD 'uid=u1_alias,dc=links,dc=com' -w xxx
ldap_bind: Invalid credentials (49)
$ ldapsearch -b 'uid=u2_alias,dc=links,dc=com' -xD 'uid=u2_alias,dc=links,dc=com' -w xxx
подключается и выводит данные объекта (dynlist работает)

Проверка на поиск с фильтром:
$ ldapsearch -b 'dc=links,dc=com' -xD $root_dn -W 'uidNumber=*'
находит только один dn: uid=user1,dc=users,dc=com

Тот же поиск, но без фильтра, находит обе записи

Знает ли кто-нибудь способ сделать так, чтоб и "ссылки" были, и фильтры работали ?
Либо это где-то у меня "лыжи не едут" ?
spirit
()

Не работает proxy arp

Есть выданный провайдером внешний IP (x.x.x.x), который как бы отдан локальному компу (через DNAT). Особенность заключается в том, что маршрут к этому IP со стороны провайдера прописан не через шлюз, а напрямую.
Поэтому при попытке переслать пакеты на этот IP, шлюз провайдера шлёт ARP-запрос "IP x.x.x.x, скажи свой MAC-адрес" в сторону моего шлюза.
На что мой шлюз должен ответить своим MAC-адресом и принять пакет.
И проблема как раз в том, что он почему-то этого не делает, не шлёт ARP-ответов.

Пробовал делать так:

arp -Ds x.x.x.x eth1 pub
sysctl net.ipv4.conf.eth1.proxy_arp=1

eth1 - карточка, смотрящая в сторону провайдера.

Запускаю "tcpdump -ni eth1 arp" и вижу одни ARP-запросы для x.x.x.x, ответов - ноль.
Ядро 2.4.31, ARP на интерфейсе не запрещен.

Пробовал сделать аналогичное (для теста) на своей рабочей тачиле (ядро 2.6.19.2) - результат тот же.

Раньше такое на этом же шлюзе, на этом же ядре заводилось с полпинка... Мой мозг уже сломался: в упор не понимаю в чем может быть проблема. Google тоже ничем не помог. Есть у кого-нибудь какие-нибудь мысли ?

>>>

spirit
()

Skype: проблема с воспроизведением звука

Имеется тачила со звуковой картой "nVidia Corporation nForce3 250Gb AC'97 Audio Controller (CK8S)", которая работает с помощью модуля snd_intel8x0.
До недавних пор все было нормально: все приложения замечательно проигрывали звук (audacious, mplayer, ...). Но когда понадобилось запустить skype, обнаружилось, что он не хочет воспроизводить звук (в настройках кнопка "Проиграть тестовый звук").
Точнее воспроизводит, но только если запускать под root-ом.

# lsof -n|grep skype|grep /dev
выдает кучу записей о /dev/snd/

# ls -la /dev/snd
crw-rw---- 1 root audio 116, 0 Янв 26 14:21 controlC0
crw-rw---- 1 root audio 116, 24 Янв 26 14:21 pcmC0D0c
crw-rw---- 1 root audio 116, 16 Янв 26 14:21 pcmC0D0p
crw-rw---- 1 root audio 116, 25 Янв 26 14:21 pcmC0D1c
crw-rw---- 1 root audio 116, 18 Янв 26 14:21 pcmC0D2p
crw-rw---- 1 root audio 116, 33 Янв 26 14:21 timer

# id username
показывает, что user входит в группу audio (т.е. с правами должно быть все ok)

Читал http://www.skype.com/help/guides/soundsetup_linux.html про случай с ALSA - модули snd-pcm-oss и snd-mixer-oss по lsmod видны (загружены).

Во время теста громкость включал на max, поэтому проблема не в ней.
Пробовал одновременно проиграть mp3 в 2-х проигрывателях (audacious) - никаких ошибок, оба играют.
Пробовал потушить все процессы, использующие /dev/snd - никакого эффекта.
Делал skype-у strace - ничего подозрительного не пишет, /dev/snd/* открывает нормально.
Никаких прослоек типа esd, artsd и т.п. не используется.

Дистрибутив Gentoo, skype-2.0.0.27 (qt shared).

Знает ли кто-нибудь почему так происходит и как с этим бороться ?

>>>

spirit
()

Проблемы с обновлением DNS из DHCP

Используется ISC DHCP (3.0.1, 3.0.4), BIND (9.2.0).
В dhcpd.conf указано делать динамические обновления в DNS.
При появлении новых клиентов в сети в прямой и обратной зонах
появляются соответствующие записи, что и должно быть.
Но со временем эти записи исчезают, при чем удалять их начинает сам dhcpd
сразу после создания (обратите внимание на время):

May 16 14:03:53 server dhcpd: DHCPDISCOVER from 00:02:44:8b:92:2d via eth0
May 16 14:03:54 server dhcpd: DHCPOFFER on 192.168.20.192 to 00:02:44:8b:92:2d (comp) via eth0
May 16 14:03:54 server dhcpd: Added new forward map from comp.local.domain to 192.168.20.192
May 16 14:03:54 server dhcpd: added reverse map from 192.20.168.192.in-addr.arpa. to comp.local.domain
May 16 14:03:54 server dhcpd: DHCPREQUEST for 192.168.20.192 (192.168.20.6) from 00:02:44:8b:92:2d (comp) via eth0
May 16 14:03:54 server dhcpd: DHCPACK on 192.168.20.192 to 00:02:44:8b:92:2d (comp) via eth0
May 16 14:03:54 server dhcpd: if comp.local.domain IN TXT "315bb054abf73d03029359a4f4927273ea" rrset exists and comp.local.domain IN A 192.168.20.192 rrset exists delete comp.local.domain IN A 192.168.20.192: success.
May 16 14:03:54 server dhcpd: if comp.local.domain IN A rrset doesn't exist delete comp.local.domain IN TXT "315bb054abf73d03029359a4f4927273ea": success.
May 16 14:03:54 server dhcpd: removed reverse map on 192.20.168.192.in-addr.arpa.

И так практически для каждого клиента.
При чем если делать update параметров на клиенте вручную (ipconfig /renew),
записи в dns добавляются не удаляясь (до следующего обновления).

В dhcpd.conf стоит такое:
ddns-update-style interim;
default-lease-time 86400; (86400 = 1 сутки)
max-lease-time 86400;
Пробовал добавить "update-optimization off;", обновлять dhcp (с 3.0.1 до 3.0.4) - не помогло.
Спрашивал у google.ru и man-ов - ответа не нашел.

Сталкивался ли кто-нибудь с подобной ситуацией ?
Что можете посоветовать ?
spirit
()

Странности маршрутизации

Есть 2 подключения к разным провайдерам. На шлюзе пытаюсь сделать multipath routing:
eth1 смотрит в сторону первого провайдера, в сторону второго через openvpn сделан tun0.
Добавляю маршрут:
ip route add default scope global \
nexthop via шлюз_к_прову_1 dev eth1 weight 1 \
nexthop dev tun0 weight 1

После этого наблюдаю такую картину:
все, что определяется (маршрутизационным кодом) через eth1, работает нормально, а вот через tun0 - пакеты почему-то идут с src адресом не tun0 (192.168.0.1), а eth1:
$ ip route get 1.1.1.1
1.1.1.1 dev tun0 src 192.168.0.1 (<-- правильный src !)
...
В то же время после ping/traceroute -I 1.1.1.1 "tcpdump -ni tun0 host 1.1.1.1" показывает ICMP пакеты с исходящим адресом eth1. Хотя ping 192.168.0.2 (это IP на другом конце туннеля) идет с правильным src адресом.

Да, все это пробовал с полностью чистым firewall-ом, без дополнительных ip rule и routing tables, правил только default маршрут в таблице main, "ip route flush cache" делать не забывал.

Пробовал сделать
iptables -t nat -A POSTROUTING -o tun0 -j MASQUERADE
не работает ! пакеты идут с тем же неверным src (хотя SNAT с явно заданным адресом исправляет IP).

Если в default маршруте поменять местами nexthop-ы:
ip route add default scope global \
nexthop dev tun0 weight 1 \
nexthop via шлюз_к_прову_1 dev eth1 weight 1
тогда и остальное тоже меняется местами: все, что через tun0, - работает идеально, а идущее через eth1 идет с src адресом tun0 (192.168.0.1).
И точно такой же "-o eth1 -j MASQUERADE" снова не работает.
Т.е. по каким-то причинам ядро выбирает src адрес не с того интерфейса.

Если использовать не туннель (он идет через eth0), а eth0:
ip route add default scope global \
nexthop via шлюз_к_прову_1 dev eth1 weight 1 \
nexthop via шлюз_к_прову_2 dev eth0 weight 1
тогда все везде работает отлично, но хочется сделать именно через туннель, причем без SNAT-ов.

Вопрос: почему ядро берет не тот IP ? Как это можно исправить ? (SNAT не предлагать)

spirit
()

Обеспечение бесперебойности работы сети

Допустим имеется такая схема:

... -- router1(eth0) -- [ СЕТЬ ] -- (eth0)router2 -- ...
       (eth1) \__________________________/ (eth1)

Т.е. router1 и router2 соединены не только через сеть "СЕТЬ",
но и отдельным резервным линком друг с другом.


Вопрос: существует ли какое-либо ПО или методы обеспечения
работоспособности сети (доступности ПК) при разрыве внутри СЕТИ ?

... -- router1(eth0) -- [ полусеть1 ]     (разрыв)     [ полусеть2 ] -- (eth0)router2 -- ...
       (eth1) \______________________________________________________________/ (eth1)

Т.е. нужно чтоб после разрыва, к примеру, router2 знал о том,
что тачилы из "полусеть2" доступны непосредственно через eth0,
а остальные ("полусеть1") - только через router1.
Причем при восстановлении связи в сети все бы возвращалось на свои места.

Пытался читать про STP (Spanning Tree Protocol), но что-то он меня не впечатлил,
кажется он не решит моей проблемы (в плане использования только на router-ах,
switch-и внутри сети его не умеют, "тупые"). Или все таки я ошибаюсь ? :-)
Может ли кто-нибудь сказать что-либо по этой теме ? В какую сторону смотреть ? :-)
spirit
()

Advanced routing и 2 канала

Ситуация следующая: есть 2 канала к разным провайдерам, есть маршрутизатор с eth0 (192.168.20.1) и eth1 (192.168.7.5). Задача: пустить исходящий почтовый трафик по eth1, а остальной - по обоим каналам.
Делаю так:
ip route add default scope global nexthop via 192.168.7.1 dev eth1 weight 1 nexthop via 192.168.20.6 dev eth0 weight 2
192.168.7.1 и 192.168.20.6 - gateways по пути к провайдерам.
+ создаю дополнительные таблицы маршрутизации для каждого провайдера. Трафик бегает то по одному каналу, то по другому, т.е. все работает, как предполагалось, остается только разобраться с почтой.
Для этого делаю
iptables -t mangle -A OUTPUT -d ! 192.168.0.0/16 -p tcp --dport 25 -j MARK --set-mark 25
ip rule add fwmark 25 pref 100 table prov1
ip route list table prov1
192.168.7.1 dev eth1 scope link src 192.168.7.5
default via 192.168.7.1 dev eth1 src 192.168.7.5
Для теста выбираю какой-нибудь внешний почтовик с адресом, про который "ip route get x.x.x.x" говорит, что пакеты будут уходить с eth0 (via 192.168.20.6). Делаю "telnet x.x.x.x 25" и tcpdump-ом вижу, что пакеты идут все таки по eth1, но исходящий адрес у них от eth0 (192.168.20.1). Почему так ? Ведь в маршруте явно указано src !
Попробовал также сделать SNAT этим пакетам:
iptables -t nat -A POSTROUTING -o eth1 -m mark --mark 25 -j SNAT --to-source 192.168.7.5
tcpdump уже показывает правильный адрес, но соединение все равно не устанавливается. В /proc/net/ip_conntrack вижу такое:
tcp 6 13 SYN_RECV src=192.168.20.1 dst=67.28.113.11 sport=37167 dport=25 src=67.28.113.11 dst=192.168.7.5 sport=25 dport=37167 use=1 mark=0

В tcpdump постоянно повторяющиеся строки:
13:09:12.233756 IP 192.168.7.5.37167 > 67.28.113.11.smtp: S 755710919:755710919(0) win 5840 <mss 1460,sackOK,timestamp 776528421 0,nop,wscale 0>
13:09:12.518436 IP 67.28.113.11.smtp > 192.168.7.5.37167: S 282450457:282450457(0) ack 755710920 win 65535 <mss 1460,nop,wscale 1,nop,nop,timestamp 185470331 776528421>

Чего ему не хватает ? :-) Может кто-нибудь объяснить ?
Не знает кто-нибудь какую-то доку, где подробно описано как ядро осуществляет маршрутизацию (когда какие таблицы просматривает, когда просматривает правила ip rules) ?
Потому как нашел пару схем движения пакетов, но по-моему они обе не подтверждаются практикой:
http://mailman.ds9a.nl/pipermail/lartc/2002q2/004245.html
(или http://www.docum.org/docum.org/kptd/)
и
http://www.policyrouting.org/PolicyRoutingBook/ONLINE/CH03.web.html (про ядра 2.4)

P.S. Ядро 2.4.27.

spirit
()

Маразм с DHCP relay

Hi all !
Ситуация такая: 3 локальные сети соединены одним маршрутизатором.
В одной из них находится DHCP сервер.
На маршрутизаторе по некоторым причинам DHCP сервер поставить не могу
(слабенький он очень, не надежный), пришлось поднять там dhcrelay.

(192.168.10.0/24)
      |- \ -----------------|
      |   eth2              |
      |     > ROUTER --eth1-|- (192.168.20.0/24) -- SERVER
      |   eth0              |                   (192.168.20.6)
      |- / -----------------|
(192.168.15.0/24)

Проблема следующая: если dhcprelay вешать на eth0 и eth2
 # dhcrelay -q -a -A 1400 -m forward -i eth0 -i eth2 192.168.20.6
то он нормально принимает запросы клиентов, отдает их серверу, но
почему-то игнорирует ответы сервера.
В man-е написано, что вообще-то он еще должен слушать и тот интерфейс,
через который он общается с сервером. Когда добавляю "-i eth1", тогда
все начинает работать, но тогда он также начинает релеить запросы для
20-й сети, на которые сервер и сам в состоянии ответить. Получается,
что приходят они к нему 2 раза (напрямую и через relay), и отвечает
он соответственно 2 раза, что увеличивает нагрузку и не есть
правильно.
Пытался firewall-ом запретить прием broadcast-ов для релея на eth1,
пытался сделать это же на DHCP сервере - ни то, ни другое не помогло
(создается впечатление, что dhcpd и dhcrelay ловят запросы перед firewall-ом).
Пока на сервере сделал такое (dhcpd.conf):
...
class "dhcp-relay" {
    match if exists agent.circuit-id;
}
subnet 192.168.20.0 netmask 255.255.255.0 {
    pool {
        range 192.168.20.21 192.168.20.254;
        deny members of "dhcp-relay";
    }
...
но не думаю, что это тоже правильное решение.
Не подскажет ли кто, как все сделать ПО-ЧЕЛОВЕЧЕСКИ ? :-)

P.S. Если нужны какие-либо конфиги - говорите, покажу :-)
spirit
()

Права доступа в OpenLDAP

Есть OpenLDAP-2.0.23-4. В нем есть дерево вида:

        A
      /   \
    B       C
  / | \   / | \
  .....   .....

Хочу сделать так, чтоб при запросе
ldapsearch -b "dc=A" -s sub
ВСЕМ пользователям (кроме self и rootdn) не выдавалось ничего,
но в то же время, чтоб при запросах
ldapsearch -b "dc=B,dc=A" -s sub и
ldapsearch -b "dc=C,dc=A" -s sub
им выдавалась вся информация, содержащаяся в ветвях B и C.
Можно ли это как-то сделать средствами access в slapd.conf ?
Если можно, то как ?
spirit
()

Адресная книга, OpenLDAP и клиенты

Умеет ли какой-нибудь почтовый клиент брать ВСЕ записи из базы OpenLDAP, при чем ДИНАМИЧЕСКИ ??? Если есть, то какой ?

Пробовал Outlook Express из w2k и w2k3 - по какой-то непонятной причине поиск работает только тогда, когда под заданный шаблон подпадает 1 запись. Если LDAP выдает две и больше, Outlook-и ничего не показывают, а просто уходят в бесконечный поиск. Какие только в них настройки не менял - не помогает (ограничение на max кол-во принимаемых записей = 100, т.е. глючит не по этой причине).
Пробовал TheBat-1.63b11 - ищет нормально, но для этого нужно много телодвижений, тем более при открытии книги повторно показывает найденные прошлый раз записи, т.е. не динамически.
Пробовал Mozilla-Mail - то же самое, что и с Bat-ом, только нужные кнопки и меню поглубже спрятаны, что еще более не есть хорошо.

Хотелось бы найти почтовый клиент, который с удаленной АК умел бы работать так же просто, как и с локальной (не требовал от user-а задания шаблона поиска), и так же динамически (при каждом открытии обращался к серверу).
Существует такое в природе ? Или может я в чем-нибудь не прав ?

P.S. Сервер не обязательно LDAP, подойдет и любой SQL, etc.

spirit
()

sendmail.cf + перезапись заголовков

Hi all !
Вопрос такой:
как в sendmail-е замутить перезапись заголовков в нужном виде с применением правил ?
Просто не хочется светить именами и адресами локальных машин в inet-е. Надо анализировать header-ы и если письмо идет снаружи к нам - писать received from (HReceived: ), а если от нас наружу - не писать.
На citforum-е пишут:
> Для включения проверки, используйте:
> HHeader: $>Ruleset
Пробовал так для HReceived, но не работает. Такое впечатление, что sendmail вообще игнорирует такие вещи.
В принципе можно попробовать замутить с "H?что-то?Received" сделать дополнительного почтальона [e]smtp (копию существующего) и сказать ему F=что-то, но тогда придется лазить по всему конфигу и в некоторых местах менять [e]smtp на my_smtp + писать дополнительные правила... По-моему это большой геморой :-)
Нельзя ли просто "HHeader: $>Ruleset" или вообще по-другому ?
sendmail 8.11.6
Z0termaNN, help :-)

spirit
()

Логи от named

Hi all !
Последнее время наблюдаю такую вещь в логах от named

Malformed response from [195.24.128.164].53 (out of data in final pass)

195.24.128.164 = www.trifle.net, типа slave за некоторые наши зоны
Доступ к нам снаружи на порт 53 открыт всем, с самого сервера наружу стоит masquerade, т.е. named в качестве клиента тоже может выбраться наружу.
Вопрос: что это такое, почему оно бывает ? Вроде ж последнее время ничего не ковырял... Может кто сталкивался...

spirit
()

SQUID+delay_pools

Hi all !
Задание: ограничить user-ов по скорости (SQUID-2.3.STABLE4).
Долго читал доки в squid.conf и в других местах....
Написано вроде правильно, но не работает: скорость ограничивает как попало и кому попало. Создается впечатление, что squid вообще не умеет нормально ограничивать скорость.
Мне надо ограничить всех на уровне user-а (по IP не предлагать !!!).
Про delay_class написано, что берутся во внимание IP-адреса и в то же время там стоят acl-и, которые могут быть и proxy_auth...
Реально ли вообще настроить delay_pools с acl-ями типа proxy_auth ???
Еще я никак не могу догнать как влияет maximum (размер ведра) на скорость ? О том, КАК именно (когда, какими порциями) оно вытекает из этого ведра нигде ничего не нашел...

Пример конфига:
----- cut -----
acl fast_inet1 proxy_auth "/usr/local/squid/etc/fast-inet"
acl fast_inet2 src 192.168.20.1/255.255.255.255
acl fast_inet2 src 192.168.20.35/255.255.255.255
acl fast_inet2 src 192.168.7.5/255.255.255.255
acl fast_inet2 src 127.0.0.1/255.255.255.255
#------------
acl medium_inet src 192.168.0.0/255.255.0.0
#------------
acl slow_inet1 proxy_auth "/usr/local/squid/etc/slow-inet"
acl slow_inet2 src 192.168.10.130/255.255.255.255 192.168.12.1/255.255.255.255
#------------

delay_pools 3
delay_class 1 1
delay_class 2 2
delay_class 3 2

delay_access 1 allow fast_inet1 fast_inet2
delay_access 1 deny all

delay_access 3 allow slow_inet1 slow_inet2
delay_access 3 deny all

delay_access 2 allow medium_inet
delay_access 2 deny all

delay_parameters 1 -1/-1
delay_parameters 2 5000/5000 1000/1000
delay_parameters 3 1000/1000 200/200

spirit
()

Sendmail + Aliases + Users

Hi all !
Есть вопрос : при посылке почты несуществующему user-у sendmail пишет "User unknown". Искал такую строку в sendmail.cf - не нашел. Что это может значить ? Насколько я понял проверка того, есть такой user или нет, осуществляется не с помощью правил в sendmail.cf ? Кто тогда ее делает, сам бинарник ?

То же самое и с alias-ами... Где именно происходит подстановка реального user-а вместо соответствующего ему alias-а и кем ?

Еще хотел спросить, есть ли где-нибудь документация по поводу того, когда какие правила вызывает sendmail и что им передает ? Потому как делать sendmail -bD -d21.12, telnet-ом слать почту и потом разгребать все, что оно в консоли напишет надоело. Я имею в виду такие правила, как check_mail, check_rcpt (с ними более-менее разобрался).

spirit
()

RSS подписка на новые темы