Rose debug info
---------------

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

Позднее Ctrl + ↑

Восстановление работы ISPManager при смене IP

Автор: Артем Авдонин

Что делать если панель перестала быть доступна после смены IP? Для начала нужно проверить лог-файл панели. Он находится по адресу:

/usr/local/ispmgr/var/ihttpd.log

Вероятнее всего Вы увидите там ошибку вроде:

INFO Adding binding. IP:'%%YOUR_IP_HERE%%', port: 1500, cert key: '', cert path: '' INFO Finished with error. bind

Эта ошибка значит, что встроенный web-сервер панели не может начать слушать с указанным в конфигурации IP. Нужно выполнить следующие команды:

# killall -9 ihttpd

Для ispmgr4 # /usr/local/ispmgr/sbin/ihttpd YOUR_IP 1500

Для ispmgr5 # /usr/local/mgr5/sbin/ihttpd YOUR_IP 1500

Первая команда "убьёт" работающий web-сервер, а вторая запустит его на IP, указанном вместо  YOUR_IP. После этого Вы сможете зайти в панель по адресу:

https://YOUR_IP:1500

После этого Вам нужно указать новый IP вместо старого в ISPManager, раздел "Настройки", пункт "Адрес панели".

Установка DNSCrypt в Ubuntu 13.10

DNSCrypt-proxy - это приложение позволяющее шифровать ваши DNS-запросы от вашего провайдера. Рассмотрим как его установить в ubuntu.

Все действия будем производить под рутом. Переходим в root

$ sudo su

Для начала установим build-essential

# apt-get install build-essential

Скомпилируем актуальную версию libsodium. Скачаем актуальную версию этой библиотеки со страницы https://download.libsodium.org/libsodium/releases/

# wget https://download.libsodium.org/libsodium/releases/libsodium-0.4.5.tar.gz

# tar -xvzf libsodium-0.4.5.tar.gz

# cd libsodium-0.4.5

# ./configure

# make && make install

Скачаем актуальную версию dnscrypt-proxy со страницы http://download.dnscrypt.org/dnscrypt-proxy/

# wget http://download.dnscrypt.org/dnscrypt-proxy/dnscrypt-proxy-1.3.3.tar.gz

# tar -xvzf dnscrypt-proxy-1.3.3.tar.gz

# cd dnscrypt-proxy-1.3.3

# ./configure

# make

# make install

Скачиваем и распаковываем архив dnscrypt-0.2.tar.gz

# wget http://anikin.pw/pictures/uploads/dnscrypt-0.2.tar.gz

# tar -xvzf dnscrypt-0.2.tar.gz

Копируем скрипт

# cp dnscrypt.conf /etc/init/

# ln -s /lib/init/upstart-job /etc/init.d/dnscrypt

Запускаем

# service dnscrypt start

Если все запустилось, то пропишем DNS в network manager. Если возникли проблемы, то в конце статьи рассмотрены решения некоторых проблем.

Пропишем наши DNS в network manager.

1. Кликаем по иконке соединений в правом верхнем углу и в выпадающем меню выбираем "Изменить соединения".

2. В открывшемся окне выделяем наше соединение и кликаем "Изменить"

3. Во вкладке "Параметры ipv4" прописываем в Сервера DNS - 127.0.0.2 у меня получилось примерно так

Снимок экрана от 2014-01-25 19:23:20

Всё. Наши DNS запросы шифруются и провайдер их не видит.

P.S.(Важно)

1. При запуске dnscrypt-proxy получаем ошибку: loading shared libraries: libsodium.so.4: cannot open shared object file: No such file or directory

Решение:

Если libsodium был установлен без ошибок, но проблема возникает, то выполняем:

# ./configure --libdir=/usr/local/lib

Если проблема остается то выполняем:

# ln -s /usr/local/lib/libsodium.so.4 /usr/lib/libsodium.so.4

2. При выполнении service dnscrypt start получаем:

# service dnscrypt start

dnscrypt stop/waiting

У меня это было из за того что скрипт dnscrypt-proxy находится в /usr/local/sbin/dnscrypt-proxy, а скрипт его ищет в /usr/sbin/dnscrypt-proxy.

Решение:

# ln -s /usr/local/sbin/dnscrypt-proxy /usr/sbin/dnscrypt-proxy

3. Как проверить что скрипт действительно работает и dns-трафик шифруется от провайдера?

Решение:

Заходим на сайт http://www.opendns.com/welcome/ и проверяем.

Включение модулей openvz.

Рассмотрим как включить модули iptables, ppp и tun/tap в openvz-контейнере.

Включение модулей iptables

Выполняем на ноде:

# modprobe iptable_nat

Подключаем модуль в контейнер id 001:

# vzctl set 001 --save --iptables "ip_conntrack iptable_filter iptable_mangle ipt_state iptable_nat ip_nat_ftp ip_conntrack_ftp"

UPD:

# vzctl set 001 --netfilter full --save --setmode restart

Включение модуля ppp

Стопаем контейнер, а затем выполняем на ноде(001-id контейнера на котором надо включить):

# modprobe ppp_async

# modprobe ppp_deflate

# modprobe ppp_mppe

# vzctl set 001 --features ppp:on --save

# vzctl set 001 --devices c:108:0:rw --save

Запускаем контейнер и внутри него выполняем:

# mknod /dev/ppp c 108 0

# chmod 600 /dev/ppp

Включение модуля tun

На ноде выполняем(001-id контейнера на котором надо включить):

# modprobe tun

# vzctl set 001 --devnodes net/tun:rw --save

# vzctl set 001 --devices c:10:200:rw --save

# vzctl set 001 --capability net_admin:on --save

# vzctl exec 001 mkdir -p /dev/net

# vzctl exec 001 chmod 600 /dev/net/tun

Установка и настройка apf-firewall + ddos-deflate.

Как защитить linux сервер? Естественно с помощью iptables. Можно конечно написать скрипт с кучей правил iptables и добавить его в автозагрузку. Но мне больше нравятся готовые решения. В качестве фаервола мы будем использовать apf-firewall. Мне он нравится за простоту и за то что его можно быстро развернуть. Apf-firewall - это очень удобная надстройка над iptables, которая на основе собственного простого и понятного конфига генерирует список правил и добавляет их в iptables, заменяя там уже прописанные. Работает в режиме демона. Так что если вы пользуетесь этим фаерволом, правила добавляйте только через него. Так же в качестве небольшого бонуса к нашей защите мы установим скрипт ddos-deflate. Конечно от серьезных атак он не защитит, но всяких школьников-кулцхакеров :-) отпулит на раз.

Установка apf на ubuntu/debian

# apt-get install apf-firewall -y

По окончанию установки появится сообщение, что для запуска демона требуется изменить переменную RUN с no на yes в файле /etc/default/apf-firewall. Откройте файл с помощью nano, например.

# nano /etc/default/apf-firewall

И измените значение переменной.

Затем откройте конфигурационный файл apf.

# nano /etc/apf-firewall/conf.apf

В этом файле нужно указать порты, которые вы хотите оставить открытыми.

Правим следующие переменные:

IG_TCP_CPORTS="22,80" - в этой переменной через запятую в кавычках описываются входящие tcp порты.

EG_TCP_CPORTS="21,25,80" - в этой аналогично исходящие tcp порты.

Тоже самое для udp:

IG_UDP_CPORTS="53"

EG_UDP_CPORTS="20,21,53"

Сохраняем файл и пробуем запустить фаервол:

# apf -s

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

Также иногда можно получить ошибку которая описана в этой статье.

Возможно, если вы что-то не так сделали, то после запуска фаервола вы заблокируете себе доступ к серверу. Не пугайтесь, apf автоматически отключится через 5 минут и вы сможете исправить нужные настройки в конфиге.

Если всё в порядке, фаервол работает нормально и доступ к серверу вы не потеряли то измените значение переменной DEVEL_MODE на 0 в конфиге /etc/apf-firewall/conf.apf. По умолчанию у неё значение 1, это режим когда apf запускается для проверки и отключается через 5 минут.

Всё, apf установлен.

Так же в каталоге /etc/apf-firewall есть множество конфигурационных файлов для более тонкой настройки фаервола. Внутри почти всех файлов есть комментарий для чего данный конфиг и описан синтаксис. Можно например открыть доступ к определённому порту только с определённого ip или добавить обычное правило iptables. В общем apf очень гибок в настройке и понятен в использовании.

Теперь установим ddos-deflate. Это скрипт который раз в минуту проверяет количество подключений к серверу с каждого ip. И если какой то ip превышает количество разрешённых подключений, то скрипт его банит на определённое время.

Установка скрипта довольно простая:

# wget http://www.inetbase.com/scripts/ddos/install.sh

# chmod 0700 install.sh

# ./install.sh

После выполнения этих команд файлы скрипта установятся в /usr/local/ddos/. В debian/ubuntu требуется изменить интерпретатор скрипта /usr/local/ddos/ddos.sh с:

#!/bin/sh

на

#!/bin/bash

Иначе работать не будет. В тексте скрипта также есть "/bin/sh", тоже нужно изменить.

Подправим конфиг скрипта:

# nano /usr/local/ddos/ddos.conf

Исправим несколько переменных:

NO_OF_CONNECTIONS=100 - количество подключений с одного ip, при превышении этого значения - бан

APF_BAN=1 - банить с помощью apf

BAN_PERIOD=600 - время бана

Сохраняем и закрываем конфиг.

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

# crontab -e

И в конец добавляем

*/1 * * * * nice -n -5 /usr/local/ddos/ddos.sh > /dev/null 2>&1

Сохраняем и выходим.

Всё скрипт будет выполнятся раз в минуту и банить хулиганов.)

P.S. чтобы скрипт ddos-deflate нормально работал возможно понадобится изменить в конфиге путь до бинарника apf. По умолчанию он указан как /etc/apf/apf. Это не верно. Чтобы узнать где у вас находится бинарник выполните:

# whereis apf

И измените директиву APF в конфиге скрипта.

Установка mpm-itk на apache2. Работа виртуальных хостов под разными пользователями.

По умолчанию apache работает под пользователем www-data. При использовании isp-manager под пользователем apache, если я не ошибаюсь. И получается, что все сайты работают под одним пользователем. Иногда требуется чтобы каждый сайт работал под своим пользователем. Сделать это можно с помощью модуля mpm-itk. Модуль доступен во всех основных дистрибутивах линукс. Мы рассмотрим как установить и настроить его под ubuntu и centos, а так же рассмотрим настройку для серверов с isp-панелью.

Установка и настройка в ubuntu

Для начала установим сам модуль

# apt-get install apache2-mpm-itk

Допустим, что сайты у нас уже есть и находятся в пользовательских каталогах. Сообтветственно нам не нужно создавать пользователей. Если это не так то можно создать пользователей для каждого сайта с помощью useradd с аргументом -d, в котором укажем каталог сайта в качестве домашнего каталога.

Затем правим конфигурационный файл apache.

# nano /etc/apache2/apache2.conf

Внутрь каждого виртуального хоста добавляем такие строки:

<IfModule mpm_itk_module>

AssignUserId user1 user1

</IfModule>

Где user1 user1 - пользователь и группа соответственно.

Перезапускаем apache2

# service apache2 restart

Установка в CentOS

Установим модуль

# yum install httpd-itk

Правим конфигурационные файлы

# nano /etc/sysconfig/httpd

Раскомментируем и изменяем строку на такую:

HTTPD=/usr/sbin/httpd.itk

# nano /etc/httpd/conf.d/php.conf

Добавляем:

<IfModule itk.c>

LoadModule php5_module modules/libphp5.so

</IfModule>

Меняем диррективу SuexecUserGroup на AssignUserID для существующих доменов.

# sed -i -e 's/SuexecUserGroup/AssignUserID/g' /etc/httpd/conf/httpd.conf

Для вновь созданных доменов в виртуальном хосте нужно указывать

AssignUserID user1 user1

Где user1 user1 - пользователь и группа соответственно.

# nano /etc/httpd/conf/httpd.conf

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

<IfModule itk.c>

StartServers 1

MinSpareServers 1

MaxSpareServers 25

ServerLimit 25

MaxClients 25

MaxRequestsPerChild 4000

</IfModule>

Перезапускаем apache

# service httpd restart

Настройка для сервера с панелью isp.

Откроем конфигурационный файл isp

# nano /usr/local/ispmgr/etc/ispmgr.conf

И в самом начале добавим строку:

Option ApacheMPM

И рестартим панель

# killall -9 ispmgr

Как проверить что все работает правильно?

В папке виртуального хоста создаем файл с расширением .php и примерно таким содержанием:

<?php

$userinfo = posix_getpwuid(posix_getuid());

echo $userinfo['name'];

?>

Или таким:

<?php echo exec('whoami'); ?>

Открываем этот файл в браузере и выводом этого файла должно быть имя пользователя под которым работает этот скрипт. Так же не забываем что если сервер функционирует давно то в подкаталогах куча фалов принадлежащих пользователю www-data. Неплохо бы сделать chown -R username на каталоги сайтов.

Правильная настройка denyhosts. Защита ssh, разбан ip, очистка правил. Или как не забанить самого себя.

Denyhosts - это скрипт для защиты в основном ssh от взлома брутфорсом. Он анализирует число неудачных попыток коннекта к серверу и после определённого их количества блокирует ip с которого пытаются приконектится. Блокирует путём добавления ip в /etc/hosts.deny.

Установка довольно простая. В большинстве дистрибутивов linux скрипт есть в репозиториях. Во freebsd она есть в портах.

Установка для debian/ubuntu:

# apt-get install denyhosts

Установка для freebsd:

# cd /usr/ports/security/denyhosts

# make install clean

Многие в интернете пишут, что скрипт работает из коробки без дополнительных настроек. Это действительно так, но в один прекрасный день вы рискуете быть забаненым. Если например забудете пароль или введёте его неправильно. Разберём основные настройки конфига. Конфигурационный файл находится в /usr/local/etc/denyhosts.conf(для freebsd) или /etc/denyhosts.conf(для debian/ubuntu).

HOSTS_DENY = /etc/hosts.deny #Список забаненых ip
PURGE_DENY = 4w #Время бана в формате: m - минуты, h - часы, d - дни, w - недели, y - годы.
BLOCK_SERVICE = sshd #сервисы с которыми работает denyhosts
DENY_THRESHOLD_INVALID = 5 #Число неудачных попыток входа c несуществующим логином до бана
DENY_THRESHOLD_VALID = 5 #Число попыток входа с существующим логином, но неверным паролем до бана
DENY_THRESHOLD_ROOT = 1 #Число неудачных попыток входа до бана для пользователя root(по умолчанию эта директива равна одной попытке, права на ошибку у вас нет. Вкупе с временем бана выставленным на продолжительное время, в случае ошибки ввода пароля это даст интересный результат :-) ).

Остальные настройки описаны достаточно хорошо в комментариях конфигурационного файла. Это все настройки на которые я хотел бы обратить внимание.

Теперь разберёмся что делать если вас всё таки забанили. Всё описаное ниже можно сделать сложнее, выискивая ваш ip в списках забаненых и убирая его. Я считаю что это нецелесообразно, т.к в случае повторного перебора все "плохие ip" повторно будут забанены и ничего страшного неслучится. Так что мы просто будем делать очистку забаненых ip. Ну во-первых вам нужно хоть как-то подключится к серверу. Т.е вы должны знать пароль и подключатся с уникального ip, который ещё не забанен в denyhosts. Если вы не помните пароль к серверу, его можно сбросить с livecd или recovery. Итак, подключаемся к серверу по ssh и первое что делаем останавливаем denyhosts и очищаем файл hosts.deny

# /etc/init.d/denyhosts stop

# cp /dev/null /etc/hosts.deny

Затем в конфигурационном файле denyhosts ищем директиву WORK_DIR и смотрим в какой каталог она ведёт. Переходим в этот каталог и удаляем все файлы кроме allowed-hosts. Открываем этот файл и добавляем в него ваш ip. Поясню, в этом файле находятся исключения, т.е если вы добавите туда ваш ip, то скрипт больше не будет вас банить. Запускаем демон denyhosts

# /etc/init.d/denyhosts start

Всё пробуем подключится, подключение должно пройти успешно.

Linux recovery system Server4You manual

Автор: Артем Авдонин

Для чего может потребоваться загрузка вашего сервера под linux recovery system? Очевидный ответ - для проведения диагностики и процедур восстановления работоспособности ОС. Что же из себя представляет сервер, загруженный в recovery? Это загруженный на Вашем сервере, по сети, образ linux. В нём уже установлены все основные утилиты, которые могут быть использованы при диагностике и восстановлении работоспособности сервера. И так, у нас есть сервер в вышеупомянутом датацентре, загруженный в recovery mode. Оглавление (постоянно обновляется)

  1. Запуск и монтирование корневой файловой системы
  2. Ошибки файловой системы
  3. Проблемы RAID
  4. Проблемы HDD
  5. Сброс правил firewall
  6. Доступ к данным на сервере
  7. Сброс root пароля
Подключаемся к серверу по ssh. В качестве имени пользователя указываем суперпользователя root, пароль указывается при отправке сервера в recovery mode.

1. Запуск и монтирование корневой файловой системы

В случае, если в системе используется RAID массив, начнём с его запуска:
~# mdadm --assemble --run /dev/md2
Эта команда запускает software RAID массив с меткой md2. На серверах s4y чаще всего md2 является rootfs (корневой файловой системой). Но не исключено, что искомым будем массив с меткой md1. Массив md0 - раздел /boot По выполнению команды вы должны увидеть:
mdadm: /dev/md2 has been started with 2 drives.
Это значит, что RAID успешно запущен. Проверим нормально ли собрался RAID:
~# cat /proc/mdstat

Personalities : [raid1] [raid0] [raid6] [raid5] [raid4]
md2 : active raid1 sdb4[0] sda4[1]
      1456634744 blocks super 1.2 [2/2] [UU]                     

unused devices: <none>
2/2 дисков добавлено в массив. Всё в порядке. В случае 1/2 или ошибок после ввода команды сборки массива обращайтесь в раздел Проблемы RAID. Монтируем md2 в любую удобную вам точку. В данном случае я понтирую файловую систему в точку /mnt:
~# mount /dev/md2 /mnt
Удостоверимся, что то, что мы примонтировали является rootfs нашего сервера:
~# ls /mnt
aquota.user dev initrd.img lib64 mnt root srv usr
bin etc lib lost+found opt sbin sys var
boot home lib32 media proc selinux tmp vmlinuz
Видим вполне стандартное дерево каталогов корневой файловой системы linux дистрибутива. Значит md2 является rootfs Вашего сервера. Если у Вас установлен шаблон без использования RAID, то нужно просто смонтировать /dev/sdaX, где X номер раздела с ОС. После монтирования файловой системы можно начинать работу по диагностике проблем ОС или работать с вашими файлами.

2. Ошибки файловой системы

Часто ОС не может загрузиться из за ошибок файловой системы. Что бы исключить или подтвердить и исправить данную проблему необходимо выполнить проверку файловой системы с помощью fsck. fsck должен выполняться на отмонтированной файловой системе. Выполните раздел 1 этого руководства, исключая монтирование fs. Запустите таким образом md0 и md2 (/boot и корневую fs). После того как массивы для проверки собраны выполняется fsck для md0 и md2:
~# fsck -y /dev/md2
fsck from util-linux 2.20.1
e2fsck 1.42 (29-Nov-2011)
/dev/md2 has been mounted 22 times without being checked, check forced.
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
/dev/md2: 68650/91045888 files (0.2% non-contiguous), 6396596/364158686 blocks
fsck, в данном случае, выполнился без ошибок.

3. Проблемы RAID

Не загружающийся сервер может быть вызван не собирающимся, повреждённым, "развалившимся" RAID. Как запустить RAID указано в первой главе этой статьи. Запустите все имеющиеся у вас массивы и проверьте статистику mdstat:
~# cat /proc/mdstat
~# cat /proc/mdstat
Personalities : [raid1] [raid0] [raid6] [raid5] [raid4]
md1 : active raid1 sdb3[0] sda3[1](F)
7999476 blocks super 1.2 [2/1] [U_]
md2 : active raid1 sdb4[0] sda4[1](F) 
1456634744 blocks super 1.2 [2/1] [U_]
md0 : active raid1 sdb2[0] sda2[1](F) 
499700 blocks super 1.2 [2/1] [U_]

unused devices: <none>
Если вывод выглядит примерно так (обратите внимание на (F) и [2/1]) - это значит, что массив не собран и не работает. (F) - обозначает пометка массива как fail. [2/1] обозначает, что только один диск массива работает. Нужно удалить из массива сбойные разделы и попробовать добавить их снова:
~# mdadm /dev/md1 -r /dev/sda3
mdadm: hot removed /dev/sda3 from /dev/md1
~# mdadm /dev/md0 -r /dev/sda2
mdadm: hot removed /dev/sda3 from /dev/md0
~# mdadm /dev/md2 -r /dev/sda4
mdadm: hot removed /dev/sda3 from /dev/md2
Добавляем:
~# mdadm /dev/md0 -a /dev/sda2
Мы можем увидеть несколько ошибок и среди них
mdadm: To make this a spare, use "mdadm --zero-superblock /dev/sda2" first.
Выполняем mdadm --zero-superblock /dev/sda2 и повторяем mdadm /dev/md0 -a /dev/sda2 для каждого удаляемого выше раздела. Проверим добавились ли разделы в массив:
~# cat /proc/mdstat
Personalities : [raid1] [raid0] [raid6] [raid5] [raid4]
md1 : active raid1 sda3[2] sdb3[0]
 7999476 blocks super 1.2 [2/1] [U_]
 resync=DELAYED

md2 : active raid1 sda4[2] sdb4[0]
1456634744 blocks super 1.2 [2/1] [U_]
[>....................] recovery = 0.1% (2332928/1456634744) finish=365.5min speed=66306K/sec
md0 : active raid1 sda2[2] sdb2[0]

499700 blocks super 1.2 [2/2] [UU]

unused devices: <none>
Значит RAID собирается нормально. Если на одном из этапов возникла ошибка, то стоит попробовать сначала пересоздать всю таблицу разделов, возможно её что-то покрошило. Если даже после этого RAID не собирается, то нужно проверить жёсткие диски.

4. Проблемы HDD

Не загружается сервер? Не собирается RAID? Проверим диски! Конкретная ситуация - RAID на сервере не собирается. Разделы диска sda помечены как сбойные. Нужно проверить состояние s.m.a.r.t.  этого диска.

smartctl -a /dev/sda

Из всего вывода нас интересует только серийный номер диска и таблица s.m.a.r.t :
Model Family: Seagate Barracuda LP
Device Model: ST31500541AS
Serial Number: 5XW2PTK4
Из таблицы интересуют только показатели, связанные с bad blocks:
5 Reallocated_Sector_Ct   0x0033   100   100   036    Pre-fail  Always       -       23
198 Offline_Uncorrectable   0x0010   100   100   000    Old_age   Offline      -       15
Если показатели в последнем столбце отличнны от 0, это признак нарушения поверхности диска и он подлежит замене. Если значения равны нулю, но диск в RAID добавить не удаётся (или не удаётся смонтировать, в случае с шаблоном без RAID), то нужно выполнить проверку диска на badblocks. Процедура потребует времени - от 3  до 6 часов.
~# badblocks -v /dev/sda
Checking blocks 0 to 1465138583
Checking for bad blocks (read-only test): 0.01% done, 0:02 elapsed. (0/0/0 errors)
Если во время проверки появились ошибки залогируйте их где-нибудь для передачи в техподдержку для замены диска.

5. Сброс правил firewall

Случайно сохранили некорректные правила iptables и установили на автозагрузку? Вам нужно примонтировать вашу файловую систему (раздел 1) и исправить/удалить правила из автозагрузки. Путь до файла будет другой: файл бывший /etc/rc.local будет /mnt/etc/rc.local

6. Доступ к данным

Нужно просто снять бекапы? Выполняйте все действия из раздела 1. После этого Вы можете подключиться к серверу по sftp любым клиентом, например WinSCP и забрать Ваши файлы. Они будут находиться в каталоге /mnt

7. Сброс пароля

Для того, что бы сбросить root пароль нужно выполнить все действия из раздела 1 и выполнить chroot на папке в которую примонтирована корневая файловая система, в данном случае это /mnt
root@servername:~# chroot /mnt
servername:/#
Теперь можно менять пароль root:
servername:/# passwd root
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully

Создание LVM на «горячей» машине

Автор: Артем Авдонин

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

fdisk /dev/sda, где /dev/sda — диск на котором мы создаём раздел.

Жмём n для создания нового раздела. enter

Жмём p, что бы создать физический раздел. В случае, если на диске ещё нет разделов, то он по умолчанию станет первым, или предложит выбрать цифру.

Далее объявляем раздел LVM. Для этого жмём t, указываем номер раздела и вводим id lvm. Это 8e. Жмём w — записать изменения на диск.

Проделываем подобные операции со всеми дисками, которые планируется добавить в LVM массив. Что бы проверить успешность действий выше можно ввести команду:

fdisk -l /dev/sda

В выводе мы увидим раздел с меткой LVM.

Теперь нужно создать физические разделы на LVM. Для этого воспользуемся командой:

pvcreate /dev/sda4 (в моём случае sda4) и для остальных дисков так же.

Ну и теперь объединяем их в один логический раздел:

vgcreate vg0 /dev/sda4 /dev/sdb1 (тут указываются все разделы, которые нужно объединить в один)

Далее нужно создать том на логическом разделе командой lvcreate:

lvcreate -L2G -nlogvol1 vg0 (где logvol1 метка тома)

Для монтирования LVM используются следующие конструкции, изменённые для конкретного случая:

mkreiserfs /dev/vg0/logvol1 — создаётся файловая система

И монтируем её

mount -t reiserfs /dev/vg0/logvol1 /mnt/lv1

Как заставить работать apf-firewall на ядре версии 3.x

Установил apf-firewall на один из серверов, столкнулся с проблемой. При запуске фаервола получил ошибку:

Kernel version not equal to 2.4.x or 2.6.x, aborting.

Фаервол не запустился и правила в iptables не добавились. Путём долгого гуления выяснилось что в коде скрипта стоит проверка версии ядра и на ядрах отличных от 2.4.х и 2.6.х apf отказывается работать. Обойти данное досадное недоразумение, как оказалось, достаточно просто. В файле /etc/apf-firewall/internals/functions.apf находим строку 68 и приводим условие к такому виду:

elif [ "$KREL" == "3.2" ]; then

MEXT="ko"

Где 3.2 ваша версия ядра. Версию ядра можно узнать выполнив:

# uname -a

После этих изменений apf запустился без проблем и правила добавились в iptables. Нормальная работа apf проверена на версии ядра 3.2.х и по информации в интернете 3.0.х. Решение вроде простое, но найти эту информацию оказалось довольно трудно. Поэтому сделал эту запись, возможно кому-то поможет.

Создание установочной флешки Windows 7 из под Linux.

Несколько способов создать загрузочную флешку Windows 7 из под linux.

Способ первый:

Командой fdisk -l определяем флешку. Затем с помощью dd записываем iso образ c windows на флешку:

# dd if=/home/user/windows7.iso of=/dev/sdX

Где /dev/sdX — флешка. Теперь вот здесь качаешь и по инструкции устанавливаешь утилиту ms-sys, которая пропишет правильную MBR для нашей флешки.

Установка простая:

2. Installation

---------------

Step 1, unpack the archive:

tar -xzvf ms-sys*.tgz

Step 2, compile:

cd ms-sys

make

Step 3, become root and install

su (and give password)

make install

Думаю здесь всё понятно. Затем выполняем:

# ms-sys -7 /dev/sdX

Загружаемся с флешки и устанавливаем windows.

Способ второй:

С помощью unetbootin. Сразу скажу, что не знаю насколько работает этот способ. У меня изначально не сложились отношения с unetbootin, на мой взгляд слишком сырая программа, ИМХО. Но многим нравится.

Для начала нужно отформатировать флешку в ntfs. Проверьте чтобы флешка была отмонтирована. Если это не так, то отмонтируйте командой umount. Форматируем:

# mkfs.ntfs /dev/sdX

Затем устанавливаем unetbootin.

# apt-get install unetbootin

Запускаем. Выглядит она вот так:

Снимок экрана от 2013-10-20 10:17:58

Выбираем образ, ваш носитель(/dev/sdX) и нажимаем «ОК». После создания флешки, загружаемся с неё и устанавливаем windows.

Способ третий:

На мой взгляд самый лучший и простой способ. С помощью утилиты winusb. Плюс этой утилиты в том что на флешку она ставит загрузчик grub, который отлично загружается практически на всём возможном железе. И уже grub запускает установщик windows. Установка програмы очень проста:

# add-apt-repository ppa:colingille/freshlight

# apt-get update

# apt-get install winusb

А интерфейс ещё проще чем установка.

Снимок экрана от 2013-10-20 10:19:14

Выбираете либо iso образ, либо диск в приводе. Выделяете вашу флешку. Затем жмете кнопку install. Загружаетесь с флешки, устанавливаете windows.

Вот три простейших способа создать загрузочную флешку windows 7 из под Linux.

Ранее Ctrl + ↓