Настроил Shorewall 4.4.6 следующим образом:
Сетевые зоны для фаервола
fw, провайдера
net, локалки
loc, виртуальных машин
kvm, реальной подсети ip адресов
bgp /etc/shorewall/zones:
#ZONE IPSEC OPTIONS IN OUT
# ONLY OPTIONS OPTIONS
fw firewall # Firewall
net ipv4 # ISP
loc ipv4 # Network
kvm ipv4 # Virtual Machines
bgp:net ipv4 # Сеть IP от провайдера
Сетевые интерфейсы
eth0 и мост
br0 для доступа к виртуальной машине, пока ненастроенные интерфейсы
eth1 и
eth2 для реальной подсети IP адресов по двум каналам, поднятые рррое-соединения
ppp0 и
ppp1 по тем же каналам, а также локальный интерфейс
eth3, смотрящий в локальную сеть, но в будущем планируется для поднятия третьего канала второго провайдера
/etc/shorewall/interfaces:
#ZONE INTERFACE BROADCAST OPTIONS
kvm eth0
bgp eth1
bgp eth2
loc eth3 - dhcp
kvm br0 detect routeback
net ppp0 detect
net ppp1 detect
Провайдеры
isp1 и
isp2, точнее два оптоволоконных канала связи одного провайдера, но есть ещё один, который пока не описан в
/etc/shorewall/providers:
#NAME NUMBER MARK DUPLICATE INTERFACE GATEWAY OPTIONS COPY
isp1 1 1 main ppp0 80.250.230.117 track,balance
isp2 2 2 main ppp1 80.250.250.113 track,balance
Политика обработки пакетов по умолчанию
/etc/shorewall/policy:
#SOURCE DESTINATION POLICY LIMIT:BURST
net net DROP
fw all ACCEPT
kvm all ACCEPT
loc all ACCEPT
all all REJECT
Правила фаервола
/etc/shorewall/rules:
#ACTION SOURCE DEST PROTO DEST SOURCE ORIGINAL
# PORT(S) PORTS(S) DEST
ACCEPT all all udp domain
ACCEPT all all tcp 20000
ACCEPT all all tcp 10000
ACCEPT all all tcp https
ACCEPT all all tcp http
ACCEPT all all tcp imaps
ACCEPT all all tcp imap
ACCEPT all all tcp pop3s
ACCEPT all all tcp pop3
ACCEPT all all tcp ftp-data
ACCEPT all all tcp ftp
ACCEPT all all tcp domain
ACCEPT all all tcp submission
ACCEPT all all tcp smtp
ACCEPT all all tcp ssh
Ну и самое главное, настройка маршрутизации через два канала, в котором прописаны маршруты с локального интерфейса
eth3 через первое
isp1 и второе
isp2 рррое-соединение с приоритетом 1000
/etc/shorewall/route_rules:
#SOURCE DEST PROVIDER PRIORITY
eth3 - isp1 1000
eth3 - isp2 1000
Настройка рррое-соединения для первого канала
/etc/ppp/peers/isp1# Minimalistic default options file for DSL/PPPoE connections
noipdefault
#defaultroute
#replacedefaultroute
hide-password
#lcp-echo-interval 30
#lcp-echo-failure 4
noauth
persist
mtu 1492
persist
#maxfail 0
#holdoff 20
unit 0
plugin rp-pppoe.so eth1
usepeerdns
user "user1"
Для второго канала
/etc/ppp/peers/isp2# Minimalistic default options file for DSL/PPPoE connections
noipdefault
#defaultroute
#replacedefaultroute
hide-password
#lcp-echo-interval 30
#lcp-echo-failure 4
noauth
persist
mtu 1492
persist
#maxfail 0
#holdoff 20
unit 1
plugin rp-pppoe.so eth2
usepeerdns
user "user2"
Настройка сетевых интерфейсов Linux
/etc/network/interfaces:
# This file describes the network interfaces available on your syste
# and how to actvate them. For more information, see interfaces(5).
# The loopback network interface
auto lo br0 eth0 eth1 eth2 eth3 isp1 isp2
iface lo inet loopback
# The primary network interface
iface eth0 inet manual
iface br0 inet static
address 192.168.0.254
netmask 255.255.255.0
network 192.168.0.0
bridge_ports eth0
iface eth1 inet manual
iface eth2 inet manual
iface isp1 inet ppp
pre-up /sbin/ifconfig eth1 up # line maintained by pppoeconf
provider isp1
iface isp2 inet ppp
pre-up /sbin/ifconfig eth2 up # line maintained by pppoeconf
provider isp2
iface eth3 inet static
address 192.168.0.1
netmask 255.255.255.0
broadcast 192.168.0.255
network 192.168.0.0
Локальные маршруты Linux
ip route show:
80.250.220.55 dev ppp0 proto kernel scope link src 80.250.230.117
80.250.220.56 dev ppp1 proto kernel scope link src 80.250.250.113
192.168.0.0/24 dev eth3 proto kernel scope link src 192.168.0.1
192.168.0.0/24 dev br0 proto kernel scope link src 192.168.0.254
При запуске shorewall выдаётся следующая ошибка:
Adding Providers...
RTNETLINK answers: File exists
ERROR: Command "ip -4 route add table 1 192.168.0.0/24 dev br0 proto kernel scope link src 192.168.0.254" Failed
Running /sbin/iptables-restore...
Terminated
Как заставить shorewall работать?

Схема сервера прикреплена