LINUX.ORG.RU

Сообщения mrPresedent

 

dd диска из под работающей системы.

Шалом.

Хост ESXi за километры, система на флешке, нужна копия на всякий случай. В системе есть dd. Если прямо из под системы скомандовать dd if=/dev/usbflash1 of=/dev/usbflash2, это будет работать?
Я вот не нашел причин, что бы не работало, но беглый поиск в интернете точку в вопросе не поставил.

 ,

mrPresedent
()

Разжуйте пожалуйста основы комбинации html+python

Здравствуйте, джентльмены. У меня есть набор давно написанных скриптов для работы с ldap, который я хочу собрать в более-менее внятное веб-приложение без использования php и javascript. Написав интерфейс, я затупил с таким краеугольным моментом, как выдача результатов исполнения скрипта в html и, соответственно, передача параметров от элементов страницы (текстбоксы etc.) в скрипт. Когда я начал искать способ исполнения python-кода из html и нашел тысячи примеров работы с cgi и фреймворками, мысли заметались из стороны в сторону и я окончательно потерял связь с реальностью.

Я вижу это так:

1. Обращение к page.html

2. Происходит неведомое волшебство

3. Python-скрипт формирует page.html c блоком аля:

<div class=«content»>
<table id=somelist1>
  <tr>
    <th>var1</th>
    <th>varN</th>
  </tr>
</table>
</div>
4. Снова волшебство

5. Веб-сервер отдает клиенту сформированный page.html

В чем, собственно, вопрос: мне курить cgi или сразу какой нибудь простой фрейморк типа cherrypy, т.к. одного uwsgi будет недостаточно?

 , , ,

mrPresedent
()

Строка в переменную python

Здравствуйте. Завис на такой тривиальной проблеме:

trgt = c.entries[0].entry_to_json().split('\n')[2].split(':')[1] 
print (trgt) 
»"CN=\u0418\u043b\u044c\u043d\u0443\u0440,CN=Users,DC=example,DC=com" 
c.modify(trgt, {'mail': [(MODIFY_REPLACE, ['box@example.com'])]}) 
# Не работает 

# Если указать строку руками
c.modify("CN=\u0418\u043b\u044c\u043d\u0443\u0440,CN=Users,DC=example,DC=com", {'mail': [(MODIFY_REPLACE, ['box@example.com'])]}) 
# Работает
Буду благодарен за любую наводку.

 , ,

mrPresedent
()

Шлюз с QoS и статистикой (non-squid)

Всем привет.

В связи с перевозом текущего шлюза в уютный ДЦ встал вопрос о новом корпоративном gateway. Так устоялось, что интернеты натил iptables и всех все устраивало, но времена тяжелые, пользователи не эволюционируют, давать им полную свободу стало похоже на мазохизм.

Имею двух провайдеров (кто еще кого имеет), скриптами переключаются в случае отвала. Скорости и тарифы там несоизмеримы, что поднимает вопрос об QoS.
Подумал о прозрачном проксировании. Первым делом потрогал в очередной раз сквид, он вновь ударил меня лицом о подмену сертификатов. Безуспешно поизвращался с ним по хабровской статье и бросил это дело.

Сетка небольшая, на 150 юзеров, все смотрят через ад-шный днс. Филиальчики ходят к нам через ovpn. Хочется видеть банальную статистику по юзерам/устройствам и по возможности резать скорости для всяких торрентов и облаков. Хорошо бы так же резервировать немножко для tun-интерфейсов.

По статистике смотрю на netflow, а по части QoS кроме tc пока ничего не нашел. Закрывать доступ к вконтактикам было бы тоже хорошо, однако такой задачи не стоит.

На что стоит обратить внимание, что б без костылей да в продакшн?
Если скажете, что проще iptables+tc+netflow не найти, то ок.

 , ,

mrPresedent
()

Расчет требуемых iops

Ребят, добрый день.
Может кто знаком с формулами расчета необходимого количества iops? У меня тут группа машинок на esxi-хосте, которые надо вынести на новый сервер. Я знаю суммарный r/w rate, максимальный latency при обращении к datastore и vdisk. Как мне перевести все это в необходимый iops, получив в итоге оптимальный latency? Сейчас соотношение R/W порядка 15/85, из-за новых проектных БД латенси на ряде обеспечивающих бизнес-процессы серверах подскакивает до 250мс vdisk wr.
Подсчитать, сколько выдаст массив я могу, а вот вывести из имеющихся данных необходимый минимум не получается, не могу найти подходящую формулу. Неужели, единственный вариант тушить все лишнее и мерить iometer-ом?

 ,

mrPresedent
()

В сотый раз о samba, AD и правах

То ли я дурак, то ли лыжи всеж не едут.
samba4, ext4 смонтирована с user_xattr и acl
в [global] опции:

vfs objects = acl_xattr
map acl inherit = Yes
acl compatibility = auto
store dos attributes = Yes
в шаре по делу:
write list = @«%D\work users»
admin users = @«%D\domain admins»
read only = no
create mask = 0666
directory mask = 0777
printable = no
locking = no
winbind все видит, getent отрабатывает. Папка с шарой под владением admin:администраторы\040домена. Права из винды назначаются, но ни черта не работают по группам.
Даю доступ пользователям домена на чтение, группе work users на запись. Юзер из группы work users может только читать.
Даю доступ индивидуально юзеру на запись, он получает возможность писать. Задаю в домене work users как его основную группу, удаляю индивида из списка доступа - никакого продуктивного результата, опять только читает. У всех так, или мне повезло?

( smb.conf )

 ,

mrPresedent
()

winbind в samba 4.4.2 выдает только группы

Здаров, господа.
Не знаю, в каком направлении уже смотреть. wbinfo показывает мне все, кроме списка пользователей. Просто после попытки обновиться до samba4 из стандартных репозиториев centos 6.7 он перестал это делать. Гугл рассказал про заговор с 4й самбой и libnss_winbind.so,который мне неоткуда было взять. Снес пакеты samba-*, взял оф. мануал и в результате.. так никуда и не продвинулся.

Дело было так..

./configure --sysconfdir=/etc/samba --sbindir=/sbin
make && make install
ln -s /usr/local/samba/lib/libnss_winbind.so.2 /lib64/
ln -s /lib64/libnss_winbind.so.2 /lib64/libnss_winbind.so
/usr/local/samba/bin/net ads join -U admin -D DOMAIN.COM

Основано на конфигах:

/etc/krb5.conf
[logging]
default = FILE:/var/log/krb5libs.log
kdc = FILE:/var/log/krb5kdc.log
admin_server = FILE:/var/log/kadmind.log
[libdefaults]
default_realm = DOMAIN.COM
dns_lookup_kdc = false
[realms]
DOMAIN.COM = {
default_domain = DOMAIN.COM
kdc = pdc.domain.com:88
admin_server = pdc.domain.com:749
}
[domain_realm]
domain.com = DOMAIN.COM
.domain.com = DOMAIN.COM


/etc/nsswitch.conf
passwd:     files       winbind
shadow:     files
group:      files       winbind

hosts:      files dns


/etc/samba/smb.conf
[global]
netbios name = media
security = ADS
workgroup = DOMAIN
realm = DOMAIN.COM
log file = /var/log/samba/%m.log
log level = 1
dedicated keytab file = /etc/krb5.keytab
kerberos method = secrets and keytab

winbind refresh tickets = yes
winbind trusted domains only = no
winbind use default domain = yes
winbind enum users  = yes
winbind enum groups = yes
idmap config *:backend = tdb
idmap config *:range = 10000-20000
idmap config DOMAIN:backend = rid
idmap config DOMAIN:range = 100000-199000

ldap timeout = 120
client use spnego = yes
client ntlmv2 auth = yes
encrypt passwords = yes
restrict anonymous = 2
vfs objects = acl_xattr
map acl inherit = Yes
store dos attributes = Yes

[Media]
path = /terrabyte/samba
valid users = @«%D\domain users»
write list = @«%D\domain admins»
admin users = @«%D\domain admins»
read only = no
public = yes
create mask = 0660
directory mask = 0770
printable = no
locking = no

И вот что я вижу:

wbinfo -p
Ping to winbindd succeeded

wbinfo -P
checking the NETLOGON for domain[DOMAIN] dc connection to «PDC.domain.com» succeeded

wbinfo -t
checking the trust secret for domain DOMAIN via RPC calls succeeded

wbinfo -n admin
S-1-5-21-609812317-161033014-4089905066-1116 SID_USER (1)

wbinfo -a admin%adminpassword
plaintext password authentication succeeded
challenge/response password authentication succeeded

wbinfo -u

wbinfo -g
компьютеры домена
контроллеры домена
администраторы схемы
администраторы предприятия
.....

cat /var/log/samba/log.wb-DOMAIN
[2016/04/15 16:14:58.972538,  1] ../auth/gensec/spnego.c:664(gensec_spnego_create_negTokenInit)
  Failed to setup SPNEGO negTokenInit request: NT_STATUS_INTERNAL_ERROR
[2016/04/15 16:14:59.279035,  1] ../source3/libads/ldap_utils.c:93(ads_do_search_retry_internal)
  Reducing LDAP page size from 1000 to 500 due to IO_TIMEOUT
[2016/04/15 16:15:02.404998,  1] ../source3/libads/ldap_utils.c:93(ads_do_search_retry_internal)
  Reducing LDAP page size from 500 to 250 due to IO_TIMEOUT
[2016/04/15 16:15:05.506164,  1] ../source3/libads/ldap_utils.c:137(ads_do_search_retry_internal)
  ads reopen failed after error Time limit exceeded
[2016/04/15 16:15:05.506281,  1] ../source3/winbindd/winbindd_ads.c:320(query_user_list)
  query_user_list ads_search: Time limit exceeded
Пользователей в АД включая отключенных менее 300. Я не хочу делать на папки chmod 777, а без списка юзеров далеко не уехать. Где то я что то очевидное упускаю, подскажите если заметите.
getent с группами отрабатывает.

 , ,

mrPresedent
()

Беда с копированием внутри samba-шары

Добрый день, господа.
Обнаружил такую проблему: когда копирую из \\server\share\folder1 в условный \\server\share\folder2, виндовый эксплорер запинается об какой нибудь мелкий файл, подвешивается и в конце концов выдает, что файл открыт в другой программе. Воспроизвел такую ситуевину на трех серверах, где крутилась самба.
Стандартный конфиг:

[global]
      workgroup = DOMAIN
      netbios name = backup
      hosts allow = 192.168.
      max log size = 50
      security = ads
      realm = DOMAIN.RU
      auth method = winbind
      password server = pdc.domain.ru
      idmap config * : range = 10000-20000
      idmap config * : backend = tdb
      winbind separator = \
      winbind enum users = Yes
      winbind enum groups = Yes
      winbind use default domain = yes
      preferred master = No
      log file = /var/log/samba/log.%m
      log level = 3
      panic action = /usr/share/samba/panic-action %d
      smb ports = 139

      username map = /etc/samba/smbusers
      socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192

      display charset = UTF8
      unix charset = UTF8
      dos charset = cp866

[backup]
path = /backup
admin users = @«%D\domain admins»
write list = @«%D\domain admins»
hosts allow = 192.168.0.22,192.168.0.200,192.168.0.9,192.168.0.1,192.168.0.3
hosts deny = all
read only = no
public = yes
create mask = 0666
directory mask = 0777
printable = no
locking = no

inherit owner = yes
inherit acls = yes
inherit permissions = yes
map acl inherit = yes

В log.smbd и log.%computername% ничего подозрительного я не вижу, может быть слепой. Можно легко воспроизвести проблему. К примеру, проводник затыкается на произвольном файле Apx_0.dbf. В этот момент smbstatus показывает следующее:
Samba version 3.6.23-14.el6_6
PID     Username      Group         Machine
-------------------------------------------------------------------
15703     admin         пользователи домена  administrator (192.168.0.22)
15768     admin         пользователи домена  administrator (192.168.0.22)

Locked files:
Pid          Uid        DenyMode   Access      R/W        Oplock           SharePath   Name   Time
--------------------------------------------------------------------------------------------------
15703        10000      DENY_ALL   0x7019f     RDWR       EXCLUSIVE+BATCH  /backup   rsnapshot/WINRIK/SM_A/Apx_0.dbf   Fri Apr  1 09:55:04 2016
15703        10000      DENY_ALL   0x7019f     RDWR       EXCLUSIVE+BATCH  /backup   rsnapshot/WINRIK/SM_A/Apx_H.MDX   Fri Apr  1 09:55:04 2016
15703        10000      DENY_NONE  0x20089     RDONLY     EXCLUSIVE+BATCH  /backup   rsnapshot/hourly.0/filesrv/work/ПЕРСОНАЛ - Ярлык.lnk   Fri Apr  1 09:54:54 2016
15703        10000      DENY_NONE  0x20089     RDONLY     EXCLUSIVE+BATCH  /backup   rsnapshot/hourly.0/filesrv/work/Public (192.168.0.9) (Y) - Ярлык.lnk   Fri Apr  1 09:54:54 2016
15703        10000      DENY_NONE  0x100081    RDONLY     NONE             /backup   .   Fri Apr  1 09:55:02 2016
15703        10000      DENY_WRITE 0x20089     RDONLY     EXCLUSIVE+BATCH  /backup   rsnapshot/hourly.0/filesrv/work/WINRIK/SM_A/Apx_H.MDX   Fri Apr  1 09:55:04 2016
15703        10000      DENY_WRITE 0x20089     RDONLY     EXCLUSIVE+BATCH  /backup   rsnapshot/hourly.0/filesrv/work/WINRIK/SM_A/Apx_0.dbf   Fri Apr  1 09:55:04 2016
15703        10000      DENY_NONE  0x20089     RDONLY     EXCLUSIVE+BATCH  /backup   rsnapshot/hourly.0/filesrv/work/Договоры (filesrv) (W) - Ярлык (2).lnk   Fri Apr  1 09:54:54 2016
15703        10000      DENY_NONE  0x81        RDONLY     NONE             /backup   rsnapshot/weekly.1/1c8server/1c8/Arbitrage/СТАРЫЕ/КОМИС/АРЕНДА/Договор субсубаренды Ай матик и Комис   Fri Apr  1 09:55:04 2016
В конце концов, через 7 минут проводник выдал, что сетевое имя недоступно. Копирование на другой сервер, либо к себе на диск сложностей не вызывает.
Что я делаю не так?

 , ,

mrPresedent
()

Нищий VPN

Синьоры и синьоры, не проходите мимо.

Нужен некий VPN-сервер, что бы цепляться к нему мог любой дешевый роутер, находящийся за границами воображения НАТом. Я не знаток современных г?внороутеров, поэтому не знаю какие протоколы vpn они поддерживают. Если сервер сможет авторизовывать через AD - отлично, смогу микротик с pptp-сервером отправить на покой объект. Достаточно выдать доступ к ресурсам доменной сети сервера, смотреть за роутер мне без надобности.
Микротики считать дешевыми уже не получается.
Про *WRT слышал, кажется, в наркотическом бреду.

 , ,

mrPresedent
()

frontend независимости

Господа, дамы, здравствуйте.
На днях я понял, что любимый интернет-провайдер слишком часто нарушает мой покой.
(Привет алчным стервятникам, кормящим Светлакова остатками моего эмоционального здоровья)

Имеется у меня группа сервисов, доступных клиентам по доменным именам (mail.domian.com, data.domain.com, jabber.domain.com, etc.domain.com), которые резолвят агенту основной IP. В судную среду половина провайдерских узлов в городе уходит в offline на полтора-два часа. Менять А-записи в днс-зоне domain.com на такой короткий срок - мера неадекватная и нерезультативная.

В стремлении к независимости, в голове возникли пара идей:
1. Поднять свой публичный bind, указать адреса обоих провайдеров как ns1 и ns2, а уж через его конфиг реализовать failover ip. Все это мне представляется довольно смутно.
2. Арендовать какой-нибудь vps в хорошем дата-центре, на хостинге прописать его адрес для резолва *.domain.com, и силами iptables отправлять запросы условно на 10.0.0.2 - клиента vpn, коим станет текущий шлюз моей шараги. При таких условиях, мне вообще не нужно иметь белого адреса в офисе, я независим от провайдера (при условии открытого прохождения gre-пакетов).

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

В один момент времени активен только один WAN-интерфейс: либо основной, либо резервный провайдер. Резерв по трафику, так что сами понимаете. Конечно, есть вариант «сменить провайдера» на ребят, у которых падает только ночью и только по плану, но мой начальник очень уж боится перемен.

 

mrPresedent
()

FS под тонны бекапов?

Здарова, парни. Че то задолбало меня с бекапами помойки ковыряться: создаются 2 дня, открываются поганой вендой по 6 часов, папочка вытаскивается еще 6 часов. Ни сна, ни покоя.

В общем, в задницу tar, rsync всем и каждому!
Конечно, надо купить диски и пересобрать текущий бекап-сервер с нуля, т.к. он тоже под ведром работает. Казалось бы, флаг в руки, иди и делай. Но сквозь лень пробивается временами дотошность. И это качество ухватилось за выбор ФС.

Вот чем меня наградили в качестве бекапника:
Intel G630, 2Gb DDR3 (так сказать «vkontakt edition»)
2Tb SATA3 sda, 3Tb SATA3 sdb ~ 7200rpm 64Mb
2.53Tb *.tar.gz архивов - одна полная копия всего файлового добра, следовательно без сжатия все это занимает в районе 3Тб 4Тб (это он на 15% сжимал самые жирные юзерские персональные папки) с учетом небольшого запаса.

Smb-шары размером 600-900Гб + более мелкие размером до 90Гб.<br> Смотрим свойства некоторых из них:

680 559 файлов в 65336 папках занимают 910Гб. Средний размер файла: 1,37Мб
651 836 файлов в 109328 папках занимают 695Гб. Средний размер файла: 1,09Мб 
41 616 файлов в 6381 папках занимают 58,5Гб. Средний размер: 1,43Мб
7 901 файлов в 836 папках занимают 16,6Гб. Средний размер: 2,15Мб
Глаза же говорят, что больше всего там файлов из категорий 200Кб и 4Мб
Если я хранить хочу 4 недельных копии, то надо минимум 12Тб. Ок, беру еще 3 диска по 3Тб и делаю LVM.
Выполнять процесс бекапа будет rsnapshot.

Собрав все в кучу, получаю следующие требования к фс:

  • Приличная производительность при работе с небольшими файлами
  • Возможность расширения/сжатия под lvm
  • Поддержка acl и возможность лазить по фс через smb.
  • Поддержка длиннющих путей
  • Мало-мальская надежность при сбоях питания
  • Настроить и забыть (о фрагментации, fsck, etc)
    Казалось бы, проще поставить ext3, но он съест под себя дохренища места, ext4 туда же, xfs и btrfs довольно посредственны при множественной записи. Я в смятении.

 , ,

mrPresedent
()

amavisd (zimbra): накинуть очков для моего условия.

Всем доброй рабочей недели. Вопрос простой, но что-то 5 минут гугла мне не помогли: Какую строку надо скормить amavis, что б он накидывал очки спама для всех писем, в которых в качестве получателя стоит не мой домен? Кидать очки на домены-то мы все умеем, а тут надо немного творчества.

 ,

mrPresedent
()

Сделать бы кошерную проксю

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

Я хочу переделать текущую структуру раздачи энторнэтов, т.к. меня она в корне перестала устраивать.

Вводные данные:

CentOS 6.6 (wtf? Помнится он был 6.3 и я его точно не обновлял.. ну да ладно)
eth0 - 192.168.0.х/23
eth1 - 20Mb/s inet
ppp0 - linkdown-based резервный канал
tun1 - аэропорт для филиалов 
ZCS, squid на котором никто уже не сидит, iptables с кучей нужных правил и НАТом.
iptables пускает в энторнеты всю подсеть 192.168.1.0, для подсети 192.168.0.0 разрешен доступ выборочным пользователям (которых больше 100, что ставит под сомнение целесообразность использования текущего сквида).

DC Win 2008R2
DHCP, DNS
Все юзеры дружно болтаются в Users без всяких разделений на OU

Users:
компы в домене (редко у кого прописан прокси в свойствах браузера)
залетные компы не в домене
айфончики/андройдики из под дешевых и доживающих свой век аццеспойнтов.

Что хочу получить:

* Автоматически завернуть весь трафик в squid.
* Настроить delay pools. Надоело искать через iftop и nethogs умников, решивших скачать половину вконтакта с телефона. Хочется нормально поделить канал на несколько пулов, отрезав десяточку основным компам и серверам, оставив остальные 10 для большинства, которому и инет то с натягом нужен. 
* Получать статистику использования канала пользователями (в реальном времени и за определенное время дня или ночи). Хочется знать кто сколько кб\с жрет в данный момент. Сегодня збх показал мне очень интересную картину с 20Мб\с входящего в период с 23:00 по 07:00, нужно иметь возможность спустя несколько часов найти и покарать виновника (даже если это половина китая развлекается с моего ip).
* Получать статистику по Интернет-запросам пользователей.

Сразу же встал вопрос с авторизацией, т.к. слишком много проблем с этими залетными ноутами, директорским iМусором. Я думаю вообще отказаться от ntlm и какой-либо авторизации, лишь оперируя адресами, которые раздаются dhcp на год и резервируются за ключевыми станциями и узлами. Но тут вопрос не пострадает ли информативность статистики и разделение канала.

В общем, жду советов, может кто-то что-то дельное настраивал в подобном духе.

Сразу скажу, что порты 80 и 443 на сервере заняты, и наворачивать дополнительный веб-сервер помимо поставляемого с зимброй мне не хотелось бы. Нагружать локальный mysql дополнительной базой тоже нет возможности. Статистика сгодится и в текстовой форме через консоль

 , ,

mrPresedent
()

my zimbra in botnet!

Здравствуйте, господа и дамы.

Вот четвертый день я каждое утро вытаскиваю корпоративный адрес из черных списков. Теперь и гугл забанил, просит картинку продиктовать.

Собственно исправить эту неприятность легко: найти уязвимость, устранить уязвимость. Вопрос только в том, как ее обнаружить. Полгода назад я уже ликвидировал скомпрометированную почтовую учетку, через которую транзитом шел спам с рамблерских ботов, но уже забыл в каком логе я тогда обнаружил ценную запись.

Дневной отчет не показывает каких-либо значительных изменений в количестве отправленных сообщений.

Собственно первый мой вопрос относится к администраторам Зимбры: у вас в логе аудита встречаются такие записи?

/opt/zimbra/log/audit.log
2015-03-03 00:45:10,608 INFO  [qtp1937601231-273571:https://127.0.0.1:7071/service/admin/soap/AuthRequest] [name=zimbra;ip=127.0.0.1;ua=ZCS;] security - cmd=AdminAuth; account=zimbra;

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

Сервер крутится на CentOS 6.3 x86_x64, ZCS 8.0.9, fail2ban, iptables, squid3

Буду признателен, если ткнете носом в полезные логи (/var/log/secure само собой посмотрел).

 ,

mrPresedent
()

как бы мне составить правило IPTABLES -A OUTPUT * -j LOG?

Добрый день, коллеги. Сижу вот в праздники на работе и вдруг мне в голову пришла идея чем бы себя занять на следующие несколько недель до отпуска. Хочу логировать исходящие (на 80 и 443 порты) пакеты из локалки в эти наши энторнэты.

Настроил rsyslog с logrotate на запись логов в отдельный файл, теперь вопрос в том, как бы получать только то, что нужно. Прописав в iptables правило -A OUTPUT -o iflocal -j LOG у меня вылезает слишком много разной грязи.

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

Вообще имеются интерфейсы em1(local) и em2(inet), а таблица представляет из себя следующее:

*filter
:INPUT DROP [184:18545]
:FORWARD DROP [0:0]
:OUTPUT ACCEPT [4151:1853799]
Правила INPUT по интерфейсам
Правила OUTPUT по интерфейсам
ниже засунул свое
-A OUTPUT -o em2 -p tcp --dport 80 -j LOG --log-level info --log-prefix «iptables: »
Правила INPUT -j ACCEPT
Правила FORWARD -j ACCEPT
*nat
:PREROUTING ACCEPT [378:102197]
:POSTROUTING ACCEPT [72:7116]
:OUTPUT ACCEPT [62:6600]
Куча PREROUTING правил
Еще больше POSTROUTING
-A POSTROUTING -s 192.168.0.0/24 -o em2 -j SNAT --to myextip
-A POSTROUTING -s 192.168.1.0/24 -o em2 -j SNAT --to myextip
добавил ниже
-A POSTROUTING -s 192.168.0.0/24 -o em2 -p tcp --dport 80 -j LOG --log-level info --log-prefix «iptables: »
-A POSTROUTING -s 192.168.1.0/24 -o em2 -p tcp --dport 80 -j LOG --log-level info --log-prefix «iptables: »

COMMIT
*mangle
:FORWARD ACCEPT [0:0]
:INPUT ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:PREROUTING ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]
COMMIT

На серваке так же лежит почтовик с веб-мордой, так что из локалки к нему через em1 цепляются.

Собственно, как лучше составить правило и в какую цепочку его засунуть, что б в лог попадали сообщения о соединении рабочих станций с веб-серверами через 80 и 443 порты?

 

mrPresedent
()

RHEL Missing ISO 9660

Всем привет.

Дело такое: помогаю коллегам поставить Avaya Aura Platform, представляющую из себя RHEL + все необходимое из Avaya.

Текстовый инсталлятор после этапов установки местоположения и паролей автоматом разбивает диск на разделы и выдает ошибку:

      Missing ISO 9660 Image
The installer has tried to mount image #1, but cannot 
find it on the hard drive.
Please copy this image to the drive and click Retry
   [Reboot]                           [Retry]
Ставлю все это добро с флешки в FAT32, записанной с помощью фирменного iso2usb для RH,CentOS. Закинул сам исошник в корень флешки, на всякий случай еще и распаковал его в подпапку.

При нажатии на Retry выдает:

      Exception occurred
Traceback (most recent call first)
File '/usr/lib/anaconda/image.py', line <num> 
in FindIsoImages
File '/usr/lib/anaconda/harddrive.py', line <num> 
in mountMedia ......
File '/usr/lib/anaconda/harddrive.py', line <num> 
in switchMedia ......
... etc ...
Я могу войти в debug консоль, но меньше всего хочу отлаживать анаконду (а еще я этого делать не умею).

Вычитал на багтрекере rhel о том, что надо перед retry войти в консольку и размонтировать флешку, после чего смонтировать второй раздел с нее.
Окэ, размонтировал флешку, посмотрел устройства и партиции:
sda1 - HP-шный диск с дровами SmartArray P420i для RHEL, полученный ковырянием в iLO
sdb1 - флешечка
sdb10 11 12 13 - черт знает что, этого не было, не монтируется.
cciss/s0d0p1 2 3 4 - разбитый логический диск HP-шного RAID1
Инсталлятор монтировал флешку в /tmp/isodir, как и положено. Пробовал монтировать в /mnt/isodir/, но что то результатов не получилось (да и с чего бы).

Что ему не нравится и как это победить? С CentOS при установке никаких бед не было.

 ,

mrPresedent
()

Как настроить Зимбру на фильтрацию вложений?

Всем привет!

Что-то часто я стал сюда писать

Итак, мне надоела паталогическая невнимательность пользователей. На почту частенько приходят вредные архивы с джаваскриптами и прочим стимулирующим депрессии добром. Массовые разъяснения не помогают, юзер не может открыть вообще не нужное ему «постановление суда», пересылает письмо коллеге, пытается открыть у него, а полчаса спустя вся цепочка распространения рыдает в телефонную трубку.

Я решил для себя: «хватит это терпеть». Превентивные меры автоматизированного мониторинга на файловом хранилище недостаточны, надо рубить это на уровень выше.

Хотелось бы отбрасывать все опасные вложения (com,cmd,js,sh,exe,spf), включая содержимое архивов силами postfix или amavis. Что то о фильтрации заголовков и тела я нашел в opennet'у, но вся мерзость хранится обычно именно в архивах и этот вопрос остался не освещен.

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

mrPresedent
()

Восстановление почтового сервера после fsck.ext4 на монтированном разделе

Вот уже утро, голова снова начинает варить..

Господа и дамы, прошу немного внимания и сочувствия) Суть истории в кратком пересказе:

Из-за паталогии некачественного энергоснабжения, Debian Wheezy ушел в отказ с просьбой run fsck manualy. Силы и знание инглиша офисных сотрудников были направлены на удовлетворение воли машины. В результате когда меня попросили приехать/посмотреть я наблюдал картину, как секретарь сидит у монитора и давит пальцем на «y». Тем временем на экран сыпались сообщения Buffer I/O error on /dev/sda1 и информация о закате суперблоков.

Коротко о системе:

Debian 7, iRedMail (dovecot, postfix, roundcube, mysql, fail2ban, spamassassin, amavisd, clamav), все на 1 разделе ext4. Быстренько поставив другой винт и накатив Debian, смонтировал изнасилованную систему и слил что мог. При копировании /usr пошли ошибки в консоль, значит накрыло эту часть файлов. Могло быть и хуже, но директории с БД живы. Отмонтировав и проверив нормально fs система загрузилась.

Некоторые демоны подниматься отказывались. smartctl выдал passed, badblocks застрял на одном блоке.

MySQL

Err
[ERROR] Can't find messagefile '/usr/share/mysql/errmsg.sys'
Solve
cp /usr/share/mysql/russian/errmsg.sys /usr/share/mysql/errmsg.sys
Dovecot
Err
 /usr/lib/dovecot/pop3 {pop3-login} {imap} - no such file or directory
Solve (?)
touch /usr/lib/dovecot/pop3 {pop3-login} {imap}
chmod 777 /usr/lib/dovecot/pop3 {pop3-login} {imap}

Сейчас такое положение:

root@mail:~# service --status-all
 [ + ]  acpid
 [ - ]  amavis
 [ - ]  apache2
 [ + ]  atd
 [ - ]  bootlogs
 [ ? ]  bootmisc.sh
 [ ? ]  checkfs.sh
 [ ? ]  checkroot-bootclean.sh
 [ - ]  checkroot.sh
 [ + ]  clamav-daemon
 [ + ]  clamav-freshclam
 [ - ]  console-setup
 [ + ]  cron
 [ + ]  dbus
 [ - ]  dovecot
 [ - ]  exim4
 [ + ]  fail2ban
 [ - ]  firebird2.5-super
 [ - ]  hostname.sh
 [ ? ]  hwclock.sh
 [ + ]  iptables
 [ + ]  iredapd
 [ - ]  kbd
 [ - ]  keyboard-setup
 [ ? ]  killprocs
 [ ? ]  kmod
 [ - ]  motd
 [ ? ]  mountall-bootclean.sh
 [ ? ]  mountall.sh
 [ ? ]  mountdevsubfs.sh
 [ ? ]  mountkernfs.sh
 [ ? ]  mountnfs-bootclean.sh
 [ ? ]  mountnfs.sh
 [ ? ]  mtab.sh
 [ ? ]  mysql
 [ ? ]  networking
 [ + ]  nfs-common
 [ - ]  ntp
 [ + ]  postfix
 [ - ]  postfix-cluebringer
 [ - ]  procps
 [ ? ]  rc.local
 [ - ]  rmnologin
 [ + ]  rpcbind
 [ + ]  rsyslog
 [ + ]  samba
 [ ? ]  sendsigs
 [ - ]  spamassassin
 [ + ]  ssh
 [ + ]  udev
 [ ? ]  udev-mtab
 [ ? ]  umountfs
 [ ? ]  umountnfs.sh
 [ ? ]  umountroot
 [ - ]  urandom
 [ - ]  x11-common

Пытаюсь запустить службы:
root@mail:~# service apache2 restart
apache2: Syntax error on line 244 of /etc/apache2/apache2.conf: Syntax error on line 1 of /etc/apache2/mods-enabled/auth_mysql.load: Cannot load /usr/lib/apache2/modules/mod_auth_mysql.so into server: /usr/lib/apache2/modules/mod_auth_mysql.so: cannot open shared object file: No such file or directory
Action 'configtest' failed.
The Apache error log may have more information.
 failed!

root@mail:~# service spamassassin restart
Restarting SpamAssassin Mail Filter Daemon: No /usr/bin/perl found running; none killed.
start-stop-daemon: unable to start /usr/sbin/spamd (Input/output error)

root@mail:~# service amavis restart
Stopping amavisd: (not running).
Starting amavisd: Can't locate auto/NetAddr/IP/Util/autosplit.ix in @INC (@INC contains: /etc/perl /usr/local/lib/perl/5.14.2 /usr/local/share/perl/5.14.2 /usr/lib/perl5 /usr/share/perl5 /usr/lib/perl/5.14 /usr/share/perl/5.14 /usr/local/lib/site_perl) at /usr/share/perl/5.14/AutoLoader.pm line 173.
 at /usr/lib/perl5/NetAddr/IP/Util.pm line 9
Can't locate auto/NetAddr/IP/UtilPP/autosplit.ix in @INC (@INC contains: /etc/perl /usr/local/lib/perl/5.14.2 /usr/local/share/perl/5.14.2 /usr/lib/perl5 /usr/share/perl5 /usr/lib/perl/5.14 /usr/share/perl/5.14 /usr/local/lib/site_perl) at /usr/share/perl/5.14/AutoLoader.pm line 173.
 at /usr/lib/perl5/NetAddr/IP/UtilPP.pm line 8
Problem in antispam SA code: Can't locate auto/NetAddr/IP/InetBase/inet_any2n.al in @INC (@INC contains: /etc/perl /usr/local/lib/perl/5.14.2 /usr/local/share/perl/5.14.2 /usr/lib/perl5 /usr/share/perl5 /usr/lib/perl/5.14 /usr/share/perl/5.14 /usr/local/lib/site_perl) at /usr/lib/perl5/NetAddr/IP/Lite.pm line 622
Compilation failed in require at /usr/lib/perl5/NetAddr/IP.pm line 7.
BEGIN failed--compilation aborted at /usr/lib/perl5/NetAddr/IP.pm line 7.
Compilation failed in require at /usr/share/perl5/Mail/SpamAssassin/NetSet.pm line 25.
BEGIN failed--compilation aborted at /usr/share/perl5/Mail/SpamAssassin/NetSet.pm line 25.
Compilation failed in require at /usr/share/perl5/Mail/SpamAssassin/Conf.pm line 86.
BEGIN failed--compilation aborted at /usr/share/perl5/Mail/SpamAssassin/Conf.pm line 86.
Compilation failed in require at /usr/share/perl5/Mail/SpamAssassin.pm line 71.
BEGIN failed--compilation aborted at /usr/share/perl5/Mail/SpamAssassin.pm line 71.
Compilation failed in require at (eval 115) line 66.
BEGIN failed--compilation aborted at (eval 115) line 66.
(failed).

root@mail:~# service postfix-cluebringer restart
[....] Restarting postfix policy daemon cluebringer...Stopping...Starting...Couldn't open log file «/var/log/cbpolicyd.log» [Файловая система доступна только для чтения]. at /usr/share/perl5/Net/Server.pm line 217.
[FAIL] Failed ... failed!
failed.

Последнее показало, что за ночь файловая система опять задумалась о вечном и ушла в readonly. Я не могу из-за этого установить права на /var/log/*, отпускать в ребут тоже побаиваюсь.

Что же делать? На данный момент почтовик раздает интернет и принимает почту, отказывая в соединении при отправке (что не критично). Все письма надежно лежат в почтовых клиентах. Я сижу на основной работе и чешу репу, есть ли смысл его реанимировать, или нужно воспользоваться тем диском, на который я слил инфу и заново все развернуть.

mrPresedent
()

mysql не стартует

Добрый вечер, коллеги.

У меня он уже не добрый, т.к. на одном из моих бывших почтовых серверов произошла неприятная вещь - fsck.ext4 корня при монтированной системе. Страшное позади, систему возродил, только вот dovecot с mysql не запускаются.

Debian Wheezy + iRedMail 0.8.5

Что получаю:

root@mail:~# service dovecot restart
doveconf: error while loading shared libraries: libdovecot.so.0: cannot open shared object file: No such file or directory
[....] Restarting IMAP/POP3 mail server: dovecot/usr/sbin/dovecot: error while loading shared libraries: libdovecot.so.0: cannot open shared object file: No such file or directory
 failed!

root@mail:~# service mysql restart
[ ok ] Stopping MySQL database server: mysqld.
[FAIL] Starting MySQL database server: mysqld . . . . . . . . . . . . . . failed!

root@mail:~# cat /var/log/mysql-error.log
141027 22:59:40 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql
141027 22:59:40 [ERROR] Can't find messagefile '/usr/share/mysql/errmsg.sys'
141027 22:59:40 [Note] Plugin 'FEDERATED' is disabled.
141027 22:59:40 InnoDB: The InnoDB memory heap is disabled
141027 22:59:40 InnoDB: Mutexes and rw_locks use GCC atomic builtins
141027 22:59:40 InnoDB: Compressed tables use zlib 1.2.7
141027 22:59:40 InnoDB: Using Linux native AIO
141027 22:59:40 InnoDB: Initializing buffer pool, size = 128.0M
141027 22:59:40 InnoDB: Completed initialization of buffer pool
141027 22:59:40 InnoDB: highest supported file format is Barracuda.
141027 22:59:40  InnoDB: Waiting for the background threads to start
141027 22:59:41 InnoDB: 5.5.31 started; log sequence number 200725974
141027 22:59:41 [ERROR] Aborting

141027 22:59:41  InnoDB: Starting shutdown...
141027 22:59:42  InnoDB: Shutdown completed; log sequence number 200725974
141027 22:59:42 [Note]
141027 22:59:42 mysqld_safe mysqld from pid file /var/run/mysqld/mysqld.pid ended

root@mail:~# cat /etc/mysql/my.cnf | grep -v '^#'

[client]
port            = 3306
socket          = /var/run/mysqld/mysqld.sock

[mysqld_safe]
socket          = /var/run/mysqld/mysqld.sock
nice            = 0

[mysqld]
user            = mysql
pid-file        = /var/run/mysqld/mysqld.pid
socket          = /var/run/mysqld/mysqld.sock
port            = 3306
basedir         = /usr
datadir         = /var/lib/mysql
tmpdir          = /tmp
lc-messages-dir = /usr/share/mysql
skip-external-locking
log-error=/var/log/mysql-error.log
bind-address            = 127.0.0.1
key_buffer              = 16M
max_allowed_packet      = 16M
thread_stack            = 192K
thread_cache_size       = 8
myisam-recover         = BACKUP
query_cache_limit       = 1M
query_cache_size        = 16M
expire_logs_days        = 10
max_binlog_size         = 100M

[mysqldump]
quick
quote-names
max_allowed_packet      = 16M

[mysql]

[isamchk]
key_buffer              = 16M
!includedir /etc/mysql/conf.d/

mysqld.sock отсутствует, права на /var/lib/mysql у mysql есть. Поднять бы в первую очередь mysql.

mrPresedent
()

В сотый раз про кодировку

Добрый вечер, коллеги.

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

Сейчас активиризировались шифровальщики, и я пару раз по удачным стечениям обстоятельств обнаруживал их первые следы раньше, чем они успевали наносить какой-либо вред. Для пущей бдительности написал простенький скрипт по поиску всякого подозрительного бобра:

#!/bin/bash
my_admin=admin@jabber.domain.com
#Создаем временный файл, в котором будут результаты поиска:
rm -rf /tmp/tmp2.xmpp
echo "Strange activity on fileserver:" >> /tmp/tmp2.xmpp

find $1 ! \( -name *.txt \
-o -name *.doc \
-o -name *.swf \
-o -name *.docx \
-o -name *.xlsx \
-o -name *.xls \
-o -name *.pdf \
-o -name *.zip \
-o -name *.rtf -o -name *.RTF \
-o -name *.rar -o -name *.RAR \
-o -name *.txt -o -name *.TXT \
-o -name *.jpg -o -name *.jpeg -o -name *.JPG -o -name *.JPEG \
-o -name *.bmp -o -name *.BMP \
-o -name *.partial -o -name *.PARTIAL \
-o -name *.sig \
-o -name *.mno \
-o -name *.eml \
-o -name *.__deleted__ \
-o -name *.crdownload \
-o -name *.dat \
-o -name *.png \
-o -name *.shs \
-o -name *.lnk \
-o -name *.pgp \
-o -name *.htm \
-o -name *.URL \
-o -name *.tif \
-o -name *.enc \
-o -name *.xml \)`
` \( -name *.xlsx.* \
-o -name *.xls.* \
-o -name *.doc.* \
-o -name *.docx.* \
-o -name *.pdf.* \
-o -name *.jpg.* \
-o -name *.rar.* \
-o -name *.txt.* \
-o -name *.zip.* \) -exec ls -l {} \; >> /tmp/tmp2.xmpp

#И если найдено:
if grep -q -e docx -e xls -e xlsx -e doc -e rar -e zip -e txt -e pdf -e jpg /tmp/tmp2.xmpp
then
/home/scripts/send_jabber_notification.sh $my_admin "$( cat /tmp/tmp2.xmpp | iconv -c -f cp1251 )"

#А если нет, то завершаем скрипт
else
exit 0
fi
Собственно в чем вопрос? Он в том, что когда скрипт идет из крона, я не вижу кириллицу, а при ручном запуске из консоли iconv отрабатывает. В чем тут дело? Попробовал указать полный путь до iconv, жду результата.

И второй вопрос на внимательность. Что в скрипте не так, если find не игнорирует zip файлы в одной из директорий, как должен бы?

Strange activity on fileserver:
-rwxrwxrwx+ 1 root 10090 297576 May 20  2010 /share/dogovor/2254__/. .xls.
-rwxrwxrw-+ 1 root 513 450328 Nov 15  2012 /share/dogovor/2435 / /  / 12.11.12    6/6. . .  . 6 rev5.xls.zip
-rwxrwxrw-+ 1 root 513 290896 Nov 15  2012 /share/dogovor/2435 / /  / 12.11.12    6/6.  - 4.xls.zip
-rwxrwxrwx+ 1 root 10090 19421 Sep  3  2009 /share/dogovor/2015 -//  / .xlsx.zip

mrPresedent
()

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