It Hints
Search
Close this search box.

Всем при­вет. После уста­нов­ки VPN на евро­пей­ском сер­ве­ре через сер­вис Aeza (кста­ти Aeza это Рос­сий­ский хостинг про­вай­дер) и судя по whois доволь­но моло­дой поэто­му доля глю­ков в нём есть (об этом позже).

В общем решил я взять у них вир­ту­аль­ный сер­вер за 782 руб. в месяц кото­рый вклю­ча­ет в себя 2 ядра, 4 Gb RAM, 60Gb NVME и заяв­лен­ный канал 1Гбит.

Руко­вод­ство­вал­ся я сле­ду­ю­щим: У меня есть хостинг с объ­ё­мом 60Гб, на кото­ром я сижу с 2015 года и кото­рый я опла­чи­ваю 1691,4 руб. в месяц + за Memcache, Redis и бека­пы нуж­но пла­тить отдель­но, у меня там кру­тят­ся 36 сай­тов, а здесь более чем в 2 раза дешев­ле + воз­мож­ность уста­но­вить всё само­сто­я­тель­но, делать само­му бека­пы и т.д.

И так, я решил ста­вить Proxmox с ISO обра­за и тут меня жда­ла неуда­ча. Ну поми­мо того что ISO образ у меня под­клю­чил­ся раза с деся­то­го (выхо­ди­ла ошиб­ка) мне всё таки уда­лось поста­вить Proxmox, но при уста­нов­ке он не уви­дел сете­во­го интер­фей­са кото­рый смот­рит в интер­нет и поста­вил сете­вой интер­фейс с IP адре­сом 192.168.0.100

Лад­но поду­мал я, задам потом пара­мет­ры сети в ручную

Вся беда как я понял заклю­ча­лась в том, что в Proxmox сете­вой интер­фейс ens3 это кото­рый у меня смот­рит в интер­нет, был Network Device
Вот его конфигурация

И это как бы логич­но, но не рабо­та­ет — то есть вир­ту­аль­ные маши­ны таким обра­зом не выхо­дят в интер­нет. Да, они видят локаль­ную сесть, видят друг дру­га, но в интер­нет не выхо­дят. Когда я под­ни­мал Proxmox дома, на сво­ем физи­че­ском сер­ве­ре, то я эту про­бле­му решил про­ще — про­бро­сив локаль­ные IP адре­са вир­ту­аль­ных машин в интер­нет через роу­тер. А здесь то роу­те­ра нет. Ста­вить вир­ту­аль­ный роу­тер типа Mikrotik ? Да, у меня была такая мысль, но это я оста­вил на самый послед­ний вариант.

Соб­ствен­но гово­ря осно­ва­тель­но в тече­нии выход­но­го я зани­мал­ся тан­ца­ми с буб­ном курил интер­нет и осно­ва­тель­но его рас­ку­рив, я нашел реше­ние проблемы.

Приступаем к делу

И так вход­ные дан­ные вир­ту­аль­но­го сер­ве­ра
Имя сете­во­го интер­фей­са: ens3
IP адрес: 78.92.87.34
Шлюз: 10.0.0.1
Мас­ка под­се­ти: 255.255.255.255 (это не опе­чат­ка, имен­но такая мас­ка у Aeza)

меня­ем настрой­ки сете­вых интер­фей­сов коман­дой “nano /etc/network/interfaces” сле­ду­ю­щим образом:

auto vmbr0
iface vmbr0 inet static
address 78.92.87.34/32
gateway 10.0.0.1
bridge-ports ens3
bridge-stp off
bridge-fd 1
pointtopoint 10.0.0.1
bridge_hello 2
bridge_maxage 12

auto vmbr100
iface vmbr100 inet static
address 192.168.100.1
netmask 255.255.255.0
bridge-ports none
bridge-stp off
bridge-fd 0

#NAT
post-up echo 1 > /proc/sys/net/ipv4/ip_forward
post-up iptables -t nat -A POSTROUTING -s '192.168.100.0/24' -o vmbr0 -j MASQUERADE
post-down iptables -t nat -D POSTROUTING -s '192.168.100.0/24' -o vmbr0 -j MASQUERADE

После это­го наша кон­фи­гу­ра­ция сети при­мет вот такой вид

То есть на физи­че­ском пор­ту ens3 будет осно­ван бридж, на кото­ром уже настро­ен IP интерфейс.

Кста­ти гово­ря — если вы созда­е­те Linux Bridge через Web инте­фейс и после нажа­тия Apply configuration вы полу­ча­е­те ошиб­ку вида “you need ifupdown2 to reload network configuration (500)” то вам необ­хо­ди­мо уста­но­вить сле­ду­ю­щий пакет.

apt install ifupdown2
Теперь откры­ва­ем /etc/sysctl.conf — дела­ет­ся это коман­дой “nano /etc/sysctl.conf” и допи­сы­ва­ем туда сле­ду­ю­щую стро­ку
net.ipv4.ip_forward=1

Теперь мы можем всем вир­ту­аль­ным маши­нам при­сва­и­вать интер­фейс vmbr100, сете­вые настрой­ки будут следующими:

IP адрес: 192.168.100.NNN
Шлюз: 192.168.100.1
Мас­ка под­се­ти: 255.255.255.0
DNS1: 8.8.8.8
DNS2: 8.8.4.4

Так же може­те исполь­зо­вать DNS Яндек­са: (77.88.8.8, 77.88.8.88, 77.88.8.7). Я исполь­зо­вал враз­но­бой и те и другие

Теперь всем вир­ту­аль­ным маши­нам мож­но назна­чать интер­фейс vmbr100

Настройка сети в Windows

В Windows настрой­ки будут выгля­деть так
То есть как я писал выше, теперь мы можем всем вир­ту­аль­ным маши­нам при­сва­и­вать сле­ду­ю­щие сете­вые настройки:

IP адрес: 192.168.100.NNN
Шлюз: 192.168.100.1
Мас­ка под­се­ти: 255.255.255.0
DNS1: 8.8.8.8
DNS2: 8.8.4.4

Пробросим порт 3389 для доступа по RDP

Ну и так как я хочу под­клю­чать­ся к уда­лен­ной Windows систе­ме по RDP, то про­бро­шу порт 3389

iptables -t nat -A PREROUTING -p tcp -d 78.92.87.34 --dport 3389 -i vmbr0 -j DNAT --to-destination 192.168.100.11:3389

Сохра­ня­ем маршруты

iptables-save

Настройка сети в CentOS 7

Так как вто­рой вир­ту­аль­ной маши­ной у меня сто­ит CentOS, то так же поме­ня­ем в ней сете­вые настрой­ки. Для это­го сна­ча­ла коман­дой “ip ‑a” мы смот­рим сете­вые интерфейсы.

У меня сете­вой интер­фейс ens18
Откры­ва­ем файл с настрой­ка­ми наше­го сете­во­го интер­фе­са — дела­ет­ся это коман­дой “vi /etc/sysconfig/network-scripts/ifcfg-ens18” (вы же вме­сто ens18 постав­ля­е­те свой сете­вой интер­фейс) и при­во­дим это к сле­ду­ю­ще­му виду 
TYPE=Ethernet
DEVICE=ens18
NAME=ens18
BOOTPROTO=static
IPADDR=192.168.100.12
NETMASK=255.255.255.0
GATEWAY=192.168.100.1
DNS1=77.88.8.8
DNS2=8.8.8.8
ONBOOT=yes
То есть здесь мы при­сва­и­ва­ем наше­му сете­во­му интер­фей­су IP адрес 192.168.100.12, а так же мас­ку, шлюз и DNS как опи­са­но выше. 

Установка aaPanel

Теперь когда у нас CentOS уви­дел интер­нет, мы можем ста­вить aaPanel. Дела­ет­ся это командой 
yum install -y wget && wget -O install.sh http://www.aapanel.com/script/install_6.0_en.sh && bash install.sh aapanel

Далее пой­дёт про­цесс уста­нов­ки, по окон­ча­нии его вы полу­чи­те URLы для вхо­да (один локаль­ный, вто­рой для досту­па из интер­не­та). Выгля­дят они при­мер­но вот так:

https://78.92.87.34:7800/fjusl375
https://192.168.100.12:7800/fjusl375

И теперь нам нуж­но про­бро­сить пор­ты  для того что­бы иметь доступ к вир­ту­аль­ным машинам.

Проброс портов к виртуальным машинам

И так — нам нуж­но на Proxmox’е про­бро­сить порт 7800 на вир­ту­аль­ной машине 192.168.100.12 что­бы иметь доступ к нашей хостинг пане­ли из интер­не­та. Дела­ет­ся это командой

iptables -t nat -A PREROUTING -p tcp -d 78.92.87.34 --dport 7800 -i vmbr0 -j DNAT --to-destination 192.168.100.12:7800

Так же нам нужен доступ по SSH, но что­бы к нам посто­ян­но не дол­би­лись кул­хац­ке­ры по 22 пору, мы 22й порт пере­на­пра­вим на порт 16384 (про­сто нра­вит­ся это чис­ло — это нача­ло экран­ной обла­сти ZX Spectrum)

iptables -t nat -A PREROUTING -p tcp -d 78.92.87.34 --dport 16384 -i vmbr0 -j DNAT --to-destination 192.168.100.12:22

Так же нам нуж­но открыть пор­ты 80 и 443 (http и https соовет­ствен­но). Так же выпо­ля­ем команды

iptables -t nat -A PREROUTING -p tcp -d 78.92.87.34 --dport 80 -i vmbr0 -j DNAT --to-destination 192.168.100.12:80
iptables -t nat -A PREROUTING -p tcp -d 78.92.87.34 --dport 443 -i vmbr0 -j DNAT --to-destination 192.168.100.12:443

Здесь:
79.137.NNN.NNN — внеш­ний IP адрес;
- dport nnnn — внеш­ний порт по кото­ро­му будут обра­щать­ся для под­клю­че­ния из интер­нет;
—to-destination 192.168.100.12:nn — внут­рен­ний IP вир­ту­аль­ной маши­ны и порт, к кото­ро­му будет выпол­нять­ся под­клю­че­ние
Сохра­ня­ем маршруты

iptables-save

Пробрасываем порты для электронной почты

				
					iptables -t nat -A PREROUTING -p tcp -d 78.92.87.34 --dport 110 -i vmbr0 -j DNAT --to-destination 192.168.100.12:110
iptables -t nat -A PREROUTING -p tcp -d 78.92.87.34 --dport 995 -i vmbr0 -j DNAT --to-destination 192.168.100.12:995
iptables -t nat -A PREROUTING -p tcp -d 78.92.87.34 --dport 143 -i vmbr0 -j DNAT --to-destination 192.168.100.12:143
iptables -t nat -A PREROUTING -p tcp -d 78.92.87.34 --dport 993 -i vmbr0 -j DNAT --to-destination 192.168.100.12:993
iptables -t nat -A PREROUTING -p tcp -d 78.92.87.34 --dport 25 -i vmbr0 -j DNAT --to-destination 192.168.100.12:25
iptables -t nat -A PREROUTING -p tcp -d 78.92.87.34 --dport 465 -i vmbr0 -j DNAT --to-destination 192.168.100.12:465
iptables -t nat -A PREROUTING -p tcp -d 78.92.87.34 --dport 587 -i vmbr0 -j DNAT --to-destination 192.168.100.12:587
iptables-save
				
			

Друзья - если вы нашли для себя что то полезное и хотите помочь проекту развиваться дальше, Вы можете задонатить любую сумму на поддержку. Деньги пойдут исключительно на оплату доменного имени, хостинга, а так же на мотивацию.

Facebook
Twitter
Email
VK
WhatsApp
Telegram