Тэгадминистрирование

Настройка базового файервола на сервере при помощи iptables

В статье рассмотрена настройка простого забора-файервола (firewall) вокруг сервера при помощи стандартной для ОС Linux утилиты (драйвера?) iptables. Этот файервол защитит сервер от базовых атак (вроде SYN-флуда и пакетов сканирования) и оставит открытыми только те порты, которые непосредственно используются. Так же эта статья — заметка из разряда «что бы не забыть», так как подобные операции приходится проводить заново время от времени.

Это, разумеется, далеко не исчерпывающее руководство по защите сервера. Оно покажет, как заблокировать разведывательные пакеты (так называемые recon packets) и оставить открытыми только нужные порты: для веб-сервера, SSH, FTP. При этом не блокируя весь исходящий трафик и соединения, инициированные со стороны сервера. Будут использованы лишь несколько самых общих правил, отрезающих сканирование системы на открытые порты, кулхацкеров и ботов, которые ищут уязвимые сервера. Однако, по крайней мере такая базовая защита должна в обязательном порядке присутствовать на любом открытом вовне сервере.

Читать далее

Правильная настройка серверной кодировки MySQL

Сегодня все разработчики в Интернете пытаются уйти от ASCII и прочих частичных кодировок к юникоду и, конкретно, к UTF-8. Корректная кодировка особенно важна для систем управления базами данных: неправильная установка кодировок «СУБД-хранение/СУБД-соединение/приложение» приводит не только к некорректному отображению символов, но может вызвать куда более серьёзные и глубокие проблемы в будущем. Полтора года назад я потратил полную рабочую неделю, с утра до ночи, для хотя бы частичного решения проблемы разбившихся за годы символов в огромной БД одного из наших старых проектов — GLADpwnz. Мне пришлось написать несколько утилит с практически эвристическим анализом, и даже после этого не всю информацию удалось восстановить из-за возникающей неоднозначности. Эта неоднозначность умножила некоторые символы на ноль навсегда, теперь их возможно восстановить разве что из контекста. Так что важность изначально правильной настройки всех кодировок сложно переоценить.

Большинство веб-приложений (и других типов серверного ПО) умеют самостоятельно автоматически настраивать кодировку и коллацию СУБД (вроде SET NAMES 'utf8' и т.п.), так что глобальные настройки СУБД просто не имеют никакого эффекта. Однако, некоторые CMS (особенно, как показала практика, MODX) не используют эту возможность или по какой-то непонятной причине не хотят этого делать. И здесь всплывают глобальные настройки системы управления базами данных.

Каждая версия MySQL (кроме форка MariaDB, конечно) поставляется с установленным глобальным чарсетом latin1 и коллацией latin1_swedish_ci, которые, как раз, напрочь убивают всё, что не является латиницей. Ситуация может быть разрешена либо хак-патчингом и отладкой ядра целевого приложения (что обычно очень быстро становится очень запутанным) или установкой корректных глобальных уставок СУБД. Для MySQL это делается добавлением в конфигурационный файл (обычно находящийся в /etc/mysql/my.cnf) следующих строк в любом месте под секцией [mysqld]:

character-set-server = utf8
collation-server = utf8_general_ci
skip-character-set-client-handshake

Последняя строка (skip-character-set-client-handshake) пропускает необходимость выполнения директив SET NAMES/SET CHARACTER SET при подключении и делает все три настройки кодировки сервера character_set_clientcharacter_set_database и character_set_connection согласующимися.

Как настроить FTP с виртуальными пользователями на CentOS и сохранить рассудок

Задача: настроить индивидуальный FTP-доступ к директориям веб-сайтов (/var/www/<имя хоста>) на основе виртуальных пользователей в ОС CentOS 6.5.

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

 

Читать далее