Здравейте и добре дошли в #root.bg!
Тук може да намерите статии и уроци за linux, мрежи и тяхната защита, игри и забавление, както и хобита – ролери, дронове и много други.
Тук може да намерите статии и уроци за linux, мрежи и тяхната защита, игри и забавление, както и хобита – ролери, дронове и много други.
Николай Николов Howto ispconfig, lsyncd, mysql, replication, rsync 0
Идеята е следната:
Имам 2 сървъра на които върви ISPConfig и искам единия да е огледален на другия. За целта ISPConfig ми позволява да включа като опция единия да е „mirror“ на другия, но това не ми помага като цяло.
За целта направих следната комбинация:
1. Направих MySQL master-master репликация за да мога да имам базите от единия на другия през цялото време.
2. Инсталирах lsyncd – супер лек демон който ми синхронизира /var/www и /var/vmail от главния на втория сървър.
За целта използвах и следния конфиг за lsyncd:
settings { logfile = "/var/log/lsyncd/lsyncd.log", statusFile = "/var/log/lsyncd/lsyncd-status.log", statusInterval = 20 } sync { default.rsync, source="/var/www/", target="192.168.1.2:/var/www/", rsync = { compress = true, acls = true, verbose = true, owner = true, group = true, perms = true, rsh = "/usr/bin/ssh -p 22 -o StrictHostKeyChecking=no" } } sync { default.rsync, source="/var/vmail/", target="192.168.1.2:/var/vmail/", rsync = { compress = true, acls = true, verbose = true, owner = true, group = true, perms = true, rsh = "/usr/bin/ssh -p 22 -o StrictHostKeyChecking=no" } }
Като предварително бях направил SSH ключове към 192.168.1.2.
Идеята на lsyncd като цяло е копирането само на нови фаилове от мастър-а към слейва, като прави постоянни проверки за обновления през няколко секунди, и като открие такива фаилове ги прехвърля чрез rsync.
Така реално имам огледално копие на главния ISPConfig сървър + базите му и датата. Нещото което трябва ръчно да се прехвърля обаче са nginx/apache конфигурационните фаилове + php*-тата.
Надявам се пичовете от ISPConfig да измислят нещо автоматизирано за тази цел, но до тогава ще използвам тази схема 🙂
Това е..
Николай Николов Работа, Блог linux mint, notifications, skype, ubuntu 0
Хелоу,
Мога да се похваля, че от вчера използвам ubuntu 14.04 вместо linux mint на служебния лаптоп. Реших да дам още един шанс на unity и за сега съм доволен. Обаче се сблъсках с неприятния факт че skype инсталиран от skype.com няма по подразбиране нотификации когато някой ти пише – тъпо..
Проблема го реших като изтрих skype и го инсталирах от репото на Ubuntu. Ето и как:
sudo add-apt-repository "deb http://archive.canonical.com/ $(lsb_release -sc) partner" sudo apt-get update sudo apt-get install skype sudo apt-get -f install
Сега вече имам работещ skype и виждам иконата му горе до часовника 🙂
Николай Николов Работа php, problem, update 1
Днес ъпгрейднах няколко сървъра с последната версия на PHP 5.5.12 (нали съм фен на ъпдейтването) .. Тоя път стана проблеммм 🙂 След ъпдейта започна да ми дава 502 – bad gateway , а в лога излизаше permission denied. Излезе че в новата версия на PHP-fpm е задължително да се използват listen.owner и съответно за owner да се сложи същият потребител през който работи и уеб сървъра – в моя случай nginx.
След като го оправих, видях нова грешка.. още по-смотана и нахална :
2014/05/07 14:10:58 [error] 1951#0: *5 inflate() failed: 4, -3, client: *.*.*.*, server: friendbg.net, request: "GET / HTTP/1.1", host: "friendbg.net" 2014/05/07 14:11:58 [error] 1951#0: *44 inflate() failed: 4, -3, client: *.*.*.*, server: friendbg.net, request: "GET / HTTP/1.1", host: "friendbg.net"
Тук якото беше следното – през уеб браузър сайта се отваря , през lynx или curl дава : unexpected error и съответно pingdom.com ми съобщи че сайта ми е DOWN 🙂
След няколко часово тестване, ровене и мъчение реших кардинално да оправя проблема, като сваля версията на PHP* до 5.5.11 която си работеше без проблеми.
Сторих го по следния начин :
dpkg -i /var/cache/apt/archives/php5*5.5.11*
тъй като в хранилището на dotdeb вече всичко беше с новата версия.
Извод 1 – за сега ще изчакам с ъпдейтване на нови версии на PHP по сървърите ми, че явно промените не са никак малки и могат да ми причинят доста главоболия.
Извод 2 – трябва да спра с тея ъпдейти веднъж завинаги..!!
Николай Николов Работа, Howto fail2ban, firewall, haproxy, iptables 0
Идеята е fail2ban да се грижи за сигурността на нашият load balancer сървър – в случая – haproxy. 1. HAProxy трябва да може да логва всички конекции като опишем следните опции в /etc/haproxy/haproxy.cfg :
option httplog clf option tcplog clf # option dontlognull log 127.0.0.1 local5 info
2. Да имаме работещ rsyslog и да добавим следното в конфигуранционният му файл:
$ModLoad imudp $UDPServerRun 514 local5.* /var/log/haproxy.log
3. Logrotate – това не е задължително но е хубаво да го имаме. Добавяме в /etc/logrotate.d/haproxy.cfg :
/var/log/haproxy*.log { rotate 4 weekly missingok notifempty compress delaycompress sharedscripts postrotate reload rsyslog >/dev/null 2>&1 || true endscript }
4. Следва и самият код за fail2ban в /etc/fail2ban/filter.d/haproxy-get-dos.conf
# Haproxy Fail2Ban Regex using CLF format # [Definition] failregex = haproxy\[\d+\]: .* "(GET|POST) .*https?:// ignoreregex =
5. След това в /etc/fail2ban/jail.conf:
[haproxy-get-dos] enabled = true port = http,https filter = haproxy-get-dos logpath = /var/log/haproxy* maxretry = 500 findtime = 120 bantime = 3600 action = tarpit[name=HTTP, port=http, protocol=tcp] sendmail-whois[name=haproxy-get-dos, dest=alerts@root.bg, sender=fail2ban@root.bg]
6. Следва инсталирането на пакета xtables който е необходим да работи TARPIT 7. Добавяме следното в /etc/fail2ban/action.d/tarpit.conf :
# Tarpit trap [Definition] actionstart = iptables -N fail2ban-TARPIT- iptables -A fail2ban-TARPIT- -j RETURN iptables -I INPUT -p -j fail2ban-TARPIT- actionstop = iptables -D INPUT -p -j fail2ban-TARPIT- iptables -F fail2ban-TARPIT- iptables -X fail2ban-TARPIT- actioncheck = iptables -n -L INPUT | grep -q fail2ban-TARPIT- actionban = iptables -I fail2ban-TARPIT- 1 -s -j TARPIT actionunban = iptables -D fail2ban-TARPIT- -s -j TARPIT[Init] name = default port = http protocol = tcp
8. Рестартираме haproxy и fail2ban и готово 🙂