Главная > Linux > ISP Manager 5: Не работает после обновления

ISP Manager 5: Не работает после обновления

15.07.2016 0 коммент. » Просмотры: 715
 

ISPManager 5

Сегодня, заметил что тормозят сайты на одном из серверов. Посмотрев в чем дело, обнаружил что идет проверка raid массива, что сказывается на производительности работы базы. Выполнено было уже около 90% проверки, поэтому решено было на 30 минут приостановить работу сайтов, чтобы проверка закончилась максимально быстро, а в это время обновить ПО...

Обновление было запущено через стандартный менеджер пакетов  CentOS:

yum update

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

reboot

Каково же было мой удивление, когда после перезагрузки, я обнаржил что при попытке попасть на сайты или в панель управления ISPManager, я получал ошибку подключения "Firefox can't establish a connection to the server"..

Зайдя по SSH на сервер, я сразу убедился, что веб-сервер запущен и работает:

ps -A | grep httpd

тут же проверил, что внутри сервера все ок, скачав страницу сайта wget-ом:

wget it-rem.ru

получается, что-то блокирует работу в промежутке между моим компом и веб-сервером.

Я открыл первый попавшийся анонимайзер и попробовал открыть сайт - убедился что проблема не только на моем компе, значит проблема на сервере.

На сервере, после веб-сервера может быть сетевая карта, однако раз я подключился по SSH значит проблема в чем-то другом. Между веб-сервером и сетевой остался только файрвол. До обновления стоял iptables, поэтому я сразу проверил, что моего ip нет в списке заблокированных:

iptables -L

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

#!/bin/bash
IPT=iptables

$IPT -P INPUT ACCEPT
$IPT -P FORWARD ACCEPT
$IPT -P OUTPUT ACCEPT
$IPT -t nat -P PREROUTING ACCEPT
$IPT -t nat -P POSTROUTING ACCEPT
$IPT -t nat -P OUTPUT ACCEPT
$IPT -t mangle -P PREROUTING ACCEPT
$IPT -t mangle -P OUTPUT ACCEPT

## Сбрасываем правила

$IPT -F
$IPT -t nat -F
$IPT -t mangle -F

## Сбрасываем не стандартные цепочки

$IPT -X
$IPT -t nat -X
$IPT -t mangle -X

и вуаля, сайты заработали..

Теперь стало понятно, что проблема именно в файрволе. Но какого хрена?

Я пошел в стандартное место хранения правил для iptables, которые должны применяться после автозагрузки:

/etc/sysconfig/iptables

и попробовал их загрузить вручную:

iptables-restore /etc/sysconfig/iptables

Тут я получил ошибку:

[root@server sysconfig]# iptables-restore iptables
iptables-restore v1.4.21: Set ispmgr_limit_req doesn't exist.

Error occurred at line: 25
Try `iptables-restore -h' or 'iptables-restore --help' for more information.

Возникла она потому что iptables не смог найти опцию ispmgr_limit_req. Объявление которой находится в файле

/etc/sysconfig/iptables

в 25 строке:

-A INPUT -m set --match-set ispmgr_limit_req src -j DROP

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

Однако, после перезагрузки, опять появились другие правила, которые отличались от установленных в файле /etc/sysconfig/iptables.

Выглядели они так:

Chain INPUT (policy ACCEPT)
target     prot opt source               destination         
ACCEPT     all  --  anywhere             anywhere             ctstate RELATED,ESTABLISHED
ACCEPT     tcp  --  anywhere             anywhere             ctstate NEW multiport dports heathview:35999
ACCEPT     all  --  anywhere             anywhere            
INPUT_direct  all  --  anywhere             anywhere            
INPUT_ZONES_SOURCE  all  --  anywhere             anywhere            
INPUT_ZONES  all  --  anywhere             anywhere            
ACCEPT     icmp --  anywhere             anywhere            
REJECT     all  --  anywhere             anywhere             reject-with icmp-host-prohibited

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         
ACCEPT     all  --  anywhere             anywhere             ctstate RELATED,ESTABLISHED
ACCEPT     all  --  anywhere             anywhere            
FORWARD_direct  all  --  anywhere             anywhere            
FORWARD_IN_ZONES_SOURCE  all  --  anywhere             anywhere            
FORWARD_IN_ZONES  all  --  anywhere             anywhere            
FORWARD_OUT_ZONES_SOURCE  all  --  anywhere             anywhere            
FORWARD_OUT_ZONES  all  --  anywhere             anywhere            
ACCEPT     icmp --  anywhere             anywhere            
REJECT     all  --  anywhere             anywhere             reject-with icmp-host-prohibited

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination         
OUTPUT_direct  all  --  anywhere             anywhere            

Chain FORWARD_IN_ZONES (1 references)
target     prot opt source               destination         
FWDI_public  all  --  anywhere             anywhere            [goto] 
FWDI_public  all  --  anywhere             anywhere            [goto] 

Chain FORWARD_IN_ZONES_SOURCE (1 references)
target     prot opt source               destination         

Chain FORWARD_OUT_ZONES (1 references)
target     prot opt source               destination         
FWDO_public  all  --  anywhere             anywhere            [goto] 
FWDO_public  all  --  anywhere             anywhere            [goto] 

Chain FORWARD_OUT_ZONES_SOURCE (1 references)
target     prot opt source               destination         

Chain FORWARD_direct (1 references)
target     prot opt source               destination         

Chain FWDI_public (2 references)
target     prot opt source               destination         
FWDI_public_log  all  --  anywhere             anywhere            
FWDI_public_deny  all  --  anywhere             anywhere            
FWDI_public_allow  all  --  anywhere             anywhere            

Chain FWDI_public_allow (1 references)
target     prot opt source               destination         

Chain FWDI_public_deny (1 references)
target     prot opt source               destination         

Chain FWDI_public_log (1 references)
target     prot opt source               destination         

Chain FWDO_public (2 references)
target     prot opt source               destination         
FWDO_public_log  all  --  anywhere             anywhere            
FWDO_public_deny  all  --  anywhere             anywhere            
FWDO_public_allow  all  --  anywhere             anywhere            

Chain FWDO_public_allow (1 references)
target     prot opt source               destination         

Chain FWDO_public_deny (1 references)
target     prot opt source               destination         

Chain FWDO_public_log (1 references)
target     prot opt source               destination         

Chain INPUT_ZONES (1 references)
target     prot opt source               destination         
IN_public  all  --  anywhere             anywhere            [goto] 
IN_public  all  --  anywhere             anywhere            [goto] 

Chain INPUT_ZONES_SOURCE (1 references)
target     prot opt source               destination         

Chain INPUT_direct (1 references)
target     prot opt source               destination         

Chain IN_public (2 references)
target     prot opt source               destination         
IN_public_log  all  --  anywhere             anywhere            
IN_public_deny  all  --  anywhere             anywhere            
IN_public_allow  all  --  anywhere             anywhere            

Chain IN_public_allow (1 references)
target     prot opt source               destination         
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:ssh ctstate NEW

Chain IN_public_deny (1 references)
target     prot opt source               destination         

Chain IN_public_log (1 references)
target     prot opt source               destination         

Chain OUTPUT_direct (1 references)
target     prot opt source               destination         

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

Этот сюрприз я исправил удалением firewalld и активацией iptables, для этого нужно выполнить следующие команды:

# systemctl disable firewalld
# yum remove firewalld
# systemctl enable iptables
# systemctl enable ip6tables

после этого, я перезагрузился. В этот раз все заработало, как и ожидалось.

Автор: | Теги: ,

Важно

У нас заработал ФОРУМ. Все вопросы, которые не касаются статьи, а так же вопросы по конкретно вашему случаю нужно задавать и обсуждать именно там, в разделе "Помощь пользователям".

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Разрешены HTML-теги: <a>, <code>, <i>, <em>, <strong>, <b>, <u>, <strike>