суббота, 30 апреля 2016 г.

cPanel: (XID kvww8n) You do not have an email account named "[email protected]"

При попытке удаления почтового ящика в cPanel может появляться такая ошибка:
cPanel: (XID kvww8n) You do not have an email account named "[email protected]"

Фиксится так, в файлах:
/var/www/myuser/etc/domain.com/passwd
/var/www/myuser/etc/domain.com/shadow
удаляем строки с юзером user111

После этого пробуем в панели создать ящик [email protected] и удалить его через панель, все должно пройти без проблем.

вторник, 19 апреля 2016 г.

Оптимизация почтового сервера и решение некоторых проблем

Есть хост-нода с KVM'ными виртуалками, в виртуалках развернуты окружения с почтовым сервером, которые занимаются массовой рассылкой почты.
Тут я буду описывать некоторые решенные проблемы в ходе работы с почтовиком.

1. В виртуалке с почтовиком подключено >1000 IP-адресов.
В нашем случае, после запуска виртуалки с >1000 адресов сеть поднималась очень долго (больше часа по времени).
В ходе расследования было выяснено, что это из-за проверки arping перед поднятием каждого алиаса для сетевого интерфейса.
Решение:
в виртуалке необходимо отключить проверку arping:
# vim /etc/sysconfig/network-scripts/ifcfg-eth0
ARPCHECK="no"
# service network restart

2. При большом количестве коннектов к почтовому серверу, сильно начинает лагать хост-нода.
Первым делом нужно пойти в лог (на хост-ноде и в виртуалке) и посмотреть, что там можно найти:
# tail -f /var/log/messages
localhost kernel: net_ratelimit: 4618 callbacks suppressed

В ядре Linux есть механизм предотвращения DDoS-атак под названием rate limit. (https://bani.com.br/2015/06/linux-getting-rid-of-net_ratelimit-n-callbacks-suppressed-messages/)
Лимиты можно посмотреть тут:
# cat /proc/sys/kernel/printk_ratelimit
5
# cat /proc/sys/kernel/printk_ratelimit_burst
10
Решение:
идея в том, чтобы снять эти лимиты, возможно это поможет снять нагрузку с хост-ноды:
# echo "net.core.message_cost=0" >> /etc/sysctl.conf
# sysctl -w net.core.message_cost=0

Команды следует выполнить как на хост-ноде, так и в виртуалке.
Также производительность сети может увеличиться путем эмуляции e1000 вместо дефолтного virtio.

3. Забивается arp таблица.
Решение:
# vim /etc/sysctl.conf
net.ipv4.neigh.default.gc_thresh1=2048
net.ipv4.neigh.default.gc_thresh2=4096
net.ipv4.neigh.default.gc_thresh3=8192

понедельник, 18 апреля 2016 г.

Пропали www-домены в ISPmanager 4

В ISPmanager 4 пропали www-домены для некоторых пользователей.

Попробуем разобраться, в чем проблема.
В первую очередь смотрим в лог:
# echo 9 > /usr/local/ispmgr/etc/ispmgr.debug
# killall ispmgr
# tail -f /usr/local/ispmgr/var/ispmgr.log
Apr 18 23:20:11 [ 1690:5] WARNING unable to determine the ownership of 'site.com www.site.com'
Apr 18 23:20:11 [ 1690:5] WARNING vhost 'site.com' not found in main config. Skip it

Проверям права пользователя на виртуальный хост:
# grep site.com /etc/httpd/conf/httpd.conf | grep DocumentRoot
DocumentRoot /var/www/user777/data/www/site.com
# ls -l /var/www/user777/data/www/
total 4096
drwxr-xr-x 26 root root      4096 Apr 18 21:47 site.com
# chown -R user777:user777 /var/www/user777/data/www/site.com/
# killall ispmgr

Снова заходим в панель и проверяем. Все должно быть ок.

понедельник, 11 апреля 2016 г.

Удаление избранной конференции в Skype

Такое бывает если уже вышел из конференции, но закладка висит в избранном.

Skype 4.3 for Linux

Отключаем на время Skype.
Затем:
$ sudo apt-get install sqlite3
$ sqlite3 /home/user/.Skype/username/main.db
SQLite version 3.8.2 2013-12-06 14:53:30
Enter ".help" for instructions
Enter SQL statements terminated with a ";"
sqlite> SELECT id, displayname FROM Conversations WHERE is_bookmarked=1 AND displayname LIKE '%SomeConference%';
339|SomeConference
sqlite> UPDATE Conversations SET is_bookmarked=0 WHERE id=339;

Включаем снова Skype.

пятница, 8 апреля 2016 г.

Nginx: open() "/var/lib/nginx/tmp/proxy/*" failed (13: Permission denied)

При загрузке страницы бывает ситуация, когда страница загружается не полностью, а только ее часть.
Если включен error.log nginx'а, то можно увидеть такие записи:
# tail -f /var/log/nginx/error.log
2016/04/08 15:20:26 [crit] 31014#0: *311 open() "/var/lib/nginx/tmp/proxy/7/07/0000000077" failed (13: Permission denied) while reading upstream, client: 1.1.1.1, server: site.ru, request: "GET /1.jpg HTTP/1.1", upstream: "http://2.2.2.2:81/1.jpg", host: "site.ru", referrer: "http://site.ru/"

Это проблема с правами на каталог /var/lib/nginx.
Проверяем под каким юзером запущен nginx:
# grep ^user /etc/nginx/nginx.conf
user apache;

Смотрим права на каталог:
# ls -l /var/lib/ | grep nginx
drwx------ 3 nginx   nginx   4096 Nov 11  2014 nginx

Исправляем:
# chown apache:apache -R /var/lib/nginx
# service nginx restart

После этого все должно быть ок.

пятница, 1 апреля 2016 г.

Установка SSL-сертификата на Apache Tomcat

Имеем:
# ls /root -1
intermidiate.ca  - промежуточный сертификат
root.ca  - корневой сертификат
domain.crt  - сертификат домена
domain.key - ключ

Нужно для сайта установить SSL-сертификат, на порт по умолчанию (443).