У нас є сервер який обслуговує домашню сітку, чому б не додати на нього хостінг.Первое що ми почнемо робити це - спробуємо налаштувати бриджі для хостингу, сервак наш повинен через мережеву провайдера віддавати веб контент, причому для кожного користувача хостингу треба забезпечити можливість працювати на незалежному віртуальному сервері, Відразу напрошується демілітаризована мережу (ДМЗ) яку ми будемо робити через бридж br-dmz, ще знадобиться бридж на сетевух провайдера br-int, і до всього іншого сервер повинен обслуговувати локальну мережу. І так

     Наші мережеві:

eth0 - мережева до провайдера . eth1 - мережева локальна.

     Будемо робити бриджі:

br-int без IP на eth0, br-loc IP статичний IP на eth1 , br-dmz бридж для демілітаризованої зони (віртуальні сервера користувачів хостингу).

    Встановимо необхідних цього пакети.

yum install bridge-utils tunctl -y

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

  • chkconfig NetworkManager off
  • chkconfig network on
  • service NetworkManager stop
  • service network start

      Передбачається, що ваші мережеві працюють і налаштовані, тепер створюємо бриджі та правимо мережеві.

nano /etc/sysconfig/network-scripts/ifcfg-br-int

DEVICE=br-int
TYPE=Bridge
ONBOOT=yes
NM_CONTROLLED=no
BOOTPROTO=none
DEFROUTE=yes
IPV4_FAILURE_FATAL=yes
IPV6INIT=no
NAME="System br-int"

nano /etc/sysconfig/network-scripts/ifcfg-eth0    

наводимо до виду

DEVICE=eth0
TYPE=Ethernet
ONBOOT=yes
NM_CONTROLLED=no
BOOTPROTO=none
HWADDR=XX:XX:XX:XX:XX:XX     # мак адресу мережевої
NAME="System eth0"
BRIDGE=br-int

IPV6INIT=no

    Теж саме з другої мережевої

nano /etc/sysconfig/network-scripts/ifcfg-br-loc     

DEVICE=br-loc
TYPE=Bridge
ONBOOT=yes
NM_CONTROLLED=no
BOOTPROTO=none
IPADDR=ххх.ххх.ххх.ххх      # IP бриджу
PREFIX=24
GATEWAY=ххх.ххх.ххх.ххх  # ставимо свій
DNS1=ххх.ххх.ххх.ххх          # ставимо свій
DOMAIN=назва вашого домену
DEFROUTE=yes
IPV4_FAILURE_FATAL=yes
IPV6INIT=no
NAME="System br-loc"

nano /etc/sysconfig/network-scripts/ifcfg-eth1    

наводимо до виду

DEVICE=eth1
TYPE=Ethernet
ONBOOT=yes
NM_CONTROLLED=no
BOOTPROTO=none
HWADDR=XX:XX:XX:XX:XX:XX     # мак адресу мережевої
NAME="System eth1"
BRIDGE=br-loc

     І ще для зони ДМЗ

nano /etc/sysconfig/network-scripts/ifcfg-br-dmz

EVICE=br-dmz
TYPE=Bridge
ONBOOT=yes
NM_CONTROLLED=no
BOOTPROTO=none
NAME="System br-dmz"

Перезапускаємо мережу

service network restart

На хості наведемо iptables до такого виду

nano /etc/sysconfig/iptables

*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
-I INPUT -p tcp --dport 3389 -m state --state NEW -j ACCEPT     #-- це тільки в тому випадку якщо ставили KDE або GNOME і робили віддалений доступ по RDP
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT

Перезапускаємо iptables

service iptables restart

Подивимося, що у нас вийшло з бриджами

brctl show

Повинні побачити щось подібне

bridge name     bridge id                          STP enabled     interfaces
br-dmz                8000.000000000000       no
br-int                   8000.d027880416d7        no                      eth0
br-loc                  8000.6805ca06ecd9        no                       eth1

     Конфігурація нашого домашнього хотінг сервера виглядає так:

host

За кольорами:

        Зелений - рівень сервера.

        Жовтий - рівень гипервизора

        Рожевий - рівень віртуальних машин.

     Концепція сервера наступна, виртуалка Firewall (роутер) - за назвою, весь трафік будемо рулити через нього, на ньому ж стоятиме проксірующій Nginx для розрулювання веб контенту користувачів хостингу на веб сервері, веб сервер в окремій мережі (ДМЗ) і локальна частина, що б удома теж було чудово.

     Тепер можна ставити KVM дивимося тут (опускаючи настройку бриджу, так як ми його вже налаштували)  можна також поставити графічну оболонку GNOME или KDE конфігураці виртуалки будемо через "менеджер віртуальних машин".

    Поїхали ставити Роутер (Firewall) і віддамо йому всі наші бриджі br-int, br-dmz, br-loc, він буде працювати під керуванням CentOs на поточний момент версія 6.7. Після установки ми отримаємо 3 мережеві eth0, eth1 і eth2 через які ми пустимо весь трафік.

     Правимо файли мережевих /etc/sysconfig/network-scripts/

ifcfg-eth0

DEVICE=eth0
TYPE=Ethernet
ONBOOT=yes
NM_CONTROLLED=no
BOOTPROTO=dhcp
HWADDR=у вас свой
DEFROUTE=yes
IPV4_FAILURE_FATAL=yes
IPV6INIT=no
NAME="System eth0"

ifcfg-eth1

DEVICE=eth1
TYPE=Ethernet
ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=none
IPADDR=IP вашей ДМЗ
PREFIX=8
GATEWAY=ваш шлюз
DNS1=ваш DNS
DEFROUTE=yes
IPV4_FAILURE_FATAL=yes
IPV6INIT=no
NAME="System eth1"
HWADDR=у вас свій

ifcfg-eth2

DEVICE=eth2
TYPE=Ethernet
ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=none
HWADDR=у вас свій
IPADDR=IP вашей локалки
PREFIX=24
GATEWAY=ваш шлюз
DNS1=ваш DNS
DOMAIN=ваш домен
DEFROUTE=yes
IPV4_FAILURE_FATAL=yes
IPV6INIT=no
NAME="System eth2"

Розшифровка:

      eth0 (ifcfg-eth0) - налаштовуємо на отримання IP по DHCP від ​​провайдера, на неї буде приходити весь трафік з інтернету.

      eth1 (ifcfg-eth1) - это наша ДМЗ у неї своя мережа (і статичний IP) не перетинаються з локальною (нема чого користувачам хостингу лазити в нашу локалку).

      eth2 (ifcfg-eth2) - це ваша локалка, теж надайте їй статичний IP локальної мережі.

На роутер (Firewall) наведемо iptables до такого виду

nano /etc/sysconfig/iptables

*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT           # это SSH
-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT           # тут буде відповідати nginx яке ми поставимо пізніше
-A INPUT -s локальная сеть -j ACCEPT                                                      # тут дозволяємо локальної мережі шарахатися
-A INPUT -s ДМЗ -j ACCEPT                                                                          # тут ДМЗ
-A INPUT -j REJECT --reject-with icmp-host-prohibited

-P FORWARD DROP
-A FORWARD -i lo -o lo -j ACCEPT
-A FORWARD -i eth2 -o eth0 -j ACCEPT                                                       # дозволяємо проходити локальним пакетам

-A FORWARD -i eth1 -o eth0 -j ACCEPT                                                       # дозволяємо проходити ДМЗ пакетам (як правило не включають по сообра. безпеки)
-A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
COMMIT
*nat
:PREROUTING ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A POSTROUTING -o eth0 -j MASQUERADE                                                 # дозволяємо ходити в інтернет
COMMIT

Перезапускаємо iptables

service iptables restart

     Тепер поставимо на Роутер (Firewall) Nginx, як описано тут.

Теоретично з роутерами (Firewall) ми закінчили, пізніше може для домашньої сітці я розповім як прокинути мультикаст всередину мережі, щоб ТВ канали дивитися, можна переходити до налаштування Веб сервака.

На веб сервер ставимо так само як і для роутера, CentOs 6.7, тільки віддаємо йому одне бридж br-dmz. Після установки у нас в розпорядженні буде мережева eth0, думаю простіше буде встановити статичний IP (пам'ятаємо, що сітка ДМЗ) так як з роутера простіше буде рулити трафіком.Скріпт:

nano /etc/sysconfig/network-scripts/ifcfg-eth0 буде виглядати так:

DEVICE=eth0
TYPE=Ethernet
ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=none
HWADDR=ваш адресу мережевої
IPADDR= ваш IP
PREFIX=8
GATEWAY=тут IP шлюзу в роутері це eth1
DNS1=тут DNS це буде днс який ми можливо поставимо на роутері пізніше
DEFROUTE=yes
IPV4_FAILURE_FATAL=yes
IPV6INIT=no
NAME="System eth0"

Crtl+O , Ctrl+X

На Веб серваке (Web Server) наведемо iptables до такого виду

nano /etc/sysconfig/iptables

*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT     #візит по SSH
-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT     #тут апач відповідатиме
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT

Crtl+O , Ctrl+X

Ще треба відключити SELinux.

Виконаємо команду (Якщо влом вивчати SELinux, повторіть це на всіх віртуалкою)

nano /etc/selinux/config

І замінимо значення змінної на SELINUX = disabled, повинно вийти так

# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
#     enforcing - SELinux security policy is enforced.
#     permissive - SELinux prints warnings instead of enforcing.
#     disabled - No SELinux policy is loaded.
SELINUX=disabled
# SELINUXTYPE= can take one of these two values:
#     targeted - Targeted processes are protected,
#     mls - Multi Level Security protection.
SELINUXTYPE=targeted

Тиснемо Ctrl+O і Ctrl+X, в принципі не погано б ребутнуться (перезавантажити комп).

Приступаємо до установки решти фаршу, ка то Apache, PHP 5.4, MySQL! !  є підозра що його краще напевно винести на окрему віртуалку.

Установка php 5.4 на Centos 6.7 ИЛИ Установка PHP 5.5 і MySQL 5.5 на домашній сервер

И

Установка веб сервера Apache

Ось так.