Страница 1 из 1
IPFW? Не идут пакеты в мир...
Добавлено: 2006-03-15 13:22:17
Urgor
FreeBSD 6.0-RELEASE
Вся система настраивалась по докам с вашего сайта, конфиг для файрвола был взят первый...
В rc.conf:
Код: Выделить всё
gateway_enable="YES"
ifconfig_xl0="inet 192.168.0.200 netmask 255.255.255.0"
firewall_enable="YES"
firewall_type="/etc/rc.firewall"
firewall_logging="YES"
nat_enable="YES"
natd_interface="ppp0"
natd_flags="-m -u"
clamav_clamd_enable="YES"
sshd_enable="YES"
inetd_enable="YES"
named_flags="-u bind"
nisdomainname="NO"
mysql_enable="YES"
squid_enable="YES"
asu-002# ipfw show
Код: Выделить всё
00100 0 0 check-state
00200 224 14520 allow ip from any to any via lo0
# Это для сквида, который ломится к c-icap
00300 32 1920 allow tcp from 127.0.0.1 to 217.195.64.xxx out via ppp0
00400 0 0 deny log logamount 100 ip from any to 127.0.0.0/8
00500 0 0 deny log logamount 100 ip from 127.0.0.0/8 to any
00600 0 0 deny ip from any to 10.0.0.0/8 in via ppp0
00700 0 0 deny ip from any to 172.16.0.0/12 in via ppp0
00800 0 0 deny ip from any to 192.168.0.0/16 in via ppp0
00900 0 0 deny ip from any to 0.0.0.0/8 in via ppp0
01000 0 0 deny ip from any to 169.254.0.0/16 in via ppp0
01100 0 0 deny ip from any to 224.0.0.0/4 in via ppp0
01200 0 0 deny ip from any to 240.0.0.0/4 in via ppp0
01300 0 0 deny icmp from any to any frag
01400 0 0 deny log logamount 100 icmp from any to 255.255.255.255 in via ppp0
01500 0 0 deny log logamount 100 icmp from any to 255.255.255.255 out via ppp0
01600 28 2778 fwd 127.0.0.1,3128 tcp from 192.168.0.0/24 to any dst-port 80 via ppp0
01700 305 21604 divert 8668 ip from 192.168.0.0/24 to any out via ppp0
01800 21 3478 divert 8668 ip from any to 217.195.64.xxx in via ppp0
01900 0 0 deny ip from 10.0.0.0/8 to any out via ppp0
02000 0 0 deny ip from 172.16.0.0/12 to any out via ppp0
02100 0 0 deny ip from 192.168.0.0/16 to any out via ppp0
02200 0 0 deny ip from 0.0.0.0/8 to any out via ppp0
02300 0 0 deny ip from 169.254.0.0/16 to any out via ppp0
02400 0 0 deny ip from 224.0.0.0/4 to any out via ppp0
02500 0 0 deny ip from 240.0.0.0/4 to any out via ppp0
02600 361 47971 allow tcp from any to any established
02700 13 930 allow ip from 217.195.64.xxx to any out xmit ppp0
02800 0 0 allow udp from any 53 to any via ppp0
02900 0 0 allow udp from any 53 to any via xl0
03000 0 0 allow udp from any to any dst-port 123 via ppp0
03100 43 3464 allow icmp from any to any icmptypes 0,8,11
03200 0 0 allow tcp from any to 217.195.64.xxx dst-port 80 via ppp0
03300 0 0 allow tcp from any to 217.195.64.xxx dst-port 25 via ppp0
03400 0 0 allow tcp from any to 192.168.0.200 dst-port 25 via xl0
03500 1 48 allow tcp from any to 192.168.0.200 dst-port 22 via xl0
03600 174 8352 allow tcp from any to any via xl0
03700 3886 351891 allow udp from any to any via xl0
03800 33 1848 allow icmp from any to any via xl0
03900 0 0 deny ip from any to any
65535 0 0 deny ip from any to any
Пробую пингануть маил.ру
asu-002# ping 194.67.57.26
Код: Выделить всё
PING 194.67.57.26 (194.67.57.26): 56 data bytes
^C
--- 194.67.57.26 ping statistics ---
7 packets transmitted, 0 packets received, 100% packet loss
При этом с моего компа пингуются как сетевуха так и внешний интерфейс на FreeBSDшной машине. С провом естессно сконнектились. По крайней мере до добавления файрвола дозванивался нормально, дерево портов обновил и все приложения нормально скачались...
Вот конфигурация ядра:
Код: Выделить всё
machine i386
cpu I686_CPU
ident main_kernel
# To statically compile in device wiring instead of /boot/device.hints
options IPFIREWALL
options IPFIREWALL_VERBOSE
options IPFIREWALL_VERBOSE_LIMIT=100
options IPFIREWALL_FORWARD
options IPDIVERT
options DUMMYNET
options TCP_DROP_SYNFIN
options SCHED_4BSD # 4BSD scheduler
options PREEMPTION # Enable kernel thread preemption
options INET # InterNETworking
options FFS # Berkeley Fast Filesystem
options SOFTUPDATES # Enable FFS soft updates support
options UFS_ACL # Support for access control lists
options UFS_DIRHASH # Improve performance on big directories
options MD_ROOT # MD is a potential root device
options CD9660 # ISO 9660 Filesystem
options PROCFS # Process filesystem (requires PSEUDOFS)
options PSEUDOFS # Pseudo-filesystem framework
options GEOM_GPT # GUID Partition Tables.
options COMPAT_43 # Compatible with BSD 4.3 [KEEP THIS!]
options COMPAT_FREEBSD4 # Compatible with FreeBSD4
options COMPAT_FREEBSD5 # Compatible with FreeBSD5
options SYSVSHM # SYSV-style shared memory
options SYSVMSG # SYSV-style message queues
options SYSVSEM # SYSV-style semaphores
options _KPOSIX_PRIORITY_SCHEDULING # POSIX P1003_1B real-time extensions
options ADAPTIVE_GIANT # Giant mutex is adaptive.
device apic # I/O APIC
# Bus support.
device isa
device pci
# ATA and ATAPI devices
device ata
device atadisk # ATA disk drives
device atapicd # ATAPI CDROM drives
options ATA_STATIC_ID # Static device numbering
# atkbdc0 controls both the keyboard and the PS/2 mouse
device atkbdc # AT keyboard controller
device atkbd # AT keyboard
device psm # PS/2 mouse
device vga # VGA video card driver
device splash # Splash screen and screen saver support
# syscons is the default console driver, resembling an SCO console
device sc
device agp # support several AGP chipsets
# Add suspend/resume support for the i8254.
device pmtimer
# Serial (COM) ports
device sio # 8250, 16[45]50 based serial ports
# PCI Ethernet NICs.
device em # Intel PRO/1000 adapter Gigabit Ethernet Card
# PCI Ethernet NICs that use the common MII bus controller code.
# NOTE: Be sure to keep the 'device miibus' line in order to use these NICs!
device miibus # MII bus support
device fxp # Intel EtherExpress PRO/100B (82557, 82558)
device wb # Winbond W89C840F
device xl # 3Com 3c90x (``Boomerang'', ``Cyclone'')
# ISA devices that use the old ISA shims
#device le
# Pseudo devices.
device loop # Network loopback
device random # Entropy device
device ether # Ethernet support
device sl # Kernel SLIP
device ppp # Kernel PPP
device tun # Packet tunnel.
device pty # Pseudo-ttys (telnet etc)
device gif # IPv6 and IPv4 tunneling
# The `bpf' device enables the Berkeley Packet Filter.
# Be aware of the administrative consequences of enabling this!
# Note that 'bpf' is required for DHCP.
device bpf # Berkeley packet filter
Добавлено: 2006-03-15 13:37:33
Urgor
Гм. Поглядел логи почтовика, а там:
Код: Выделить всё
Checking for rejected mail:
2006-03-14 16:06:57 H=mail.ongp.ru [217.17.170.3] F=<ящик@домен.ру> rejected RCPT <ящик@домен.ру>: Unrouteable address
2006-03-14 16:09:02 H=(ns.rustest.spb.ru) [194.190.197.238] F=<ящик@домен.ру> rejected RCPT <ящик@домен.ру>: Unrouteable address
2006-03-14 16:22:50 H=24-241-23-27.dhcp.oxfr.ma.charter.com [24.241.23.27] F=<ящик@домен.ру> rejected RCPT <ящик@домен.ру>: Go Away! You are spammer.
Т.е. у почтовика соединение с инетом идет...
Добавлено: 2006-03-15 13:57:16
Alex Keda
ppp0 - адрес не динамический ли?
и 300 правило - оно точно нужно?
Добавлено: 2006-03-15 14:46:17
Urgor
ip статический, он же прописан в DNS как MX... почта с инета на машину валится нормально.
По поводу 300... в данном случае есть оно, или же его нет пакеты в нет не уходят
А у тебя в файрволе связка сквида с икапом как настраивалась? Просто после его (икапа) доустановки я и добавил это правило, но сквид уже ругнулся:
Код: Выделить всё
While attempting to retrieve the URL: http://194.67.57.26/
the following error was encountered:
* ICAP protocol error.
Some aspect of the ICAP communication failed. Possible problems:
* ICAP server is not reachable.
* Illegal response from ICAP server.
Код: Выделить всё
asu-002# sockstat
USER COMMAND PID FD PROTO LOCAL ADDRESS FOREIGN ADDRESS
urgor sshd 1041 3 tcp4 192.168.0.200:22 192.168.0.37:3174
urgor sshd 1041 4 stream -> ??
root sshd 1038 3 tcp4 192.168.0.200:22 192.168.0.37:3174
root sshd 1038 5 stream -> ??
mysql mysqld 662 3 tcp4 *:3306 *:*
mysql mysqld 662 4 stream /tmp/mysql.sock
squid perl5.8.7 639 0 tcp4 127.0.0.1:52966 127.0.0.1:61219
squid perl5.8.7 639 1 tcp4 127.0.0.1:52966 127.0.0.1:61219
squid perl5.8.7 638 0 tcp4 127.0.0.1:50550 127.0.0.1:65198
squid perl5.8.7 638 1 tcp4 127.0.0.1:50550 127.0.0.1:65198
squid perl5.8.7 637 0 tcp4 127.0.0.1:62001 127.0.0.1:49975
squid perl5.8.7 637 1 tcp4 127.0.0.1:62001 127.0.0.1:49975
squid perl5.8.7 636 0 tcp4 127.0.0.1:63239 127.0.0.1:63723
squid perl5.8.7 636 1 tcp4 127.0.0.1:63239 127.0.0.1:63723
squid perl5.8.7 634 0 tcp4 127.0.0.1:57906 127.0.0.1:52817
squid perl5.8.7 634 1 tcp4 127.0.0.1:57906 127.0.0.1:52817
root inetd 618 4 tcp4 *:21 *:*
squid perl5.8.7 617 0 tcp4 127.0.0.1:50464 127.0.0.1:64919
squid perl5.8.7 617 1 tcp4 127.0.0.1:50464 127.0.0.1:64919
squid perl5.8.7 616 0 tcp4 127.0.0.1:51274 127.0.0.1:57302
squid perl5.8.7 616 1 tcp4 127.0.0.1:51274 127.0.0.1:57302
squid perl5.8.7 615 0 tcp4 127.0.0.1:64072 127.0.0.1:63453
squid perl5.8.7 615 1 tcp4 127.0.0.1:64072 127.0.0.1:63453
squid perl5.8.7 614 0 tcp4 127.0.0.1:65261 127.0.0.1:63497
squid perl5.8.7 614 1 tcp4 127.0.0.1:65261 127.0.0.1:63497
squid perl5.8.7 613 0 tcp4 127.0.0.1:55500 127.0.0.1:58211
squid perl5.8.7 613 1 tcp4 127.0.0.1:55500 127.0.0.1:58211
squid squid 566 5 udp4 *:57858 *:*
squid squid 566 7 tcp4 127.0.0.1:58211 127.0.0.1:55500
squid squid 566 8 tcp4 127.0.0.1:63497 127.0.0.1:65261
squid squid 566 9 tcp4 127.0.0.1:63453 127.0.0.1:64072
squid squid 566 10 tcp4 127.0.0.1:57302 127.0.0.1:51274
squid squid 566 11 tcp4 127.0.0.1:64919 127.0.0.1:50464
squid squid 566 12 tcp4 127.0.0.1:52817 127.0.0.1:57906
squid squid 566 13 tcp4 127.0.0.1:63723 127.0.0.1:63239
squid squid 566 14 tcp4 127.0.0.1:49975 127.0.0.1:62001
squid squid 566 15 tcp4 127.0.0.1:65198 127.0.0.1:50550
squid squid 566 16 tcp4 127.0.0.1:61219 127.0.0.1:52966
squid squid 566 22 tcp4 *:3128 *:*
squid squid 564 4 dgram -> /var/run/log
squid c-icap 552 3 tcp4 *:1344 *:*
squid c-icap 552 4 dgram -> /var/run/logpriv
squid c-icap 551 3 tcp4 *:1344 *:*
squid c-icap 551 4 dgram -> /var/run/logpriv
squid c-icap 550 3 tcp4 *:1344 *:*
squid c-icap 550 4 dgram -> /var/run/logpriv
squid c-icap 547 3 tcp4 *:1344 *:*
squid c-icap 547 4 dgram -> /var/run/logpriv
mailnull exim-4.60- 542 3 tcp4 *:25 *:*
root authdaemon 535 5 stream /var/run/authdaemond/socket.tmp
root authdaemon 534 5 stream /var/run/authdaemond/socket.tmp
root authdaemon 533 5 stream /var/run/authdaemond/socket.tmp
root authdaemon 532 5 stream /var/run/authdaemond/socket.tmp
root authdaemon 531 5 stream /var/run/authdaemond/socket.tmp
root couriertcp 530 3 tcp4 *:110 *:*
root courierlog 529 4 dgram -> /var/run/logpriv
root couriertcp 515 3 tcp4 *:143 *:*
root courierlog 514 4 dgram -> /var/run/logpriv
root authdaemon 499 5 stream /var/run/authdaemond/socket.tmp
root courierlog 498 4 dgram -> /var/run/logpriv
clamav clamd 485 0 stream /var/run/clamav/clamd
root sshd 462 3 tcp4 *:22 *:*
root syslogd 347 3 dgram /var/run/log
root syslogd 347 4 dgram /var/run/logpriv
root syslogd 347 5 udp4 *:514 *:*
root devd 318 4 stream /var/run/devd.pipe
Добавлено: 2006-03-15 14:56:07
Alex Keda
у меня первый файрволл (собстно он же - мой и есть). Всё прекрасно завелось. Я статью по своей машине и писал....
Добавлено: 2006-03-15 16:19:34
Urgor
Выкинул nat, все заработало... возможно это все из-за ppp.
Ладно. Подожду когда оптику притащат
Добавлено: 2006-04-06 14:45:58
Urgor
Что-то мне с натом клинически не везет
Код: Выделить всё
C:\Documents and Settings>ping 217.195.65.9
Обмен пакетами с 217.195.65.9 по 32 байт:
Превышен интервал ожидания для запроса.
Превышен интервал ожидания для запроса.
Превышен интервал ожидания для запроса.
Превышен интервал ожидания для запроса.
Статистика Ping для 217.195.65.9:
Пакетов: отправлено = 4, получено = 0, потеряно = 4 (100% потерь),
C:\Documents and Settings>ipconfig /all
Настройка протокола IP для Windows
Имя компьютера . . . . . . . . . : inf_sys
Основной DNS-суффикс . . . . . . : domain.com
Тип узла. . . . . . . . . . . . . : неизвестный
IP-маршрутизация включена . . . . : нет
WINS-прокси включен . . . . . . . : нет
Порядок просмотра суффиксов DNS . : domain.com
Подключение по локальной сети - Ethernet адаптер:
DNS-суффикс этого подключения . . :
Описание . . . . . . . . . . . . : 3Com 3C920 Integrated Fast Etherne
контроллер (3C905C-TX совместимый)
Физический адрес. . . . . . . . . : 00-01-03-0F-14-C1
Dhcp включен. . . . . . . . . . . : да
Автонастройка включена . . . . . : да
IP-адрес . . . . . . . . . . . . : 192.168.0.7
Маска подсети . . . . . . . . . . : 255.255.255.0
Основной шлюз . . . . . . . . . . : 192.168.0.200
DHCP-сервер . . . . . . . . . . . : 192.168.0.1
DNS-серверы . . . . . . . . . . . : 217.195.65.9
192.168.0.1
Аренда получена . . . . . . . . . : 6 апреля 2006 г. 14:42:49
Аренда истекает . . . . . . . . . : 14 апреля 2006 г. 14:42:49
C:\Documents and Settings>nslookup www.ya.ru
DNS request timed out.
timeout was 2 seconds.
*** Can't find server name for address 217.195.65.9: Timed out
Server: server.kk.com
Address: 192.168.0.1
*** server.kk.com can't find www.ya.ru: Non-existent domain
т.е. пинги не уходят и адрес не определяется, страница не грузится. Если прописать как прокси напрямую, то все ок. Но тогда не работают пайпы и статистика....
Вот конфиг фарвола:
Код: Выделить всё
FwCMD="/sbin/ipfw" # собственно где лежит бинарник ipfw
LanOut="xl1" # внешний интерфейс
LanIn="xl0" # внутренний интерфейс
IpOut="84.204.194.250" # внешний IP адрес машины
IpIn="192.168.0.200" # внутренний IP машины
NetMask="24" # маска сети (если она разная для внешней
# и внутренней сети - придётся вводить ещё
# одну переменную, но самое забавное, что
# можно и забить - оставить 24 - всё будет
# работать, по крайней мере я пробовал -
# работаало на 4-х машинах, в разных сетях,
# с разными масками - настоящими разными! но -
# это неправильно.)
NetIn="192.168.0.0" # Внутренняя сеть
# Сбрасываем все правила:
${FwCMD} -f flush
# Проверяем - соответствует ли пакет динамическим правилам:
${FwCMD} add check-state
${FwCMD} add pipe 1 ip from ${IpOut} to ${NetIn}/${NetMask}
${FwCMD} pipe 1 config bw 100Mbit/s
${FwCMD} add pipe 2 ip from ${IpIn} to ${NetIn}/${NetMask}
${FwCMD} pipe 2 config bw 100Mbit/s
${FwCMD} add pipe 3 ip from ${NetIn}/${NetMask} to me
${FwCMD} pipe 3 config bw 100Mbit/s
# --pipe (Add auto pipe rules from MySQL)
${FwCMD} add pipe 10 ip from not ${NetIn} to 192.168.0.37
${FwCMD} pipe 10 config bw 64000bit/s
# Butorin
${FwCMD} add pipe 13 ip from not ${NetIn} to 192.168.0.28
${FwCMD} pipe 13 config bw 50000bit/s
# director
${FwCMD} add pipe 14 ip from not ${NetIn} to 192.168.0.50
${FwCMD} pipe 14 config bw 128000bit/s
# Denisenko
${FwCMD} add pipe 15 ip from not ${NetIn} to 192.168.0.131
${FwCMD} pipe 15 config bw 128000bit/s
# fin001 -- telebank
${FwCMD} add pipe 16 ip from not ${NetIn} to 192.168.0.77
${FwCMD} pipe 16 config bw 64000bit/s
# Разрешаем весь траффик по внутреннему интерфейсу (петле)
# Вообще я во многих местах читал что без него может ничё не заработать вообще
# и прочие страшилки. Работает - почта, апач, .... А вот squid - не работает :)
# так что без него и правда - никуда.
${FwCMD} add allow ip from any to any via lo0
# рубим попытки lo0 куда-то лезть и откуда-то лезть на lo0 (вот честно - ни
# одного пакета по этим правилам не зарубилось за всё время... Может в этом
# моё счастье? :))
${FwCMD} add deny log ip from any to 127.0.0.0/8
${FwCMD} add deny log ip from 127.0.0.0/8 to any
# Вводим запреты:
# режем частные сети на внешнем интерфейсе - по легенде он у нас
# смотрит в интернет, а значит пакетам этим браться неоткуда на нём.
# рубим частные сeти
${FwCMD} add deny ip from any to 10.0.0.0/8 in via ${LanOut}
${FwCMD} add deny ip from any to 172.16.0.0/12 in via ${LanOut}
${FwCMD} add deny ip from any to 192.168.0.0/16 in via ${LanOut}
${FwCMD} add deny ip from any to 0.0.0.0/8 in via ${LanOut}
# рубим автоконфигуреную частную сеть
${FwCMD} add deny ip from any to 169.254.0.0/16 in via ${LanOut}
# рубаем мультикастовые рассылки
${FwCMD} add deny ip from any to 224.0.0.0/4 in via ${LanOut}
# рубаем мультикастовые рассылки
${FwCMD} add deny ip from any to 240.0.0.0/4 in via ${LanOut}
# рубим фрагментированные icmp
${FwCMD} add deny icmp from any to any frag
# рубим широковещательные icmp на внешнем интерфейсе
${FwCMD} add deny log icmp from any to 255.255.255.255 in via ${LanOut}
${FwCMD} add deny log icmp from any to 255.255.255.255 out via ${LanOut}
# а тут собственно файрволл и начался:
# отправляем всех на frox
${FwCMD} add fwd ${IpIn},2121 tcp from ${NetIn}/${NetMask} to any 21 via ${LanOut}
# отправляем всех на squid (в данном случае - прокси прозрачный)
${FwCMD} add fwd 127.0.0.1,3128 tcp from ${NetIn}/${NetMask} to any 80 via ${LanOut}
# пропускаем траффик через трансляцию сетевых адресов (NAT)
${FwCMD} add divert natd ip from ${NetIn}/${NetMask} to any out via ${LanOut}
${FwCMD} add divert natd ip from 192.168.0.1 to ${IpOut} in via ${LanOut}
${FwCMD} add divert natd ip from 192.168.0.7 to ${IpOut} in via ${LanOut}
# --divert (Add auto divert rules from MySQL)
${FwCMD} add divert natd ip from 192.168.0.37 to ${IpOut} in via ${LanOut}
${FwCMD} add divert natd ip from 192.168.0.28 to ${IpOut} in via ${LanOut}
${FwCMD} add divert natd ip from 192.168.0.50 to ${IpOut} in via ${LanOut}
${FwCMD} add divert natd ip from 192.168.0.131 to ${IpOut} in via ${LanOut}
# рубим траффик к частным сетям через внешний интерфейс
# заметтьте - эти правила отличаются от тех что были выше!
${FwCMD} add deny ip from 10.0.0.0/8 to any out via ${LanOut}
${FwCMD} add deny ip from 172.16.0.0/12 to any out via ${LanOut}
#${FwCMD} add deny ip from 192.168.0.0/16 to any out via ${LanOut}
${FwCMD} add deny ip from 0.0.0.0/8 to any out via ${LanOut}
# рубим автоконфигуреную частную сеть
${FwCMD} add deny ip from 169.254.0.0/16 to any out via ${LanOut}
# рубаем мультикастовые рассылки
${FwCMD} add deny ip from 224.0.0.0/4 to any out via ${LanOut}
# рубаем мультикастовые рассылки
${FwCMD} add deny ip from 240.0.0.0/4 to any out via ${LanOut}
# разрешаем все установленные соединения (если они установились -
# значит по каким-то правилам они проходили.)
${FwCMD} add allow tcp from any to any established
# разрешаем весь исходящий траффик (серверу-то в инет можно? :))
${FwCMD} add allow ip from ${IpOut} to any out xmit ${LanOut}
# разрешаем DNS снаружи (нам же надо узнавать IP по именам машин?)
${FwCMD} add allow udp from any 53 to any via ${LanOut}
${FwCMD} add allow udp from any 53 to any via ${LanIn}
# разрешаем DNS входящий снаружи - если на этой машине работает named
# и держит какую-то зону. В остальных случаях - не нужно
#${FwCMD} add allow udp from any to any 53 via ${LanOut}
# разрешаем UDP (для синхронизации времени - 123 порт)
${FwCMD} add allow udp from any to any 123 via ${LanOut}
# разрешаем ftp снаружи (оба правила - для пасивного режима):
#${FwCMD} add allow tcp from any to ${IpOut} 21 via ${LanOut}
#${FwCMD} add allow tcp from any to ${IpOut} 40000-65534 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 порт (SNMP) если на машине крутится почта
${FwCMD} add allow tcp from any to ${IpOut} 25 via ${LanOut}
${FwCMD} add allow tcp from any to ${IpIn} 25 via ${LanIn}
# открываем снаружи 22 порт - если надо будет ходить на машину по ssh
${FwCMD} add allow tcp from any to ${IpIn} 22 via ${LanIn}
# открываем снаружи 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}
# ICQ
${FwCMD} add allow tcp from ${NetIn}/${NetMask} to any 5190 out via ${LanOut}
${FwCMD} add allow udp from ${NetIn}/${NetMask} to any 5190 out via ${LanOut}
# DNS
${FwCMD} add allow tcp from ${NetIn}/${NetMask} to any out via ${LanOut}
${FwCMD} add allow udp from ${NetIn}/${NetMask} to any out via ${LanOut}
# запрещаем всё и всем. Если тип файрволла не open то это правило добавится
# автоматически, но всё-же ну его. Лучше сам. Надёжней.
${FwCMD} add deny log ip from any to any
Добавлено: 2006-04-06 15:46:39
Urgor
Причем в логах видно что они уйти пытаются:
Код: Выделить всё
Apr 6 16:42:14 asu-002 kernel: ipfw: 2500 Divert 8668 UDP 192.168.0.7:1082 217.195.65.9:53 out via xl1
Apr 6 16:43:02 asu-002 kernel: ipfw: 2500 Divert 8668 ICMP:8.0 192.168.0.7 84.204.194.249 out via xl1
Apr 6 16:43:17 asu-002 last message repeated 3 times
Apr 6 16:46:29 asu-002 kernel: ipfw: 2500 Divert 8668 ICMP:8.0 192.168.0.7 84.204.194.249 out via xl1
Apr 6 16:46:44 asu-002 last message repeated 3 times
Apr 6 16:47:15 asu-002 kernel: ipfw: 2500 Divert 8668 UDP 192.168.0.7:1088 217.195.65.9:53 out via xl1
Добавлено: 2006-04-07 9:36:31
Urgor
Ну мазафака
Это видно карма совсем хреновая
Два дня изучал доки по ipfw и natd, поднял все на тестовой машине как описано в хандбуке -- работает! А все из-за того что в /etc/rc.conf было написано nat_enable="YES"
Добавлено: 2006-05-06 17:57:18
Roman
Ситуация такая ... даю команду
в ответ ....
Вопрос ...как узнать какие пакеты и куда были зарублены, читал где-то, что в последнем правиле на надо поставить "log" в
Вопрос и куда этот лог сохраняется ????
Добавлено: 2006-05-06 20:23:49
northern
правильно:
а лог лежит (у меня 6фря) :
/var/log/security
Добавлено: 2006-05-08 9:39:32
Roman
У меня FreeBSD 5.4, но лог действительно там (/var/log/security)....Спасибо !
Такая же проблема...
Добавлено: 2006-06-08 7:19:02
Dmitry
FreeBSD 6.0-RELEASE
Вся система настраивалась по докам с вашего сайта...
В rc.conf:
Код: Выделить всё
gateway_enable="YES"
ifconfig_xl0="inet 192.168.103.107 netmask 255.255.252.0" (внешняя)
ifconfig_bfe0="inet 10.22.0.1 netmask 255.255.0.0" (внутренняя)
gateway_enable="YES"
firewall_enable="YES"
firewall_type="/etc/rc.firewall"
natd_enable="YES"
natd_interface="xl0"
natd_flags="-m -u"
компьютер с WinXP подключен напрямую (оверкроссом) к bfe0
шлюзом указан 10.22.0.1
при таком раскладе выход во внешнюю сеть невозможен
если отключаю весь natd (в rc.conf) и прописываю
Код: Выделить всё
ipnat_enable="YES"
ipnat_program="/sbin/ipnat"
ipnat_flags="-CF -f /etc/ipnat.rules"
---------
(#ipnat.rules - map xl0 10.22.0.0/24->0/32
---------
тогда все работает нормально (за исключением emule, которая никак не может
приконнекититься к серверу)
вопрос такой:
что же я делаю неправильно?
почему natd не хочет транслировать запросы обратно клиенту?
и работает ли тогда IPWIREWALL ?
----------------------------
хотел установить samba-3.0.14a
требует autoconf259 input file
если не затруднит, подскажите как
этот "input" файл для saba создать?
-----------------------------
-----------------------------
на другой FreeBSD 6
пересобрать ядро хотел.
не получается
ругается на синтаксис в разных файлах
находящихся в /usr/src/sys/dev ......
хотя никогничего там не исправлял
что делать ? подскажите пожалуйста!
Добавлено: 2006-06-08 8:36:07
Alex Keda
natd работает не сам по себе, а вместе с файрволлом.
правила покажи.
Код: Выделить всё
Port: samba-3.0.22,1
Path: /usr/ports/net/samba3
Info: A free SMB and CIFS client and server for UNIX
Maint: timur@gnu.org
B-deps: autoconf-2.59_2 cups-base-1.1.23.0_9 gettext-0.14.5_2 gnutls-1.2.11 jpeg-6b_4 libgcrypt-1.2.2_1 libgpg-error-1.3 libiconv-1.9.2_2 m4-1.4.4 openldap-client-2.2.30 perl-5.8.8 pkg-config-0.20_2 png-1.2.8_3 popt-1.7_1 tiff-3.8.2
R-deps: cups-base-1.1.23.0_9 gettext-0.14.5_2 gnutls-1.2.11 jpeg-6b_4 libgcrypt-1.2.2_1 libgpg-error-1.3 libiconv-1.9.2_2 openldap-client-2.2.30 perl-5.8.8 pkg-config-0.20_2 png-1.2.8_3 popt-1.7_1 tiff-3.8.2
WWW: http://www.samba.org/
это щас в портах. а 3,0,14 уже пара лет... порты обнови и ставь из портов
Добавлено: 2006-06-08 9:21:49
Dmitry
lissyara писал(а):natd работает не сам по себе, а вместе с файрволлом.
правила покажи.
правила обязательно покажу, завтра принесу...
прямо с утра
Re: Такая же проблема...
Добавлено: 2006-06-09 9:35:08
Dmitry
конфигурация ядра:
Код: Выделить всё
machine i386
cpu I686_CPU
ident main_kernel
options IPFIREWALL
options IPFIREWALL_VERBOSE
options IPFIREWALL_VERBOSE_LIMIT=10
options IPFIREWALL_FORWARD
options IPDIVERT
options TCP_DROP_SYNFIN
все остальное оставил по умолчанию (пока)
конфиг rc.firewall :
Код: Выделить всё
#!/bin/sh -
if [ -z "${source_rc_confs_defined}" ]; then
if [ -r /etc/defaults/rc.conf ]; then
. /etc/defaults/rc.conf
source_rc_confs
elif [ -r /etc/rc.conf ]; then
. /etc/rc.conf
fi
fi
setup_loopback () {
${fwcmd} add 100 pass all from any to any via lo0
${fwcmd} add 200 deny all from any to 127.0.0.0/8
${fwcmd} add 300 deny ip from 127.0.0.0/8 to any
}
if [ -n "${1}" ]; then
firewall_type="${1}"
fi
fwcmd="/sbin/ipfw -q"
;;
esac
${fwcmd} -f flush
case ${firewall_type} in
[Oo][Pp][Ee][Nn]|[Cc][Ll][Ii][Ee][Nn][Tt])
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
esac
${fwcmd} add 65000 pass all from any to any
;;
[Ss][Ii][Mm][Pp][Ll][Ee])
LanOut="xl0"
NetOut="192.168.100.0/24"
IpOut="192.168.103.107"
# set these to your inside interface network and netmask and ip
LanIn="bfe0"
NetIn="10.22.0.0/24"
ip_lan="10.22.0"
setup_loopback
${fwcmd} add deny ip from any to 10.0.0.0/8 in via ${LanOut}
${fwcmd} add deny ip from any to 172.16.0.0/12 in via ${LanOut}
${fwcmd} add deny ip from any to 192.168.0.0/16 in via ${LanOut}
${fwcmd} add deny ip from any to 0.0.0.0/8 in via ${LanOut}
${fwcmd} add deny ip from any to 169.254.0.0/16 in via ${LanOut}
${fwcmd} add deny ip from any to 224.0.0.0/4 in via ${LanOut}
${fwcmd} add deny ip from any to 240.0.0.0/4 in via ${LanOut}
${fwcmd} add deny icmp from any to any frag
${fwcmd} add deny log icmp from any to 255.255.255.255 in via ${LanOut}
${fwcmd} add deny log icmp from any to 255.255.255.255 out via ${LanOut}
${fwcmd} add divert natd ip from ${NetIn} to any out via ${LanOut}
${fwcmd} add divert natd ip from any to ${IpOut} in via ${LanOut}
${fwcmd} add deny ip from 10.0.0.0/8 to any out via ${LanOut}
${fwcmd} add deny ip from 172.16.0.0/12 to any out via ${LanOut}
${fwcmd} add deny ip from 192.168.0.0/16 to any out via ${LanOut}
${fwcmd} add deny ip from 0.0.0.0/8 to any out via ${LanOut}
${fwcmd} add deny ip from 169.254.0.0/16 to any out via ${LanOut}
${fwcmd} add deny ip from 224.0.0.0/4 to any out via ${LanOut}
${fwcmd} add deny ip from 240.0.0.0/4 to any out via ${LanOut}
${fwcmd} add allow icmp from any to any icmptypes 0,8,11
${fwcmd} add allow ip from any to ${NetIn} in via ${LanIn}
${fwcmd} add allow ip from ${NetIn} to any out via ${LanIn}
${fwcmd} add allow tcp from any to any established
${fwcmd} add allow udp from any to ${IpOut} 53 in via ${LanOut}
${fwcmd} add allow udp from ${IpOut} 53 to any out via ${LanOut}
${fwcmd} add allow udp from any 53 to ${IpOut} in via ${LanOut}
${fwcmd} add allow udp from ${IpOut} to any 53 out via ${LanOut}
${fwcmd} add allow udp from any to any 123 via ${LanOut}
${fwcmd} add allow tcp from any to ${oip} 53 in via ${LanOut} setup
${fwcmd} add allow tcp from ${IpOut} to any out via ${LanOut} setup
${fwcmd} add allow tcp from any to ${IpOut} in via ${LanOut} setup
${fwcmd} add deny ip from any to any
;;
[Cc][Ll][Oo][Ss][Ee][Dd])
setup_loopback
;;
[Uu][Nn][Kk][Nn][Oo][Ww][Nn])
;;
*)
if [ -r "${firewall_type}" ]; then
${fwcmd} ${firewall_flags} ${firewall_type}
fi
;;
esac
Добавлено: 2006-06-09 10:20:15
Alex Keda
ipfw list
ipfw show
===
и порльзуйся тегами для разметки. читать удобней.
Добавлено: 2006-06-09 10:40:26
Dmitry
lissyara писал(а):ipfw list
ipfw show
===
и порльзуйся тегами для разметки. читать удобней.
и в то м в другом случае (ipfw list и ipfw show)
показывает одно и то же...
65435 16 396 deny ip from any to any
Добавлено: 2006-06-09 10:44:40
Alex Keda
Значит у тебя файл файрволла не подгружается.
Добавлено: 2006-06-09 10:49:57
Dmitry
lissyara писал(а):ipfw list
ipfw show
===
и порльзуйся тегами для разметки. читать удобней.
сейчас ipfw show = 65535 8752 2550449 all ip from any to any
а в чем тогда можно поискать ошибку ???
Добавлено: 2006-06-09 10:52:23
Dmitry
в смысле - где???
Добавлено: 2006-06-09 10:56:42
Alex Keda
для начала сделая скрипт фаера попроще. в пару правил, чтоб видно было - он цепляется вообще, или нет.
Добавлено: 2006-06-09 11:19:50
Dmitry
lissyara писал(а):для начала сделая скрипт фаера попроще. в пару правил, чтоб видно было - он цепляется вообще, или нет.
попробую...
о результате во вторник скажу