Правила iptables для FTP ProFTPD

Дата: 07.11.2017Метки:

После того как закрыл все порты в iptables мне понадобилось разрешить подключение к серверу по протоколу ftp. Первым делом открыл порт 21, но этого оказалось недостаточно. Клиент подключался к серверу, но не мог получить содержимое каталога сервера.

Для правильной работы ProFTPD необходимо применить указанные ниже правила:

iptables -A OUTPUT -p tcp --sport 21 -m state --state ESTABLISHED -j ACCEPT
iptables -A OUTPUT -p tcp --sport 20 -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -p tcp --sport 1024: --dport 1024: -m state --state ESTABLISHED -j ACCEPT
iptables -A INPUT -p tcp --dport 21 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A INPUT -p tcp --dport 20 -m state --state ESTABLISHED -j ACCEPT
iptables -A INPUT -p tcp --sport 1024: --dport 1024: -m state --state ESTABLISHED,RELATED,NEW -j ACCEPT

rc.local в Debian 9

Дата: 06.11.2017Метки:

Установил у себя новую Debian 9 и вот по старинке решил добавить в rc.local пару команд в автозагрузку. Оказалось, что после установки Debian 9 по умолчанию нет файла rc.local. При желании мы можем вернуть автозапуск команд из rc.local, для этого необходимо настроить работу сервиса в systemd.

Что бы включить rc.local в Debian 9 необходимо выполнить следующие команды:

touch /etc/rc.local
chmod +x /etc/rc.local
systemctl enable rc-local
systemctl start rc-local

Перемонтировать раздел в Linux

Дата: 06.11.2017Метки:

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

Чтобы применить необходимы настройки необходимо использовать следующую команду:

mount -o remount,.. /dev/mapper/storage-vm /vm

В моем случае /dev/mapper/storage-vm LVM раздел, а /vm каталог монтирования. После remount, вместо трех точек указываем необходимые параметры монтирования, которые мы указали ранее в fstab.

Настройка IPv6 для KVM

Дата: 06.11.2017Метки: ,

На протяжение уже несколько лет подымается тема о том, что доступные свободные блоки IPv4 исчерпаны. Не смотря на проблему до сих пор доля использования IPv6 очень низкая. Всеобщий дефицит IPv6 стал причиной роста цен на аренду адресов. Что по сути является платой за воздух. Связи с чем предаю всем по возможности обеспечить вашим сайтам и сервисам поддержку IPv6. Таким образом каждый сделает свой вклад в скорейший переход на IPv6.

Предлагаю краткий мануал по настройке IPv6 на выделенном сервере c Failover IP для работы с виртуализацией KVM. Все работы выполняются в дистрибутиве CentOS 7.

Для начала необходимо настроить IPv6 на хосте:

vi /etc/sysconfig/network-scripts/ifcfg-vmbr0

Добавим в конец файла следующие строки:

IPV6ADDR=2001:41d0:0001:0001::1/64
IPV6INIT=yes
IPV6_AUTOCONF=no

Создадим файл с настройками шлюза IPv6:

vi /etc/sysconfig/network-scripts/route6-vmbr0

Скопируйте в файл следующие строки:

2001:41d0:0001:ffff:ff:ff:ff:ff dev vmbr0
default via 2001:41d0:0001:ffff:ff:ff:ff:ff

Следует отметить, что все IPv6 адреса необходимо заменить на свои.
Применяем настройки:

service network restart

Пингаем IPv6 DNS Google:

# ping6 -c 4 2001:4860:4860::8888
PING 2001:4860:4860::8888(2001:4860:4860::8888) 56 data bytes
64 bytes from 2001:4860:4860::8888: icmp_seq=1 ttl=59 time=4.10 ms
64 bytes from 2001:4860:4860::8888: icmp_seq=2 ttl=59 time=4.06 ms
64 bytes from 2001:4860:4860::8888: icmp_seq=3 ttl=59 time=4.09 ms
64 bytes from 2001:4860:4860::8888: icmp_seq=4 ttl=59 time=4.12 ms

Как видите IPv6 работает на хосте, осталось только прописать IPv6 DNS в системе:

vi /etc/sysconfig/network-scripts/ifcfg-vmbr0
DNS3="2001:4860:4860::8888"

Включам форвардинг IPv6 на хосте.

vi /etc/sysctl.conf

Добавить в конец:

net.ipv6.conf.all.forwarding = 1

Применяем настройки:

sysctl -p

Дата-центр с использует Failover IP и тут я решил настроить по аналогии с IPv4, но вот сейчас возникла мысль, а что если использовать в виртуальных машинах сразу шлюз 2001:41d0:0001:ffff:ff:ff:ff:ff?

Настройка IPv6 на виртуальной машине с CentOS 7:

vi /etc/sysconfig/network

Добавить в содержимое файла:

NETWORKING_IPV6=yes

Изменяем настройки сетевого интерфейса:

vi /etc/sysconfig/network-scripts/ifcfg-eth0

Добавить в конец:

IPV6ADDR="2001:41d0:0001:0001::2/64"
IPV6_DEFAULTGW="2001:41d0:0001:0001::1"
IPV6INIT="yes"
IPV6_AUTOCONF="no"
DNS3="2001:4860:4860::8888"

Применяем настройки:

service network restart

Проверяем работу IPv6:

# ping6 -c 4 2001:4860:4860::8888
PING 2001:4860:4860::8888(2001:4860:4860::8888) 56 data bytes
64 bytes from 2001:4860:4860::8888: icmp_seq=1 ttl=59 time=4.10 ms
64 bytes from 2001:4860:4860::8888: icmp_seq=2 ttl=59 time=4.06 ms
64 bytes from 2001:4860:4860::8888: icmp_seq=3 ttl=59 time=4.09 ms
64 bytes from 2001:4860:4860::8888: icmp_seq=4 ttl=59 time=4.12 ms

Изменить путь к phpMyAdmin в ISPmanager 5

В панели ISPmanager 5 по умолчанию для входа в phpMyAdmin используется ссылка формата http://domain/phpmyadmin/ В целях безопасности неплохо изменить это адрес на произвольную строку. Для этого нам необходимо подключиться к серверу по SSH и внести небольшие изменения в конфигурационные файлы ISPmanager и Apache.

Для начала меняем адрес phpMyAdmin в Apache:

vi /etc/httpd/conf.d/phpmyadmin.conf

Необходимо заменить /phpmyadmin на произвольный адрес

Alias /phpmyadmin /usr/share/phpMyAdmin

Например:

Alias /mysqlpanel /usr/share/phpMyAdmin

Перезапустим Apache:

service apache2 restart

Теперь необходимо изменить ссылку в панели ISPmanager:

vi /usr/local/mgr5/etc/ispmgr.conf

Добавляем в конец файла:

extaction phpmyadmin https://$site/mysqlpanel

Перезапустим панель ISPmanager 5:

/usr/local/mgr5/sbin/mgrctl -m ispmgr exit

/bin/sh can’t access tty

Дата: 15.10.2017Метки:

На одном из серверов упал сайт. В браузере отображалась информация об отсутствии подключения к MySQL. Запускаться вручную MySQL отказывался. Отправил сервер на перезагрузку, после чего система отказалась запускаться. Если подключится к консоли можно увидеть вот такое сообщение об ошибке:

/bin/sh can't access tty

У меня была установлена система Debian 8, вылечилось достаточно просто. Запустил проверку файловой системы:

fsck -t ext4 /dev/sda1

В процессе проверки были найдены ошибки, на всех запросах жал Y для подтверждения. После перезапуска система ожила.

Ошибка установки Composer

Дата: 13.09.2017Метки:

Имеем сервер с операционной системой CentOS 7, на который установлен PHP 7. Выполняем команду для установки Composer:

curl -sS https://getcomposer.org/installer | php

В результате получаем ошибку:

Some settings on your machine make Composer unable to work properly.
Make sure that you fix the issues listed below and run this script again:

The json extension is missing.
Install it or recompile php without --disable-phar

Для начала попробуем установить расширение phar:

yum install php-pecl-phar

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

Добавляем расширение phar в php.ini:

extension = phar.so

Проверяем изменения:

php -m | grep Phar

Результат выполнения команды «Phar», после чего пробуем повторно установить Composer.

Установка Windows на VPS с VMmanager

Недавно меня попросили помочь с установкой Windows на VPS с VMmanager. Я решил заодно написать заметку на эту тему, что бы в будущем можно было просто сразу дать ссылку на информацию с краткой инструкцией. Перед тем как приступить, отмечу что был заказан Windows VPS, где доступно подключение своего образа. Я пользуюсь этим хостингом уже достаточно продолжительное время, связи с чем уже был точно уверен, что тут можно установить Windows.

Следует отметить, что панель VMmanager очень распространена в русскоязычном сегменте хостинга. Связи с чем, этот мануал будет актуален и для других хостинг-провайдеров, которые используют эту панель. Главное убедится, что для клиентов доступна возможность загрузки собственных ISO.

Загрузка ISO-образа

И так приступим. Для начала заходим в панель управления VMmanager. Разделе Управление открываем меню ISO-образы. На этой странице можно увидеть список доступных для установки ISO-образов. Над списком доступных ISO-образов есть кнопка Загрузить. Открывается новая страница, на которой будет предложено загрузить образ с локального компьютера. Выбираем расположение образа с Windows и ждем завершения процесса загрузки.

Дополнительно нам потребуется загрузить еще один образ, на котором будут драйвера для диска и сетевой карты нашего VPS. Скачать его можно по этой ссылке. Эти драйвера нужны для лучшего быстродействия вашего VPS.

Настройка VPS в VMmanager

Для подключения или отключения образов предварительно необходимо выключить VPS через панель VMmanager. Для этого переходим в меню Виртуальные машины и выбираем наш сервер, затем жмем кнопку Стоп и дожидаемся остановки. Теперь нам необходимо проверить, что нашего сервера доступна шина и сетевое устройство virtio. Жмем кнопку Интерфейсы, обратите внимание на колонку таблицы Модель сетевого устройства, здесь должно быть указано virtio.

Если у вас так, то следующий шаг можно пропустить. В противном случае выбираем сетевой интерфейс и жмем кнопку Изменить. Среди списка доступных моделей сетевого устройства выбираем virtio.

Возвращаемся в меню Виртуальные машины , жмем кнопку Диски, в колонке Шина должно быть указано virtio. Если у вас указано ide, жмем кнопку Изменить и в выпадающем списке выбираем тип шины virtio. На этом предварительная настройка VPS для установки Windows закончена.

Подключаем образы к VPS в VMmanager

Для подключения образов снова нужно перейти на страницу Виртуальные машины. Выбираем сервер и жмем кнопку Диски, затем жмем ISO на открывшийся странице в выпадающем меню выбираем наш образ с Windows, порядок загрузки В начало и сохраняем изменения.

Теперь подключаем образ с драйвером снова выбираем сервер и жмем кнопку Диски, затем жмем ISO на открывшийся странице я выбрал образ virtio-win-0.1.141.iso, порядок загрузки В конец и сохраняем изменения.

Установка Windows на VPS в VMmanager

Переходим в Виртуальные машины и включаем наш сервер. Теперь необходимо подключится к консоли сервера, для этого необходимо нажать кнопку VNC. В верхнем углу VNC-клиента есть кнопка Send CtrlAltDel. Жмем эту кнопку и ждем когда появится надпись:

Press any key to boot from CD or DVD...

В этот момент нужно вовремя нажать любую кнопку и начнется процесс загрузки с Windows образа. Когда дойдете до выбора диска для установки Windows нам необходимо будет указать расположения драйвера диска. Жмем кнопку Загрузить драйвер, необходимо открыть подключенный ранее нами диск с драйверами, переходим в каталог viostor, в котором хранятся драйвера для всех версий Windows. В зависимости о операционной системы, которую вы устанавливаете используйте указанные ниже каталоги:

Windows 7 - w7
Windows 8 - w8
Windows 8.1 - w8.1
Windows 10 - w8.1
Windows Server 2008 - 2k8
Windows Server 2008 R2 - 2k8R2
Windows Server 2012 - 2k12
Windows Server 2012 R2 - 2k12R2
Windows Server 2016 - 2k16

После установки драйвера будет доступен диск для установки системы. После завершения установки системы нам необходимо установить драйвер для сетевой карты. Заходим в диспетчер устройств, находим там сетевой адаптер, СвойстваДрайверОбновить. Открываем диск с драйверами и переходим в каталог NetKVM, аналогично установке драйвера на диск, здесь необходимо выбрать каталог для вашей операционной системы.

Настройка сети в Windows

После установки драйвера на сетевой интерфейс нам необходимо настроить сеть для нашего VPS. Заходим в свойства сетевого подключения, нам необходимо указать правильные настройки ip-адреса, шлюза и маски подсети. Эту информацию можно взять в панели VMmanager: Виртуальные машиныIP-адреса. В качестве DNS укажите 8.8.8.8, 8.8.4.4 сервера от Google. Сохраняем изменения и проверяем, что сеть работает.

На этом процесс установка и настройки Windows на VPS с VMmanager закончен. Нам остается только разрешить удаленный доступ к серверу по RDP и наш сервер готов к работе.

Описанным выше способом можно установить все последние версии Windows на VPS с VMmanager. Что касается Windows XP, то в данном случае установка немного отличается на этапе выбора драйвера диска. В этом случае я советую найти в сети сразу уже готовый образ с интегрированным драйвером.

libvirtd: Timed out during operation: cannot acquire state change lock

Дата: 24.08.2017Метки:

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

libvirtd: Timed out during operation: cannot acquire state change lock

Проблему полностью решает перезагрузка системы. Как компрмисный варинат можно попробовать жестко перезапустить процесс libvirtd:

killall -9 libvirtd
rm /var/run/libvirtd.pid
/etc/init.d/libvirt-bin restart

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

Файл rc.local в Debian 9

Дата: 24.08.2017Метки:

Если вы уже успели попробовать свежую Debian 9, то первым делом, наверно, что в системе больше нет файла rc.local. Насколько это правильное решение судить не мне, я просто расскажу как его снова вернуть rc.local в систему.

Создаем файл:

vi /etc/rc.local

Копруем в него следующие строки:

#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.

exit 0

Даем право на выполнение:

chmod +x /etc/rc.local

Включаем автозапуск следующей службы:

systemctl start rc-local
systemctl status rc-local

Теперь как и в старые добрые времена можно испольовать rc.local для простого и быстрого добавления программ и скриптов в автозагрузку.