Автор Тема: Linux рутер с Shorewall !!!!???????  (Прочетена 12516 пъти)

mystical

  • Напреднали
  • *****
  • Публикации: 326
  • Distribution: Debian, FreeBSD
  • Window Manager: XFCE
    • Профил
    • WWW
Re: Linux рутер с Shorewall !!!!???????
« Отговор #60 -: Jul 13, 2017, 20:26 »
Когато започна да чета някое ръководство, правя бърз поглед на командите и конфигурационните променливи. Ако има много обяснения, мързи ме да ги чета и ми става скучно.

Има няколко ключови неща, с които ако не сте запознати тъпчите на едно място (мрежови решения). За линукс:
1. packet flow:


2. Инструмент за манипулиране на мрежовия трафик (в случая iptables):
Основи на iptables
IPTables Advanced

След като имаме представа за движението на пакета в мрежовия стек на Линукс и знаем как да боравим с инструмент за манипулиране, може да минем на следващото ръководство:
Shorewall Setup Guide

Правим основни настройки и пускаме Shorewall да работи. Ако не сте се свързали чрез ssh или нямате физически достъп до сървъра преди пускането на Shorewall , филма вече свърши.

Код:
root@server:~# iptables -nvL
Chain INPUT (policy DROP 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination        
   70  5649 net-fw     all  --  ens32  *       0.0.0.0/0            0.0.0.0/0          
    2   136 loc-fw     all  --  ens33  *       0.0.0.0/0            0.0.0.0/0          
    0     0 ACCEPT     all  --  lo     *       0.0.0.0/0            0.0.0.0/0          
    0     0 Reject     all  --  *      *       0.0.0.0/0            0.0.0.0/0          
    0     0 LOG        all  --  *      *       0.0.0.0/0            0.0.0.0/0            LOG flags 0 level 6 prefix "Shorewall:INPUT:REJECT:"
    0     0 reject     all  --  *      *       0.0.0.0/0            0.0.0.0/0           [goto]

Chain FORWARD (policy DROP 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination        
    0     0 net_frwd   all  --  ens32  *       0.0.0.0/0            0.0.0.0/0          
    0     0 loc_frwd   all  --  ens33  *       0.0.0.0/0            0.0.0.0/0          
    0     0 Reject     all  --  *      *       0.0.0.0/0            0.0.0.0/0          
    0     0 LOG        all  --  *      *       0.0.0.0/0            0.0.0.0/0            LOG flags 0 level 6 prefix "Shorewall:FORWARD:REJECT:"
    0     0 reject     all  --  *      *       0.0.0.0/0            0.0.0.0/0           [goto]

Chain OUTPUT (policy DROP 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination        
   40  3462 fw-net     all  --  *      ens32   0.0.0.0/0            0.0.0.0/0          
    0     0 fw-loc     all  --  *      ens33   0.0.0.0/0            0.0.0.0/0          
    0     0 ACCEPT     all  --  *      lo      0.0.0.0/0            0.0.0.0/0          
    0     0 Reject     all  --  *      *       0.0.0.0/0            0.0.0.0/0          
    0     0 LOG        all  --  *      *       0.0.0.0/0            0.0.0.0/0            LOG flags 0 level 6 prefix "Shorewall:OUTPUT:REJECT:"
    0     0 reject     all  --  *      *       0.0.0.0/0            0.0.0.0/0           [goto]

Chain Broadcast (2 references)
 pkts bytes target     prot opt in     out     source               destination        
    7  1373 DROP       all  --  *      *       0.0.0.0/0            0.0.0.0/0            ADDRTYPE match dst-type BROADCAST
    0     0 DROP       all  --  *      *       0.0.0.0/0            0.0.0.0/0            ADDRTYPE match dst-type MULTICAST
    0     0 DROP       all  --  *      *       0.0.0.0/0            0.0.0.0/0            ADDRTYPE match dst-type ANYCAST

Chain Drop (2 references)
 pkts bytes target     prot opt in     out     source               destination        
   26  2461            all  --  *      *       0.0.0.0/0            0.0.0.0/0          
   26  2461 Broadcast  all  --  *      *       0.0.0.0/0            0.0.0.0/0          
    0     0 ACCEPT     icmp --  *      *       0.0.0.0/0            0.0.0.0/0            icmptype 3 code 4 /* Needed ICMP types */
    0     0 ACCEPT     icmp --  *      *       0.0.0.0/0            0.0.0.0/0            icmptype 11 /* Needed ICMP types */
    0     0 DROP       all  --  *      *       0.0.0.0/0            0.0.0.0/0            ctstate INVALID
    0     0 DROP       udp  --  *      *       0.0.0.0/0            0.0.0.0/0            multiport dports 135,445 /* SMB */
    0     0 DROP       udp  --  *      *       0.0.0.0/0            0.0.0.0/0            udp dpts:137:139 /* SMB */
    0     0 DROP       udp  --  *      *       0.0.0.0/0            0.0.0.0/0            udp spt:137 dpts:1024:65535 /* SMB */
    0     0 DROP       tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            multiport dports 135,139,445 /* SMB */
    0     0 DROP       udp  --  *      *       0.0.0.0/0            0.0.0.0/0            udp dpt:1900 /* UPnP */
    0     0 DROP       tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            tcp flags:!0x17/0x02
    0     0 DROP       udp  --  *      *       0.0.0.0/0            0.0.0.0/0            udp spt:53 /* Late DNS Replies */

Chain Reject (5 references)
 pkts bytes target     prot opt in     out     source               destination        
    2   136            all  --  *      *       0.0.0.0/0            0.0.0.0/0          
    2   136 Broadcast  all  --  *      *       0.0.0.0/0            0.0.0.0/0          
    0     0 ACCEPT     icmp --  *      *       0.0.0.0/0            0.0.0.0/0            icmptype 3 code 4 /* Needed ICMP types */
    0     0 ACCEPT     icmp --  *      *       0.0.0.0/0            0.0.0.0/0            icmptype 11 /* Needed ICMP types */
    0     0 DROP       all  --  *      *       0.0.0.0/0            0.0.0.0/0            ctstate INVALID
    0     0 reject     udp  --  *      *       0.0.0.0/0            0.0.0.0/0            multiport dports 135,445 /* SMB */
    0     0 reject     udp  --  *      *       0.0.0.0/0            0.0.0.0/0            udp dpts:137:139 /* SMB */
    0     0 reject     udp  --  *      *       0.0.0.0/0            0.0.0.0/0            udp spt:137 dpts:1024:65535 /* SMB */
    0     0 reject     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            multiport dports 135,139,445 /* SMB */
    0     0 DROP       udp  --  *      *       0.0.0.0/0            0.0.0.0/0            udp dpt:1900 /* UPnP */
    0     0 DROP       tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            tcp flags:!0x17/0x02
    0     0 DROP       udp  --  *      *       0.0.0.0/0            0.0.0.0/0            udp spt:53 /* Late DNS Replies */

Chain dynamic (4 references)
 pkts bytes target     prot opt in     out     source               destination        

Chain fw-loc (1 references)
 pkts bytes target     prot opt in     out     source               destination        
    0     0 ACCEPT     all  --  *      *       0.0.0.0/0            0.0.0.0/0            ctstate RELATED,ESTABLISHED
    0     0 Reject     all  --  *      *       0.0.0.0/0            0.0.0.0/0          
    0     0 LOG        all  --  *      *       0.0.0.0/0            0.0.0.0/0            LOG flags 0 level 6 prefix "Shorewall:fw-loc:REJECT:"
    0     0 reject     all  --  *      *       0.0.0.0/0            0.0.0.0/0           [goto]

Chain fw-net (1 references)
 pkts bytes target     prot opt in     out     source               destination        
   40  3462 ACCEPT     all  --  *      *       0.0.0.0/0            0.0.0.0/0            ctstate RELATED,ESTABLISHED
    0     0 ACCEPT     all  --  *      *       0.0.0.0/0            0.0.0.0/0          

Chain loc-fw (1 references)
 pkts bytes target     prot opt in     out     source               destination        
    2   136 dynamic    all  --  *      *       0.0.0.0/0            0.0.0.0/0            ctstate INVALID,NEW,UNTRACKED
    0     0 tcpflags   tcp  --  *      *       0.0.0.0/0            0.0.0.0/0          
    0     0 ACCEPT     all  --  *      *       0.0.0.0/0            0.0.0.0/0            ctstate RELATED,ESTABLISHED
    2   136 Reject     all  --  *      *       0.0.0.0/0            0.0.0.0/0          
    0     0 LOG        all  --  *      *       0.0.0.0/0            0.0.0.0/0            LOG flags 0 level 6 prefix "Shorewall:loc-fw:REJECT:"
    0     0 reject     all  --  *      *       0.0.0.0/0            0.0.0.0/0           [goto]

Chain loc-net (1 references)
 pkts bytes target     prot opt in     out     source               destination        
    0     0 ACCEPT     all  --  *      *       0.0.0.0/0            0.0.0.0/0            ctstate RELATED,ESTABLISHED
    0     0 ACCEPT     all  --  *      *       0.0.0.0/0            0.0.0.0/0          

Chain loc_frwd (1 references)
 pkts bytes target     prot opt in     out     source               destination        
    0     0 dynamic    all  --  *      *       0.0.0.0/0            0.0.0.0/0            ctstate INVALID,NEW,UNTRACKED
    0     0 tcpflags   tcp  --  *      *       0.0.0.0/0            0.0.0.0/0          
    0     0 loc-net    all  --  *      ens32   0.0.0.0/0            0.0.0.0/0          

Chain logdrop (0 references)
 pkts bytes target     prot opt in     out     source               destination        
    0     0 DROP       all  --  *      *       0.0.0.0/0            0.0.0.0/0          

Chain logflags (7 references)
 pkts bytes target     prot opt in     out     source               destination        
    0     0 LOG        all  --  *      *       0.0.0.0/0            0.0.0.0/0            LOG flags 4 level 6 prefix "Shorewall:logflags:DROP:"
    0     0 DROP       all  --  *      *       0.0.0.0/0            0.0.0.0/0          

Chain logreject (0 references)
 pkts bytes target     prot opt in     out     source               destination        
    0     0 reject     all  --  *      *       0.0.0.0/0            0.0.0.0/0          

Chain net-fw (1 references)
 pkts bytes target     prot opt in     out     source               destination        
   26  2461 dynamic    all  --  *      *       0.0.0.0/0            0.0.0.0/0            ctstate INVALID,NEW,UNTRACKED
   65  4412 tcpflags   tcp  --  *      *       0.0.0.0/0            0.0.0.0/0          
   44  3188 ACCEPT     all  --  *      *       0.0.0.0/0            0.0.0.0/0            ctstate RELATED,ESTABLISHED
   26  2461 Drop       all  --  *      *       0.0.0.0/0            0.0.0.0/0          
   21  1224 LOG        all  --  *      *       0.0.0.0/0            0.0.0.0/0            LOG flags 0 level 6 prefix "Shorewall:net-fw:DROP:"
   21  1224 DROP       all  --  *      *       0.0.0.0/0            0.0.0.0/0          

Chain net-loc (1 references)
 pkts bytes target     prot opt in     out     source               destination        
    0     0 ACCEPT     all  --  *      *       0.0.0.0/0            0.0.0.0/0            ctstate RELATED,ESTABLISHED
    0     0 Drop       all  --  *      *       0.0.0.0/0            0.0.0.0/0          
    0     0 LOG        all  --  *      *       0.0.0.0/0            0.0.0.0/0            LOG flags 0 level 6 prefix "Shorewall:net-loc:DROP:"
    0     0 DROP       all  --  *      *       0.0.0.0/0            0.0.0.0/0          

Chain net_frwd (1 references)
 pkts bytes target     prot opt in     out     source               destination        
    0     0 dynamic    all  --  *      *       0.0.0.0/0            0.0.0.0/0            ctstate INVALID,NEW,UNTRACKED
    0     0 tcpflags   tcp  --  *      *       0.0.0.0/0            0.0.0.0/0          
    0     0 net-loc    all  --  *      ens33   0.0.0.0/0            0.0.0.0/0          

Chain reject (10 references)
 pkts bytes target     prot opt in     out     source               destination        
    0     0 DROP       all  --  *      *       0.0.0.0/0            0.0.0.0/0            ADDRTYPE match src-type BROADCAST
    0     0 DROP       all  --  *      *       224.0.0.0/4          0.0.0.0/0          
    0     0 DROP       2    --  *      *       0.0.0.0/0            0.0.0.0/0          
    0     0 REJECT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            reject-with tcp-reset
    0     0 REJECT     udp  --  *      *       0.0.0.0/0            0.0.0.0/0            reject-with icmp-port-unreachable
    0     0 REJECT     icmp --  *      *       0.0.0.0/0            0.0.0.0/0            reject-with icmp-host-unreachable
    0     0 REJECT     all  --  *      *       0.0.0.0/0            0.0.0.0/0            reject-with icmp-host-prohibited

Chain sha-lh-9fb35c85dc42dde9cbdc (0 references)
 pkts bytes target     prot opt in     out     source               destination        

Chain sha-rh-359ff2fc27a8cde8c2f2 (0 references)
 pkts bytes target     prot opt in     out     source               destination        

Chain shorewall (0 references)
 pkts bytes target     prot opt in     out     source               destination        
    0     0            all  --  *      *       0.0.0.0/0            0.0.0.0/0            recent: SET name: %CURRENTTIME side: source mask: 255.255.255.255

Chain tcpflags (4 references)
 pkts bytes target     prot opt in     out     source               destination        
    0     0 logflags   tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           [goto]  tcp flags:0x3F/0x29
    0     0 logflags   tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           [goto]  tcp flags:0x3F/0x00
    0     0 logflags   tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           [goto]  tcp flags:0x06/0x06
    0     0 logflags   tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           [goto]  tcp flags:0x05/0x05
    0     0 logflags   tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           [goto]  tcp flags:0x03/0x03
    0     0 logflags   tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           [goto]  tcp flags:0x19/0x09
    0     0 logflags   tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           [goto]  tcp spt:0 flags:0x17/0x02

Това е Shorewall с базисни настройки. Няма да ги обеснявам.
Допада ли ми? Не, на сървър който поддръжам, никога не бих качил подобно нещо. Ще работи ли? Да, всичко зависи от желязото и трафика, който ще минава.

« Последна редакция: Jul 13, 2017, 21:03 от mystical »
Активен

Ако не можеш да градиш, поне не руши!

backinblack

  • Напреднали
  • *****
  • Публикации: 3201
    • Профил
Re: Linux рутер с Shorewall !!!!???????
« Отговор #61 -: Jul 28, 2017, 00:42 »
В Уиндоус всички знаем как се създават куп програми една с друга дублиращи, докато в Линукс, избора е ограничен и за това си има логика. Нищо в Линукс не се създава просто така самоцелно, а хората се обединяват около някаква идея. Когато един проект се развива, това означава, че нещо в него е направено със съвсем различна логика от това в друг проект. Двете или трите са със съвсем различно предназначение.
Сега като поразучих малко повече нещата, това нещо Шореуол е направено специално за рутер. Не просто за някакъв си самостоятелен сървър, а за мрежа зад него. Не, че и с айпи таблиците не може да се постигне същото, но тук, като свалиш стената за нещо, интернета на другите зад рутера не прекъсва. Сваля само защитната стена за достъп от вън, но маскарадинга и пренасочените портове от вън на вътре работят.
На мен лично ми трябваше решение за сървър и рутер в едно и сам много доволен от тази комбинация. Айпи таблиците са за самостоятелен сървър.
Активен

petar258

  • Напреднали
  • *****
  • Публикации: 399
  • Distribution: Ubuntu-mate 16.04, Windows 7
    • Профил
Re: Linux рутер с Shorewall !!!!???????
« Отговор #62 -: Jul 28, 2017, 02:44 »
Това което търсиш - графично управление на правила, рутиране и прочее го има в mikrotik. Купуваш си техен рутер и през winbox си правиш всичко лесно и прегледно от windows-а. Рутерите им работят с линукс и имат доста общо с линукс OS, но техния код е затворен, за сметка на това е по- юзър-френдли.
Активен

backinblack

  • Напреднали
  • *****
  • Публикации: 3201
    • Профил
Re: Linux рутер с Shorewall !!!!???????
« Отговор #63 -: Jul 28, 2017, 03:42 »
Това, което търся е уеб сървър, файлов сървър, мейли сървър...... и рутер в едно!
Активен

deant01

  • Напреднали
  • *****
  • Публикации: 221
  • Distribution: Debian/sid
  • Window Manager: Gnome 3
    • Профил
Re: Linux рутер с Shorewall !!!!???????
« Отговор #64 -: Jul 28, 2017, 06:53 »
Това, което търся е уеб сървър, файлов сървър, мейли сървър...... и рутер в едно!

пак минах през темата и ми направи впечатление, че и ти като другя колега, който смъмрихме по-рано през седмицата искаш да слагаш рутер на виртуалка. От писанията ти личи, че си сериозен човек и по твои думи се занимаваш със сериозни неща. Малко по късно каззваш, че имаш по важни работи от това да четеш и учиш, но пък искаш нещата да бъдат направени. Това (иронично) не е много сериозно. Ако дадеш пари на някой да ти направи франкенщайна, който искаш, трябва да си наясно, че ще трябва да продължиш да му плаща за да го поддържа, защото ти няма да имаш идея какво точно се случва.
Това което си описъл съм го правил МНОГО години и то по-най тривиалния начин:
1. уеб сървър - Apache
2. файлов сървър - Samba с достъп през OpenVPN
3. Мейл сървър - Postfix+ClamaAV+Spamassasin+Amavisd-new+dkim
4.ДНС сървър - bind
5. и накрая рутер - не знам защо не разбирате, че всеки линукс е рутер. Машината на които си сложил всички тези неща играе ролята на рутер и това е.
6. Кат искаш графична благинка - webmin да си конфигурираш всичките тези неща вкл. и огнната стена(рутера)

Може някои от тези неща да ги сложиш в контейнер (без рутера). Но за целите ти задължително трябва докер, а не виртуалбокс! Искаш нещо тривиално, но понеже не си наясно как става, го мислиш по най-сложния начин. Колко време си загубил да четеш/пишеш тука, а можеше да прочетеш основни работи.
Активен

Ripples of paradox spread out across the sea of causality.

deant01

  • Напреднали
  • *****
  • Публикации: 221
  • Distribution: Debian/sid
  • Window Manager: Gnome 3
    • Профил
Re: Linux рутер с Shorewall !!!!???????
« Отговор #65 -: Jul 28, 2017, 07:05 »
Това, което търся е уеб сървър, файлов сървър, мейли сървър...... и рутер в едно!

пак минах през темата и ми направи впечатление, че и ти като другя колега, който смъмрихме по-рано през седмицата искаш да слагаш рутер на виртуалка. От писанията ти личи, че си сериозен човек и по твои думи се занимаваш със сериозни неща. Малко по късно каззваш, че имаш по важни работи от това да четеш и учиш, но пък искаш нещата да бъдат направени. Това (иронично) не е много сериозно. Ако дадеш пари на някой да ти направи франкенщайна, който искаш, трябва да си наясно, че ще трябва да продължиш да му плаща за да го поддържа, защото ти няма да имаш идея какво точно се случва.
Това което си описъл съм го правил МНОГО години и то по-най тривиалния начин:
1. уеб сървър - Apache
2. файлов сървър - Samba с достъп през OpenVPN
3. Мейл сървър - Postfix+ClamaAV+Spamassasin+Amavisd-new+dkim
4.ДНС сървър - bind
5. и накрая рутер - не знам защо не разбирате, че всеки линукс е рутер. Машината на които си сложил всички тези неща играе ролята на рутер и това е.
6. Кат искаш графична благинка - webmin да си конфигурираш всичките тези неща вкл. и огнната стена(рутера)

Може някои от тези неща да ги сложиш в контейнер (без рутера). Но за целите ти задължително трябва докер, а не виртуалбокс! Искаш нещо тривиално, но понеже не си наясно как става, го мислиш по най-сложния начин. Колко време си загубил да четеш/пишеш тука, а можеше да прочетеш основни работи.

Неща от опит, които да споделя.
1. Личното ми мнение е, че файловия сърврър трябва да е на отделна физическа машина, а не на същата където вървят всички други работи. Дялът който ще ползваш за фаилове на този файлов сървър задължително трябва да е с btrfs, zfs  или подобна файлова система, за сериозе бекъп. Освен това всичко трябва ежедневно да се бекъпва на трета машина с rsync, в случай, че нещо се случи с другата. Това е така, защото натрупаната информация е най-важният ти актив в бизнеса!
2. останлити сървиси (без рутера) трябва да са в контейнери. Apache в контейнер. Щом ще има сайт задължително ще имаш SQL бази данни. Ако е различно от Sqlite,  трябва да е в отделен контейнер.
3. Мейл сървъра заедно с всичките други необходими към него работи за проверка на пощата за спам и вируси също трябва да са в контейнер.

При нормални условия за максимум седмица-две заедно с четенето можеш да се справиш и да настроиш всичко. След това всекидневната ти работа по това нещо е само :
apt update
apt full-upgrade

айде със здраве и успехи.

П.П. - виж колко много информация ти снесох - питай чичко гуггъл за конфигуриране на всички тези пакети (защото ми се струва, че досега не знаеше, кой за какво се ползва) и той ще ти покаже хиляда начина, така че да ти спести прекалено четене.
« Последна редакция: Jul 28, 2017, 07:08 от deant01 »
Активен

Ripples of paradox spread out across the sea of causality.

backinblack

  • Напреднали
  • *****
  • Публикации: 3201
    • Профил
Re: Linux рутер с Shorewall !!!!???????
« Отговор #66 -: Jul 28, 2017, 11:15 »
Сещам се за коя тема на колегата имаш в предвид, но моето е доста по-професионално :) .
От поне 5 години ползвам VMWare ESXi. Ползвал съм виртуално за рутер и Сенс-а, а с Veaam правя бекъпи на цялата виртуалка. Да сложа мейл сървъра зад рутер хич не ми харесва идеята и поради тази причина мейл сървъра, уеб и самба сървъра трябва да са отпред и да играе и рутер. А на виртуалка е много по-надеждно. Веднъж съм сменял желязото за нула време работа чрез бекъп и рестор на новото желязо.
Активен

go_fire

  • Global Moderator
  • Напреднали
  • *****
  • Публикации: 8792
  • Distribution: Дебиан Сид
  • Window Manager: ROX-Desktop / е17
  • кашик с гранатомет в танково поделение
    • Профил
    • WWW
Re: Linux рутер с Shorewall !!!!???????
« Отговор #67 -: Jul 28, 2017, 11:41 »

А на виртуалка е много по-надеждно. Веднъж съм сменял желязото за нула време работа чрез бекъп и рестор на новото желязо.


Ами то тая работа, при нас става с:

Код
GeSHi (Bash):
  1. cp -axrv / /mnt

Може също rsync, както Деант каза.

Между другото за vagrand има графични клиенти за такива като теб (и за rsynk също, за cp да не говорим, какво изобилие е).

Просто си признай, че цялата работа е заради онази по-популярната ОС, защото точно за нея са програмите, който ползват твоите клиенти. Не ни обяснявай, че виртуалките са по-надеждни, защото не са. Единствено са по-сигурни в смисъл на кракерско нападение.
Активен

В $por4e2 e истината  ;)

***

Aко даваха стипендия за най-глупави, щях да съм човека с най-много Mини Kупъри

***

Reborn since 1998 || 15.09.2007 totally М$ free && conscience clear

jet

  • Напреднали
  • *****
  • Публикации: 3473
  • Distribution: debian
  • Window Manager: kde
    • Профил
Re: Linux рутер с Shorewall !!!!???????
« Отговор #68 -: Jul 28, 2017, 15:04 »
Сещам се за коя тема на колегата имаш в предвид, но моето е доста по-професионално :) .
От поне 5 години ползвам VMWare ESXi. Ползвал съм виртуално за рутер и Сенс-а, а с Veaam правя бекъпи на цялата виртуалка. Да сложа мейл сървъра зад рутер хич не ми харесва идеята и поради тази причина мейл сървъра, уеб и самба сървъра трябва да са отпред и да играе и рутер. А на виртуалка е много по-надеждно. Веднъж съм сменял желязото за нула време работа чрез бекъп и рестор на новото желязо.
Едно си баба знае, едно си бае.
VMWare ESXi е пълен хипервайзор и ще ти емулира желязото за всички гост ОС-и - от там ще ти трябва як процесор и много РАМ за всяка виртуална ОС.
Човека правилно ти е казал контейнери - там няма overhead - всички "гости" работят с ядрото на хоста. контейнера се използва за изолация между гостите.
Бекъп можеш да си правиш и само на /етц/ директорията и на данните ти. Няма нужда да бекъпваш цели имиджи. Линукс може да преживее и смяна на желязото.
Например Самба - трябва ти бекъп само на smb.ini, Apache - копие на /etc/apache2 и /var/www са напълно достатъчни. Mysql - прост дъмп на интересуващите бази данни.
Архива ще ти трае няколко секундин и няма да заема тонове място.
За Дебиан базирани дистра - архив на списък с инсталираните пакети: dpkg --get-selections  > /mnt/backup/backup.pkg.lst за възстановяеане: минимален инстал и тогава dpkg --set-selections < /backup/backup.pkg.lst тогава  apt-get dselect-upgrade и накрая apt-get dist-upgrade
Активен

..⢀⣴⠾⠻⢶⣦⠀
  ⣾⠁⢠⠒⠀⣿⡁
  ⢿⡄⠘⠷⠚⠋
  ⠈⠳⣄⠀⠀⠀⠀  Debian, the universal operating system.