ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2

ANTICHAT — форум по информационной безопасности, OSINT и технологиям

ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию. Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club, и теперь снова доступен на новом адресе — forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
Вернуться   Форум АНТИЧАТ > Безопасность и Уязвимости > Администрирование > *nix системы
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

HOWTO. Создание виртуальных серверов. Gentoo + OpenVZ
  #1  
Старый 05.12.2008, 13:21
neval
Moderator - Level 7
Регистрация: 13.12.2006
Сообщений: 531
Провел на форуме:
2127116

Репутация: 383


По умолчанию HOWTO. Создание виртуальных серверов. Gentoo + OpenVZ

В этом примере я не буду рассматривать другие ОС. По вопросам для других операционных систем обращайтесь к соответствующей документации.

Подразумевается, что на вашем сервере уже установлена ОС Gentoo Linux.

Подробнее об установке:
http://www.gentoo.org/doc/ru/handbook/handbook-x86.xml (32 битная система)
http://www.gentoo.org/doc/ru/handbook/handbook-amd64.xml (64 битная система)
Общие вопросы: http://www.gentoo.org/doc/ru/


В данном случае будет рассмотрен пример, когда у вас есть только 1 внешний IP адрес. В этом случае будет использоваться NAT.


Для начала обновим дерево портежей.

Код:
emerge --sync
Скачиваем исходники ядра openvz

Код:
emerge openvz-sources
Переходим в директория с исходниками
(XXX - здесь будет ваша версия ядра. Используйте ls /usr/src для уточнения)

Код:
cd /usr/src/linux-2.X.X-openvz-XXX.XXX

Запускаем конфигурацию ядра

Код:
make menuconfig

Далее будут указаны только ОСНОВНЫЕ параметры, которые я добавил на своем сервере.

Часть информации о параметрах ядра на русском языке:
http://wiki.kryukov.biz/wiki/Параметры_ядра_Linux

PHP код:
Loadable module support --> 

    [*]   
Automatic kernel module loading 



Networking 
-->

     
Networking options -->

         <*> 
Packet socket  
         
<*> Unix domain sockets 
        
[*]  networking 
        
[*]   IPadvanced router

        
[*] Network packet filtering (replaces ipchains)  --->
            
            
Core Netfilter Configuration  ---> 

                <*> 
Netfilter Xtables support (required for ip_tables)

            
IPNetfilter Configuration  --->
                 <
MConnection tracking (required for masq/NAT)
                 <
MIP tables support (required for filtering/masq/NAT)
                 <
M>   Packet filtering 
                 
<M>   Full NAT
                 
<M>     MASQUERADE target support     

OpenVZ  
--->

    [*] 
Virtual Environment support
    
<M>   VE calls interface
    <
MVE network device
    
<MVirtual ethernet device 
    
<MVE device 
    
[*] VE netfiltering 
    
<MVE watchdog module 
    
<MCheckpointing restoring Virtual Environments 
КоНПЕлируем ) ядро и устанавливаем модули

Код:
make && make modules_install

Копируем образ ядра в директорию загрузчика (на примере GRUB)

Код:
cp arch/x86_64(x86 для 32-битных)/boot/bzImage /boot/kernel-openvz
Добавим в конфиг загрузчика

Код:
nano /boot/grub/grub.conf
Более подробно про распознование grub`ом дисков и прочее читайте в handbook, раздел "Настройка начального загрузчика"

Также сделаем следующее.
Вполне возможно, что в вашем ядре чего-нибудь будет не хватать (как обычно бывает))), и система выдаст cernel panic
Это не проблема, если есть прямой доступ к серверу. Перезагрузили -> выбрали предыдущее ядро -> исправили ошибки-> перезагрузили.
А если сервер недоступен - придется тревожить саппорт, который не всегда есть когда нужен.

В этом случае укажем в grub.conf опцию panic=5, равно как и пропишем savedefault
Теперь, если при загрузке нашего нового ядра возникнет kernel panic - система перезагрузится через 5 секунд с преждним, работающим ядром

PHP код:
default saved
timeout 10

title Gentoo Linux Kernel 2.6.25
-7
root 
(hd0,0)
kernel /boot/2.6.25-gentoo-r7 root=/dev/sda3 // Наше старое ядро
savedefault

title Gentoo Linux OpenVZ
root 
(hd0,0)
kernel /boot/kernel-openvz panic=5 root=/dev/sda3  // Наше openvz ядро
savedefault 0 

Перезагружаемся

Код:
reboot
 
Ответить с цитированием

  #2  
Старый 05.12.2008, 13:21
neval
Moderator - Level 7
Регистрация: 13.12.2006
Сообщений: 531
Провел на форуме:
2127116

Репутация: 383


По умолчанию

Если все сделано верно, то вы должны загрузиться с новым ядром (приверяем: uname -s)

После этого продолжаем установку


Устанавливаем vzctl

Код:
emerge vzctl


Добавляем vz в автозагрузку

Код:
rc-update add vz default
Запускаем vz

Код:
/etc/init.d/vz start


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

Фактически, все виртуальные сервера хранятся в директории /vz/private


Создаем директорию для нашей машины

Код:
mkdir /vz/private/100
Распаковываем туда наш stage3
(берем здесь http://www.gentoo.org/main/en/mirrors.xml каталог /releases/amd64(или x86)/2008.0/stages/stage3-amd64-2008.0.tar.bz2 или тот, что остался от установки системы)

Код:
tar -xjf stage3-i686-2008.0_beta2.tar.bz2 -C /vz/private/100
Создаем файл конфигурации ...

Код:
vzctl set 100 --applyconfig vps.basic --save

..и правим его

nano /etc/vz/conf/100.conf, добавив в конце файла
PHP код:
OSTEMPLATE="gentoo" 
IP_ADDRESS="192.168.0.101"
HOSTNAME="test.server" 
Заменяем mtab символьной ссылкой на /proc/mounts

Код:
rm -f /vz/private/100/etc/mtab
ln -s /proc/mounts /vz/private/100/etc/mtab


При загрузке нам нужен только /proc

Код:
echo "proc /proc proc defaults 0 0" > /vz/private/100/etc/fstab

Правим /vz/private/100/etc/inittab. Закоментируем строки наших консолей

PHP код:
#c1:12345:respawn:/sbin/agetty 38400 tty1 linux
#c2:2345:respawn:/sbin/agetty 38400 tty2 linux
#c3:2345:respawn:/sbin/agetty 38400 tty3 linux
#c4:2345:respawn:/sbin/agetty 38400 tty4 linux
#c5:2345:respawn:/sbin/agetty 38400 tty5 linux
#c6:2345:respawn:/sbin/agetty 38400 tty6 linux 

Правим /vz/private/100/etc/shadow. Заменяем пароль root на ! , что не позволит использовать учетную запись.
Позже его можно сменить командой vzctl set 100 --userpasswd rootassword

PHP код:
root:!:10071:0::::: 

Удаляем checkroot и consolefont

Код:
rm /vz/private/100/etc/runlevels/boot/checkroot
rm /vz/private/100/etc/runlevels/boot/consolefont


Правим /vz/private/100/sbin/rc. Закоментируем строку

PHP код:
# try mount -n ${mntcmd:--t sysfs sysfs /sys -o noexec,nosuid,nodev} 
Добавляем в /vz/private/100/etc/make.conf строку

PHP код:
CONFIG_PROTECT = /sbin/rc 

В файле /vz/private/100/etc/conf.d/rc находим RC_DEVICES= и указываем значение

PHP код:
RC_DEVICES="static" 

Выходим из директории vz если вы там

Код:
cd /


Запускаем наш сервер

Код:
vzctl start 100
Смотрим его в списке


Код:
vzlist

Все в порядке? Заходим на него

Код:
vzctl enter 100
vzctl enter 100


Смотрим vzctl --help для вариантов использования команды



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

Создадим директорию для портежей

Код:
mkdir -p /vz/root/100/usr/portage
И монтируем туда портажи с нашего сервера

Код:
mount -o bind /usr/portage /vz/root/100/usr/portage
и каталог с исходниками

Код:
mount -n -o bind /usr/portage/distfiles /vz/root/100/usr/portage/distfiles

Теперь установка пакетов возможно через emerge <пакет>



Если все работает - переходим к реализации "вывода в мир"


Устанавливаем на основной сервер iptables


Код:
emerge iptables

Разрешаем ip форвардинг

Код:
echo 1 > /proc/sys/net/ipv4/ip_forward
Задаем правило

Код:
 iptables -t nat -A POSTROUTING -s 192.168.0.101 -o <внешняя карта сервера> -j SNAT --to <внешний адрес сервера>
Теперь виртуальная машина будет выходить в мир через наш НАТ

Сохраняем параметры и добавляем iptables в автозагрузку


Код:
/etc/init.d/iptables save
rc-update add iptables default

Если где-либо описался сильно не пинать )

Полезные ресурсы:
wiki.openvz.org
gentoo.org

Последний раз редактировалось neval; 20.05.2009 в 14:23..
 
Ответить с цитированием

  #3  
Старый 05.12.2008, 13:42
neval
Moderator - Level 7
Регистрация: 13.12.2006
Сообщений: 531
Провел на форуме:
2127116

Репутация: 383


По умолчанию

PHP код:
VEID        NPROC    STATUS      IP_ADDR            HOSTNAME                        
100         14            running     XX
.XX.XX.XX       -----------.ru       
110         25            running     XX
.XX.XX.XX       -----------.ru            
200         44            running     XX
.XX.XX.XX       -----------.ru                 
300         26            running     XX
.XX.XX.XX       -----------.ru                         
400         20            running     XX
.XX.XX.XX       -----------.ru 

Значит что то не то делаешь

ВМ стартуют? Работают?
 
Ответить с цитированием

  #4  
Старый 20.05.2009, 10:24
MaSTeR GэN
Участник форума
Регистрация: 23.05.2008
Сообщений: 121
Провел на форуме:
305110

Репутация: 133
Отправить сообщение для MaSTeR GэN с помощью ICQ
По умолчанию

Интересная статья ))автору + )
 
Ответить с цитированием

  #5  
Старый 20.05.2009, 12:18
sedoy_xxx
Участник форума
Регистрация: 05.07.2006
Сообщений: 285
Провел на форуме:
3295822

Репутация: 117
По умолчанию

ТС поправь Kernel, а так вполне неплохо - молодец!
 
Ответить с цитированием

  #6  
Старый 20.05.2009, 14:24
neval
Moderator - Level 7
Регистрация: 13.12.2006
Сообщений: 531
Провел на форуме:
2127116

Репутация: 383


По умолчанию

Цитата:
Сообщение от sedoy_xxx  
ТС поправь Kernel, а так вполне неплохо - молодец!
???
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Создание виртуальных файловых систем в Linux _GaLs_ *nix 0 20.11.2006 20:05



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ