Ситуация следующая - есть сервачек в небольшой конторе с правильной ОС
Код: Выделить всё
uname -r
8.0-RELEASE-p2
Все бы хорошо, да потребовалось в удаленном офисе поставить маленький сервачек для видеонаблюдения, ну я тоже туда залил FreeBSD 8.0-RELEASE-p2, все настроил, поставил туда OpenVPN с клиентским конфигом, ВПН поднялся пакетики идут в обе стороны, я со своей рабочей тачки через ВПН вижу эту машинку, пингую, смотрю видео с камер, все хорошо, но потом сел в центральном офисе за пользовательский комп, пинганул удаленный сервер и удивился - пинг не идет, подумал, что лег ВПН, но моя рабочая тачка пингуется, значит все хорошо.
Дальше интереснее...
Запустил tcpdump на центральном сервере, пакеты на внутренний интерфейс приходя и уходят через впн к удаленному серверу, так, уже хорошо, пошли дальше. Запустил tcpdump на ВПН интерфейсе удаленного сервера, пакеты приходят, но в ответ тишина. Хотя, если его пингануть с сервера или с той машины, где поднят ВПН, то пинги приходят на тот же интерфейс и ответ на них уходит обратно, т.е. все хорошо.
Подумал, что может проблема с PF, я его начал осваивать только с начала этого года, и решил, что может косяк где-то в нем. Проверить легко. Забэкапил файлик с правилами и сделал новый с единственным правилом:
Код: Выделить всё
pass all
Вспомнил, что накуралесил всяких разных настроек в sysctl.conf, так же убрал все в default, но снова нифига.
Короче, я перепробовал всякие различные настройки и танцевал с бубном, но никак не могу понять в чем дело. Похожая ситуация у меня была с Windows 7, когда я её поствил на домашнем компе, а настраивал удаленно. В 7-ке хитрожопый файервол. Я там сделал правило, чтобы по RDP пускал отовсюду и все. Получилось так, что я через свой ВПН не мог пинговать 7-ку (не домашняя сеть), а по RDP нормально на неё захожу, хотя из домашней сети Windows 7 прекрасно пингуется.
Далее прилагаю конфиги клиентской тачки, потому что думаю, что проблема в ней, ну , вроде как винда хрюшка пингуется через ВПН, а фря нет : ((
Конфиг PF
Код: Выделить всё
### Makros ###
ext_if="rl0"
int_if="bridge0"
video_if="vr0"
vpn_if="tun0"
ath="ath0"
wlan="wlan0"
rl="rl1"
int_lan="192.168.3.0/24"
video_lan="192.168.2.0/24"
int_ip="192.168.3.1"
ext_ip="192.168.6.195"
video="192.168.2.2"
allowed_icmp_types="{ echoreq, unreach }"
### GLOBAL OPTIONS ###
set loginterface rl0
set block-policy drop
set skip on lo0
set timeout { frag 10, tcp.established 3600 }
scrub in all fragment reassemble
### Port Forwarding & NAT ###
rdr on $vpn_if proto tcp from any to ($vpn_if) port 6100 -> $video port 6100
rdr on $vpn_if proto tcp from any to ($vpn_if) port 80 -> $video port 80
nat on $ext_if from $int_lan to any -> ($ext_if)
### Rules of PACKET FILTER ###
antispoof quick for { $ext_if, $int_if, lo0, $vpn_if, $video_if, $ath, $wlan, $rl }
block all
pass in on $ext_if proto icmp from any to $ext_if keep state
pass in on $vpn_if proto icmp from any to $vpn_if keep state
#pass in on $ext_if proto tcp from any to $ext_if port 22 synproxy state
### Everything Local ###
pass out on $ext_if keep state
### Everything for Int LAN ###
pass quick on $int_if
pass quick on $video_if
pass quick on $ath
pass quick on $wlan
pass quick on $rl
### Everything for OpenVPN ###
pass quick on $vpn_if
### ICMP ###
pass log inet proto icmp all icmp-type $allowed_icmp_types
rc.conf
Код: Выделить всё
### System Settings ###
sshd_enable="YES"
keymap="ru.koi8-r"
cron_enable="NO"
### Sendmail Settings ###
sendmail_enable="NO"
sendmail_submit_enable="NO"
sendmail_outbound_enable="NO"
sendmail_msp_queue_enable="NO"
### Security Settins ###
tcp_extension="NO"
tcp_drop_synfin="NO"
icmp_drop_redirect="YES"
icmp_log_redirect="YES"
icmp_bmcastecho="NO"
### OpenVPN Settings ###
openvpn_enable="YES"
openvpn_if="tun"
openvpn_configfile="/etc/openvpn/client.conf"
openvpn_dir="/etc/openvpn"
### Packet Filter Settings ###
pf_enable="YES"
pflog_enable="YES"
pf_rules="/etc/pf.conf"
pfsync_enable="YES"
### Network Settings ###
network_interfaces="rl0 rl1 vr0 ath0 wlan0 lo0 tun0"
hostname="krasota.baufasad.ru"
gateway_enable="YES"
inetd_enable="YES"
hostapd_enable="YES"
dhcpd_enable="YES"
dhcpd_ifaces="bridge0"
ifconfig_rl0="inet 192.168.6.150 netmask 255.255.255.0"
defaultrouter="192.168.6.1"
ifconfig_vr0="inet 192.168.2.1 netmask 255.255.255.0"
ifconfig_rl1="up"
wlans_ath0="wlan0"
create_args_wlan0="wlanmode hostap"
ifconfig_wlan0="ssid krasota mode 11b up"
cloned_interfaces="bridge0"
#ifconfig_bridge0="addm wlan0 addm rl1 up"
ifconfig_bridge0="inet 192.168.3.1 netmask 255.255.255.0 addm wlan0 addm rl1 up"
sysctl.conf
Код: Выделить всё
security.bsd.see_other_uids=0
security.bsd.see_other_gids=0
net.inet.ip.portrange.last=48000
#kern.polling.enable=1
kern.ipc.somaxconn=1024
net.inet.tcp.blackhole=2
net.inet.udp.blackhole=1
net.inet.icmp.drop_redirect=1
net.inet.icmp.log_redirect=1
net.inet.ip.redirect=0
net.inet.tcp.sendspace=65536
net.inet.tcp.recvspace=65536
net.link.ether.inet.max_age=1200
net.inet.icmp.maskrepl=0
net.inet.ip.sourceroute=0
net.inet.ip.accept_sourceroute=0
net.inet.icmp.bmcastecho=0
kern.maxprocperuid=1000
net.inet.ip.forwarding=1
net.link.bridge.pfil_bridge=1
net.link.bridge.pfil_member=1