Брандмауэр PF на FreeBSD для разрешения трафика SSH и OpenVPN

Я пытаюсь создать простой доступный шаблон для фильтра пакетов на FreeBSD 11.1-RELEASE . У меня есть vtnet0 (общедоступный), vtnet1 (частный, адрес 10.10) и tun0 (openvpn, полностью рабочий / протестированный от клиента до узлов в моей сети.

Мой rc.conf выглядит следующим образом:

hostname="bastion"
sshd_enable="YES"
static_routes="linklocal"
ifconfig_vtnet0="DHCP"
ifconfig_vtnet0_ipv6="inet6 accept_rtadv"
ipv6_activate_all_interfaces="YES"
rtsold_enable="YES"
rtsold_flags="-aF"
ifconfig_vtnet1="inet 10.10.6.20 netmask 255.255.255.0"
gateway_enable="YES"
openvpn_enable="YES"
pf_enable="YES"

Мой облачный провайдер дает мне общедоступные адреса ipv4 / ipv6 через DHCP.

Я просмотрел документацию FreeBSD и другие доступные учебники и придумал следующее basic pf.conf:

block all
set skip on lo0
set skip on tun0
pass out all keep state
tcp_services = "{ ssh }"
udp_services = "{ openvpn }"
pass in proto tcp to any port $tcp_services keep state
pass in proto udp to any port $udp_services keep state

Однако с этой конфигурацией, Я блокирую весь доступ по ssh и openvpn, и мне нужно войти в свой ящик через веб-консоль виртуальной машины.

Моя цель - разрешить в этом окне только openvpn (udp) и ssh из общедоступного интерфейса, разрешить весь трафик через vpn (tun0) и весь трафик из внутреннего.

0
задан 10 August 2017 в 06:48
1 ответ

Настройка pf может быть небольшой проблемой. Вы должны понимать, что pf обрабатывает все интерфейсы абсолютно одинаково, и нет концепции пакетов, исходящих от самого блока, как в цепочке iptables - OUTPUT . Я бы начал с чего-нибудь в этом роде и основал это:

# allow all from host itself
pass out inet all keep state
pass out inet6 all keep state
# allow all from private
pass in quick on vtnet1 inet from any to any keep state
# openvpn
pass in quick proto udp to vtnet0 port openvpn keep state
pass in quick on tun0 inet from any to any keep state
# ssh
pass in quick proto tcp to vtnet0 port ssh flags S/SA keep state

Предупреждение: не используйте стандартные порты openvpn и ssh.

3
ответ дан 4 December 2019 в 12:19

Теги

Похожие вопросы