LINUX.ORG.RU
ФорумAdmin

route-map или правила Firewalld

 , ,


0

1

Добрый день, коллеги. Настраиваю сервер с двумя интерфейсами, белый и серый адрес. На нем установлен vpn клиент, который соединяется с vpn сервером, настроил свой сервер для раздачи интернета через vpn тунель.

(Firewalld) Настройка выполняется для двух сетевых интерфейсов — ens224 (внутренний) и tun0 (тунель):

firewall-cmd --direct --permanent --add-rule ipv4 nat POSTROUTING 0 -o tun0 -j MASQUERADE
firewall-cmd --direct --permanent --add-rule ipv4 filter FORWARD 0 -i ens224 -o tun0 -j ACCEPT
firewall-cmd --direct --permanent --add-rule ipv4 filter FORWARD 0 -i tun0 -o ens224 -m state --state RELATED,ESTABLISHED -j ACCEPT

В подсети с интерфейсом ens224 (10.102.0.0/24) есть виртуальная Cisco CSR-1000v, на ней я настроил route-map для доступа к серверу с других подсетей:

conf t
ip access-list extended LIST_VPN
permit ip 0.0.0.0 255.255.255.255 188.114.98.0 0.0.0.255
permit ip 0.0.0.0 255.255.255.255 188.114.99.0 0.0.0.255
end

conf t
route-map NAT-VPN permit 10
match ip address LIST_VPN
set ip next-hop 10.102.0.3
end

conf t
interface GigabitEthernet2
ip policy route-map NAT-VPN
end

Где 10.102.0.3 адрес сервера с ВПН клиентом, GigabitEthernet2 - внутренний интерфейс CSR-1000v для подсети 10.102.0.0/24 и на тунельный интерфейс тоже повесил:

interface Tunnel100
 description -=GRE-IPSEC_TO_COD=-
 ip address 172.20.2.1 255.255.255.252
 ip tcp adjust-mss 1350
 ip ospf message-digest-key 1 md5 7 000000000000
 ip ospf mtu-ignore
 ip ospf cost 120
 ip policy route-map NAT-VPN
 tunnel source GigabitEthernet1
 tunnel mode ipsec ipv4
 tunnel destination 000.000.000.000
 tunnel protection ipsec profile CODCSR-IPsecProfile

Из подсети 10.102.0.0/24 трафик ходит согласно описанному route-map и все нормально, а если из других подсетей подключенных через interface Tunnel100 traceroute доходит до сервера 10.102.0.3, я вижу в iftop что ответ на пинг отправляется но к клиенту он не попадает хотя с самого сервера все подсети пингуются нормально.

Подскажите может я не дописал какие то правила для Firewalld на сервере или не правильно настроил CSR-1000v ?


[root@rvpn ~]# ip route
0.0.0.0/1 via 10.64.111.45 dev tun0 
default via 37.230.197.158 dev ens192 proto static metric 100 
10.0.0.0/8 via 10.102.0.254 dev ens224 proto static metric 101 
10.64.96.0/20 via 10.64.111.45 dev tun0 
10.64.111.45 dev tun0 proto kernel scope link src 10.64.111.46 
10.102.0.0/24 dev ens224 proto kernel scope link src 10.102.0.3 metric 101 
37.230.197.144/28 dev ens192 proto kernel scope link src 37.230.197.154 metric 100 
92.243.64.131 via 37.230.197.158 dev ens192 
128.0.0.0/1 via 10.64.111.45 dev tun0 
172.16.0.0/12 via 10.102.0.254 dev ens224 proto static metric 101 
192.168.0.0/16 via 10.102.0.254 dev ens224 proto static metric 101 
nsa777
() автор топика
Ответ на: комментарий от Anoxemian

Оххх… хоть ктото ответил.

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

Спасибо.

nsa777
() автор топика
Ответ на: комментарий от Anoxemian
# firewall-cmd --list-all-zones

internal (active)
  target: default
  icmp-block-inversion: no
  interfaces: ens224
  sources: 
  services: dhcpv6-client mdns samba-client ssh
  ports: 10000/tcp
  protocols: 
  masquerade: no
  forward-ports: 
  source-ports: 
  icmp-blocks: 
  rich rules: 
	
public (active)
  target: default
  icmp-block-inversion: no
  interfaces: ens192 tun0
  sources: 
  services: dhcpv6-client ssh
  ports: 
  protocols: 
  masquerade: yes
  forward-ports: 
  source-ports: 
  icmp-blocks: 
  rich rules: 
nsa777
() автор топика
Ответ на: комментарий от nsa777

Нужно интерфейсы:

tun0 ens224

Добавить в отдельную зону и там прописать правла:

firewall-cmd --direct --permanent --add-rule ipv4 nat POSTROUTING 0 -o tun0 -j MASQUERADE
firewall-cmd --direct --permanent --add-rule ipv4 filter FORWARD 0 -i ens224 -o tun0 -j ACCEPT
firewall-cmd --direct --permanent --add-rule ipv4 filter FORWARD 0 -i tun0 -o ens224 -m state --state RELATED,ESTABLISHED -j ACCEPT
nsa777
() автор топика
Ответ на: комментарий от Anoxemian

Почитал по PBR, но там описывается использование маршрутизации на нескольких внешних интерфейсах, а у меня проблема с внутренним интерфейсом и он один, так же трафик в подсети 10.102.0.0/24 отрабатывает нормально, а если обращаются из других подсетей то доступ в интернет через VPN клиента не проходит.

nsa777
() автор топика
Ответ на: комментарий от nsa777

В итоге сервер был настроен правильно. Так как Cisco CSR-1000v установлен в облаке и там нет доступа к коммутатору обеспечивающего сети то произошло зацикливание rout-map на тунельном интерфейсе. После прописания статических роутов на маршрутизаторе все заработало как нужно.

nsa777
() автор топика