БОЛЬШАЯ ПРОБЛЕМА с фаерволом в панели и iptables
Posted: Thu Nov 10, 2016 5:02 am
Здравствуйте. Веста установлена на ubuntu 14.04, версия 0.9.8.16 (amd64).
Обнаружился очень неприятный и опасный баг: при настройке фаервола в панели, в частности - прописывании к порту ip-адреса, обнаружилось следующее - при вводе ip в формате CIDR - X.X.X.X/24 (/16, /32 и т.д.) панель выдаёт ошибку - Error: invalid ip format :: X.X.X.X/24, принимается только запись вида X.X.X.X/0.
В результате: приходится прописывать вручную правила iptables непосредственно в консоли. Ну это ничего, полбеды, вполне справляюсь и ручками. НО!!!
Обнаружилось, что VestaCP создаёт дополнительную таблицу vesta, видимо для записи собственных цепочек правил фильтрации, ОДНАКО - пишет В ГЛАВНУЮ ТАБЛИЦУ INPUT, а собственная таблица пуста.
Вопрос: это реальный баг, или так специально сделано? Тогда какой смысл создавать дополнительную пустую таблицу, в которой потом ничего не пишется? Зачем изменять ГЛАВНУЮ ТАБЛИЦУ INPUT, вместо того, что бы сделать из неё переход в собственную, и туда уже записывать правила фаервола из хостинг-панели?
Ну и третье, самое неприятное: обнаружилось, что Vesta самостоятельно переписывает правила в iptables, без участия администратора, согласно правилам в хостинг-панели.
А именно: при невозможности указать в панели в правиле ip-адрес формата CIDR, приходится это делать вручную в консоли, непосредственно в iptables. При прописывании правил iptables в консоли, и их последующем сохранении, изменения никак не отражаются в панели весты, т.е. правила фаервола в панели остаются прежними, хотя правила в iptables были изменены. И вот, обнаружилось, что через некоторое время, правила в iptables ИЗМЕНЯЮТСЯ НА ТАКИЕ ЖЕ, как и в фаерволе в панели, т.е. vesta спустя некоторое время переписывает таблицу INPUT в iptables, согласно своим правилам во-вкладке фаервола.
Результат: прописал для весты и SSH доступ только со-своего диапазона IP, что-бы другие не ломились, и через некоторое время с удивлением обнаруживаю в логах аутентификации, в что в эти порты (8083 и ssh) ломятся все, кому не лень! И брутофорсят, брутофорсят. Смотрю в таблицу INPUT в iptables и офигиваю - ip доступа к портам вновь переписаны в 0.0.0.0/0, как в фаерволе в панели. Сразу напрашивается вопрос: КАКОГО ХРЕНА???
Ну а теперь главный вопрос: это я дурак, и делаю что-то не правильно, либо в Весте реальный баг, с невозможностью прописывания нужного формата CIDR, и перезаписью правил в главной таблице iptables?
Прошу обратить особое внимание на эту проблему, ибо это офигенная дыра в безопасности.
ПыСы: Да, совсем забыл добавить - панель НЕ ТОЛЬКО переписывает свои правила в iptables, которые присутствуют в панели фаервола, НО ЕЩЁ И УДАЛЯЕТ ТЕ ПРАВИЛА, которые отсутствуют в панели но имеются в таблице INPUT, т.е. полностью переписывает главную таблицу на свой лад.
Обнаружился очень неприятный и опасный баг: при настройке фаервола в панели, в частности - прописывании к порту ip-адреса, обнаружилось следующее - при вводе ip в формате CIDR - X.X.X.X/24 (/16, /32 и т.д.) панель выдаёт ошибку - Error: invalid ip format :: X.X.X.X/24, принимается только запись вида X.X.X.X/0.
В результате: приходится прописывать вручную правила iptables непосредственно в консоли. Ну это ничего, полбеды, вполне справляюсь и ручками. НО!!!
Обнаружилось, что VestaCP создаёт дополнительную таблицу vesta, видимо для записи собственных цепочек правил фильтрации, ОДНАКО - пишет В ГЛАВНУЮ ТАБЛИЦУ INPUT, а собственная таблица пуста.
Вопрос: это реальный баг, или так специально сделано? Тогда какой смысл создавать дополнительную пустую таблицу, в которой потом ничего не пишется? Зачем изменять ГЛАВНУЮ ТАБЛИЦУ INPUT, вместо того, что бы сделать из неё переход в собственную, и туда уже записывать правила фаервола из хостинг-панели?
Ну и третье, самое неприятное: обнаружилось, что Vesta самостоятельно переписывает правила в iptables, без участия администратора, согласно правилам в хостинг-панели.
А именно: при невозможности указать в панели в правиле ip-адрес формата CIDR, приходится это делать вручную в консоли, непосредственно в iptables. При прописывании правил iptables в консоли, и их последующем сохранении, изменения никак не отражаются в панели весты, т.е. правила фаервола в панели остаются прежними, хотя правила в iptables были изменены. И вот, обнаружилось, что через некоторое время, правила в iptables ИЗМЕНЯЮТСЯ НА ТАКИЕ ЖЕ, как и в фаерволе в панели, т.е. vesta спустя некоторое время переписывает таблицу INPUT в iptables, согласно своим правилам во-вкладке фаервола.
Результат: прописал для весты и SSH доступ только со-своего диапазона IP, что-бы другие не ломились, и через некоторое время с удивлением обнаруживаю в логах аутентификации, в что в эти порты (8083 и ssh) ломятся все, кому не лень! И брутофорсят, брутофорсят. Смотрю в таблицу INPUT в iptables и офигиваю - ip доступа к портам вновь переписаны в 0.0.0.0/0, как в фаерволе в панели. Сразу напрашивается вопрос: КАКОГО ХРЕНА???
Ну а теперь главный вопрос: это я дурак, и делаю что-то не правильно, либо в Весте реальный баг, с невозможностью прописывания нужного формата CIDR, и перезаписью правил в главной таблице iptables?
Прошу обратить особое внимание на эту проблему, ибо это офигенная дыра в безопасности.
ПыСы: Да, совсем забыл добавить - панель НЕ ТОЛЬКО переписывает свои правила в iptables, которые присутствуют в панели фаервола, НО ЕЩЁ И УДАЛЯЕТ ТЕ ПРАВИЛА, которые отсутствуют в панели но имеются в таблице INPUT, т.е. полностью переписывает главную таблицу на свой лад.