ipfilter: можно ли перенаправить ssh на каждую зону?
У меня есть сервер для тестирования, я установил на нем OmniOS, потому что могу эмулировать linux(зоны lx) и Solaris(отлично работает с kvm-qemu). Я могу запустить все в сети 192.168.0.0/24, но я предпочитаю делать что-то вроде этого: сервер с 2 сетевыми устройствами: bge0 и bge1,bge0 имеет 192.168.0.30 ip и bge1 с 10.2.0.1. VM (зоны и kvm-qemu) работают в сети 10.2.0.1. Таким образом, я делаю такой брандмауэр, используя ipfilter
ipf.conf
# block and quick everything by default but pass on lo0
block in log on bge0 all
pass in quick on bge1 all
pass in quick on lo0 all
# These rules will allow connections initiated from
# this host along with the return connection
pass out quick proto icmp all keep state
pass out quick proto tcp all keep state
pass out quick proto udp all keep state
# Allow SecureShell incoming connections on 22 port
pass in quick proto tcp from any to any port = 22 flags S keep state keep frags
ipnat.conf
map bge0 10.2.0.0/24 -> 0/32 portmap tcp/udp auto
map bge0 10.2.0.0/24 -> 0/32
rdr bge0 10.2.0.0/24 -> 10.2.0.3
С одной зоной lx (10.2.0.3) работает отлично. Я могу достичь этого с помощью ssh от 192.168.0.0/24 сетевых клиентов. У меня вопрос... если я хочу две или более машин, можно ли перенаправить ssh на другую машину?
Например
machine1-------->ssh------->lxzone1
machine1-------->ssh------->lxzone2
Какое правило для этого? Спасибо
ps С solaris11.4, использующим pf вместо ipfilter(удалено), все работает отлично с этим простым pf.conf
# Vars
ext_if="net0"
int_if="net1"
ext_net="192.168.0.0/24"
int_net="10.2.0.0/24"
webports="{443, 80}"
## make IP reassembly work
set reassemble yes no-df
## ignore loopback traffic
set skip on lo0
# block everything unless told otherwise
# and send TCP-RST/ICMP unreachable
# for every packet which gets blocked
block return in log all
pass out all
# Pass
pass in on $int_if proto tcp from $ext_net to any keep state
pass in on $int_if proto udp from $ext_net to any keep state
pass in on $int_if proto tcp from $int_net to any keep state
pass in on $int_if proto udp from $int_net to any keep state
# accept incoming SSH connections
pass in proto tcp from any to $ext_if port 22
# accept icmp
pass in proto icmp all
## allow all connections initiated from this system,
## including DHCP requests
pass out
#nat
pass out on net0 from $int_net to any nat-to (net0)
0 ответов
Обходной путь, который работает. В этом случае я могу получить доступ к серверу DNS и SSH к машинам с IP 10.2.0.2,10.2.0.3, 10.2.0.4...
cat ipnat.conf
map bge0 10.2.0.0/24 -> 0/32 portmap tcp/udp auto
map bge0 10.2.0.0/24 -> 0/32
rdr bge0 from any to 10.2.0.3/32 port = 22 -> 10.2.0.3 port 22 tcp
rdr bge0 from any to 10.2.0.2/32 port = 22 -> 10.2.0.2 port 22 tcp
rdr bge0 from any to 10.2.0.2/32 port = 53 -> 10.2.0.2 port 53 tcp
rdr bge0 from any to 10.2.0.2/32 port = 53 -> 10.2.0.2 port 53 udp
rdr bge0 from any to 10.2.0.4/32 port = 22 -> 10.2.0.4 port 22 tcp
rdr bge0 from any to 10.2.0.5/32 port = 22 -> 10.2.0.5 port 22 tcp
rdr bge0 from any to 10.2.0.6/32 port = 22 -> 10.2.0.6 port 22 tcp