Зміна системної «locale» в Centos

Переходимо в диреторію

$ cd /etc/sysconfig

робимо резервну копію файлу, який будемо правити

$ cp i18n i18n.backup

Відкриваємо файл на редагування

$ nano i18n

Вносимо зміни

LANG=»uk_UA.UTF-8″
SYSFONT=»latarcyrheb-sun16″

Збережіть файл і перезавантажте систему.

Якщо ви не можете перезавантажити систему необхідно мати дозвіл на перезавантаження init.d

Інсталяція TrixBox XEN

Завантажуємо образ trixbox

# wget http://dfn.dl.sourceforge.net/project/asteriskathome/trixbox%20CE/trixbox%202.8/trixbox-2.8.0.4.iso

Як тільки образ ISO копіюється в систему, ми повинні підключити його там, де Apache  може прочитати його зміст. CentOS за умовчанням є DocumentRoot /var/www/html, так що
ми створюємо нову папку в цьому каталозі. Створюємо директорію для розміщення файлів інсталяції:

# mkdir /var/www/html/trixbox

# mount –oloop ./trixbox-2.6.2.1.iso /var/www/html/trixbox

Нам потрібно,  скопіювати файл Kickstart  з ISO, щоб ми могли змінити його.

cp /var/www/html/trixbox/isolinux/ks.cfg /var/www/html/

Правимо файл:

mcedit  /var/www/html/ks.cfg

Нам потрібно додати URL директивою, щоб Kickstart  знав, де можна взяти ISO файли.
url —url http://192.168.1.2/trixbox/

Замініть ІР адрес  192.168.1.2 з правильним IP вашого сервера.
В розділі %packages  ми повинні додати ядра Xen.

%packages

@Core

@Trixboxcore

kernel

kernel-xen

postfix

-sendmail

Потрібно закоментувати наступні рядки, щоб pygrub працював правильно в DomU.

#cp -f /var/trixbox_load/splash.xpm.gz /boot/grub

#cp -f /boot/grub/grub.conf /boot/grub/grub.conf.old

#sed -e «s/hiddenmenu/#hiddenmenu/»/boot/grub/grub.conf.old > /boot/grub/grub.conf

Приступаємо безпосередньо до встановлення TrixBox.

Потрібно скопіювати деякі файли з  ISO-образа, які будуть використовуватись  в сервері  DomU підчас інсталяції.

# cp /var/www/html/trixbox/images/xen/initrd.img /boot/initrd-xen-install-trixbox

# cp /var/www/html/trixbox/images/xen/vmlinuz /boot/vmlinuzxen-install-trixbox

Створення образа  диска
За цим посиланням, нам потрібно створити образ диска для наших серверів DomU.

В мене директорія з файлами образів розміщена /usr/virt

mkdir –p /usr/virt/trixbox

Тепер нам потрібно створити порожній образ диска. Наступні команди створять порожній
образ диску в  =/usr/virt/trixbox/trixbox.img в 40 Гб

dd  if=/dev/zero of=/usr/virt/trixbox/trixbox_40.img oflag=direct bs=1M seek=40960 count=1

Якщо ви хочете зарезервувати всі блоки даних, відразу ж, робимо наступне:

dd  if=/dev/zero of=/usr/virt/trixbox/trixbox.img oflag=direct bs=1M count=400960

Це займе деякий час.

Створення інсталяційного файла конфігурації  для Xen .
Створюємо файл /etc/xen /trixbox

# mcedit  /etc/xen/trixbox

kernel = «/boot/vmlinuz-xen-install-trixbox»

ramdisk = «/boot/initrd-xen-install-trixbox»

extra = «text ks=http://192.168.1.2/ks.cfg»

name = «trixbox»

memory = «1024»

disk = [ ‘tap:aio:/srv/xen/trixbox.img,xvda,w’, ]

vif = [ ‘bridge=xenbr0’, ]

vcpus=1

on_reboot = ‘destroy’

on_crash = ‘destroy’

Запуск установки

Щоб почати установку нашого Trixbox в Xen вводимо команду:

xm create –c trixbox

Якщо все піде  добре, ви повинні побачити вікно встановлення з вибором  часового поясу (рис. 1).

Welcome to trixbox

+———————+ Downloading kickstart file +——————+

|                                                                                                               |

| Unable to download the kickstart file.  Please modify the                   |

| kickstart parameter below or press Cancel to proceed as an                |

| interactive installation.                                                                          |

|                                                                                                                |

| http://192.168.10.111/ks.cfg________________________________ |

|                                                                                                                |

|            +—-+                      +———+                                                     |

|            | OK |                      | Cancel |                                                      |

|            +—-+                      +———+                                                     |

+———————————————————————————+

/ between elements  | selects | next screen

Welcome to trixbox

+——-+ Time Zone Selection +———-+

|                                                                |

| What time zone are you located in?      |

|                                                                |

| [* ] System clock uses UTC                    |

|                                                                |

|  America/Montevideo              ^            |

|  America/Montreal                  #            |

|  America/Montserrat               :             |

|  America/Nassau                     :             |

|  America/New_York               v            |

|      +—-+          +——+                         |

|      | OK |          | Back |                          |

|      +—-+          +——+                         |

+———————————————+

/ between elements   |  selects   |  next screen

Дальше піде встановлення Trixbox..

Система проінсталиться і виключиться, тоді робим наступне

cp /etc/xen/trixbox /etc/xen/trixbox.install

а сам файл /etc/xen/trixbox приводимо до такого виду:

name = «trixbox»

memory = «512»

disk = [ ‘tap:aio:/usr/virt/trixbox/trixbox.img,xvda,w’, ]

vif = [ ‘bridge=xenbr0’, ]

bootloader=»/usr/bin/pygrub»

vcpus=1

on_reboot = ‘restart’

on_crash = ‘restart’

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

xm create –c trixbox

В мене на етапі

[………..]

Running /var/trixbox_load/firstboot/91_pbxconfig_setup.sh…

[………..]

На одному з закордонних форумів написали, що на цьому етапі потрібно відключити мережу на основному сервері  і потім з консолі сервера знов стартувати систему

xm create –c trixbox

XEN in CentOS

Перед  початком становлення віртуальної машини проводимо наступне:

# yum update

Наступний  крок встановлення необхідного ПО:

# yum install kernel-xen xen httpd mod_ssl php-common php-gd php-mcrypt  php-mysql php-xml mysql mysql-server htop mc

По завершенні встановлення потрібно відредактувати  файл «menu.lst»  із директорії « /boot/grub/», це ми робимо з метою

# mcedit/boot/grub/menu.lst

Знаходимо рядок:

[…]

default=1

[…]

І міняємо до наступного вигляду

[…]

default=0

timeout=5

splashimage=(hd0,0)/grub/splash.xpm.gz

hiddenmenu

title CentOS (2.6.18-238.19.1.el5xen)

        root (hd0,0)

        kernel /xen.gz-2.6.18-238.19.1.el5

        module /vmlinuz-2.6.18-238.19.1.el5xen ro root=/dev/VolGroup00/LogVol00

        module /initrd-2.6.18-238.19.1.el5xen.img

[…]

 

Це дасть змогу  завантажуватись першим ядру XEN, після збереження всіх змін перезавантажуємо:

# shutdown –r now

Перевіряємо чи встановилось у нас нове ядро:

# uname -a

Linux asterion  2.6.18-238.19.1.el5xen #1 SMP Fri Jul 15 08:16:59 EDT2011 x86_64 x86_64 x86_64 GNU/Linux

Так перевіримо чи запустився сам XEN:

# xm list

Name                                      ID Mem(MiB) VCPUs State   Time(s)

Domain-0                                   0    13977     8 r——   9873.1

Ось перелік команд на управління віртуальними машинами і середовищем віртуалізації:

# service xend start          # запустити xend, якщо він ще не працює

# service xend stop          # зупинити xend, якщо він запущений

# service xend restart     # перезапустити xend, якщо він працює; інакше – запустити

# service xend status       # показати стан xend за допомогою коду завершення

 

Для того щоб подивитися довідку самої програми, введіть:
# хm help
# хm list - виводить інформацію про домени в форматі


name domid memory vcpus state cputime

Призначення полів:
name      Ім'я віртуальної машини.

domid      Номер домену, в якому виконується віртуальна машина.

memory      Об'єм пам'яті машини, в мегабайтах.

vcpus      Кількість віртуальних процесорів, які є у домену.

state      Стан домену опісиватся п'ятьма полями:


r - працює;

b - заблокований;

p - призупинено; 

s - зупинений; 

c - впав.


cputime      Сумарне процесорний час (у секундах), яке використовував домен.

Команда xm list також підтримує довгий формат виводу, з ключем-l. Ця команда виводить детальну інформацію про домени в форматі xend SXP.
Якщо ви хочете дізнатися, скільки вже працюють ваші домени, дайте команду:
# хm uptime
Доступ до консолі домену можна отримати за допомогою команди xm console. наприклад:
# хm console myVM

# xm create - запускає віртуальну машину на основі конфігураційного файлу
# xm pause - тимчасово зупиняє віртуальну машину
# xm unpause - запускає віртуальну машину після зупинки
# xm save - зберігає стан віртуальної машини
# xm restore - відновлює стан віртуальної машини
# xm reboot - перезавантажує віртуальну машину
# xm shutdown - вимикає віртуальну машину
# xentop - показує поточну завантаження всіх віртуальних машин
# xm dmesg - показує dmesg віртуальної машини
# xm delete - видаляє віртуальну машину
# xm destroy - примусово видаляє віртуальну машину

Більш детально можна прочитати по наступним посиланням:

xgu.ru

Засоби управління

Керівництво користувача Xen v3.0

Як заборонити створення символічних лінків в /tmp

FreeBSD: В графі «оption» /etc/fstab для розділу /tmp потрібно вказати:

rw,noexec,nosuid,nodev,nosymfollow

Також можна на /home поставити nodev. Якщо там не буде виконуваних то й noexec. На  /var теж можана поміняти nodev, noexec, а взагалі nodev скрізь корисний,  символьні лінки  ніде не потрібні.

Як оцінити величину трафіку і стан системи в динаміці для FreeBSD

Динаміка зміни параметрів:

netstat -w 1
iostat -w 1
vmstat -w 1
gstat

Стан буферів:

vmstat -z
netstat -m
netstat -Lan
netstat -s -p tcp

Як позбавиться від зростання висять FIN_WAIT_2 з’єднань під FreeBSD

Якщо використовується ipfw2 і зберегти стан правила, то від безперервного зростання з’єднань зі статусом FIN_WAIT_2 допомагає:

sysctl -w net.inet.ip.fw.dyn_keepalive=0

 

Заборона завантаження модулів ядра Linux

Capability Bounding діє на всі процеси, якщо якийсь із Capability-режимів заборонений через  /proc/sys/kernel/cap-bound, то використовувати дану можливість не зможе жоден процес, незалежно від його привілеїв.
Використовуючи даний режим можна блокувати для користувача root можливість  завантаження модулів ядра, зміни правил пакетного фільтра, використання raw-сокетів, зміни власника файлів, монтування розділів та інших системних дій.

Capability /proc/sys/kernel/cap-bound пов’язаного працює тільки для Linux-ядер до версії 2.6.25. Починаючи з ядра 2.6.25 припинена підтримка глобального загальносистемного Capability Bounding, маску можна вказувати з використанням системного виклику prctl тільки для окремих ниток (установка Capability Bounding для процесу, відбивається і на всіх його нащадків).

Переглянути поточний стан режиму можна командою:

cat /proc/sys/kernel/cap-bound

а для установки нового значення, можна використовувати команду:

echo значення > /proc/sys/kernel/cap-bound

Наприклад, встановивши режим CAP_SYS_MODULE (для установки потрібно очистити біт номер 16):

echo $((0xffffffff ^ (1 << 16))) > /proc/sys/kernel/cap-bound

або в шістнадцятковому вигляді:

echo 0xFFFEFFFF > /proc/sys/kernel/cap-bound

буде заблокована завантаження будь-яких модулів ядра.

Спроба завантажити або вивантажити модуль призведе до висновку помилки.
modprobe ide_cd

FATAL: Error inserting ide_cd (/lib/modules/2.6.18-194.3.1.el5/kernel/drivers/ide/ide-cd.ko): Operation not permitted
Список інших  Capability-режимів можна подивитися у файлі /usr/src/linux/include/linux/capability.h:

grep ‘#define CAP’ /usr/src/linux/include/linux/capability.h

 #define CAP_CHOWN            0
   #define CAP_DAC_OVERRIDE     1
   #define CAP_DAC_READ_SEARCH  2
   #define CAP_FOWNER           3
   #define CAP_FSETID           4
   #define CAP_KILL             5
   #define CAP_SETGID           6
   #define CAP_SETUID           7
   #define CAP_SETPCAP          8
   #define CAP_LINUX_IMMUTABLE  9
   #define CAP_NET_BIND_SERVICE 10
   #define CAP_NET_BROADCAST    11
   #define CAP_NET_ADMIN        12
   #define CAP_NET_RAW          13
   #define CAP_IPC_LOCK         14
   #define CAP_IPC_OWNER        15
   #define CAP_SYS_MODULE       16
   #define CAP_SYS_RAWIO        17
   #define CAP_SYS_CHROOT       18
   #define CAP_SYS_PTRACE       19
   #define CAP_SYS_PACCT        20
   #define CAP_SYS_ADMIN        21
   #define CAP_SYS_BOOT         22
   #define CAP_SYS_NICE         23
   #define CAP_SYS_RESOURCE     24
   #define CAP_SYS_TIME         25
   #define CAP_SYS_TTY_CONFIG   26
   #define CAP_MKNOD            27
   #define CAP_LEASE            28
   #define CAP_AUDIT_WRITE      29
   #define CAP_AUDIT_CONTROL    30
   #define CAP_SETFCAP	     31
   #define CAP_MAC_OVERRIDE     32
   #define CAP_MAC_ADMIN        33

Змінювати  /proc/sys/kernel/cap-bound потрібно з великою обережністю, так як установка невірного значення може привести до непрацездатності системи.Встановлений прапор вже не може бути змінений, тобто зловмисник не може записати 0xFFFFFFFF і скасувати установку маски 0xFFFEFFFF.

Для блокування завантаження модулів в новіших ядрах слід використовувати файл  /proc/sys/kernel/modules_disabled (для заборони завантаження модулів у нього достатньо записати 1).