Страница 1 из 2
Настройка ipfw+nat+vpn через mpd5
Добавлено: 2010-12-16 18:22:50
Anubis_Donetsk
Доброго времени суток, настроил связку ipfw+natd+vpn через mpd5, но терзают смутный сомнения насчет правильность, выкладую конфиг ipfw подскажите правильно сделал или нет. Надо чтобы все машины (1шт) из локалки ходили в инет, чтобы любой мог подключится по vpn-pptp из инета и с локльной машины ходить rdp на удаленную.
#!/bin/sh
FwCMD="/sbin/ipfw -q"
# смотрит в инет
LanOut="em0"
# смотрит в лан
LanIn="em1"
# адрес WAN
IpOut="192.168.1.150"
# адрес LAN
IpIn="10.0.0.10"
# LAN+ее маска
NetIn="10.0.0.0"
NetMask="24"
# интерфейсы создаваемые mpd5
VPNLan="ng*"
${FwCMD} -f flush
${FwCMD} add check-state
${FwCMD} add allow ip from any to any via lo0
${FwCMD} add deny ip from any to 127.0.0.0/8
${FwCMD} add deny ip from 127.0.0.0/8 to any
#пускаем VPN подключения
${FwCMD} add allow ip from any 1723 to any
${FwCMD} add allow ip from any to any 1723
${FwCMD} add allow gre from any to any via ${LanOut}
${FwCMD} add allow gre from any to any via ${LanIn}
${FwCMD} add allow ip from any to any via ${VPNLan}
#разрешаем подключаться по ssh
${FwCMD} add allow tcp from any to ${IpOut} ssh via ${LanOut}
${FwCMD} add allow tcp from any to ${IpIn} ssh via ${LanIn}
#разрешаем DNS
${FwCMD} add allow udp from any 53 to any
${FwCMD} add allow udp from any to any 53
#всю внутреннюю сетку отправляем на natd
${FwCMD} add divert natd all from ${NetIn}/${NetMask} to not ${IpIn} via ${LanOut}
${FwCMD} add divert natd all from not ${NetIn}/${NetMask} to ${IpOut} via ${LanOut}
#разрешаем всем во внутренюю сеть - для ната - тут и возниклают сомнения
${FwCMD} add allow ip from any to ${NetIn}/${NetMask} via ${LanOut}
${FwCMD} add allow ip from ${NetIn}/${NetMask} to any via ${LanOut}
#разрешаем пинги
${FwCMD} add allow icmp from any to ${IpOut}
${FwCMD} add allow icmp from any to ${NetIn}/${NetMask} in via ${LanOut}
#разрешаем внутреннюю сеть
${FwCMD} add allow all from any to ${NetIn}/${NetMask} via ${LanIn}
${FwCMD} add allow all from ${NetIn}/${NetMask} to any via ${LanIn}
#разрешаем серваку ходить куда угодно
${FwCMD} add allow ip from ${IpOut} to any via ${LanOut}
${FwCMD} add deny log ip from any to any
Re: Настройка ipfw+nat+vpn через mpd5
Добавлено: 2011-01-05 7:59:28
fox
А в чём проблемы?
Что то не работает? Или косабочит? И пожалуйста схематическое изображения вашего запроса, то есть принципиальную схему как, что, от куда, и куда?
Re: Настройка ipfw+nat+vpn через mpd5
Добавлено: 2011-01-05 11:15:42
strelokr
У меня похожая проблемма есть машина freebsd 8.1
ipfw + nat и и mpd5 как pppoe клиент и vpn сервер.
с машины в мир пинг идет, через squid в инете все сидится, клиент через нее не может пропинговать не трасировку сделать. оба интерфейса пингуются
в rc.conf указано
Код: Выделить всё
gate# cat /etc/rc.conf
blanktime="3000"
check_quotas="NO"
#defaultrouter="192.168.1.254"
defaultrouter="195.xx.zz.18"
hostname="gate.doman.com"
ifconfig_em0="inet 195.xx.yy.224 netmask 255.255.255.255"
ifconfig_em1="inet 192.168.1.7 netmask 255.255.255.0"
inetd_enable="YES"
gateway_enable="YES"
natd_enable="YES"
natd_interface="em0"
keymap="us.iso"
keyrate="fast"
named_enable="YES"
#router="/sbin/routed"
#router_enable="YES"
#router_flags="-q"
saver="logo"
scrnmap="NO"
sshd_enable="YES"
mysql_enable="YES"
firewall_enable="YES"
firewall_type="open"
#firewall_scripts="/root/scripts/rc.firewall"
mpd_enable="YES"
apcupsd_enable="YES"
apache22_enable="YES"
squid_enable="YES"
sendmail_enable="NONE"
exim_enable="YES"
clamav_clamd_enable="YES"
clamav_freshclam_enable="YES"
spamd_flags="--socketpath=/var/run/spamd.sock"
spamd_enable="YES"
dovecot_enable="YES"
ntpd_enable="YES"
#ntpd_flags="-c /etc/ntp.conf -l /var/log/ntpd.log -p /var/run/ntpd.pid"
#Inet Radio
icecast_enable="YES"
icecast_flags="-c /usr/local/etc/icecast.xml"
ices0_enable="YES"
ices0_flags="/usr/local/etc/ices.conf"
#ppp_enable="YES"
#ppp_nat="YES"
#ppp_mode="ddial"
#ppp_profile="shtorm"
до какого то момента работало. Правда после падение инета, mpd5 restart и снова на машине есть инет, а у клиентов которые через нат нету. Прокси работает.
trafshow на внешним интерфейсе показывает что запрос идет но ответа нету.
mpd5.conf
Код: Выделить всё
pppoe_sht:
create bundle static sht
# set iface route default
set iface up-script "/usr/local/etc/mpd5/sht-up.sh"
set iface down-script "/usr/local/etc/mpd5/sht-down.sh"
# set iface enable tcpmssfix
# set ipcp ranges 0.0.0.0/0 0.0.0.0/0
create link static L1 pppoe
set link action bundle sht
set auth authname "kmylogin"
set auth password "mypass"
set link max-redial 0
set link mtu 1460
set link mru 1460
# set link mrru 1432
set link keep-alive 10 30
set pppoe iface em0
set pppoe service "Shtorm.Net"
open
netstat -nr
Код: Выделить всё
gate# netstat -nr
Routing tables
Internet:
Destination Gateway Flags Refs Use Netif Expire
default 195.xx.zz.18 UGS 0 615 ng0
127.0.0.1 link#4 UH 0 239 lo0
192.168.1.0/24 link#2 U 4 37031 em1
192.168.1.7 link#2 UHS 0 34883 lo0
195.xx.yy.224 link#1 UHS 1 0 lo0 =>
195.xx.yy.224/32 link#1 U 0 0 em0
ipfw show
Код: Выделить всё
gate# ipfw show
00050 314 28268 divert 8668 ip4 from any to any via em0
00100 71374 145644460 allow ip from any to any via lo0
00200 0 0 deny ip from any to 127.0.0.0/8
00300 0 0 deny ip from 127.0.0.0/8 to any
00400 0 0 deny ip from any to ::1
00500 0 0 deny ip from ::1 to any
00600 6 384 allow ipv6-icmp from :: to ff02::/16
00700 0 0 allow ipv6-icmp from fe80::/10 to fe80::/10
00800 0 0 allow ipv6-icmp from fe80::/10 to ff02::/16
00900 0 0 allow ipv6-icmp from any to any ip6 icmp6types 1
01000 0 0 allow ipv6-icmp from any to any ip6 icmp6types 2,135,136
65000 179211 114727663 allow ip from any to any
65535 0 0 deny ip from any to any
куда копать, подскажите пожалуйста. До этого как то работало, непойму что поменялось. Попробовал по старинке через pppd не взлетает.
и еще попутно, старый инет сервак, конетктися pppd летит красиво, тунель упал, делает
#killall -9 pppd
#ifconfig tun0 destroy
тунеля нету
#ppp -ddial default
пинги с консоли идут, прокси работает а вот клиентов не пускает. спасает ребут.
Re: Настройка ipfw+nat+vpn через mpd5
Добавлено: 2011-01-05 12:20:29
strelokr
Если добавляю правило
#divert 8668 ip from any to any via ng0
и трасировка пошла.
Это что мне указать в rc.conf
natd_interface="ng0"
Re: Настройка ipfw+nat+vpn через mpd5
Добавлено: 2011-01-05 16:51:01
fox
Молодой человек, ситуация у вас очень простая!
1) Что у вас за НАТ? Демон? Конфиг коли демон!
2) Второе ну конечно нужно правило для ната в ipfw вписать!
3) А прокси к стати работает по тому, что машина инет видит, и соответственно прокси видит но, как маршрутизтор сервер не работает… Хотите в скайпе со ной пообщайтесь я вам постараюсь помочь, напишите в личку свой скайп-нейм…
Re: Настройка ipfw+nat+vpn через mpd5
Добавлено: 2011-01-05 17:21:13
strelokr
у меня нат без natd.conf
В rc.conf
natd_enable="YES"
natd_interface="ng0"
счас просто firewall_type= "open"
убрал с rc.conf
defaultrouter
и разкоментировал в mpd.conf
set iface route default #что бы сразу прописывало роутинг на эту машину
set iface enable tcpmssfix
после следующей перезагрузки буду смотреть на результаты.
Re: Настройка ipfw+nat+vpn через mpd5
Добавлено: 2011-01-05 18:07:41
fox
Ну однозначно добавте строку в ipfw для ната, и тут что бы всё соотвествовало реальносте:
Код: Выделить всё
gateway_enable="YES"
natd_enable="YES"
natd_interface="em0"
не em0 а ng0 тогда нужно...
Re: Настройка ipfw+nat+vpn через mpd5
Добавлено: 2011-01-06 8:56:39
strelokr
сделал так
rc.conf
mpd_enable="YES"
gateway_enable="YES"
natd_enable="YES"
natd_interface="ng0"
Defaultrouter удалил
при загрузке тунель есть, divert правило есть 00050 2938 500431 divert 8668 ip4 from any to any via ng0
но не работает natd
делаем так
Код: Выделить всё
gate# ps -aux | grep natd
root 1754 0.0 0.0 3496 1256 1 S+ 7:51AM 0:00.00 grep natd
gate# natd -interface ng0
Loading /lib/libalias_cuseeme.so
Loading /lib/libalias_ftp.so
Loading /lib/libalias_irc.so
Loading /lib/libalias_nbt.so
Loading /lib/libalias_pptp.so
Loading /lib/libalias_skinny.so
Loading /lib/libalias_smedia.so
gate# ps -aux | grep natd
root 1758 0.0 0.1 3568 1444 ?? Ss 7:51AM 0:00.04 natd -interface ng0
root 1783 0.0 0.0 3496 1256 1 S+ 7:53AM 0:00.00 grep natd
gate#
И все работает. Видно проблема в том что при старте NAT не может запуститься ибо в момент загрузки еще нету ng0 интерфейса. Как обойти эту проблему?
[/code]
Re: Настройка ipfw+nat+vpn через mpd5
Добавлено: 2011-01-06 13:01:37
fox
Поменяй приоритет запуска ната, после запуска mpd! Знаешь как это сделать?
Re: Настройка ipfw+nat+vpn через mpd5
Добавлено: 2011-01-06 13:30:44
strelokr
Нет не знаю, подскажите как.
Re: Настройка ipfw+nat+vpn через mpd5
Добавлено: 2011-01-06 13:50:23
fox
Я точно не помню как это сделать, когда то я подобное делал с демонами, попробуйте вот так не уверен что получится но пробуйте и отпишитесь!
В самом скрипте запуска демона /etc/rc.d/natd поправте одну строку, было примерно так:
Код: Выделить всё
#cat /etc/rc.d/natd
#!/bin/sh
#
# $FreeBSD: src/etc/rc.d/natd,v 1.5 2006/12/31 10:37:18 yar Exp $
#
# PROVIDE: natd
# KEYWORD: nostart nojail
. /etc/rc.subr
. /etc/network.subr
name="natd"
..............
бля-бля-бля
.............
Адолжно стать:
Код: Выделить всё
#cat /etc/rc.d/natd
#!/bin/sh
#
# $FreeBSD: src/etc/rc.d/natd,v 1.5 2006/12/31 10:37:18 yar Exp $
#
# PROVIDE: natd
# REQUIRE: mpd
# KEYWORD: nostart nojail
. /etc/rc.subr
. /etc/network.subr
name="natd"
......
бля бля бля
......
Добавилась строка:
И именно в том месте где я указал, если не получится как вариант указть версию ещё mpd, к примеру mpd4 или mpd5 попробуйте раскажите...
Re: Настройка ipfw+nat+vpn через mpd5
Добавлено: 2011-01-10 9:31:24
strelokr
поправил файл как вы говорили,
Код: Выделить всё
#
# $FreeBSD: src/etc/rc.d/natd,v 1.5.10.1.4.1 2010/06/14 02:09:06 kensmith Exp $
#
# PROVIDE: natd
# REQUIRE: mpd mpd5
# KEYWORD: nostart nojail
не помогает, при загрузке строка и все.
Starting natd.
Loading /lib/libalias_cuseeme.so
Loading /lib/libalias_ftp.so
Loading /lib/libalias_irc.so
Loading /lib/libalias_nbt.so
Loading /lib/libalias_pptp.so
Loading /lib/libalias_skinny.so
Loading /lib/libalias_smedia.so
natd:
unknown interface name ng0
/etc/rc.d/natd: WARNING: failed to start natd
какие еще будут варианты, кроме топорных типа грузить нат скриптом?
Re: Настройка ipfw+nat+vpn через mpd5
Добавлено: 2011-01-10 11:48:41
fox
strelokr писал(а):поправил файл как вы говорили,
Код: Выделить всё
#
# $FreeBSD: src/etc/rc.d/natd,v 1.5.10.1.4.1 2010/06/14 02:09:06 kensmith Exp $
#
# PROVIDE: natd
# REQUIRE: mpd mpd5
# KEYWORD: nostart nojail
не помогает, при загрузке строка и все.
Starting natd.
Loading /lib/libalias_cuseeme.so
Loading /lib/libalias_ftp.so
Loading /lib/libalias_irc.so
Loading /lib/libalias_nbt.so
Loading /lib/libalias_pptp.so
Loading /lib/libalias_skinny.so
Loading /lib/libalias_smedia.so
natd:
unknown interface name ng0
/etc/rc.d/natd: WARNING: failed to start natd
какие еще будут варианты, кроме топорных типа грузить нат скриптом?
Ну зачем так?
Надо было вот так:
Или вот так:
Ну и в самом rc.conf
mpd_enable="YES"
раньше чем
natd_enable="YES"
Надо прописать!
Re: Настройка ipfw+nat+vpn через mpd5
Добавлено: 2011-01-10 12:26:30
strelokr
Спасибо все работает.
помогло указание в файле natd
# REQUIRE:mpd5
а в rc.conf
у меня уже давно указано
mpd_enable="YES"
ранее чем
natd_enable="YES"
Re: Настройка ipfw+nat+vpn через mpd5
Добавлено: 2011-01-10 12:28:38
fox
Пожалуйста... Пишите если что...
Re: Настройка ipfw+nat+vpn через mpd5
Добавлено: 2011-01-18 17:44:48
strelokr
Трабл. после падение инета или перезапуска mpd5 инет на сервере, через прокси в инете сидеть можно а с машин инета нету.
перезапускал и natd и правило пересоздавал в фаерволе и разрещал any to any один фиг. в trafshow видно что на тунельном интерфейсе ng0 идет запросы и весь трафик с моей клиенской машины, но без результатно.
Не перезапускал только ipfw.
что делать.
Re: Настройка ipfw+nat+vpn через mpd5
Добавлено: 2011-01-18 19:27:11
fox
Смотреть таблиуц маршрутизация до и после...
Re: Настройка ipfw+nat+vpn через mpd5
Добавлено: 2011-01-18 23:06:59
SkyFort
Зачем NATD юзать? mpd сам прекрасно натить умеет причем гораздо быстрее чем NATD.... Просто добавьте строчку set iface enable nat в mpd.conf
Re: Настройка ipfw+nat+vpn через mpd5
Добавлено: 2011-01-19 10:13:01
strelokr
А может проблеммы у меня в виндовой машине клиенте? просто чудес не бывает
инет работает но пинги не проходят. самое первое правило ipfw allow ip from any to any тож не помогает.
Код: Выделить всё
gate# netstat -nr
Routing tables
Internet:
Destination Gateway Flags Refs Use Netif Expire
default xxx.xx.14.18 UGS 0 251049 ng0
127.0.0.1 link#4 UH 0 0 lo0
192.168.1.0/24 link#2 U 10 48701 em1
192.168.1.7 link#2 UHS 0 514363 lo0
xxx.xx.15.224 link#1 UHS 1 0 lo0 =>
xxx.xx.15.224/32 link#1 U 0 0 em0
Internet6:
Destination Gateway Flags Netif Expire
::1 ::1 UH lo0
fe80::%lo0/64 link#4 U lo0
fe80::1%lo0 link#4 UHS lo0
ff01:4::/32 fe80::1%lo0 U lo0
ff02::%lo0/32 fe80::1%lo0 U lo0
gate# netstat -nr
Routing tables
Internet:
Destination Gateway Flags Refs Use Netif Expire
default xxx.xx.14.18 UGS 0 848 ng0
127.0.0.1 link#4 UH 0 0 lo0
192.168.1.0/24 link#2 U 18 53366 em1
192.168.1.7 link#2 UHS 0 519051 lo0
xxx.xx.15.224 link#1 UHS 1 0 lo0 =>
xxx.xx.15.224/32 link#1 U 0 0 em0
Internet6:
Destination Gateway Flags Netif Expire
::1 ::1 UH lo0
fe80::%lo0/64 link#4 U lo0
fe80::1%lo0 link#4 UHS lo0
ff01:4::/32 fe80::1%lo0 U lo0
ff02::%lo0/32 fe80::1%lo0 U lo0
gate#
Re: Настройка ipfw+nat+vpn через mpd5
Добавлено: 2011-01-19 12:24:59
fox
Ага, речь идёт за клиентскую машину, тоесть вы пингуете сервер с клиенсткой но через него не прогодит верно? А прокси работает...
Значит капайте нат, покажите конфиг ната?
Re: Настройка ipfw+nat+vpn через mpd5
Добавлено: 2011-01-19 14:18:04
strelokr
Код: Выделить всё
gate# cat rc.conf | grep nat
natd_enable="YES"
natd_interface="ng0"
natd_flags="-f /etc/natd.conf"
#ppp_nat="YES"
gate# cat natd.conf
dynamic yes
gate#
сервер с клиенской машины пингуется. оба интерфейса. А другие машины за сервером не пингуются. Сервер пингует всех
Код: Выделить всё
gate# ipfw show | grep icmp
00060 0 0 deny icmp from any to any in icmptypes 5,9,13,14,15,16,17
00080 108 7582 allow icmp from any to any
Re: Настройка ipfw+nat+vpn через mpd5
Добавлено: 2011-01-19 17:44:34
fox
Попробуйте вот такую комбинацию:
Код: Выделить всё
#cat /etc/rc.conf |grep nat
natd_enable="YES"
natd_interface="ng0"
natd_flags="-m -u -f /etc/natd.conf"
и
Код: Выделить всё
#cat /etc/natd.conf
log no
deny_incoming no
use_sockets yes
same_ports yes
unregistered_only yes
Re: Настройка ipfw+nat+vpn через mpd5
Добавлено: 2011-01-20 9:30:05
strelokr
С Вами предложеными конфигами перезапускаюсь. такая же ситуация. инет есть, аська, скайп работает. Но пинги не проходят. останавливаю и запускаю mpd5. пинги не появились а инет не пропал но такой медленный, ужас. Но спид тест показывает бешеные скоростя. скайп догрузился через минут 5
Re: Настройка ipfw+nat+vpn через mpd5
Добавлено: 2011-01-20 12:06:47
strelokr
работает почему то тока 80,443,5190
А smtp pop3 пинги не работают на клиенской машине.
Re: Настройка ipfw+nat+vpn через mpd5
Добавлено: 2011-01-20 12:55:01
fox
Покажите правило фаер-вола...