Пора валить! Меняю *nix сервер

Примерно так меня обрадовал мой хостёр Fornex, получив очередную порцию бредовых “абузов” от немецких “антиспамеров” clean-mx (Герхард, кстати (шеф этой лавки), потом объявился – мы с ним и раньше общались – извинился за долгий ответ и рапортовал, что логично включил сайты в whitelist).

Оба повели себя, как неадекваты: немцам плевать на отправляемые им false positive заявки, а хостёру плевать на бредовость полученной писанины.

Валить, так валить.

В результате я успешно переехал с сервера в Германии на говносервер во Франции от БитВеб (эти – ещё одни неадекваты) к отличным пацанам SinaroHost. Стало дешевле и вроде, в среднем по больнице, чуток быстрее (пингомерялки раз и дваз).

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

1. Копирование файлов с сервера на сервер

Я тащил все объемы данных через пару zip -r denglad ./ в Германии -> свой комп -> unzip denglad.zip во Франции. Мне сказали, что я не прав и лучше вот так:

rsync -avux root@<fornex_ip>:/path/to/your/data/on/remote/server/SITENAME /path/on/the/local/server/

После чего на серваке во Франции будет копия данных из Германии.

Два момента: 

  • для источника SITENAME указываем, для получателя – нет
  • фигачить надо из под настоящего SSH клиента (в FAR’е оно опять не взлетает)

2. Запуск скрипта по приходу письма на определенный email

На старом сервере было сделано по описанию отсюда. Сейчас таблицы виртуальных юзеров не обнаружилось. Но по адресу /etc/exim/aliases обнаружилась таблица реальных email, прописанных на сервере.

Залепил в описании действий для нужного ящика заказдеся@:

[email protected]:”|/var/www/scriptus/order2database.php”,[email protected]

А скрипту выставил права

chmod a+x /var/www/sriptus/order2database.php

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

3. Апачевский Alias на директорию и символьная ссылка aka symlink

Суть в том, что для .ru сайта не существует целого набора папок и их содержимого. Они – точная копия .com папок.  Нафига?

Тут два пути: для статики и для скриптов.

Со статикой рецепт более очевидный  и делается на Apache. Он на поверхности и виден сразу в конфиге к .ru сайту:

 Alias /images/ “/var/www/USERNAME/data/www/SITECOM/images/”

php_admin_value open_basedir “/var/www/USERNAME/data:.:/var/www/USERNAME/data/www/SITECOM/:.”

То есть сам алиас и права на доступ к паке .com сайта.

С динамикой (со скриптами и вызовами из них других скриптов) облом. Пришлось задействовать symlink и создавать “призрака” для каждой нужной папки:

 ln -s /var/www/USERNAME/data/www/SITECOM/comrufolder ./comrufolder

Не очевидно – раз. Я, например, забыл, что использовал symlink на прошлом сервере и недоумевал, чего прописанные через Alias скрипты не работают (когда память вернулась, вспомнил что на рабочей Windows7 у меня тоже реализованы символьные ссылки – через mklink). 😉

Ну и второй момент: символьная ссылка – она на уровне системы и если, например будет SITE2COM, то папку /comrufolder/ там уже не создашь – линка на SITECOM ведёт. Придётся папку иначе называть.

4. Выгоняю пуделя и делаю SSL A-класса

Чтобы https-сайт засветился зелёненькой буковкой A при тестировании на SSLLabs надо отключить протокол SSL3 и слабые алгоритмы шифрования (у меня это был RC4).

У меня вебсервер крутится на Apache и правки нужно вносить в /etc/httpd/conf.d/ssl.conf (был бы nginx – правил бы его конфиг). Добавил две строки:

SSLProtocol all -SSLv2 -SSLv3
SSLCipherSuite ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!3DES:!MD5:!PSK

И перезапустил Apache:

service httpd restart

Похожий подъём с переворотом для Nginx.

5. Убираю версию Nginx и PHP из ответа сервера

Добавляю в файл настроек Nginx или в подключаемом /etc/letsencrypt/options-ssl-nginx.conf (только для https)

server_tokens off;

Но можно и в /etc/nginx/nginx.conf, в раздел http {}, конечно же… 😉

И реложу Nginx

service nginx reload

Добавляю в основной /etc/php.ini, если в системе один нативный php или в php.ini для каждого юзера в папке /user/data/php-alt/

expose_php = off

и реложу либо php

service php-fpm reload

либо апач оптом, если есть альтернативные версии php

service httpd reload

Полезные CLI-команды для *nix

  • df -h – информация о свободном месте на диске
  • yum repolist – просмотр всех установленных репозитариев
  • grep -r 'letsencrypt' /etc/httpd – поиск файлов с вхождением текста, начиная с папки
  • uname -a – просмотр полной информации о версии ядра
  • rm -r testfldr – удаление файла или папки
  • ls -l testfldr – просмотр, куда ведёт symlink
  • yum list installed | grep geo – показывает установленные пакеты, с вхождением ‘geo’ в имя
  • rpm -ql GeoIP – покажет все установленные пакеты с вхождением ‘GeoIP’ в имя
  • rpm -qa | grep kernel – покажет все установленные ядра системы
  • yum remove [kernel_version] – удалит ядро с этим именем
  • shutdown -r now или reboot – перезагрузка системы
  • cp -R folderFROM folderTO – копирование папки ИЗ В

Вот, Денисик, что помнил записал, что вспомню – допишу.

Питайся правильно, дорогой! 😀

5 1 голос
Рейтинг статьи

Автор

denglad

IT-каменщик. Во всём по-немногу

Подписаться
Уведомить о
guest
0 комментариев
Межтекстовые Отзывы
Посмотреть все комментарии
0
Оставьте комментарий! Напишите, что думаете по поводу статьи.x