Здравствуйте уважаемые,
Пытаюсь настроить выход в интернет локальной сети с помощью FreeBSD 5.4
Сделал следующее
1. в kernel добавил следующее:
options IPFIREWALL
options IPDIVERT
options IPFIREWALL_VERBOSE
options IPFIREWALL_VERBOSE_LIMIT=500
options IPFIREWALL_FORWARD
options IPFIREWALL_DEFAULT_TO_ACCEPT
options TCP_DROP_SYNFINПри условии, что dc0 - смотрит в интернет, bge0 - смотрит в лок.сеть
2. в rc.conf следующее:
gateway_enable="YES"
firewall_enable="YES"
firewall_type="router-net"
natd_enable="YES"
natd_interface="dc0"
natd_flags="-f /etc/natd.conf"firewall_quiet="NO"
firewall_script="/etc/rc.firewall"
firewall_logging="YES"
natd_program="/sbin/natd"
# natd_flags="-dynamic -n dc0"
hostname="xxx.xxx.ru"
# ifconfig_bge0="DHCP"
inetd_enable="NO"
kern_securelevel="0"
kern_securelevel_enable="NO"
linux_enable="YES"
moused_enable="YES"
moused_port="/dev/psm0"
moused_type="auto"
nfs_reserved_port_only="NO"
router="/sbin/routed"
router_enable="YES"
router_flags="-q"
saver="logo"
sshd_enable="YES"
tcp_extensions="NO"
usbd_enable="YES"
# -- sysinstall generated deltas -- # Wed Jun 22 14:13:05 2005
ifconfig_dc0="inet 10.x.y.2 netmask 255.255.255.0"
ifconfig_bge0="inet 192.168.x.15 netmask 255.255.255.0"
defaultrouter="10.x.y.1"
hostname="xxx.xxx.ru"3. В natd.conf следующее
interface dc0
use_sockets yes
same_ports yes
dynamic yes4. В rc.firewall следующее:
[Rr][Oo][Uu][Tt][Ee][Rr]-[Nn][Ee][Tt])/sbin/ipfw -f flush
/sbin/ipfw add divert natd all from any to any via dc0
/sbin/ipfw add pass all from any to anyС этими установками на сервере пингуется и локальная сеть и интернет. Соответственно возможна работ в инете. НО рабочие станции могут пинговать только сам инет сервер (192.168.x.15) и напрочь отсутствует выход в инет.
Подскажите где ошибка?
Спасибо
>Здравствуйте уважаемые,
>Пытаюсь настроить выход в интернет локальной сети с помощью FreeBSD 5.4
>Сделал следующее
>1. в kernel добавил следующее:
>options IPFIREWALL
>options IPDIVERT
>options IPFIREWALL_VERBOSE
>options IPFIREWALL_VERBOSE_LIMIT=500
>options IPFIREWALL_FORWARD
>options IPFIREWALL_DEFAULT_TO_ACCEPT
>options TCP_DROP_SYNFIN
>
>При условии, что dc0 - смотрит в интернет, bge0 - смотрит в
>лок.сеть
>2. в rc.conf следующее:
>gateway_enable="YES"
>firewall_enable="YES"
>firewall_type="router-net"
А чем не устраивает OPEN ?
>4. В rc.firewall следующее:
>[Rr][Oo][Uu][Tt][Ee][Rr]-[Nn][Ee][Tt])
>
>/sbin/ipfw -f flush
>/sbin/ipfw add divert natd all from any to any via dc0
>/sbin/ipfw add pass all from any to any
>
Сравни с оригиналом:
----------------------------------
case ${natd_enable} in
[Yy][Ee][Ss])
if [ -n "${natd_interface}" ]; then
${fwcmd} add 50 divert natd all from any to any via ${natd_interface}
fi
;;
esac# Prototype setups.
#
case ${firewall_type} in
[Oo][Pp][Ee][Nn])
setup_loopback
${fwcmd} add 65000 pass all from any to any
;;
esac
----------------------------------------------------
Проверить, что получилось, можно так: ipfw listНе забудь в /etc/resolv.conf прописать dns провайдера.
>Сравни с оригиналом:
>----------------------------------
>case ${natd_enable} in
> [Yy][Ee][Ss])
>
> if [ -n "${natd_interface}" ]; then
>
>
> ${fwcmd} add 50 divert natd all from any to any
>via ${natd_interface}
>
> fi
>
> ;;
> esac
>
># Prototype setups.
>#
>case ${firewall_type} in
>[Oo][Pp][Ee][Nn])
> setup_loopback
> ${fwcmd} add 65000 pass
>all from any to any
> ;;
>esac
>----------------------------------------------------
>Проверить, что получилось, можно так: ipfw list
>
>Не забудь в /etc/resolv.conf прописать dns провайдера.
Это пробовалось как один из вариантов ранее, аналогично не оказало никакого эффекта :(
>inetd_enable="NO"
>kern_securelevel="0"
>kern_securelevel_enable="NO"
Интерсно, для чего эти строки, особенно 1?
Зачем Вы выключили inetd?
>
>>inetd_enable="NO"
>>kern_securelevel="0"
>>kern_securelevel_enable="NO"
>Интерсно, для чего эти строки, особенно 1?
>Зачем Вы выключили inetd?без последних двух у меня не запускался х-windows
а первую - честно говоря по умолчанию она стояла на no, я пока не стал ее трогать :)
>>
>>>inetd_enable="NO"
>>>kern_securelevel="0"
>>>kern_securelevel_enable="NO"
>>Интерсно, для чего эти строки, особенно 1?
>>Зачем Вы выключили inetd?
>
>без последних двух у меня не запускался х-windows
>а первую - честно говоря по умолчанию она стояла на no, я
>пока не стал ее трогать :)Однак, надо, наверное inetd_enable="YES"
проверено на freebsd 5.4
cd /usr/src/sys/i386/conf/
cp GENERIC GENERIC.old
------edit GENERIC----------------
options IPFIREWALL
options IPFIREWALL_VERBOSE
options IPFIREWALL_VERBOSE_LIMIT=10
options IPDIVERT
options IPFIREWALL_DEFAULT_TO_ACCEPT
options DUMMYNET
------making kernel---------------
config GENERIC
cd ../../compile/GENERIC/
make depend
make
make install
cd /etc/
------edit rc.conf----------------
gateway_enable="YES"
firewall_enable="YES"
firewall_quiet="YES"
firewall_type="OPEN"
------edit /etc/natd.conf---------
use_sockets yes
same_ports yes
#unregistered_only yes
interface ext_if
------edit ipfw rules-------------
ipfw add 199 divert natd all from any to any via ext_ifзатем просто запускаете natd:
natd -f /etc/natd.conf
>Однак, надо, наверное inetd_enable="YES"
Наверно ты прав.. попробую поставитьмежду делом сервер все-таки запустился.
Спасибо vagrantt и div
Привет бойцам невидимого фронта !!!
спасибо div это понятно
а вот за что спасибо vagrantt НЕЗНАЮ!!!!!Какая связь inetd_enable="YES" с роутером вопрос к vagrantt
Я бы посоветовал открить какую нибудь доку и посмотреть
для чего нада inetd
Читайте доки здесь их полно
не спешите вся жизнь еще впереди....
>Привет бойцам невидимого фронта !!!
>спасибо div это понятно
>а вот за что спасибо vagrantt НЕЗНАЮ!!!!!
>
>Какая связь inetd_enable="YES" с роутером вопрос к vagrantt
>
>Я бы посоветовал открить какую нибудь доку и посмотреть
>для чего нада inetd
>Читайте доки здесь их полно
>не спешите вся жизнь еще впереди....А ты сделай на своем шлюзике inetd_enable="NO" ;), потом запость здесь все то, что о тебе скажет твое начальство, хорошо?
http://www.argc-argv.relc.com/78_2002/article.php
>А ты сделай на своем шлюзике inetd_enable="NO" ;), потом запость здесь все
>то, что о тебе скажет твое начальство, хорошо?
>http://www.argc-argv.relc.com/78_2002/article.phpчем меньше запущенных сервисов на рутере тем лучше =)
зачем тебе к примеру нужен inetd?
>А ты сделай на своем шлюзике inetd_enable="NO" ;), потом запость здесь все
>то, что о тебе скажет твое начальство, хорошо?
>http://www.argc-argv.relc.com/78_2002/article.php
Наверное чего то не понимаю....
Может вы мне объясните в чем изюминка:inetd(xinetd) <-> начальство
inetd(xinetd) <-> роутинг пакетов(маршрутизация)Какая связь?
> Здравствуйте уважаемые,
> Пытаюсь настроить выход в интернет локальной сети с помощью FreeBSD >5.4
> Сделал следующее
> 1. в kernel добавил следующее:
> options IPFIREWALL
> options IPDIVERT
необходимо для natd
> options IPFIREWALL_VERBOSE
> options IPFIREWALL_VERBOSE_LIMIT=500
> options IPFIREWALL_FORWARD
> options IPFIREWALL_DEFAULT_TO_ACCEPT
т.е. по умолчанию пропускаем все(firewall_type="OPEN")
> options TCP_DROP_SYNFIN
>
> При условии, что dc0 - смотрит в интернет, bge0 - смотрит в лок.сеть
> 2. в rc.conf следующее:
> gateway_enable="YES"
разрешаем форвардинг пакетов(маршрутизацию)
> firewall_enable="YES"
> firewall_type="router-net"
для чего это,если инет не работает?
заметим по умолчанию файервол пропускает все, я бы до поры оставил бы все по умолчанию(настроил бы файервол позже)
> natd_enable="YES"
разрешаем поднятие natd
> natd_interface="dc0"
> natd_flags="-f /etc/natd.conf"
тебе на самом деле нужен какая то изощеренная трансляция?
значения по умолчанию вполне разумны для первоначальной настройки
>
> firewall_quiet="NO"
> firewall_script="/etc/rc.firewall"
> firewall_logging="YES"
опять же по файерволу см. выше
т.е это круто мы пишем свой собственный конфиг а системе подсовываем значения по умолчанию(пропиши в rc.conf в таком случае firewall_type="OPEN", будет тебе счастье, а эти три строки убери)
> natd_program="/sbin/natd"
зачем копировать значение по умолчанию?
(/etc/defaults/rc.conf)
> # natd_flags="-dynamic -n dc0"
> hostname="xxx.xxx.ru"
> # ifconfig_bge0="DHCP"
> inetd_enable="NO"
> kern_securelevel="0"
> kern_securelevel_enable="NO"
> linux_enable="YES"
> moused_enable="YES"
> moused_port="/dev/psm0"
> moused_type="auto"
> nfs_reserved_port_only="NO"
> router="/sbin/routed"
> router_enable="YES"
> router_flags="-q"
есть основания заводить динамическую маршрутизацию?
routed настроен?
> saver="logo"
> sshd_enable="YES"
> tcp_extensions="NO"
> usbd_enable="YES"
> # -- sysinstall generated deltas -- # Wed Jun 22 14:13:05 2005
> ifconfig_dc0="inet 10.x.y.2 netmask 255.255.255.0"
маска точно такая?
сам роутер нормально пингует 10.х.у.2?
> ifconfig_bge0="inet 192.168.x.15 netmask 255.255.255.0"
> defaultrouter="10.x.y.1"
> hostname="xxx.xxx.ru"
какой скрытый смысл в повторении доменного имени хоста?> 3. В natd.conf следующее
interface dc0
> use_sockets yes
> same_ports yes
> dynamic yes> 4. В rc.firewall следующее:
> [Rr][Oo][Uu][Tt][Ee][Rr]-[Nn][Ee][Tt])> /sbin/ipfw -f flush
> /sbin/ipfw add divert natd all from any to any via dc0
> /sbin/ipfw add pass all from any to any
опять же значения по умолчанию из /etc/rc.firewall для файервола типа OPEN, зачем? замечательно ты и скрипт по умолчанию для ipfw переписал?
зачем, если ничего особенного ты тут не делаешь?P.S. Мой тебе совет, убери из /etc/rc.conf все что связано с маршрутизацией и файерволом, верни обратно скрипт по умолчанию rc.firewall и начни настройку сначала.
в /etc/rc.conf
gateway_enable="YES"
firewall_enable="YES"
firewall_type="OPEN"
natd_enable="YES"
natd_interface="dc0"
этого должно хватить для начала.
та часть где настраивается ipfw
/sbin/ipfw add divert natd ip from inip to any out xmit dc0
/sbin/ipfw add divert natd ip from any to outip
/sbin/ipfw add pass all from any to anyгде inip адрес внутри сети (10.x.y.0/24)
outip внешний адрес (192.168.x.15)
Уважаемые,я тут с помощью man, ваших рекомендаций и инета подготовил rc.firewall.
Что думаете?----
fwcmd=/sbin/ipfwoif="dco"
onet="10.x.y.0"
omask="255.255.255.0"
oip="10.x.y.2"# Set these to your inside interface network and netmask and ip.
iif="bge0"
inet="192.168.y.0"
imask="255.255.255.0"
iip="192.168.y.15"# Allow communications through loopback interface and deny 127.0.0.1/8
# from any other interfaces
setup_loopback
# Stop spoofing
${fwcmd} add deny log all from ${inet}:${imask} to any in via ${oif}
${fwcmd} add deny log all from ${onet}:${omask} to any in via ${iif}# Stop RFC1918 nets on the outside interface
${fwcmd} add deny log all from any to 10.0.0.0/8 via ${oif}
${fwcmd} add deny log all from any to 172.16.0.0/12 via ${oif}
${fwcmd} add deny log all from any to 192.168.y.0/16 via ${oif}# Stop draft-manning-dsua-03.txt (1 May 2000) nets (includes RESERVED-1,
# DHCP auto-configuration, NET-TEST, MULTICAST (class D), and class E),
# RFC 3330 nets on the outside interface
${fwcmd} add deny log all from any to 0.0.0.0/8 via ${oif}
${fwcmd} add deny log all from any to 169.254.0.0/16 via ${oif}
${fwcmd} add deny log all from any to 192.0.2.0/24 via ${oif}
${fwcmd} add deny log all from any to 198.18.y.0/15 via ${oif}
${fwcmd} add deny log all from any to 224.0.0.0/4 via ${oif}
${fwcmd} add deny log all from any to 240.0.0.0/4 via ${oif}# Network Address Translation. This rule is placed here deliberately
# so that it does not interfere with the surrounding address-checking
# rules. If for example one of your internal LAN machines had its IP
# address set to 192.168.0.2 then an incoming packet for it after being
# translated by natd(8) would match the `deny' rule above. Similarly
# an outgoing packet originated from it before being translated would
# match the `deny' rule below.
case ${natd_enable} in
[Yy][Ee][Ss])
if [ -n "${natd_interface}" ]; then
${fwcmd} add divert natd all from any to any via ${natd_interface}
fi
;;
esac# Stop RFC1918 nets on the outside interface
${fwcmd} add deny log all from 10.0.0.0/8 to any via ${oif}
${fwcmd} add deny log all from 172.16.0.0/12 to any via ${oif}
${fwcmd} add deny log all from 192.168.y.0/16 to any via ${oif}# Stop draft-manning-dsua-03.txt (1 May 2000) nets (includes RESERVED-1,
# DHCP auto-configuration, NET-TEST, MULTICAST (class D), and class E),
# RFC 3330 nets on the outside interface
${fwcmd} add deny log all from 0.0.0.0/8 to any via ${oif}
${fwcmd} add deny log all from 169.254.0.0/16 to any via ${oif}
${fwcmd} add deny log all from 192.0.2.0/24 to any via ${oif}
${fwcmd} add deny log all from 198.168.y.0/15 to any via ${oif}
${fwcmd} add deny log all from 224.0.0.0/4 to any via ${oif}
${fwcmd} add deny log all from 240.0.0.0/4 to any via ${oif}# Allow anything on the internal net
${fwcmd} add allow all from any to any via ${iif}# Allow anything outbound from this net.
${fwcmd} add allow all from ${onet}:${omask} to any out via ${oif}# Deny anything outbound from other nets.
# ${fwcmd} add deny log all from any to any out via ${oif} # removed# Allow TCP through if setup succeeded.
${fwcmd} add allow tcp from any to any established# Allow IP fragments to pass through.
${fwcmd} add allow all from any to any frag# Allow inbound ftp, ssh, email, tcp-dns, http, https, pop3, pop3s.
${fwcmd} add allow tcp from any to ${oip} 21 setup in via ${oif}
${fwcmd} add allow tcp from any to ${oip} 22 setup in via ${oif}
${fwcmd} add allow tcp from any to ${oip} 25 setup in via ${oif}
${fwcmd} add allow tcp from any to ${oip} 53 setup in via ${oif}
${fwcmd} add allow tcp from any to ${oip} 80 setup in via ${oif}
${fwcmd} add allow tcp from any to ${oip} 443 setup in via ${oif}
${fwcmd} add allow tcp from any to ${oip} 110 setup in via ${oif}
${fwcmd} add allow tcp from any to ${oip} 995 setup in via ${oif}# Deny inbound auth, netbios, ldap, and Microsoft's DB protocol
# without logging.
${fwcmd} add deny tcp from any to ${oip} 113 setup in via ${oif}
${fwcmd} add deny tcp from any to ${oip} 139 setup in via ${oif}
${fwcmd} add deny tcp from any to ${oip} 389 setup in via ${oif}
${fwcmd} add deny tcp from any to ${oip} 445 setup in via ${oif}# Deny some chatty UDP broadcast protocols without logging.
${fwcmd} add deny udp from any 137 to any in via ${oif}
${fwcmd} add deny udp from any to any 137 in via ${oif}
${fwcmd} add deny udp from any 138 to any in via ${oif}
${fwcmd} add deny udp from any 513 to any in via ${oif}
${fwcmd} add deny udp from any 525 to any in via ${oif}# Allow inbound DNS and NTP replies. This is somewhat of a hole,
# since we're looking at the incoming port number, which can be
# faked, but that's just the way DNS and NTP work.
${fwcmd} add allow udp from any 53 to ${oip} in via ${oif}
${fwcmd} add allow udp from any 123 to ${oip} in via ${oif}# Allow inbound DNS queries.
${fwcmd} add allow udp from any to ${oip} 53 in via ${oif}# Deny inbound NTP queries without logging.
${fwcmd} add deny udp from any to ${oip} 123 in via ${oif}# Allow traceroute to function, but not to get in.
${fwcmd} add unreach port udp from any to ${oip} 33435-33524 in via ${oif}# Allow some inbound icmps - echo reply, dest unreach, source quench,
# echo, ttl exceeded.
${fwcmd} add allow icmp from any to any in via ${oif} icmptypes 0,3,4,8,11# Broadcasts are denied and not logged.
${fwcmd} add deny all from any to 255.255.255.255# Everything else is denied and logged.
${fwcmd} add deny log all from any to any