<a href="http://www.lissyara.su/articles/freebsd/tuning/ipfw/" target="_blank">http://www.lissyara.su/articles/freebsd/tuning/ipfw/
</a>
Значит для особо любопытных привожу листинг фаерволла:
Код: Выделить всё
#!/bin/sh
# для начала вводим переменные - для нашего же удобства, чтобы не
# вводить по сотне раз одно и то же, а потом искать почему не работает,
# и в итоге выяснять, что ошибся IP адресом в одном из правил
FwCMD="/sbin/ipfw" # собственно где лежит бинарник ipfw
LanOut="fxp0" # внешний интерфейс
LanIn="rl0" # внутренний интерфейс
IpOut="192.168.0.97 " # внешний IP адрес машины
IpIn="10.0.0.1" # внутренний IP машины
NetMask="24" # маска сети (если она разная для внешней
# и внутренней сети - придётся вводить ещё
# одну переменную, но самое забавное, что
# можно и забить - оставить 24 - всё будет
# работать, по крайней мере я пробовал -
# работаало на 4-х машинах, в разных сетях,
file "/etc/rc.firewall", 139 lines
^[ (escape) menu ^y search prompt ^k delete line ^p prev li ^g prev page
^o ascii code ^x search ^l undelete line ^n next li ^v next page
^u end of file ^a begin of line ^w delete word ^b back 1 char
^t top of text ^e end of line ^r restore word ^f forward 1 char
^c command ^d delete char ^j undelete char ^z next word
===============================================================================
^[ (escape) menu ^y search prompt ^k delete line ^p prev li ^g prev page
^o ascii code ^x search ^l undelete line ^n next li ^v next page
^u end of file ^a begin of line ^w delete word ^b back 1 char
^t top of text ^e end of line ^r restore word ^f forward 1 char
^c command ^d delete char ^j undelete char ^z next word
=====line 139 col 0 lines from top 139 ========================================
# /usr/home/lissyara/>sysctl net.inet.ip.portrange.last
# net.inet.ip.portrange.last: 65535
${FwCMD} add allow tcp from any to ${IpOut} 21 via ${LanOut}
#Можно изгалиться примерно так, если есть желание, но я предпочитаю руками
#${FwCMD} add allow tcp from any to ${IpOut} \
#`sysctl net.inet.ip.portrange.first | awk '{print $2}'`-\
#`sysctl net.inet.ip.portrange.last | awk '{print $2}'` via ${LanOut}
${FwCMD} add allow tcp from any to ${IpOut} 49152-65535 via ${LanOut}
# разрешаем некоторые типы ICMP траффика - эхо-запрос,
# эхо-ответ и время жизни пакета истекло
${FwCMD} add allow icmp from any to any icmptypes 0,8,11
# открываем снаружи 80 порт - если у нас есть WWW сервер на машине
${FwCMD} add allow tcp from any to ${IpOut} 80 via ${LanOut}
# открываем снаружи 25 порт (SMTP) если на машине крутится почта
#${FwCMD} add allow tcp from any to ${IpOut} 25 via ${LanOut}
# открываем снаружи 22 порт - если надо будет ходить на машину по ssh
${FwCMD} add allow tcp from any to ${IpOut} 22 via ${LanOut}
# открываем снаружи 143 порт(если надо смотреть почту снаружи по IMAP)
${FwCMD} add allow tcp from any to ${IpOut} 143 via ${LanOut}
# открываем снаружи 110 порт(если надо смотреть почту снаружи по POP)
${FwCMD} add allow tcp from any to ${IpOut} 110 via ${LanOut}
# по поводу следующих трёх правил, для tcp, udp и icmp - их можно
# заменить одним правилом:
#${FwCMD} add allow ip from any to any via ${LanIn}
# но для удобства наладки и контроля происходящего я предпочитаю три отдельных
# правила, хотя могут быть грабли - например протокол gre не пройдёт -
# придётся стругать отдельное правило для него, типа
#${FwCMD} add allow gre from any to any via ${LanIn}
# итак:
# разрешаем весь tcp траффик внутри локалки (на внутреннем интерфейсе)
${FwCMD} add allow tcp from any to any via ${LanIn}
# разрешаем весь udp траффик внутри локалки (на внутреннем интерфейсе)
${FwCMD} add allow udp from any to any via ${LanIn}
# разрешаем весь icmp траффик внутри локалки (на внутреннем интерфейсе)
${FwCMD} add allow icmp from any to any via ${LanIn}
# запрещаем всё и всем. Если тип файрволла не open то это правило добавится
# автоматически, но всё-же ну его. Лучше сам. Надёжней.
#${FwCMD} add deny ip from any to any
{FwCMD} add 35 allow icmp from any to any via tun0
Далее листинг секции фаервола и сетей из rc.conf:
Код: Выделить всё
#Ifconfig
ifconfig_fxp0="inet 192.168.0.97 netmask 255.255.255.0"
ifconfig_rl0="inet 10.0.0.1 netmask 255.255.255.0"
#Firewall
firewall_enable="YES"
firewall_type="/etc/rc.firewall"
Так как я во все запрешающие правила добавил функцию лог, естесвенно есть лог заблокированных пакетов:
ee /var/log/security
Код: Выделить всё
Mar 30 10:10:24 unix kernel: ipfw: 500 Deny UDP 172.26.6.250:138 172.26.6.255:138 in via fxp0
Mar 30 10:10:59 unix kernel: ipfw: 500 Deny UDP 172.26.6.250:138 172.26.6.255:138 in via fxp0
Mar 30 10:12:45 unix kernel: ipfw: 500 Deny UDP 172.26.6.232:137 172.26.6.255:137 in via fxp0
Mar 30 10:12:59 unix kernel: ipfw: 500 Deny UDP 172.26.6.236:138 172.26.6.255:138 in via fxp0
Mar 30 10:14:37 unix kernel: ipfw: 500 Deny UDP 172.26.6.238:137 172.26.6.255:137 in via fxp0
Собственно проблема в том, что с компьютера с виндовс пинги идут:
windows
C:\Documents and Settings\Admin>ping mail.ru -t
Обмен пакетами с mail.ru [217.69.128.42] по 32 байт:
Ответ от 217.69.128.42: число байт=32 время=126мс TTL=106
Ответ от 217.69.128.42: число байт=32 время=129мс TTL=106
Ответ от 217.69.128.42: число байт=32 время=158мс TTL=106
Ответ от 217.69.128.42: число байт=32 время=109мс TTL=106
Статистика Ping для 217.69.128.42:
Пакетов: отправлено = 4, получено = 4, потеряно = 0 (0% потерь),
Приблизительное время приема-передачи в мс:
Минимальное = 109мсек, Максимальное = 158 мсек, Среднее = 130 мсек
Но нслукап показывает:
windows
C:\Documents and Settings\Admin>nslookup ya.ru
*** Can't find server name for address 10.0.0.1: Non-existent domain
*** Default servers are not available
Server: UnKnown
Address: 10.0.0.1
Non-authoritative answer:
Name: ya.ru
Addresses: 93.158.134.8, 213.180.204.8, 77.88.21.8
Не подскажете где и что я накрутил...я уже 4 дня лазию по форумам....
Да чуть не забыл.
10.0.0.1
unix# ifconfig -a
fxp0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
options=8<VLAN_MTU>
ether 00:a0:c9:69:4e:4e
inet 192.168.0.97 netmask 0xffffff00 broadcast 192.168.0.255
media: Ethernet autoselect (none)
status: no carrier
rl0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
options=8<VLAN_MTU>
ether 00:30:4f:5c:dd:57
inet 10.0.0.1 netmask 0xffffff00 broadcast 10.0.0.255
media: Ethernet autoselect (100baseTX <full-duplex>)
status: active
lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> metric 0 mtu 16384
options=3<RXCSUM,TXCSUM>
inet 127.0.0.1 netmask 0xff000000
tun0: flags=8010<POINTOPOINT,MULTICAST> metric 0 mtu 1500
Opened by PID 336