Здравствуйте!Настроил сервер под управлением FreeBSD84, настроил squid. Все прекрасно
работает, но вот почту в обход сквида на 25 smtp и 995 pop SSL-TLS никак не хочет отправлять, сразу оговорюсь - dns на контроллере домена, который также имеет выход в Интернет(пока что) уже 2-ую неделю бьюсь - не получается пока...ядро собрал со следующими опциями:
options IPFIREWALL
options IPFIREWALL_VERBOSE
options IPFIREWALL_VERBOSE_LIMIT=1000
options IPFIREWALL_FORWARD
options DUMMYNET
options HZ=1000
options IPDIVERT
#----------------------------------------
rc.confhostname="proxy-server"
ifconfig_igb1="inet a.b.c.d netmask 255.255.255.128" #внешний ip
defaultrouter="a.b.c.1"
gateway_enable="yes"#--- NAT ---
natd_enable="yes"
natd_interface="igb1"
natd_flags="-m -u"#--- ---
ifconfig_igb0="inet 192.168.0.1 netmask 255.255.255.0"
keymap="us.unix"
firewall_enable="yes"
firewall_type="/etc/Firewall"
sshd_enable="yes"
squid_enable="YES"
#-----------------------------------------------------
Firewall
#-----------------
igb0 - LAN (вн.сеть)
igb1 - WAN (Интернет)
a.b.c.d - внешний ip-адрес (на igb1)
#------------------q flush
-f flush
-f pipe flush
-f queue flush5 add check-state
10 add allow ip from any to any via lo0
20 add deny ip from any to 127.0.0.0/8
30 add deny ip from 127.0.0.0/8 to any
45 add allow ip from any to any established #включил и сеть стала подтормаживать47 add allow icmp from 192.168.0.0/24 to any keep-state
48 add allow ip from 192.168.0.0/24 to any 25 out via igb1 setup keep-state
49 add allow ip from 192.168.0.0/24 to any 995 out via igb1 setup keep-state400 add deny ip from any to ::1
500 add deny ip from ::1 to any550 add deny ip from me to any 137-139,445 out via igb1
1000 add allow ip from 192.168.0.0/24 to any out via igb1 keep-state#1200 add deny ip from any to 10.0.0.0/8 in via igb1 #пока выключил
1300 add deny ip from any to 172.16.0.0/12 in via igb1
#1400 add deny ip from any to 192.168.0.0/16 in via igb1 #пока выключил
#1500 add deny ip from any to 0.0.0.0/8 in via igb1 #пока выключил#-----рубим пакеты `типа от внутренней сети, но на внешнем интерфейсе------
1555 add deny ip from 192.168.0.0/24 to any in via igb1.# -----------------------------------------------------------------------
1600 add deny ip from any to 169.254.0.0/16 in via igb1
1650 add deny ip from any to 224.0.0.0/8 in via igb1
1700 add deny ip from any to 240.0.0.0/8 in via igb1
1800 add deny icmp from any to any frag#----------------- И еще одна попытка открыть почту через НАТ -------------------
1810 add allow tcp from any to any 25 via igb1
1820 add allow tcp from any 25 to any via igb1#----------------Рубим 80 и 443 порты----------------------------------------
1850 add deny tcp from 192.168.0.0/24 to any 80 out via igb1 #только через proxy
1860 add deny tcp from 192.168.0.0/24 to any 443 out via igb1 #только через proxy1900 add deny log icmp from any to 255.255.255.255 in via igb1
2000 add deny log icmp from any to 255.255.255.255 out via igb1#------------------------ NAT---------------------------------------
2150 add divert natd ip from any to any via igb1
#2200 add divert 8668 ip from any to 192.168.0.0/24 in via igb1 #другой варинат ната
#---------------------------и еще раз почта---------------------------
#2202 add allow ip from any to any 25
#2203 add allow ip from any to any 995# ---------------------- Еще одна попытка заставить заработать почту --------
#2220 add pass tcp from any 25, 995 to 192.168.0.0/24 via igb1
#2230 nat pass on igb1 from 192.168.0.0/24 to any port 25 -> igb1#--------- Рубим трафик к частным сетям-----------------------------
#2300 add deny ip from 10.0.0.0/8 to any out via igb1 #пока выключил
2400 add deny ip from 172.16.0.0/16 to any out via igb1
#2500 add deny ip from 192.168.0.0/16 to any out via igb1 #пока выключил
#2600 add deny ip from 0.0.0.0/8 to any out via igb1 #пока выключил
2700 add deny ip from 169.254.0.0/16 to any out via igb1
2800 add deny ip from 224.0.0.0/4 to any out via igb1
2900 add deny ip from 240.0.0.0/4 to any out via igb1
3000 add allow ip from any to any established
3100 add allow ip from me to any out xmit igb1 keep-state
#--------------------DNS--------------------------------------------
3150 add allow udp from 192.168.0.0/24 to 8.8.8.8 53 out via igb1 keep-state
3300 add allow udp from 8.8.8.8 53 to 192.168.0.0/24 in via igb1 established
3400 add allow udp from 192.168.0.0/24 to any 53 out via igb1
#--------------------TIME-------------------------------------------
3500 add allow udp from any to any 123 via igb1
#---------------------FTP-------------------------------------------
3600 add allow tcp from any to any 20,21 out via igb13700 add allow tcp from any to a.b.c.d 49152-65535 via igb1
3800 add allow icmp from any to any icmptypes 0,8,11
#3810 add allow icmp from any to any out via igb1 icmptypes 0,8,11 setup keep-state
# 3850 add deny icmp from any to a.b.c.d in via igb1
3900 add allow tcp from any to a.b.c.d ssh via igb13910 add allow ip from any to 192.168.0.0/24 in via igb0
3920 add allow ip from 192.168.0.0/24 to any out via igb0
3930 add allow ip from any to any established3950 add allow ip from any to any via igb0
# 3960 add allow tcp from any to any via igb0
# 3970 add allow udp from any to any via igb0
# 3980 add allow icmp from any to any via igb0#----------------------------ICQ-----------------------------------------
#9000 add allow tcp from 192.168.0.0/24 to any 5190 in via igb0 setup10000 add deny log tcp from any to a.b.c.d in via igb1 setup
65530 add deny log ip from any to anyGURUs I need your HELP, парни помогите!!!
Покажите ipfw sh
> Покажите ipfw sh# ipfw -a list
00005 0 0 check-state
00010 166696 29233680 allow ip from any to any via lo0
00020 0 0 deny ip from any to 127.0.0.0/8
00030 0 0 deny ip from 127.0.0.0/8 to any
00045 6415962 5598536751 allow ip from any to any established
00047 382 29256 allow icmp from 192.168.0.0/24 to any keep-state
00048 50 2520 allow ip from 192.168.0.0/24 to any dst-port 25 out via igb1 setup keep-state
00049 955 48132 allow ip from 192.168.0.0/24 to any dst-port 995 out via igb1 setup keep-state
00400 0 0 deny ip from any to ::1
00500 0 0 deny ip from ::1 to any
00550 177 13806 deny ip from me to any dst-port 137-139,445 out via igb1
01000 1105 55692 allow ip from 192.168.0.0/24 to any out via igb1 keep-state
01300 0 0 deny ip from any to 172.16.0.0/16 in via igb1
01555 0 0 deny ip from 192.168.0.0/24 to any in via igb1
01600 0 0 deny ip from any to 169.254.0.0/16 in via igb1
01650 0 0 deny ip from any to 224.0.0.0/8 in via igb1
01700 0 0 deny ip from any to 240.0.0.0/8 in via igb1
01800 0 0 deny icmp from any to any frag
01810 6 256 allow tcp from any to any dst-port 25 via igb1
01820 0 0 allow tcp from any 25 to any via igb1
01850 0 0 deny tcp from 192.168.0.0/24 to any dst-port 80 out via igb1
01860 0 0 deny tcp from 192.168.0.0/24 to any dst-port 443 out via igb1
01900 0 0 deny log logamount 200 icmp from any to 255.255.255.255 in via igb1
02000 0 0 deny log logamount 200 icmp from any to 255.255.255.255 out via igb1
02150 12296 824413 divert 8668 ip from any to any via igb1
02400 0 0 deny ip from 172.16.0.0/16 to any out via igb1
02700 0 0 deny ip from 169.254.0.0/16 to any out via igb1
02800 0 0 deny ip from 224.0.0.0/4 to any out via igb1
02900 0 0 deny ip from 240.0.0.0/4 to any out via igb1
03000 0 0 allow ip from any to any established
03100 974945 628926121 allow ip from me to any out xmit igb1 keep-state
03150 0 0 allow udp from 192.168.0.0/24 to 8.8.8.8 dst-port 53 out via igb1 keep-state
03300 0 0 allow udp from 8.8.8.8 53 to 192.168.0.0/24 in via igb1 established
03400 0 0 allow udp from 192.168.0.0/24 to any dst-port 53 out via igb1 established
03600 0 0 allow tcp from any to any dst-port 20,21 out via igb1
03700 4 160 allow tcp from any to a.b.c.d dst-port 49152-65535 via igb1
03800 8 634 allow icmp from any to any icmptypes 0,8,11
03900 0 0 allow tcp from any to a.b.c.d dst-port 22 via igb1
03910 299897 37429734 allow ip from any to 192.168.0.0/24 in via igb0
03920 286860 28291872 allow ip from 192.168.0.0/24 to any out via igb0
03930 0 0 allow ip from any to any established
03950 2063 401601 allow ip from any to any via igb0
10000 481 21616 deny log logamount 200 tcp from any to a.b.c.d in via igb1 setup
65530 485 69019 deny log logamount 200 ip from any to any
65535 895701 64933042 deny ip from any to any
какое значение имеет disable_one_pass?> 00048 50
> 2520 allow ip from 192.168.0.0/24 to any dst-port 25 out
> via igb1 setup keep-state
> 00049 955 48132
> allow ip from 192.168.0.0/24 to any dst-port 995 out via igb1
> setup keep-stateУберите эти правила и попробуйте, у вас банально 25 и 995 не доходит до ната...
> какое значение имеет disable_one_pass?net.inet.ip.fw.one_pass: 0
>> 00048 50
>> 2520 allow ip from 192.168.0.0/24 to any dst-port 25 out
>> via igb1 setup keep-state
>> 00049 955 48132
>> allow ip from 192.168.0.0/24 to any dst-port 995 out via igb1
>> setup keep-state
> Уберите эти правила и попробуйте, у вас банально 25 и 995
> не доходит до ната...Убрал и добавил правила сразу после ната:
add allow ip from 192.168.0.0/24 to any 25 out via igb1
add allow ip from any 25 to 192.168.0.0/24 in via igb1
add allow ip from any 25 to 192.168.0.0/24 out via igb0также отсутствует положительный результат забора и отправки почты - 25 и 995 порты.
подставите собственные данные
до ната
add pass all from localnet to any 25 via interface_localnet
add pass all from any to localnet 25 via interface_localnetРемарка. выкиньте natd и используйте встроеннный в ipfw nat..
> подставите собственные данные
> до ната
> add pass all from localnet to any 25 via interface_localnet
> add pass all from any to localnet 25 via interface_localnet
> Ремарка. выкиньте natd и используйте встроеннный в ipfw nat..сделал, но пакеты назад не возвращаются:
02050 6 304 allow ip from 192.168.0.0/24 to any dst-port 25 via igb0
02055 0 0 allow ip from any 25 to 192.168.0.0/24 via igb0
02100 6 304 divert 8668 ip from 192.168.0.0/24 to any out via igb1
02110 117 22925 divert 8668 ip from any to a.b.c.d in via igb1
Вы лучше сделайте следующее, возьмите rc.firewall, имеющийся в поставке, определите тип в OPEN и потихоньку добавляйте свои правила...
> Вы лучше сделайте следующее, возьмите rc.firewall, имеющийся в поставке, определите тип
> в OPEN и потихоньку добавляйте свои правила...в OPEN режиме попробовал - все работает, но при добавлении ограничивающих правил, он по-прежнему остается открытым и пакеты пропускает.
И в добавок ко всему у меня задача поставлена именно штатным закрытым файрволом все реализовать.
Может еще мысли есть...
>> Вы лучше сделайте следующее, возьмите rc.firewall, имеющийся в поставке, определите тип
>> в OPEN и потихоньку добавляйте свои правила...
> в OPEN режиме попробовал - все работает, но при добавлении ограничивающих правил,
> он по-прежнему остается открытым и пакеты пропускает.
> И в добавок ко всему у меня задача поставлена именно штатным закрытым
> файрволом все реализовать.
> Может еще мысли есть...Ну там не только OPEN есть...
>> Покажите ipfw sh
> 65530 485 69019 deny log logamount 200 ip from any to any
> 65535 895701 64933042 deny ip from any to anyвас не смущает наличие пакетов одновременно в правилах 65530 и 65535?
Посмотрите какие именно пакеты попали в deny и поймите почему.
Впишите необходимые правила для пропуска этих пакетов (если они вам нужны)
Но вообще..мда...
что значит "не хочет отправлять" ?
Кто не хочет отправлять,клиент через ваш шлюз или сам шлюз?правило
1810 add allow tcp from any to any 25 via igb1
это попытка доступа из серой сети к серверу в интернет минуя нат. с серым соответственно адресом. никогда так не заработает :)правила
3150 add allow udp from 192.168.0.0/24 to 8.8.8.8 53 out via igb1 keep-state
3300 add allow udp from 8.8.8.8 53 to 192.168.0.0/24 in via igb1 established
3400 add allow udp from 192.168.0.0/24 to any 53 out via igb1
жгут неподеццки :)
особенно 3300 :)))
опять отчаянная попытка отправить пакет из серой сети с серым адресом к ДНС серверу в инете...
все что вы отправляете в интернет- должно быть с вашим БЕЛЫМ адресом..тоесть пройти через НАТ....правила
1850 add deny tcp from 192.168.0.0/24 to any 80 out via igb1 #только через proxy
1860 add deny tcp from 192.168.0.0/24 to any 443 out via igb1
Это глупость.
а если клиент пойдет на 8080 порт?
deny tcp from 192.168.0.0/24 to any 80 должно быть на внутреннем порту!
делается это так:
правило пропуска на ваш прокси (все что не идет по спец портам- идет на прокси)
правило запрещающее все что захотело идти мимо прокси (все что не прошло на прокси и не прошло по спецпортам- запрещено).причем эти правила не на ИСХОДЯЩЕМ в инет порту, а на ВХОДЯЩЕМ на внутреннем.
файрвол должен отрубать пакеты как можно раньше (на входе) а не обрабатывать пакеты и когда они уже выходят из него- спохватываться и отрубать...правило
03910 299897 37429734 allow ip from any to 192.168.0.0/24 in via igb0
редкостный бред, если только в вашей сети нет белых адресов и серых сетей больше одной...
from any ... in via igb0 - это вы белые адреса с ВНУТРЕННЕЙ сети на внутренний интерфейс пропускаете?? :)
to 192.168.0.0/24 - вы понимаете вообще что тут никогда ничего кроме вашего серого адреса шлюза не будет в принципе? in via igb0 - это входящие ИЗ СЕТИ на вашу внутреннюю карточку.
тут дестинейшен никакой кроме вашего внутреннего адреса шлюза и белых инет адресов для натящихся пакетиков не будет в принципе. если будет - значит либо вас ломают, либо вы что-то делаете неправильно.В общем возьмите готовый конфиг, тут на форуме их дофига примеров было.
Если Вы, тем не менее, не воспримете мой совет, вам следует сделать следующее:
1) не экспериментируйте на рабочем шлюзе.2) создайте три виртуальных машины на каком нибудь офисном компьютере:
виртуальная машина "интернет"
виртуальная машина "шлюз в интернет"
виртуальная машина "внутренняя сеть"3) воспроизведите настройку файрвола на виртуальной машине "шлюз в интернет"
4) на ВСЕ правила файрвола повесьте логирование.
5) пытайтесь установить соединение с "внутренняя сеть" к "интернет", и смотрите как проходят пакеты через файрвол.
6) через некоторое время вы поймете как работают ip-сети :)
И сможете сами создать пример конфига ipwf, которых тут на форуме уже дофига работающих ...