Новости

Базова настройка для виходу в інтернет FreeBSD 10.2 в VirtualBox на Debian 8 / Kali 2.0 - Блог

Не так давно ми встановлювали FreeBSD в VirtualBox, а тепер прийшов час налаштувати нашу FreeBSD, дати гостьового хосту ім'я, підняти мережу і випустити віртуальну машину в інтернет, для того щоб можна було отримувати і встановлювати програмне забезпечення в неї.

Налаштування описані в даній статті працюють і в Debian, так як Kali побудована на Debian, і повністю дотримується стандартів розробки Debian. Тож почнемо.

Для початку розберемося трохи в мережевих налаштуваннях VirtualBox.

VirtualBox має кілька типів мережевих налаштувань підключення, найпростіша настройка, це мережевий міст, в якому віртуальна машина працює також як і всі комп'ютери в мережі.

Адаптер фізичного хоста, який вибирається в мережевих налаштуваннях VirtualBox, в цьому випадку виступає мостом між віртуальною і фізично мережею.

Режим моста підключається безпосередньо до пристрою яке роздає IP адреси в локальній мережі, наприклад до вашого вай-фай роутера і отримує стандартний адреса виду 192.168.х.х від нього, через що віртуальна машина в мережі виглядає так, як ніби це звичайне фізичне пристрій з усіма витікаючими наслідками, такими як логирование з боку роутера, доступ із зовнішньої мережі і т.д.

Налаштуванням за замовчуванням в VirtualBox, використовується режим трансляції мережевих адрес, так званий NAT, зазвичай, для простого виходу в інтернет гостьовий операционкой цієї настройки досить. Однак, якщо захочеться налаштувати ssh доступ до гостьової операционке, або ж розгорнути web сервер, то такий спосіб мало підходить, оскільки всі адреси гостьовий операційки будуть унікальними. Цей спосіб надає кращий захист гостьовий операційки ніж режим моста, проте все ж не підходить до моїх запитах.

І тут на сцену виходить підключення VirtualBox яке називаеться «Віртуальний адаптер хоста». При цьому типі підключення, гостьові операційки можуть взаємодіяти між собою, а також з хостом на якому стоять. Є можливість налаштувати статичні адреси для гостьових ОС. Ось це якраз нам і нада.

Для початку додамо віртуальний адаптер в VirtualBox

У VirtualBox-е йдемо, Меню Файл-> Параметри-> Мережа-> Віртуальні мережі хоста і там натиснути кнопочку з плюсом, з'явитися нова віртуальна мережа під назвою vboxnet0.

Далі, виділяємо її, клацають по кнопці з зображенням викрутки, і бачимо таке віконце, з деталями віртуальної мережі:

На вкладці dhcp сервер знімаємо галочку 'Включити сервер', тобто вимикаємо dhcp сервер, ми будемо налаштовувати статичний адреса в нашій гостьовій FreeBSD і динамічна роздача нам не потрібно. Тим більше що цей dhcp видає тільки ip адреси, а шлюз не видає, що трохи незручно.

Тиснемо 'Ok', все готово, у нас з'явився в системі інтерфейс vboxnet0, що можна перевірити так, ввівши в домашній системі kali команду ifconfig -a:

root @ kali: ~ # ifconfig -a eth0 Link encap: Ethernet HWaddr 00: 16: 14: 12: bb: aa UP BROADCAST MULTICAST MTU 1500 Metric: 1 RX packets: 0 errors: 0 dropped: 0 overruns: 0 frame: 0 TX packets: 0 errors: 0 dropped: 0 overruns: 0 carrier: 0 collisions: 0 txqueuelen 1000 RX bytes: 0 (0.0 B) TX bytes: 0 (0.0 B) Interrupt: 21 lo Link encap: Local Loopback inet addr : 127.0.0.1 Mask: 255.0.0.0 UP LOOPBACK RUNNING MTU: 65536 Metric: 1 RX packets: 388832 errors: 0 dropped: 0 overruns: 0 frame: 0 TX packets: 388832 errors: 0 dropped: 0 overruns: 0 carrier: 0 collisions: 0 txqueuelen: 0 RX bytes: 79377251 (75.7 MiB) TX bytes: 79377251 (75.7 MiB) vboxnet0 Link encap: Ethernet HWaddr 0a: 00: 27: 00: 00: 00 inet addr: 192.168.56.1 Bcast: 192.168.56.255 Mask: 255.255.255.0 UP BROADCAST RUNNING MULTICAST MTU 1500 Metric: 1 RX packets: 0 errors: 0 dropped: 0 overruns: 0 frame: 0 TX packets: 2 errors: 0 dropped: 0 overruns: 0 carrier: 0 collisions: 0 txqueuelen 1000 RX bytes: 0 (0.0 B) TX bytes: 84 (84.0 B)

Тепер потрібно в настройках віртуальної машини вказати наш віртуальний адаптер. Для цього виділяємо в VirtualBox нашу FreeBSD, тиснемо налаштувати, і на вкладці мережу, в настройках мережевого адаптера, вибрати настройку 'Віртуальний адаптер хоста' і нижче вибрати наш віртуальний адаптер vboxnet0, він буде обраний за замовчуванням:


З настройками VirtualBox закінчили, пора запускати і налаштовувати нашу FreeBSD. Запускаємо, логіном логіном root без пароля і перед нами з'являється ось таке запрошення командного рядка FreeBSD.

Як видно з запрошення командного рядка, наш віртуальний хост не має імені, це ісправляеться таким чином:

root @: ~ # hostname freebsd

Тепер виходимо з шелла командою exit:

root @: ~ # exit

Логіном знову і спостерігаємо таке запрошення командного рядка csh:

root @ freebsd: ~ #

Щоб ім'я гостьовий FreeBSD зберігалося при перезавантаженні, відкриємо Вайл /etc/rc.conf, для цього в FreeBSD є простий текстовий редактор ee:

root @ freebsd: ~ # ee /etc/rc.conf

І додаємо туди рядок:

hostname = "freebsd"

Виходимо з її по клавіші 'Esc' при виході редактор запитає зберегти файл, зберігаємо.

Так, систему перейменували, далі було б бажано додати пароль нашому root, для цього треба скомандувати так:

root @ freebsd: ~ # passwd root root @ freebsd: ~ # passwd root Changing local password for root New Password: Retype New Password: root @ freebsd: ~ #

Вводимо новий пароль для root і повторюємо его.Прі введенні пароля символи не відображаються, так що треба бути уважним.
Ну ось тепер можна приступати до настройки мережі в гостьовому FreeBSD. Спочатку подивимося наявні інтерфейси:

root @ freebsd: ~ # ifconfig -a

FreeBSD виведе список наявних інтерфейсів системи:

root @ freebsd: ~ # ifconfig -a em0: flags = 8843 metric 0 mtu 1500 options = 9b ether 08: 00: 27: 6e: 3d: 97 inet 192.168.56.2 netmask 0xffffff00 broadcast 192.168.56.255 nd6 options = 29 media: Ethernet autoselect (1000baseT) status: active lo0: flags = 8049 metric 0 mtu 16384 options = 600003 inet6 :: 1 prefixlen 128 inet6 fe80 :: 1% lo0 prefixlen 64 scopeid 0x2 inet 127.0.0.1 netmask 0xff000000 nd6 options = 21 root @ freebsd: ~ #

Де lo0 це адреса локальної петлі, не чіпаємо його, він потрібен для роботи багатьох програм і самої системи, а ось інтерфейс em0 наш клієнт його і будемо налаштовувати. Є два варіанти настройки інтерфейсу, командою ifconfig і редагуванням файлу rc.conf. Ми підемо відразу двома шляхами, спочатку налаштуємо мережу на льоту командою ifconfig, а потім відредагуємо rc.conf для того щоб настройки збереглися після перезапуску нашій гостьовій FreeBSD.

Отже налаштовуємо інтерфейс:

root @ freebsd: ~ # ifconfig em0 192.168.56.2 255.255.255.0

Цією командою ми призначили адреса інтерфейсу і мережеву маску, адреса був узятий з мережі нашого віртуального інтерфейсу vboxnet0 що ми створили в VirtualBox, щоб наш FreeBSD був з ним в одній мережі і зміг його бачити.

Далі нам потрібен шлюз для FreeBSD, для цього командуємо таке:

root @ freebsd: ~ # route add default 192.168.56.1

Тобто задаємо шлюзом наш інтерфейс vboxnet0. Перевіримо чи видно наш шлюз:

root @ freebsd: ~ # ping 192.168.56.1

Якщо пінг пішли значить те, що шлюз видно і наш інтерфейс em0 налаштований нормально:

root @ freebsd: ~ # ping 192.168.56.1 PING 192.168.56.1 (192.168.56.1): 56 data bytes 64 bytes from 192.168.56.1: icmp_seq = 0 ttl = 64 time = 1.086 ms 64 bytes from 192.168.56.1: icmp_seq = 1 ttl = 64 time = 1.293 ms 64 bytes from 192.168.56.1: icmp_seq = 2 ttl = 64 time = 1.025 ms 64 bytes from 192.168.56.1: icmp_seq = 3 ttl = 64 time = 1.780 ms ^ C --- 192.168.56.1 ping statistics --- 4 packets transmitted, 4 packets received, 0.0% packet loss round-trip min / avg / max / stddev = 1.025 / 1.296 / 1.780 / 0.297 ms root @ freebsd: ~ #

Перервати команду ping можна комбінацією клавіш Ctrl + c. Пора записати настройки в файл rc.conf, щоб вони зберігалися після перезавантаження. Відкриваємо файл:

root @ freebsd: ~ # ee /etc/rc.conf

І вписуємо туди наступні рядки:

# Призначаємо адресу і маску інтерфейсу ifconfig_em0 = "129.168.56.2 255.255.255.0" # Додаємо шлюз defaulrouter = "192.168.56.1"

Зберігаємося і виходимо. Тепер мережа буде працювати і після ребута нашої FreeBSD.Знак # перед рядком в цьому файлі означає коментар і рядок наступна за ним ігнорується системою.

Останній штрих, настройка дозволу імен ДНС в нашій FreeBSD, для цього даємо таку команду:

root @ freebsd: ~ # echo nameserver 8.8.8.8> /etc/resolv.conf

Команда додасть рядок nameserver 8.8.8.8 в файл /etc/resolv.conf, що природно можна зробити текстовим редактором її, але так просто швидше. 8.8.8.8 це ip публічного ДНС гугла, який буде дозволяти імена для нашої гостьової FreeBSD. Можете також додати ДНС свого провайдера.

Прийшов час налаштувати шлюз для виходу в інтернет нашої Гостьові візи системою, робиться це просто, для цього відкриваємо консоль в нашій хостовой системі kali і там пишемо таку команду:

root @ kali: ~ # echo "1"> / proc / sys / net / ipv4 / ip_forward

Цією командою ми включили форвардного (передачу транзитних пекет) між мережевими інтерфейсами, команда працює до перезавантаження системи, можна включити форвардного на постійно в файлі /etc/sysctl.conf прописавши там значення net.ipv4.ip_forward = 1, але мені наприклад, непотрібна функція маршрутізтора включеної постійно в хостовой kali, а тому запускаємо тільки на раз. Справа в тому що при включеному параметрі, система вважає себе маршрутизатором і намагається пересилати адресовані не їй пакети через себе відповідно до таблицой маршрутизації. Вимкнути форвардного можна командою:

root @ kali: ~ # echo "0"> / proc / sys / net / ipv4 / ip_forward

Далі командуємо так. Де ppp0 замінюєте на ваш інтерфейс в системі який дивиться в інтернет, може бути eth0, або wlan0, якщо ви отримуєте інтернет за допомогою wifi, у мене модем повільний 3g і тому інтерфейс ppp0.

root @ kali: ~ # iptables -t nat -A POSTROUTING -o ppp0 -s 192.168.56.1/24 -j MASQUERADE

Тут ми включили NAT (Network Addres Translation) і маськарадінг, які дозволяють декільком машинам, а в нашому випадку віртуальної гостьовий FreeBSD, спільно використовувати для виходу в інтернет один інтерфейс і адреса на ньому.

Для більшої зручності, щоб кожен раз не набирати довгі команди в консолі для запуску маршрутизатора для гостьових ОС, можна зробити настройку алиасов, для цього в домашній папці root необхідно створити файлик .bash_aliases, саме так, називатися повинен з точки:

root @ kali: ~ # touch .bash_aliases

Відкриваємо його будь-яким текстовим редактором і пишемо туди наступні рядки:

## Включаємо форвардного пакетів і маськарадінг alias startforward = 'echo "1"> / proc / sys / net / ipv4 / ip_forward && iptables -t nat -A POSTROUTING -o ppp0 -s 192.168.56.1/24 -j MASQUERADE' ## вимикаємо форвардного пакетів і видаляємо правило з iptables alias stopforward = 'echo "0"> / proc / sys / net / ipv4 / ip_forward && iptables -F -t nat'

Після збереження файлу в консолі з'являться дві нові команди, де startforward включить маршрутизатор для нашої гостьової FreeBSD, а stopforward відповідно вимкне інтернет в гостьовій системі. Не забудьте перезапустити консоль щоб підхопилися нові аліаси

Ось власне і все, пробуємо працездатність інтернету в гостьовій FreeBSD:

root @ freebsd: ~ # ping freebsd.org PING freebsd.org (8.8.178.110): 56 data bytes 64 bytes from 8.8.178.110: icmp_seq = 0 ttl = 51 time = 272.840 ms 64 bytes from 8.8.178.110: icmp_seq = 1 ttl = 51 time = 290.699 ms 64 bytes from 8.8.178.110: icmp_seq = 2 ttl = 51 time = 295.039 ms 64 bytes from 8.8.178.110: icmp_seq = 3 ttl = 51 time = 261.623 ms ^ C --- freebsd.org ping statistics --- 4 packets transmitted, 4 packets received, 0.0% packet loss round-trip min / avg / max / stddev = 261.623 / 280.050 / 295.039 / 13.506 ms root @ freebsd: ~ #

І бачимо весело біжать пінг, що означає те, що інтернет в нашій гостьовій FreeBSD налаштований коректно, імена ДНС дозволяє нормально і можна приступати до установки програм в нашу FreeBSD.

Щоб почитати ще по FreeBSD? Ось найголовніше чтиво по цій чудовій операційній системі:
FreeBSD handbook на російській мові
і ще один непоганий, на мій погляд для початківців, російськомовний ресурс по FreeBSD:
FreeBSD. Детальний керівництво

Щоб почитати ще по FreeBSD?

Уважаемые партнеры, если Вас заинтересовала наша продукция, мы готовы с Вами сотрудничать. Вам необходимо заполнить эту форму и отправить нам. Наши менеджеры в оперативном режиме обработают Вашу заявку, свяжутся с Вами и ответят на все интересующее Вас вопросы.

Или позвоните нам по телефонам: (048) 823-25-64

Организация (обязательно) *

Адрес доставки

Объем

Как с вами связаться:

Имя

Телефон (обязательно) *

Мобильный телефон

Ваш E-Mail

Дополнительная информация: