Темы урока

  • Межсетевой экран
  • Полная виртуализация, паравиртуализация и контейнерная виртуализация
  • Настройка контейнерной виртуализации OpenVZ
  • Виртуальные частные сети - SSH

Настройка межсетевого экрана IPTABLES/Netfilter

Инфа по IPTABLES:

iptables -L
Iptables -L --line-numbers  # посмотреть правила с нумерацией строк

3 цепочки IPTABLES:

INPUT - входящий траффик

FORWARD - транзитный траффик

OUTPUT - исходящий траффик

Установка базовой политики IPTABLES (POLICY):

Политика - это базовое правило по умолчанию, которое работает, если других правил нет.

iptables INPUT -P ACCEPT # разрешить весь входящий траффик
iptables INPUT -P DROP # запретить весь входящий траффик
iptables OUTPUT -P ACCEPT  # разрешить весь исходящий траффик
iptables FORWARD -P DROP  # запретить весь транзитный траффик

Удаление правил в IPTABLES - FLUSH:

Если в политике входящих/исходящих пакетов не прописано ALLOW, сервер вышибет из SSH сессии после этой команды.

iptables -F # убить вообще все правила, кроме базовых политик

Добавление (APPEND) правил в IPTABLES:

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

iptables -A INPUT -i lo -j ACCEPT # разрешить пакеты на входе в loopback интерфейс
iptables -A INPUT -i eth0 -j ACCEPT # разрешить пакеты на входе eth0
iptables -A INPUT -i ppp0 -j ACCEPT # разрешить пакеты на входе по модемному соединению

По статусу пакетов:

iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT # 
подгрузить модуль (-m) инспекции пакетов, разрешить пакеты на вход лишь 
со статусами ESTABLISHED и RELATED из уже установленных сессий. К новым 
пакетам (статус NEW) правило не применяется.

По портам:

iptables -A INPUT -p tcp --dport 22 -j ACCEPT # разрешить порт SSH, dport = "destination port", sport = "source port"
iptables -A INPUT -p tcp --dport 6881:6890 -j ACCEPT # разрешить группу TCP портов с 6881 по 6890

По IP адресам, подсетям, MAC-адресам:

iptables -A INPUT -s 192.168.0.4 -j ACCEPT # разрешить пакеты с одного IP
iptables -A INPUT -s 192.168.0.0/24 -j ACCEPT  # разрешить пакеты из подсети
iptables -A INPUT -s 192.168.0.0/255.255.255.0 -j ACCEPT # разрешить пакеты из подсети
iptables -A INPUT -s 192.168.0.4 -m mac --mac-source 00:50:8D:FD:E6:32 -j ACCEPT # фильтр по IP и по MAC

Комбинирование правил:

iptables -A INPUT -p tcp -s 192.168.0.0/24 --dport 22 -j ACCEPT # разрешить SSH только с выбранной подсети IP

Удаление правил:

iptables -D <chain-name> <line-number> | <rule>  # 
удалить правило с цепочке по номеру строки или правилу (правило должно 
четко соответствовать существующему)

Применение и сохранение правил в IPTABLES (CentOS):

sudo ./sbin/service iptables save

Применение и сохранение правил в IPTABLES (Ubuntu Server):

apt-get install iptables-persistent
iptables-save > /etc/iptables/rules

Настройка контейнерной виртуализации OpenVZ

Установка

wget -P /etc/yum.repos.d/  http://ftp.openvz.org/openvz.repo
rpm --import http://ftp.openvz.org/RPM-GPG-Key-OpenVZ

yum install vzctl vzquota ploop

Перезагрузить и проверить версию ядра:

uname -a
# Linux centos 2.6.32-042stab084.14

Создание контейнера

Создание контейнера по шаблону vps2g:

vzctl create 103 --ostemplate centos-6-x86_64 --config vps2g # template is taken from http://openvz.org/Download/template/precreated
vzctl set 103 --save --onboot yes # autostart container after host boot
vzctl set 103 --save --hostname centos.example.com # container OS hostname
vzctl set 103 --save --ipadd 192.168.1.31 # add IP for VENET NIC - venet0
vzctl set 103 --save --nameserver 208.67.220.220 --nameserver 208.67.222.222 # OpenDNS servers
vzctl set 103 --save --cpus 1 # set cpu cores number
vzctl set 103 --save --ram 0G:4G # RAM soft and hard limits
vzctl set 103 --save --swap 0G:4G # swap soft and hard limits
vzctl set 103 --save --diskspace 20G:22G # HDD size soft and hard limits
vzctl start 103 # start container
vzctl exec 103 passwd # execute command inside container to set root password

Миграция контейнера

vzmigrate -t -v --live <host IP> <CTID>

-t - display time statistics of migration
-v - verbose migration
--live - do migration without container shutdown

  • Нет меток