Сучасна диджитал-освіта для дітей — безоплатне заняття в GoITeens ×
Mazda CX 30
×

Створення емулятора віддаленого VPS за допомогою VirtualBox

Підписуйтеся на Telegram-канал «DOU #tech», щоб не пропустити нові технічні статті

Дано:
1. VirtualBox 4.3.12 (далі — VBox);
2. операційна система, на якій встановлено VBox, тобто host: Windows 10 (64bit);
3. гостьова операційна система на VBox, тобто guest: CentOS 7 (64bit) Minimal.

Задача: налаштувати у VBox емулятора VPS з ресурсами, які пропонує DigitalOcean на тарифі $5/mo. У підсумку, на Windows можна буде робити запити до Apache, який встановлено на гостьовій ОС у VBox.

Мета: навчитись працювати з віддаленим VPS спочатку локально, та оцінити що зможе тримати вибраний найдешевший план ($5/mo).

UPD: зробив урок для таких самих новачків як я.

👍ПодобаєтьсяСподобалось0
До обраногоВ обраному0
LinkedIn
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter

vagrant init geerlingguy/ubuntu1404
Vagrantfile => public_network

Во все современные Unix-подобные ОС встроен SSHD со встроенным же SFTP.
Устанавливать внешний FTP сервер нужно только в случае различных исключений типа необходимости анонимного доступа и пр.
По логу видно, что Командер коннектится не к вашему FTPD, а к SSHD (порт 22 — SSHD):

hostname=192.168.56.101:22
Выключайте этот vsftpd и идите в /etc/ssh/sshd_config и убедитесь, что внизу FTPD разрешен.
Этого достаточно. И ради бога — не разрешайте удаленный вход пользователю root — это чревато.
Как у вас по итогу настроена сетка?
Поставив SFTP сервак.

vsftpd це FTP/FTPS сервак. А кліент хоче саме SFTP.
SFTP це передача файлів через SSH, і дає його sshd.
FTPS ≠ SFTP, це різні протоколи.

у тебе зараз налаштований NAT адаптер. у цьому варіанті тобі потрібно зайти в налаштування адаптера, клікнути advanced і додати правило форвардингу портів dl.dropboxusercontent.com/u/209592/nw.jpg після цього твій апач буде доступний за адресою localhost:8080.

vagrant використовує поточний варіант. напевно він найпрактичніший.

інший варіант, згаданий bridged network, прив’язує адаптер віртуалки до мережевого адаптера і ти отримуєш IP від DHCP сервера у своїй локальній мережі.
у моєму варіанті, віртуалка отримала IP від wifi рутера dl.dropboxusercontent.com/u/209592/nw2.jpg і я підключаюся по 192.168.101.102. але коли я перейду в іншу мережу, все буде по-іншому

нарахунок Host-only networking. переконайся в налаштуваннях адаптера vboxnet0 (File -> Preferences -> Network -> Host Only network -> Edit host-only network), що IP адаптера і DHCP сервера в одній мережі.

Как хост подключен к интернету?
Если напрямую, то дополнительный адрес взять неоткуда и надо колдовать с NAT, но всё равно «так как на DO» не будет.
А если через роутер, то можно смело включать bridge и машина будет в одной сети с хостом.
i.imgur.com/5m4yDNF.png (машина запущена, поэтому часть настроек заблокирована, адаптер только один).
У хоста адрес 192.168.0.2/24, у гостя — .15/24.
Разумеется, если потушить сеть на хосте, то у гостя тоже сеть отвалится.
Если нужно чтобы что-то было видно из мира — надо на роутере настраивать проброс (на IP:порт гостя).

Предлагаю:
1. Создать новую ВМ
2. Сразу зайти в настройки, выбрать один сетевой адаптер в режиме Bridged Adapter
3. Поставить CentOS с SSH (хотя я считаю что Debian-системы в настройке проще за счет декомпозиции конфигов и более-менее вменяемых параметров по умолчанию, но и тут настраивать надо много чего)
4. После установки настроить фаерволл (открыть порты tcp/22, tcp/80 и, по желанию tcp/443, на почитать — wiki.archlinux.org/index.php/Firewalls, на любом Linux есть iptables/ip6tables)
5. Поставить Apache, MySQL (прошу простить меня, если вы — адепт PostgreSQL), какой-то MTA (я люблю Postfix, но выбор широк)
6. Залить сайт (можно по sftp/scp — есть FileZilla и WinSCP), базу можно заливать массой способов, но я предпочитаю залить на сервер дамп и через mysql-client его залить
Вот теперь это будет больше похоже на продакшн-сервер.

Если этого покажется мало, продолжаем защищаться:
— Ставим sshguard (анти-брутфорс)
— Ставим logcheck (грепает присылает по почте логи — кто зашел, что делал)
— Скрываем информацию в хедере Server (например, dou отдается nginx 1.4.6, который стоит на Ubuntu, скорее всего 14.04), в конфиге пишем/правим «ServerTokens Prod»
— Отключаем хедер X-Powered-By (в php.ini — «expose_php = no»)
— Отключаем .htaccess и переносим все правила из него в конфиг:
<Directory "/path">
AllowOverride None
</Directory>
— Ставим nginx для ускорения раздачи статики
— Настраиваем open_basedir и disable_functions для php
— Ставим правильные права на файлы сайта, будем считать что у вас php:
* забираем у Apache права на запись отовсюду, кроме пары необходимых директорий, вроде /assets у yii:
chmod go-w -R /path
chown user:usergroup -R /path
* на директории с правом записи для запрета исполнения php-кода ставим фильтр вроде
<Directory "/path/rwdir">
<FilesMatch "*\.php$">
Deny from all
</FilesMatch>
</Directory "/path/rwdir">
— Настраиваем monit для мониторинга и перезапуска sshd, apache, mysqld, прочих критичных сервисов

bridge надо включить и разрешить форвардинг пакетов если нужен доступ из вне или host only сеть если только с хоста. Ну или взять что то уже готовое на vagrant.

Привіт, гугли по virtualbox windows linux bridged network

Підписатись на коментарі