Поднятие IPv6 сетевого интерфейса на Debian/Ubuntu в облачном сервере компании Selectel

Пусть в информации о сервере даны следующие параметры IPv6 сети

Доступный диапазон IPv6-адресов: 2a00:ab00:107:46:182:24:54:0000 — 2a00:ab00:107:46:182:24:54:FFFF

Маска: /48

Шлюз: 2a00:ab00:107::1

Тогда в консоли надо выполнить следующее:

# ip -6 addr add 2a00:ab00:107:46:182:24:54:1/48 dev eth0
# ip -6 route add ::/0 via 2a00:ab00:107::1 dev eth0


Как восстановить(сбросить) root(postgres) пароль для PostrgeSQL в Debian(Ubuntu)

Случалось ли вам забывать root-пароль от PostgreSQL-сервера? Если это произошло, вам необходимо сделать следующее(для Debian или Ubuntu, другие дистрибутивы Linux отличаются разве что расположением конфигов и скриптов запуска)
Continue reading


Простой шаблон конфига NDS-сервера BIND в Linux(Debian, Ubuntu)

Запись в списке поддерживаемых зон

zone "domain.ru." {
    type master;
    file "/etc/bind/domain.ru";
};

Пример файла зоны

 

$TTL 1d
@			IN SOA	ns domain (
			    2013030701; serial
		  	    1h	; refresh
			    1h	; retry
			    4w	; expire
			    30m	; minimum
		        )
			NS	ns1.domain.ru.
			NS	ns2.domain.ru.
@			A	89.108.120.42
 
www			CNAME domain.ru.
@			IN MX 10 mx.yandex.ru.

Скрипт, автоматизирующий создание виртуально хоста apache, сборку PHP как CGI+suexec и создание файла зоны DNS.

В статье установка нескольких версий PHP на один сервер (с помощью CGI и suexec) рассмотрена сборка и установка PHP в качестве CGI+suexec. Настало время объединить всё это в один скрипт, который

  1. Создаст нужные папки и симлинки
  2. Соберёт PHP из исходников
  3. Настроит виртуальный хост Apache, для работы с этим доменом
  4. Создаст файл зоны DNS для Bind

Админу остаётся только

  1. Обработать скрипт напильником для работы на своём сервере
  2. Создать пользователя, от которого будет запускаться php-скрипт.
  3. Запустить скрипт, исходники которого даны ниже в формате
    ./build_vh.sh {Имя домена} {Имя пользователя} {Алиас домена для тестирования}

 

Скачать исходник


Простой шлюз на iptables для раздачи интернета с модемного соединения (ppp0) в Linux(Debian и Ubuntu).

В данной статье рассмотрен пример скрипта iptables для организации шлюза. Должен признать, что для организации совсем простого выхода в интернет через компьютер на Linux, подключенный к интернету через модемное соединение (например 3G модем) она содержит много лишнего и поначалу может запутать. Поэтому опишу совсем простой случай.
Continue reading


Использование утилиты route в Linux(Dedian, Ubuntu и др.)

Таблица статичной маршрутизации — список правил, указывающий куда нужно отправить пакеты с определённым IP-адресом вида

Пункт назначения Транзит
IP Маска подсети Шлюз Метрика Сетевой интерфейс
192.168.0.1 255.255.255.0 * 0 eth0
default 192.168.0.1 1 eth0

Continue reading


Настройка доступа к сети из гостевой Windows XP через TUN/TAP интерфейс для виртуальной машины QEMU в Debian/Ubuntu Linux.

Дано

  1. Хост-машина с Debian Squeeze и следующими сетевыми настройками

    $ sudo ifconfig
    eth0      Link encap:Ethernet  HWaddr 00:1d:72:1c:d1:b9
              inet addr:192.168.0.64  Bcast:192.168.0.255  Mask:255.255.255.0
              inet6 addr: fe80::21d:72ff:fe1c:d1b9/64 Scope:Link
              UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
              RX packets:3392 errors:0 dropped:0 overruns:0 frame:0
              TX packets:3491 errors:0 dropped:0 overruns:0 carrier:0
              collisions:0 txqueuelen:1000
              RX bytes:2516375 (2.3 MiB)  TX bytes:634302 (619.4 KiB)
              Interrupt:16
    
    lo        Link encap:Local Loopback
              inet addr:127.0.0.1  Mask:255.0.0.0
              inet6 addr: ::1/128 Scope:Host
              UP LOOPBACK RUNNING  MTU:16436  Metric:1
              RX packets:3515 errors:0 dropped:0 overruns:0 frame:0
              TX packets:3515 errors:0 dropped:0 overruns:0 carrier:0
              collisions:0 txqueuelen:0
              RX bytes:992323 (969.0 KiB)  TX bytes:992323 (969.0 KiB)
  2. Установленная и активированная на хост-машине в виртуальной машине в qemu Windows XP Home Edition со следующими пераметрами запуска:

    /usr/bin/qemu \
        -monitor stdio \
        -soundhw es1370 \
        -m 192 \
        -localtime \
        -cdrom /home/r-asian/qemu/vpn-client.iso \
        -hda /home/r-asian/qemu/192.168.0.32.img \
        -boot c \
        -net nic,vlan=0,macaddr=00:9f:a5:71:b7:b5,model=rtl8139

Требуется

Настроить из виртуальной машины подключение в локальной сети, в которой находится хост-машина

Continue reading


Обновление ОС(Debian Lenny до Debian Squeeze)

Обновление системы в Debian довольно просто и безболезненно

Прописываем пути до репозитория

В файле cat /etc/apt/sources.list пропишем

deb http://ftp2.debian.org.ua/debian/ squeeze main non-free contrib
deb-src http://ftp2.debian.org.ua/debian/ squeeze main non-free contrib
deb http://ftp2.debian.org.ua/debian-security/ squeeze/updates main contrib non-free
deb-src http://ftp2.debian.org.ua/debian-security/ squeeze/updates main contrib non-free

Обновляем список пакетов

# apt-get update

Запускаем обновление

# apt-get dist-upgrade

Свежеустановленный, девственный Debian Lenny, предложит скачать что-то около 170Мб обновлений. Соглашаемся.

После скачивания он начнёт их устанавливать. Нам остаётся время от времени отвечать умолчально на вопросы вида «у этой программы оставить старый конфиг или заменить новым»?


Установка QEMU на Debian. Решение проблемы с сетью. Подключение USB.

Про установку QEMU было написано чуть ранее

Создание образа жесткого диска

Современные вычислительные машины, даже виртуальные не могут существовать без жесткого диска. Поэтому создать образ HD совершенно необходимо.

$ qemu-img create 192.168.0.32.img 2048M
Formatting '192.168.0.32.img', fmt=raw, size=2097152 kB

Данная команда создаст «сырой» образ жеского диска размером 2 Гигабайта. Для голой оси без кедов или гнома этого должно хватить.

Подготовка хост-машины

Работа с USB

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

Выберем свободное usb-гнездо для истязания и воткнём туда флешку.

Узнаем его адрес

#dmesg|tail
...
usb 5-1: new high speed USB device using ehci_hcd and address 10
...

Это 10. Теперь, зная адрес, узнаем его ID

# lsusb
Bus 005 Device 010: ID 3538:0042 Power Quotient International Co., Ltd Cool Drive U339 Flash Disk
Bus 005 Device 006: ID 1307:0330 Transcend Information, Inc.
Bus 005 Device 001: ID 0000:0000
Bus 004 Device 001: ID 0000:0000
Bus 003 Device 001: ID 0000:0000
Bus 002 Device 004: ID 04e8:3292 Samsung Electronics Co., Ltd
Bus 002 Device 001: ID 0000:0000
Bus 001 Device 005: ID 12d1:1003 Huawei Technologies Co., Ltd. E220 HSDPA Modem
Bus 001 Device 001: ID 0000:0000

Для адреса 10 ID=3538:0042

Находим его среди /proc/bus/usbю У меня он нашелся тут /proc/bus/usb/005/010. Брутально ставим ему права 777

chmod 777 /proc/bus/usb/005/010

Не менее брутально обеспечиваем выставление прав при загрузке, прописав в эту строчку в /etc/rc.local

Создание сетевого моста

Тут расписано более подробно. Ниже некий готовый и упрощенный алгоритм.

Установим необходимые для работы пакеты

#apt-get install bridge-utils vde2

Поправим файл /etc/network/interfaces чтобы при старте системы создавался необходимый мост

auto lo
iface lo inet loopback

auto eth0
iface eth0 inet static
address 0.0.0.0

auto br0
iface br0 inet static
address 192.168.0.1
netmask 255.255.255.0
bridge_ports eth0
bridge_fd 9
bridge_hello 2
bridge_maxage 12
bridge_stp off

При загрузке системы на сетевом устройстве eth0 будет создаваться мост с IP 192.168.0.1

Если адреса раздаются по DHCP, то /etc/network/interfaces будет выглядеть так:

auto lo
iface lo inet loopback

auto eth0
iface eth0 inet static
address 0.0.0.0

auto br0
iface br0 inet dhcp
bridge_ports eth0
bridge_fd 9
bridge_hello 2
bridge_maxage 12
bridge_stp off

Добавление TAP-интерфейса

/usr/sbin/tapup

#!/bin/sh

#Script for creating new tap interface and appending it to the existing bridge
#Usage: tapup [ UID_of_interface_owner ]
#(c) Evgeniy Shumilov (corpse@permlug.org)

if [ -n "$1" ]; then

if [ -n "$2" ]; then
iface=$( vde_tunctl -b -u $2 )
else
iface=$( vde_tunctl -b )
fi

chown root:qemu /dev/net/tun
/sbin/ifconfig $iface 0.0.0.0 promisc up
brctl addif $1 $iface
echo $iface
sleep 2

fi

/usr/sbin/tapdown

#!/bin/sh

#Script to negate tap interface
#Usage: tapdown

if [ -n "$1" ]; then
vde_tunctl -d $1
fi

Установка прав, создание групп

#addgroup qemu
#adduser $USER qemu
#cd /usr/sbin/
#chown root:qemu tapup tapdown
#chmod 750 tapup tapdown
#chmod +s tapup tapdown

/etc/sudoers

%qemu ALL=NOPASSWD:/usr/sbin/tapup *
%qemu ALL=NOPASSWD:/usr/sbin/tapdown *

/etc/qemu-ifup

#!/bin/sh

Установочный скрипт

Чтобы каждый раз не набирать все параметры запуска qemu создам вспомогательный скрипт install_deb.sh следующего содержания:

#!/bin/sh
IFACE = $(sudo /usr/sbin/tapup br0 $USER);
qemu \
    -localtime                    \
    -usb                          \
    -usbdevice   host:3538:0042   \
    -cpu         pentium3         \
    -M           pc               \
    -m           512              \
    -boot        d                \
    -net         nic              \
    -net         tap,ifname=$IFACE\
    -cdrom       /mnt/storage/iso/debian_lenny.iso \
    -hda         /mnt/storage2/qemu/hd/192.168.0.32.img
sudo /usr/sbin/tapdown $IFACE

Разберём параметры

  • -cdrom /mnt/storage/iso/debian_lenny.iso — в качестве CD-привода будет использоваться образ Debian Etch, который случайно у меня завалялся.
  • -boot d — загружаться с CDROM
  • -hda /mnt/storage2/qemu/hd/192.168.0.64.img — использовать этот обрас в качестве жесткого диска
  • -k ru — язык клавиатуры — русский
  • -localtime — использовать время с часов хост-машины
  • -usb -usbdevice host:3538:0042 — активизировать usb-драйвер и подцепить его к host:3538:0042 usb-устройству хост-машины
  • -cpu pentium3 — тип процессора эмулируемой машины — Pentium3
  • -M pc — системная архитектура — PC
  • -m 512 — выделить под ОЗУ эмулируемой машины 512 мегабайи физической памяти
  • -net tap,ifname=$IFACE — создаём виртуальный сетевой интерфейс и подключаем к TAP-интерфейсу, созданному скриптом tapup

Установка

В установке на QEMU отличий мало. Единственное что, при установке сети я указал 192.168.0.32(DNS — 83.149.19.125 — полюбившийся мне, шлюз — 192.168.0.1, уже настроенный). Установку проведём в самой минимальной конфигурации.

Установка Debian

Установка Debian

Запуск

Настройка после установки

Создание скрипта «первого запуска»

Для запуска этой виртуальной машины состряпаем ещё один вспомогательный скрипт, который отличается от установочного только устройством, с которого будет идти загрузка На «CD-приводе» оставим висеть тот же образ Debian-дистрибутива.

#!/bin/sh
IFACE = $(sudo /usr/sbin/tapup br0 $USER);
qemu \
    -localtime                    \
    -usb                          \
    -usbdevice   host:3538:0042   \
    -cpu         pentium3         \
    -M           pc               \
    -m           512              \
    -boot        d                \
    -net         nic              \
    -net         tap,ifname=$IFACE\
    -cdrom       /mnt/storage/iso/debian_lenny.iso \
    -hda         /mnt/storage2/qemu/hd/192.168.0.32.img
sudo /usr/sbin/tapdown $IFACE

Запускаем этот скрипт и дождаемся появления командной строки

Обновление списка пакетов

Поправим файл списка репозиториев /etc/apt/sources.list, чтобы наш свежеустановленный сервер получал пакеты из сети, раскомментировав следующие строчки (или добавив)

deb http://security.debian.org/ lenny/updates main contrib
deb-src http://security.debian.org/ lenny/updates main contrib
deb http://ftp.de.debian.org/debian lenny main

Обновим спсок пакетов

#apt-get update

Установка софта первой необходимости

Установка локали

#apt-get install locales-all

Установим ssh

#apt-get install ssh

Запускаем ssh-демона

#/etc/init.d/ssh restart

Выключам машину

#halt

Запуск виртуального сервера в безграфическом режиме демона

Для этого сформируем третий запускающий скрип, добавив параметры -nographic и -daemonize

#!/bin/sh
IFACE = $(sudo /usr/sbin/tapup br0 $USER);
qemu \
    -localtime                        \
    -usb                              \
    -usbdevice   host:3538:0042       \
    -cpu         pentium3             \
    -M           pc                   \
    -m           512                  \
    -boot        d                    \
    -net         nic                  \
    -net         tap,ifname=$IFACE    \
    -nographic                        \
    -daemonize                        \
    -cdrom       /mnt/storage/iso/debian_lenny.iso \
    -hda         /mnt/storage2/qemu/hd/192.168.0.32.img
sudo /usr/sbin/tapdown $IFACE

После загрузки системы, к ней можно подключиться по ssh c хост-машины. Да и с любой другой при определённых настройках файрвола ;-).

$ ssh 192.168.0.32
user@192.168.0.32's password:
Linux template 2.6.24-1-686 #1 SMP Sat Apr 19 00:37:55 UTC 2008 i686

The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
Last login: Sun Feb 21 01:00:32 2010 from 192.168.0.1
user@template:~$

Настройка

Скопирую получившийся образ жесткого диска в укромное место. Это у меня будет типа «шаблон» ;-)

Я собираюсь сделать на этой виртуальной машине локальный DNS, но это тема для отдельной большой статьи.

Установка и настройка локального DNS на основе bind

Полезные ссылки


OpenVZ(VPS) — использование

Просмотр состояния OpenVZ

Просмотр существующих VPS и их состояния

vzlist -a

Вход в shell VPS от **root**

vzctl enter <ID VPS>

Перезапуск VPS

vzctl restart <ID VPS>

Установка объёма оперативной памяти внутри VPS.

По умолчанию — 256М.

Выставляется в страницах. Страница, как правило 4096 байт. Можно уточнить shell-командой:

$echo $(getconf PAGE_SIZE)
4096

Например, чтобы выставить 512М, нужно прописать <Объём в мегабайтах>*1024*1024/<объём страницы> = 512*1024*1024/4096 = 131 072

vzctl set 77 --privvmpages 131072 --save

Установка выделенного дискового пространства.

выделеное:максимальное

vzctl set 77 --diskspace 3G:4G --save

Количество inodes

vzctl set 77 --diskinodes 300000:320000 --save

Назначение IP адреса.

vzctl set 77 --ipdel all --ipadd 192.168.1.27 --save

Назначение NDS-сервера.

vzctl set 77 --nameserver 127.0.0.1 --save

Установка на VPS шаблона операционной системы.

Делается в момент создания VPS при наличии шаблона ОС

vzctl create $1 --ostemplate debian-5.0-amd64-minimal