Я установил сервер OpenVPN (серверный мост) на Fedora 20, но не могу заставить его работать. Я почти уверен, что это проблема с брандмауэром.
Я пытаюсь подключиться с помощью клиента OSX, но я могу подключиться (просто подключиться к VPN-серверу без доступа ни к чему) до того, как мост будет настроен на сервере, однако после настройки интерфейса моста (используя этот скрипт), то я больше не могу подключиться. Я настроил его как серверный мост, следуя этим инструкциям из Fedora и OpenVPN Ethernet-мост.
Конфигурация брандмауэра объясняется с помощью iptables:
iptables -A INPUT -i tap0 -j ACCEPT
iptables -A INPUT -i br0 -j ACCEPT
iptables -A FORWARD -i br0 -j ACCEPT
Однако в Fedora 20 по умолчанию установлен firewalld, поэтому может ли кто-нибудь сказать мне эквивалентные команды, используя firewall-cmd
? Я прочитал гид Firewalld, но мне непонятно, как этого добиться (я разработчик, а не сисадмин).
Я знаю, что могу установить iptables, но хочу, чтобы он работал с firewalld.
ОБНОВИТЬ: После некоторого чтения на firewall-cmd
man, я попытался применить предыдущие команды, используя --passthrough
вариант, то есть:
# firewall-cmd --permanent --direct --passthrough ipv4 -A FORWARD -i br0 -j ACCEPT
# firewall-cmd --permanent --direct --passthrough ipv4 -A INPUT -i br0 -j ACCEPT
# firewall-cmd --permanent --direct --passthrough ipv4 -A FORWARD -i br0 -j ACCEPT
Команды успешно выполняются, но не работает, тоже пробовал использовать eb
вместо того ipv4
с тем же результатом.
В ifconfig
вывод выглядит примерно так:
br0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.1.40 netmask 255.255.255.0 broadcast 192.168.1.255
inet6 fe80::c9:aff:fe02:d953 prefixlen 64 scopeid 0x20<link>
ether 02:c9:09:02:d9:53 txqueuelen 0 (Ethernet)
RX packets 11276 bytes 1374285 (1.3 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 899 bytes 240110 (234.4 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
eth0: flags=4419<UP,BROADCAST,RUNNING,PROMISC,MULTICAST> mtu 1500
inet6 fe80::c9:afa:fe02:d953 prefixlen 64 scopeid 0x20<link>
ether 03:c9:0a:02:d9:53 txqueuelen 1000 (Ethernet)
RX packets 13548 bytes 1942379 (1.8 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 1162 bytes 269258 (262.9 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
device interrupt 117 base 0xc000
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 16436
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<host>
loop txqueuelen 0 (Local Loopback)
RX packets 6883 bytes 2061608 (1.9 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 6883 bytes 2061608 (1.9 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
p2p0: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500
inet6 fe80::9831:16ff:fe81:3658 prefixlen 64 scopeid 0x20<link>
ether 9a:3b:16:84:36:58 txqueuelen 1000 (Ethernet)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
tap0: flags=4355<UP,BROADCAST,PROMISC,MULTICAST> mtu 1500
ether d6:6c:20:12:f3:b6 txqueuelen 100 (Ethernet)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
wlan0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.1.41 netmask 255.255.255.0 broadcast 0.0.0.0
inet6 fe80::9a5b:16ff:fe81:3658 prefixlen 64 scopeid 0x20<link>
ether 98:3b:11:81:36:58 txqueuelen 1000 (Ethernet)
RX packets 2643 bytes 230523 (225.1 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 5512 bytes 1726039 (1.6 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
В firewalld уже настроены некоторые службы, которые можно увидеть с помощью:
firewall-cmd --get-services
(Файл конфигурации /usr/lib/firewalld/services/openvpn.xml)
Если вы видите openvpn как уже доступную службу, вы можете включить ее с помощью:
firewall-cmd --add-service openvpn
Ответ на мой первоначальный вопрос:
# firewall-cmd --permanent --direct --passthrough ipv4 -A FORWARD -i br0 -j ACCEPT
# firewall-cmd --permanent --direct --passthrough ipv4 -A INPUT -i br0 -j ACCEPT
# firewall-cmd --permanent --direct --passthrough ipv4 -A FORWARD -i br0 -j ACCEPT
Затем, если вы выполните:
# firewall-cmd --permanent --direct --get-all-passthroughs
Вы получите это:
ipv4 -A INPUT -i tap0 -j ACCEPT
ipv4 -A INPUT -i br0 -j ACCEPT
ipv4 -A FORWARD -i br0 -j ACCEPT
Однако что-то все еще не так, я не могу подключиться к VPN-серверу, поэтому любая идея / подсказка будет приветствоваться.