Для начала обрисуем ситуацию. Пусть мы имеем некий хостовый сервер и на нем крутятся несколько виртуальных машин, причем связь между ними происходит через виртуальную сеть 192.168.56.0/24 (эта сеть первой создается в VirtualBox). Т.е. виртуальные машины не видны в локальной сети. Нужно организовать проброс из вне на виртуальные машины.

#!/bin/bash
#Переменная задает имя адаптера локальной сети для виртуальной машины
virtualadapter="vboxnet0"
#Переменная задает саму сеть для виртуальной машины
virtualnet="192.168.56.0/24"
#Переменная задает имя адаптера сети интернета реальной машины
hostadapter="eth0"
#Переменная задает саму сеть реальной машины, это же локальная сеть клиентов
hostnet="192.168.1.0/24"
#Порт подключения по RDP к хостовой машине
rdphost="1234"
#Порт подключения по SSH к хостовой машине
sshhost="2345"
#Переменная хранит порты для бана, если идет простукивание портов, а мы их не используем, то сразу в бан
portban="3380:3399,5985,5986,22,13000,15000,5210:5214,5230:5270,5900:5906"
#Зададим порты для простукивания
#Непосредственно порты для стука
port1="3456"
port2="4567"
port3="5678"
#Порт для сброса
portreset1=port1
let "portreset1 -= 1"
portreset2=port1
let "portreset2 += 1"
#Порты явного бана
portban1=port2
let "portban1 -= 1"
portban2=port2
let "portban2 += 1"
portban3=port3
let "portban3 -= 1"
portban4=port3
let "portban4 += 1"

#Пусть eth0 (192.168.1.100/24) это сеть интернета, vboxnet0 (192.168.56.0/24) это локальная сеть виртуальной машины

#Удаляем все правила
sudo iptables -F

sudo iptables --flush
sudo iptables --table nat --flush
sudo iptables --delete-chain
sudo iptables --table nat --delete-chain

# Сначала все закрываем

sudo iptables -P INPUT DROP
sudo iptables -P OUTPUT DROP
sudo iptables -P FORWARD DROP





#разрешим передачу пакетов через входящий петлевой интерфейс и исходящий петлевой интерфейс в таблицах INPUT
sudo iptables -A INPUT -i lo -j ACCEPT 
sudo iptables -A OUTPUT -o lo -j ACCEPT

#разрешить работу протокола ICMP
sudo iptables -A INPUT -p icmp --icmp-type 0 -j ACCEPT
sudo iptables -A INPUT -p icmp --icmp-type 8 -j ACCEPT
sudo iptables -A OUTPUT -p icmp -j ACCEPT

#разрешающей все исхолящие соединения
sudo iptables -P OUTPUT ACCEPT

#разрешить попадание на наш компьютер только тех TCP- и UDP-пакетов, которые были запрошены локальными приложениями
sudo iptables -A INPUT -p TCP -m state --state ESTABLISHED,RELATED -j ACCEPT
sudo iptables -A INPUT -p UDP -m state --state ESTABLISHED,RELATED -j ACCEPT


#Теперь открываем порты для наших серверных функций, причем с защитой от перебора

#Для DNS, если нужно
#sudo iptables -A INPUT --protocol udp --dport 53 --match state --state NEW --match string --algo kmp --hex-string "|00 00 02 00 01|" --from 40 --to 45 --match recent --name DNST --update --seconds 600 --jump DROP
#sudo iptables -A INPUT --protocol udp --dport 53 --match state --state NEW --match string --algo kmp --hex-string "|00 00 02 00 01|" --from 40 --to 45 --match recent --name DNST --set --jump ACCEPT
#sudo iptables -A INPUT -p udp --dport 53 -j ACCEPT
#sudo iptables -A OUTPUT -p udp --sport 53 -j ACCEPT


#Для защиты подключений через стук
#Сначала нужно постучать в порт port1 не более одного раза за минуту
#потом нужно постучать в порт port2 не более одного раза за минуту
#потом нужно постучать в порт port3 не более одного раза за минуту
#затем идет подключение к нужному порту в течении не более 20 секунд
#после чего сразу блокируются дальнейшие подключения
sudo iptables -N BanSet
sudo iptables -A BanSet -m recent --name BAN1H --remove
sudo iptables -A BanSet -m recent --set --name BAN1H
sudo iptables -A BanSet -m recent --name knock1H --remove
sudo iptables -A BanSet -m recent --name knock2H --remove
sudo iptables -A BanSet -m recent --name knock3H --remove
sudo iptables -A BanSet -j DROP


sudo iptables -N Resetknock
sudo iptables -A Resetknock -m recent --name knock1H --remove
sudo iptables -A Resetknock -m recent --name knock2H --remove
sudo iptables -A Resetknock -m recent --name knock3H --remove
sudo iptables -A Resetknock -m recent --name BAN1H --remove
sudo iptables -A Resetknock -j DROP

sudo iptables -N Resetknock123
sudo iptables -A Resetknock123 -m recent --name knock1H --remove
sudo iptables -A Resetknock123 -m recent --name knock2H --remove
sudo iptables -A Resetknock123 -m recent --name knock3H --remove
sudo iptables -A Resetknock123 -j DROP

sudo iptables -N Resetknock12
sudo iptables -A Resetknock12 -m recent --name knock1H --remove
sudo iptables -A Resetknock12 -m recent --name knock2H --remove
sudo iptables -A Resetknock12 -j DROP

sudo iptables -N Resetknock1
sudo iptables -A Resetknock1 -m recent --name knock1H --remove
sudo iptables -A Resetknock1 -j DROP

sudo iptables -N Resetknock2
sudo iptables -A Resetknock2 -m recent --name knock2H --remove
sudo iptables -A Resetknock2 -j DROP

sudo iptables -N Resetknock3
sudo iptables -A Resetknock3 -m recent --name knock3H --remove
sudo iptables -A Resetknock3 -j DROP

sudo iptables -N knock
sudo iptables -A knock -m recent --rcheck --seconds 864000 --hitcount 1 --name BAN1H -j Resetknock123
sudo iptables -A knock -m recent --rcheck --seconds 60 --hitcount 1 --name knock2H -j BanSet
sudo iptables -A knock -m recent --rcheck --seconds 60 --hitcount 1 --name knock3H -j BanSet
sudo iptables -A knock -m recent --rcheck --seconds 60 --hitcount 2 --name knock1H -j BanSet
sudo iptables -A knock -m recent --name knock1H --remove
sudo iptables -A knock -m recent --set --name knock1H
sudo iptables -A knock -j DROP

sudo iptables -N knock1
sudo iptables -A knock1 -m recent --rcheck --seconds 10 --hitcount 1 --name knock1H -j ACCEPT
sudo iptables -A knock1 -j DROP

sudo iptables -N knock21
sudo iptables -A knock21 -m recent --rcheck --seconds 864000 --hitcount 1 --name BAN1H -j Resetknock123
sudo iptables -A knock21 -m recent --rcheck --seconds 60 --hitcount 1 --name knock3H -j BanSet
sudo iptables -A knock21 -m recent --rcheck --seconds 60 --hitcount 2 --name knock2H -j BanSet
sudo iptables -A knock21 -m recent --name knock2H --remove
sudo iptables -A knock21 -m recent --set --name knock2H
sudo iptables -A knock21 -j DROP

sudo iptables -N knock2
sudo iptables -A knock2 -m recent --rcheck --seconds 10 --hitcount 1 --name knock2H -j knock1
sudo iptables -A knock2 -j DROP

sudo iptables -N knock32
sudo iptables -A knock32 -m recent --rcheck --seconds 864000 --hitcount 1 --name BAN1H -j Resetknock123
sudo iptables -A knock32 -m recent --rcheck --seconds 60 --hitcount 2 --name knock3H -j BanSet
sudo iptables -A knock32 -m recent --name knock3H --remove
sudo iptables -A knock32 -m recent --set --name knock3H
sudo iptables -A knock32 -j DROP

sudo iptables -N knock3
sudo iptables -A knock3 -m recent --rcheck --seconds 864000 --hitcount 1 --name BAN1H -j Resetknock123
sudo iptables -A knock3 -m recent --rcheck --seconds 60 --hitcount 2 --name knock1H -j DROP
sudo iptables -A knock3 -m recent --rcheck --seconds 60 --hitcount 2 --name knock2H -j DROP
sudo iptables -A knock3 -m recent --rcheck --seconds 60 --hitcount 2 --name knock3H -j DROP
sudo iptables -A knock3 -m recent --rcheck --seconds 10 --hitcount 1 --name knock3H -j knock2
sudo iptables -A knock3 -j DROP


sudo iptables -A INPUT -m state --state NEW -p tcp --dport $port1 -j knock
sudo iptables -A INPUT -m state --state NEW -p tcp -m multiport --dport $portreset1,$portreset2 -j Resetknock

sudo iptables -A INPUT -m state --state NEW -p tcp --dport $port2 -m recent --set --name knock2H -j knock21
sudo iptables -A INPUT -m state --state NEW -p tcp -m multiport --dport $portban1,$portban2 -j BanSet

sudo iptables -A INPUT -m state --state NEW -p tcp --dport $port3 -m recent --set --name knock3H -j knock32
sudo iptables -A INPUT -m state --state NEW -p tcp -m multiport --dport $portban3,$portban4 -j BanSet


#Помещаем в бан на 10 дней тех, кто пробует стандартные порты для RDP и SSH и так далее (3389 и 22)
sudo iptables -A INPUT -m state --state NEW -p tcp -m multiport --dport $portban -j BanSet



#Для моего RDP

sudo iptables -A INPUT -m state --state NEW -p tcp --dport $rdphost -j knock3
sudo iptables -A OUTPUT -m state --state NEW -p tcp --sport $rdphost -j knock3

#sudo iptables -N RDP
#sudo iptables -A INPUT -p tcp --dport $rdphost -j RDP
#sudo iptables -A OUTPUT -p tcp --sport $rdphost -j RDP
#sudo iptables -A RDP -m state --state NEW -m recent --set --name RDPH --rsource 
#sudo iptables -A RDP -m recent --update --seconds 300 --hitcount 1 --name RDPH --rsource -j DROP
#sudo iptables -A RDP -j ACCEPT




#Для моего SSH
sudo iptables -A INPUT -m state --state NEW -p tcp --dport $sshhost -j knock3
sudo iptables -A OUTPUT -m state --state NEW -p tcp --sport $sshhost -j knock3

#sudo iptables -N SSH
#sudo iptables -A INPUT -p tcp --dport $sshhost -j SSH
#sudo iptables -A OUTPUT -p tcp --sport $sshhost -j SSH
#sudo iptables -A SSH -m state --state NEW -m recent --set --name SSHH --rsource 
#sudo iptables -A SSH -m recent --update --seconds 300 --hitcount 1 --name SSHH --rsource -j DROP
#sudo iptables -A SSH -j ACCEPT



#Модули iptables MicrosoftVPN нужны для запуска протокола gre, а так же для работы ftp
modprobe nf_conntrack
modprobe iptable_nat
modprobe nf_conntrack_ftp
modprobe nf_nat_ftp
modprobe nf_conntrack_pptp
modprobe nf_nat_pptp
#echo 1 > /proc/sys/net/netfilter/nf_conntrack_helper


#Включение NAT
#разрешаем уже установленные соединения в цепочке FORWARD, таблице filter
sudo iptables -A FORWARD -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
#разрешаем устанавливать новые соединения в цепочке FORWARD, таблице filter
sudo iptables -A FORWARD -m conntrack --ctstate NEW -i $virtualadapter -j ACCEPT
#Все остальные пакеты, которые проходят через цепочку FORWARD - отбрасывать
sudo iptables -P FORWARD DROP
#выполняем маскирование (подмену адреса отправителя пакета в заголовках) всех пакетов, исходящих с интерфейса eth0
sudo iptables -t nat -A POSTROUTING -o $hostadapter -s $virtualnet -j MASQUERADE

#Предоставление доступа к сервисам в локальной сети

#Перенаправляем DNS
#sudo iptables -t nat -A PREROUTING -p udp --in-interface $hostadapter --dport 53 -j DNAT --to-destination 192.168.56.102
#sudo iptables -A FORWARD -i $hostadapter -p udp -d 192.168.56.102 --dport 53 -j ACCEPT
#sudo iptables -t nat -A PREROUTING -p tcp --in-interface $hostadapter --dport 53 -j DNAT --to-destination 192.168.56.102
#sudo iptables -A FORWARD -i $hostadapter -p tcp -d 192.168.56.102 --dport 53 -j ACCEPT

#ftp 1C
sudo iptables -A PREROUTING -t raw -p tcp --dport 21 --in-interface $hostadapter -j CT --helper ftp

sudo iptables -t nat -A PREROUTING -p tcp --in-interface $hostadapter --dport 20 -j DNAT --to-destination 192.168.56.101
sudo iptables -A FORWARD -i $hostadapter -p tcp -d 192.168.56.101 --dport 20 -j ACCEPT
sudo iptables -t nat -A PREROUTING -p tcp --in-interface $hostadapter --dport 21 -j DNAT --to-destination 192.168.56.101
sudo iptables -A FORWARD -i $hostadapter -p tcp -d 192.168.56.101 --dport 21 -j ACCEPT


#Для работы почты открыть порты 

#SMTP
#sudo iptables -t nat -A PREROUTING -p tcp --in-interface $hostadapter --dport 25 -j DNAT --to-destination 192.168.56.102
#sudo iptables -A FORWARD -i $hostadapter -p tcp -d 192.168.56.102 --dport 25 -j ACCEPT
 
#SSMTP
#sudo iptables -t nat -A PREROUTING -p tcp --in-interface $hostadapter --dport 465 -j DNAT --to-destination 192.168.56.102
#sudo iptables -A FORWARD -i $hostadapter -p tcp -d 192.168.56.102 --dport 465 -j ACCEPT

#SMTP Submission
#sudo iptables -t nat -A PREROUTING -p tcp --in-interface $hostadapter --dport 587 -j DNAT --to-destination 192.168.56.102
#sudo iptables -A FORWARD -i $hostadapter -p tcp -d 192.168.56.102 --dport 587 -j ACCEPT

#POP3
#sudo iptables -t nat -A PREROUTING -p tcp --in-interface $hostadapter --dport 110 -j DNAT --to-destination 192.168.56.102
#sudo iptables -A FORWARD -i $hostadapter -p tcp -d 192.168.56.102 --dport 110 -j ACCEPT

#SPOP3
#sudo iptables -t nat -A PREROUTING -p tcp --in-interface $hostadapter --dport 995 -j DNAT --to-destination 192.168.56.102
#sudo iptables -A FORWARD -i $hostadapter -p tcp -d 192.168.56.102 --dport 995 -j ACCEPT

#IMAP
#sudo iptables -t nat -A PREROUTING -p tcp --in-interface $hostadapter --dport 143 -j DNAT --to-destination 192.168.56.102
#sudo iptables -A FORWARD -i $hostadapter -p tcp -d 192.168.56.102 --dport 143 -j ACCEPT


#SIMAP
#sudo iptables -t nat -A PREROUTING -p tcp --in-interface $hostadapter --dport 993 -j DNAT --to-destination 192.168.56.102
#sudo iptables -A FORWARD -i $hostadapter -p tcp -d 192.168.56.102 --dport 993 -j ACCEPT


#HTTP
#sudo iptables -t nat -A PREROUTING -p tcp --in-interface $hostadapter --dport 80 -j DNAT --to-destination 192.168.56.102
#sudo iptables -A FORWARD -i $hostadapter -p tcp -d 192.168.56.102 --dport 80 -j ACCEPT

#SHTTP
#sudo iptables -t nat -A PREROUTING -p tcp --in-interface $hostadapter --dport 443 -j DNAT --to-destination 192.168.56.102
#sudo iptables -A FORWARD -i $hostadapter -p tcp -d 192.168.56.102 --dport 443 -j ACCEPT

#Управление почтой Zimbra
#sudo iptables -t nat -A PREROUTING -p tcp --in-interface $hostadapter --dport 7071 -j DNAT --to-destination 192.168.56.102
#sudo iptables -A FORWARD -i $hostadapter -p tcp -d 192.168.56.102 --dport 7071 -j ACCEPT
#sudo iptables -t nat -A PREROUTING -p tcp --in-interface $hostadapter --dport 8443 -j DNAT --to-destination 192.168.56.102
#sudo iptables -A FORWARD -i $hostadapter -p tcp -d 192.168.56.102 --dport 8443 -j ACCEPT


#Для VPN

#OpenVPN
#sudo iptables -N OpenVPN
#sudo iptables -t nat -A PREROUTING -p udp --in-interface $hostadapter --dport 1194 -j DNAT --to-destination 10.41.0.2
#sudo iptables -A FORWARD -i $hostadapter -p udp -d 10.41.0.2 --dport 1194 -j OpenVPN
#sudo iptables -A OpenVPN -m recent --set --name OpenVPNH --rsource 
#sudo iptables -A OpenVPN -m recent --update --seconds 60 --hitcount 1 --name OpenVPNH --rsource -j LOG --log-prefix "Anti OpenVPNH-Bruteforce: " --log-level 6 
#sudo iptables -A OpenVPN -m recent --update --seconds 60 --hitcount 1 --name OpenVPNH --rsource -j DROP
#sudo iptables -A OpenVPN -j ACCEPT

#Microsoft VPN
#sudo iptables -A FORWARD -p gre -j ACCEPT
#sudo iptables -t nat -A PREROUTING -p tcp --in-interface $hostadapter --dport 1723 -j DNAT --to-destination 10.41.0.2
#sudo iptables -I FORWARD 1 -i $hostadapter -p tcp -d 10.41.0.2 -p tcp -m tcp --dport 1723 -j ACCEPT


#RDP MAIL
sudo iptables -t nat -A PREROUTING -p tcp --in-interface $hostadapter --dport 5217 -m recent --rcheck --seconds 864000 --hitcount 1 --name BAN1H --rsource -j REDIRECT --to-port 3389
sudo iptables -t nat -A PREROUTING -p tcp --in-interface $hostadapter --dport 5217 -m recent --rcheck --seconds 60 --hitcount 2 --name knock1H --rsource -j REDIRECT --to-port 3389
sudo iptables -t nat -A PREROUTING -p tcp --in-interface $hostadapter --dport 5217 -m recent --rcheck --seconds 60 --hitcount 2 --name knock2H --rsource -j REDIRECT --to-port 3389
sudo iptables -t nat -A PREROUTING -p tcp --in-interface $hostadapter --dport 5217 -m recent --rcheck --seconds 60 --hitcount 2 --name knock3H --rsource -j REDIRECT --to-port 3389
sudo iptables -t nat -A PREROUTING -p tcp --in-interface $hostadapter --dport 5217 -m recent --rcheck --seconds 10 --hitcount 1 --name knock3H --rsource -m recent --rcheck --seconds 10 --hitcount 1 --name knock2H --rsource -m recent --rcheck --seconds 10 --hitcount 1 --name knock1H --rsource -j DNAT --to-destination 192.168.56.102:3580
sudo iptables -A FORWARD -i $hostadapter -p tcp -d 192.168.56.102 --dport 3580 -j knock3
#sudo iptables -N RDPMAIL
#sudo iptables -A RDPMAIL -m state --state NEW -m recent --set --name RDPMAILH --rsource 
#sudo iptables -A RDPMAIL -m recent --update --seconds 60 --hitcount 1 --name RDPMAILH --rsource -j LOG --log-prefix "Anti RDPMAILH-Bruteforce: " --log-level 6 
#sudo iptables -A RDPMAIL -m recent --update --seconds 60 --hitcount 1 --name RDPMAILH --rsource -j DROP
#sudo iptables -A RDPMAIL -j ACCEPT

#SSH MAIL
sudo iptables -t nat -A PREROUTING -p tcp --in-interface $hostadapter --dport 7977 -m recent --rcheck --seconds 864000 --hitcount 1 --name BAN1H --rsource -j REDIRECT --to-port 3389
sudo iptables -t nat -A PREROUTING -p tcp --in-interface $hostadapter --dport 7977 -m recent --rcheck --seconds 60 --hitcount 2 --name knock1H --rsource -j REDIRECT --to-port 3389
sudo iptables -t nat -A PREROUTING -p tcp --in-interface $hostadapter --dport 7977 -m recent --rcheck --seconds 60 --hitcount 2 --name knock2H --rsource -j REDIRECT --to-port 3389
sudo iptables -t nat -A PREROUTING -p tcp --in-interface $hostadapter --dport 7977 -m recent --rcheck --seconds 60 --hitcount 2 --name knock3H --rsource -j REDIRECT --to-port 3389
sudo iptables -t nat -A PREROUTING -p tcp --in-interface $hostadapter --dport 7977 -m recent --rcheck --seconds 10 --hitcount 1 --name knock3H --rsource -m recent --rcheck --seconds 10 --hitcount 1 --name knock2H --rsource -m recent --rcheck --seconds 10 --hitcount 1 --name knock1H --rsource -j DNAT --to-destination 192.168.56.102:3522
sudo iptables -A FORWARD -i $hostadapter -p tcp -d 192.168.56.102 --dport 3522 -j knock3
#sudo iptables -N SSHMAIL
#sudo iptables -A SSHMAIL -m state --state NEW -m recent --set --name SSHMAILH --rsource 
#sudo iptables -A SSHMAIL -m recent --update --seconds 300 --hitcount 1 --name SSHMAILH --rsource -j LOG --log-prefix "Anti SSHMAILH-Bruteforce: " --log-level 6 
#sudo iptables -A SSHMAIL -m recent --update --seconds 60 --hitcount 1 --name SSHMAILH --rsource -j DROP
#sudo iptables -A SSHMAIL -j ACCEPT


#RDP 1C
sudo iptables -t nat -A PREROUTING -p tcp --in-interface $hostadapter --dport 5216 -m recent --rcheck --seconds 864000 --hitcount 1 --name BAN1H --rsource -j REDIRECT --to-port 3389
sudo iptables -t nat -A PREROUTING -p tcp --in-interface $hostadapter --dport 5216 -m recent --rcheck --seconds 60 --hitcount 2 --name knock1H --rsource -j REDIRECT --to-port 3389
sudo iptables -t nat -A PREROUTING -p tcp --in-interface $hostadapter --dport 5216 -m recent --rcheck --seconds 60 --hitcount 2 --name knock2H --rsource -j REDIRECT --to-port 3389
sudo iptables -t nat -A PREROUTING -p tcp --in-interface $hostadapter --dport 5216 -m recent --rcheck --seconds 60 --hitcount 2 --name knock3H --rsource -j REDIRECT --to-port 3389
sudo iptables -t nat -A PREROUTING -p tcp --in-interface $hostadapter --dport 5216 -m recent --rcheck --seconds 10 --hitcount 1 --name knock3H --rsource -m recent --rcheck --seconds 10 --hitcount 1 --name knock2H --rsource -m recent --rcheck --seconds 10 --hitcount 1 --name knock1H --rsource -j DNAT --to-destination 192.168.56.101:3580
sudo iptables -A FORWARD -i $hostadapter -p tcp -d 192.168.56.101 --dport 3580 -j knock3
#sudo iptables -N RDP1C
#sudo iptables -t nat -A PREROUTING -p tcp --in-interface $hostadapter --dport 5216 -j DNAT --to-destination 192.168.56.101:3580
#sudo iptables -A FORWARD -i $hostadapter -p tcp -d 192.168.56.101 --dport 3580 -j RDP1C
#sudo iptables -A RDP1C -m state --state NEW -m recent --set --name RDP1CH --rsource 
#sudo iptables -A RDP1C -m recent --update --seconds 60 --hitcount 1 --name RDP1CH --rsource -j DROP
#sudo iptables -A RDP1C -j ACCEPT



#HTTP 1C
sudo iptables -t nat -A PREROUTING -p tcp --in-interface $hostadapter --dport 82 -j DNAT --to-destination 192.168.56.101:80
sudo iptables -A FORWARD -i $hostadapter -p tcp -d 192.168.56.101 --dport 80 -j ACCEPT

#HTTP TSLocalAktiv
sudo iptables -t nat -A PREROUTING -p tcp --in-interface $hostadapter --dport 1010 -j DNAT --to-destination 192.168.56.101
sudo iptables -A FORWARD -i $hostadapter -p tcp -d 192.168.56.101 --dport 1010 -j ACCEPT
sudo iptables -t nat -A PREROUTING -p tcp --in-interface $hostadapter --dport 1011 -j DNAT --to-destination 192.168.56.101
sudo iptables -A FORWARD -i $hostadapter -p tcp -d 192.168.56.101 --dport 1011 -j ACCEPT


#Общий досуп к папкам на 1C (SMB)
sudo iptables -t nat -A PREROUTING -s $hostnet -p tcp --in-interface $hostadapter --dport 445 -j DNAT --to-destination 192.168.56.101
sudo iptables -A FORWARD -i $hostadapter -p tcp -d 192.168.56.101 --dport 445 -j ACCEPT

#Для работы сервера 1С предприятия
sudo iptables -t nat -A PREROUTING -s $hostnet -p tcp --in-interface $hostadapter --dport 1541 -j DNAT --to-destination 192.168.56.101
sudo iptables -A FORWARD -i $hostadapter -p tcp -d 192.168.56.101 --dport 1541 -j ACCEPT
sudo iptables -t nat -A PREROUTING -s $hostnet -p tcp --in-interface $hostadapter --dport 1560:1591 -j DNAT --to-destination 192.168.56.101
sudo iptables -A FORWARD -i $hostadapter -p tcp -d 192.168.56.101 --dport 1560:1591 -j ACCEPT
#Менеджер лицензий 1С
sudo iptables -t nat -A PREROUTING -s $hostnet -p tcp --in-interface $hostadapter --dport 475 -j DNAT --to-destination 192.168.56.101
sudo iptables -A FORWARD -i $hostadapter -p tcp -d 192.168.56.101 --dport 475 -j ACCEPT
#Открываем порты SQL
sudo iptables -t nat -A PREROUTING -s $hostnet -p tcp --in-interface $hostadapter --dport 1433 -j DNAT --to-destination 192.168.56.101
sudo iptables -A FORWARD -i $hostadapter -p tcp -d 192.168.56.101 --dport 1434 -j ACCEPT
sudo iptables -t nat -A PREROUTING -s $hostnet -p tcp --in-interface $hostadapter --dport 1433 -j DNAT --to-destination 192.168.56.101
sudo iptables -A FORWARD -i $hostadapter -p tcp -d 192.168.56.101 --dport 1434 -j ACCEPT
sudo iptables -t nat -A PREROUTING -s $hostnet -p udp --in-interface $hostadapter --dport 1433 -j DNAT --to-destination 192.168.56.101
sudo iptables -A FORWARD -i $hostadapter -p udp -d 192.168.56.101 --dport 1434 -j ACCEPT
sudo iptables -t nat -A PREROUTING -s $hostnet -p tcp --in-interface $hostadapter --dport 135 -j DNAT --to-destination 192.168.56.101
sudo iptables -A FORWARD -i $hostadapter -p tcp -d 192.168.56.101 --dport 135 -j ACCEPT


#Включаем защиту от перебора открытых портов, будет казаться что порт открыт
sudo iptables -A INPUT -p tcp -m tcp -j DROP


#Вставляем в автозагрузку
sudo echo "#! /sbin/iptables-restore" > /etc/network/if-up.d/iptables-rules
sudo iptables-save >> /etc/network/if-up.d/iptables-rules
sudo chmod +x /etc/network/if-up.d/iptables-rules


#Посмотреть тех, кто попал в бан можно в /proc/net/xt_recent/YOURNAME



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

Данный скрипт нужно запускать от имени root.