Теперь можно создать виртуальные машины - все вроде просто, но есть 2 важных вопроса: доступ виртуальной машины в сеть и nameserver для вашей виртуальной машины.
Для решения первого вопроса я использую ferm - замечательная надстройка над iptables, для установки необходимо выполнить следующую команду, а так же ответить положительно на вопрос о включении блокировки всего за исключением ssh.
- apt-get install ferm
Собственно теперь самая ответственная и важная часть - это написание правил для ferm. Сначала нужно определиться с поставленной задачей чего мы хотим от виртуального компьютера: а мы хотим на 92.168.11.107 видеть http и ssh сервер, реальный компьютер будет содержать собственный nameserver, а все виртуальные будут его использовать для получения ip адреса по DNS имени сервера (к этому мы вернемся гораздо позднее). Вот пример такой конфигурации:
- def $INTRUDER = 192.168.11.107;
- table filter {
- chain INPUT {
- policy DROP;
- # connection tracking
- mod state state INVALID DROP;
- mod state state (ESTABLISHED RELATED) ACCEPT;
- # allow local packages
- interface lo ACCEPT;
- # allow SSH connections
- proto tcp dport ssh ACCEPT;
- ### access from virtual computer to local nameserver
- interface venet0 proto (tcp udp) dport 53 ACCEPT;
- }
- chain OUTPUT {
- policy ACCEPT;
- # connection tracking
- #mod state state INVALID DROP;
- mod state state (ESTABLISHED RELATED) ACCEPT;
- }
- chain FORWARD {
- policy DROP;
- # connection tracking
- mod state state INVALID DROP;
- mod state state (ESTABLISHED RELATED) ACCEPT;
- ### access from virtual computer to internet
- interface venet0 outerface eth0 ACCEPT;
- ### access from internet to specific virtual ports
- outerface venet0 daddr $INTRUDER proto tcp dport (ssh http) ACCEPT;
- }
- }
Перезапускаем ferm:
- /etc/init.d/ferm restart
Не забываем добавить строчку в /etc/sysctl.conf:
- net.ipv4.ip_forward=1
И запускаем команду:
- sysctl -p
Создаем собственно виртуальную машину (обратите внимание, что в качестве nameserver мы временно используем 192.168.11.1, в принципе подойдет любой nameserver в том числе и 8.8.8.8 от Google), запускаем и наконец заходим на нее под правами администратора:
- vzctl create 101 --ostemplate debian-5.0-i386-minimal
- vzctl set 101 --onboot yes --save
- vzctl set 101 --hostname intruder --save
- vzctl set 101 --nameserver 192.168.11.1 --save
- vzctl set 101 --ipadd 192.168.11.101 --save
- vzctl start 101
- vzctl enter 101
- su -
На этом этапе наш виртуальный компьютер должен без нареканий выполнять команду:
- arp yandex.ru

0 коммент.:
Отправить комментарий