Jump to content

Ping и Nat во Freebsd


Recommended Posts

FreeBSD 6.2, Squid (принудительный прокси), NAT, STG. Белый внешний IP.

Сетка на 50 ПК.

Планирую раздавать безлим. Предвижу проблемы с закачками и вообще доступу к внешним ресурсам, потому как внешний IP - один. Брать ещё IP нет возможности.

Пытаюсь наладить закачку через прокси.

Для того, чтобы совать довнлоадеру список прокси - их надо как-то протестировать. А большинство программ-чекеров делает это посредством пингов.

Из внутренней сети пинги наружу не идут (превышен интервал ожидания для запроса), хотя DNS работает - внутренний ПК получает преобразованный символический адрес - в цифровой.

С сервера пингуется как Интернет, так и внутренняя сеть - без проблем.

 

Пробовал включать эти правила, не помогает:

${fwcmd} add 300 allow icmp from any to внешний_IP in via внешний_интерфейс icmptype 0,3,4,11,12

${fwcmd} add 301 allow icmp from внешний_IP to any out via внешний_интерфейс icmptype 3,8,12

${fwcmd} add 304 allow icmp from внешний_IP to any out via внешний_интерфейс frag

${fwcmd} add 305 deny log icmp from any to any in via внешний_интерфейс

 

Подозреваю, что это NAT, но не знаю как переделать правила под него.

Ставил правила до divert и после, результат тот же.

Помогите пожалуйста. :)

Link to post
Share on other sites

Тут в FAQ написано про это, потому я сюда запостил. Можно будет потом тут же FAQ подправить, если найдём причину.

 

Мой IPFW:

 

#!/bin/sh

fwcmd="/sbin/ipfw"

natdcmd="/sbin/natd"

int_if="rl0"

#erv_if="xl1"

ext_if="rl1"

 

#sbros ipfw

${fwcmd} -f flush

${fwcmd} -f pipe flush

 

${fwcmd} add 5 allow udp from any 123 to any 123

 

#Принудительное проксирование

${fwcmd} add 10 fwd 127.0.0.1,3128 tcp from 10.0.0.0/24 to any 80,3128,8080,8088 out xmit rl1

 

${fwcmd} add 15 allow udp from 127.0.0.1 53 to any

${fwcmd} add 16 allow udp from any to 127.0.0.1 53

 

${fwcmd} add 50 divert natd ip from any to внешний_IP_сервера

 

#blokiruem fragmentirovanie icmp

${fwcmd} add 55 deny log icmp from any to any frag

#razreshaem icmp

${fwcmd} add 60 allow icmp from any to any

 

${fwcmd} add 100 allow ip from any to any via lo0

 

${fwcmd} add 200 deny log ip from any to 127.0.0.0/8

${fwcmd} add 250 deny log ip from 127.0.0.0/8 to any

 

${fwcmd} add 00304 deny log ip from any to 192.168.0.0/24 out via ${ext_if}

${fwcmd} add 00305 deny log ip from any to 10.0.0.0/24 out via ${ext_if}

${fwcmd} add 00306 deny log ip from any to 172.16.0.0/12 out via ${ext_if}

 

${fwcmd} add 00308 allow udp from any to 10.0.0.0/24 8888 via ${int_if}

${fwcmd} add 00309 allow udp from 10.0.0.0/24 to any via ${int_if}

 

${fwcmd} add 00314 allow tcp from 10.0.0.10 5555 to 10.0.0.1 via ${int_if}

${fwcmd} add 00315 allow tcp from 10.0.0.1 to 10.0.0.10 5555 via ${int_if}

 

#pravila dlya kartochek

${fwcmd} add 400 allow tcp from me 80 to 10.0.0.0/24

${fwcmd} add 410 allow tcp from 10.0.0.0/24 to me 80

 

${fwcmd} add 50020 deny log ip from 10.0.0.0/24 to 10.0.0.10 via ${int_if}

${fwcmd} add 50021 deny log ip from 192.168.10.0/24 to 192.168.20.1 via ${int_if}

${fwcmd} add 50022 deny log ip from 192.168.10.0/24 to 192.168.30.1 via ${int_if}

${fwcmd} add 50024 divert natd all from any to any via ${ext_if}

${fwcmd} add 50029 allow tcp from any to any out via ${ext_if} setup

${fwcmd} add 50030 allow tcp from any to any via ${ext_if} established

${fwcmd} add 50031 allow udp from any to any out via ${ext_if}

${fwcmd} add 50032 allow udp from any to any in recv ${ext_if}

${fwcmd} add 65534 deny log ip from any to any

 

Когда срабатывает OnConnect - добавляются правила вида:

 

29400 divert 8668 ip from 10.0.0.1 to any

29410 allow ip from any to 10.0.0.1

29420 allow ip from 10.0.0.1 to any

Link to post
Share on other sites

правило ${fwcmd} add 50024 divert natd all from any to any via ${ext_if} удали

 

правило ${fwcmd} add 50 divert natd ip from any to внешний_IP_сервера преобразуй в:

 

${fwcmd} add divert 8668 ip from локальная_сеть to any out via ${ext_if}
${fwcmd} add divert 8668 ip from any to внешний_IP_сервера in via ${ext_if}

 

в OnConnect нет смысла НАТ тыкать

Link to post
Share on other sites

grayich

 

Сделал. Не помогло. :)

 

Мой rc.conf:

 

ntpdate -bs ntp.colocall.net ntp2.colocall.net

 

kern_securelevel_enable="NO"

nfs_reserved_port_only="YES"

sendmail_enable="NONE"

sshd_enable="YES"

usbd_enable="NO"

 

ifconfig_rl0="inet 10.0.0.10 netmask 255.255.255.0"

ifconfig_rl1="inet внешний_IP_сервера netmask 255.255.255.252"

 

defaultrouter="роутер_за_сервером"

router="/sbin/routed"

router_flags=-"q"

router_enable="YES"

gateway_enable="YES"

 

natd_enable="YES"

named_enable="YES"

natd_interface="rl1"

 

firewall_enable="YES"

tcp_drop_synfin="YES"

firewall_script="/etc/rc.firewall"

 

samba_enable="YES"

 

firewall_type="open"

firewall_quiet="NO"

firewall_logging="YES"

apache_enable="YES"

 

squid_enable="YES"

 

ntpdate_enable="YES"

ntpdate_program="/usr/sbin/ntpdate"

xntpd_enable="YES"

xntpd_program="/usr/sbin/ntpd"

xntpd_flags="-p /var/run/ntpd.pid"

 

В принципе я проблему решил по другому. Просто разобрался с проксями, даже инструкцию для сети в видео наваял: как и что. Но осадок-то остался: какого хрена не работает пинг из локалки. :-/

Link to post
Share on other sites

чесна говоря некогда вникать во все правила, сделай минимум

 

 

 

fwcmd="/sbin/ipfw"

${fwcmd} add fwd 127.0.0.1,3128 tcp from 10.0.0.0/24 to any 80,3128.8080,8088 out xmit ${ext_if}
${fwcmd} add divert 8668 ip from локальная_сеть to any out via ${ext_if}
${fwcmd} add divert 8668 ip from any to внешний_IP_сервера in via ${ext_if}

${fwcmd} add allow ip from any to any

поидее так пинг должен работать, а потом добавляй свои правила и вычисляй, где он пропадёт

Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...