Блог об администрировании Linux, BSD и не только.

Связаться со мной:
Позднее Ctrl + ↑

Перемещение окон между мониторами в xfce4 сочетанием клавиш

Xfce почему-то из коробки не умеет перемещать хоткеями окна между мониторами. Не между рабочими столами, а именно физическими мониторами. Это очень не удобно, особенно если вторым монитором используется телевизор. И если окно открылась на телике, то приходится его включать и тащить окно мышью. Кошмар в общем. Исправить этот досадный недостаток пришлось с помощью утилиты xdotool.
Устанавливаем её.

$ sudo apt install xdotool

С помощью неё можно перетащить активное окно на определенную координату
Для перемещения окна на первый монитор я использовал

xdotool getactivewindow windowmove --sync 100 100

Для перемещения окна на второй монитор

xdotool getactivewindow windowmove --sync 2000 100

Надеюсь всем понятно что в первой команде коодрдинаты 100 100, а во второй 2000 100 по оси X и оси Y соответственно.
Нужно на эти команды повесить хоткеи. Для этого надо зайти в Настройки — Клавиатура, вкладка «Комбинации клавиш». Я поставил Ctrl-1 для перемещения окна на 1 монитор, и Ctrl-2 для перемещения окна на второй монитор.

2017   hotkey   xdotool   xfce   xfce4

При выходе из ждущего режима пропадает соединение OpenVPN

Сделаем автоматический перезапуск OpenVPN на системах с systemd. В debian 9 создаем файл /etc/systemd/system/resume.openvpn.service с содержимым:

[Unit]
Description=Run openvpn after suspend
After=suspend.target

[Service]
ExecStart=/usr/sbin/service openvpn restart

[Install]
WantedBy=suspend.target

Затем выполняем

# systemctl enable resume.openvpn.service

Теперь при выходе из ждущего режима будет автоматически перезапускаться OpenVPN.

2017   debian   openvpn   suspend

Шаблон VDS с VestaCP c мультиверсионностью PHP

На наших VDS теперь доступен готовый шаблон Debian 8 с предустановленной панелью VestaCP и уже собранными версиями PHP от 5.2 до 7.1 включительно. Версию PHP можно выбирать свою для каждого сайта. Заказать VDS можно по этой ссылке. После выдачи VDS нужно зайти в панель управления VDS, кликнуть «Переустановка VDS» и выбрать шаблон «debian-8-X86_64-vestacp_multiphp»

Пароль пользователя admin в весте, совпадает с паролем root.

Обновился до Debian 9 Stretch

Первое что заметил, что выпилили fglrx. Благо свободный драйвер ATI допилили наконец до юзабельного состояния. В jessie на свободном драйвере у меня экран валился в квадраты и становился похожим на шахматную доску(HD7700). Теперь свободный драйвер мне нравится больше проприетарного. Он лучше интегрирован в систему и можно рулить настройками нескольких мониторов с гайки настроек дисплея в xfce. В проприетарном в jessie приходилось плясать с xrandr, по крайней мере в xfce.
Вернули в репозиторий firefox актуальной версии. Можно установить нормальный firefox помимо firefox-esr, не подключая дополнительные репы.
Ну и конечно относительно новые версии ПО, и ядро 4.8(в 2017 году мы таки добрались до ядра 4.x)
В общем неплохо, багов я не заметил.

2017   debian   fglrx   stretch

Миграция с ISPManager 4 на VestaCP

Выкатываем в паблик скрипт миграции с ISPManager 4 на VestaCP.
Обращаем ваше внимание, что:

  • копирование данных скриптом isp2vesta возможно тогда и только тогда, когда на сервере установлены nginx в качестве прокси и apache в качестве основного веб-сервера
  • на исходном сервере с ISPmanager никакие данные не изменяются, пакеты и программы не устанавливаются.
  • при копировании без указания пользователя переносятся все пользователи ISPmanager, включая отключенных
  • Копирование реселлеров из ISPManager PRO не происходит в виду отсутствия этого функционала в VestaCP пути пользователей ISPManager используются дефолтные: /var/www/USERNAME
  • для копирования данных необходимо, чтобы на исходном сервере работал SSH на 22 порту и у вас был доступ к серверу root
  • для копирования баз данных MySQL необходимо, чтобы на исходном сервере работал MySQL
  • для копирования не нужна действующая лицензия ISPManager, так как её функционал для переноса не используется

Скрипт миграции можно взять на гитхаб

Запускать так:

# bash isp2vesta IP-ADDRESS ROOT-PASSWORD [имя пользователя]

При запуске без параметров копируются ВСЕ пользователи.
При запуске с параметром

all-enabled-users

копируются все активные пользователи.
При запуске с параметром

all-disabled-users

копируются все не активные пользователи.

исходная ссылка
В общем тестируйте, о проблемах сообщить можно в скайпе.

P.S. Я ещё добавляю вот эти модули перед миграцией

# a2enmod actions
# a2enmod cgi
# a2enmod authz_groupfile

ещё P.S. Новогодняя акция: мы оказываем помощь по переносу ваших сайтов из панели ISPManager 4 на VestaCP при покупке сервера линеек 1, 2, 3 за дополнительную плату, но компенсируем вам затраты, предоставив второй месяц аренды сервера бесплатно.

Ошибка при установке фряхи через bsdinstall

При установке freebsd на сторонний носитель с помощью bsdinstall после разметки диска и скачивания архива получаем ошибку

Error while fetching file:///usr/freebsd-dist/MANIFEST" - no such file or directory

идем на ftp://ftp.freebsd.org/pub/FreeBSD/releases/
Выбираем платформу, затем версию фряхи, в общем идем по каталогам. И получаем ссылку на файл, например для freebsd 11.0 amd64:
ftp://ftp.freebsd.org/pub/FreeBSD/releases/amd64/amd64/11.0-RELEASE/MANIFEST

Скачиваем файл в /usr/freebsd-dist на текущей системе и снова запускаем bsdinstall.

2016   bsdinstall   Freebsd

Добавление кучи ip в vestacp

Создаем скрипт со следующим содержимым

#!/bin/bash
export VESTA=/usr/local/vesta/
file="/root/ip.txt"
while read line
do
/usr/local/vesta/bin/v-add-sys-ip $line 255.255.255.255 eth0
done < $file

В /root/ip.txt кладем список ip построчно.
Делаем скрипт исполняемым и запускаем. IP добавлены на сервер в весте.

Защита от DDoS атаки ботнета взломанных Wordpress сайтов

Столкнулся с атакой взломанных wordpress говносайтов на один из клиентских серверов. Клиент пожаловался на недоступность сайта, сайт отдавал ошибку gateway timeout. Зашёл на сервер, вижу

load average: 145.44, 114.78, 78.83

Странно что сервер ещё отвечал при такой нагрузке. Смотрю лог недоступного виртуалхоста и вижу кучу запростов типа

GET /index.php HTTP/1.0" 200 37648 "-" "WordPress/4.5.2; http://52.39.213.67; verifying pingback from 191.96.249.54"

Блокируем ботов по ключевому слову WordPress

# iptables -A INPUT -p tcp --dport 80 -m string --string 'WordPress' --algo kmp -j DROP

Проблема решена.

Простая установка OpenVPN сервера с помощью QuickOpenVPN.

QuickOpenvpn тулза для быстрого разворачивания OpenVPN сервера и генерации клиентских конфигов, сертификатов и ключей. Адрес на github https://github.com/shmulya/quickopenvpn

Рассмотрим установку на Ubuntu 14.04.
Заходим на сервер по ssh и устанавливаем нужные пакеты

# apt-get install python-pip openssl openvpn git
# pip install pyyaml

Скачаем установщик тулзы

# git clone https://github.com/shmulya/quickopenvpn.git

Переходим в каталог установщика и запускаем установку

# cd quickopenvpn
# python install.py

Установщик задаст несколько вопросов(email, где разместить ключи, пароль для веб-морды и т.д), отвечаем на них и дожидаемся генерации всех ключей и завершения установки. Также если вы используете именно Ubuntu 14.04 тулза спросит переместить ли конфиг в /etc/openvpn и запустить ли vpn-сервер. На других дистрах эта функция не реализована и придется все делать вручную, поэтому рекомендую именно Ubuntu 14.04. Также спросит разрешить ли форвардинг пакетов и добавить ли правило натирования в iptables. Отвечаем на все «y», и по окончанию работы тулзы мы получим полностью настроенный и работающий OpenVPN сервер.
Для старта веб-морды выполняем

./start

И заходим на https://ip_сервера:4443/ там логинимся с паролем который мы указали при установке

Жмакаем «Add» для добавления клиентского сертификата, указываем имя сертификаты. И после генерации мы сможем скачать архив со всем необходимым для подключения к серверу.

Жмакаем «Download» и получаем архив. На клиенте устанавливаем OpenVPN, распаковываем архив в /etc/openvpn. Не забываем в конфиге клиента поправить пути к ключам и сертификату. И стартуем сервис.
Видим что появился новый интерфейс и сервер пингуется. Значит все работает.

2016   openvpn   quickopenvpn   ubuntu

Мультиверсионность php на CentOS с VestaCP.

В комментариях к статье Мультиверсионность php на сервере с VestaCP один из читателей попросил написать статью как сделать тоже самое на CentOS. Я уже приготовился писать статью про компиляцию php из исходников, но почитав форум весты увидел что все уже сделано за меня.

На официальном форуме VestaCP есть скрипт, который добавляет репозиторий с уже собранными версиями php 5.5, 5.6 и 7.0. По умолчанию в CentOS 6.8 установлен php 5.4. В итоге после установки скрипта мы имеем все версии php начиная от 5.4.

Установка супер простая

# wget http://mirror.skamasle.com/vestacp/PHP/sk-phpinstaller_beta02_3.sh
# bash sk-phpinstaller_beta02_3.sh

Вывод установщика не очень многословен

После установки при редактировании виртуального хоста в web-шаблонах мы видим что появились новые пункты с новыми версиями php.
Пробуем переключится и смотрим phpinfo
Как видим, все работает. За скрипт спасибо пользователю с ником skamasle.
Ранее Ctrl + ↓