latoshin

Junior Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Цитата: где правило, которое разрешает исходящий трафик с сервера через внешний интерфейс ? З.Ы. представь себя пакетом | Вот сейчас включен ядерный нат и вот какие правила в файерволе Код: # ipfw show 00100 44602 6315246 allow ip from any to any via lo0 00200 0 0 deny ip from any to 127.0.0.0/8 00300 0 0 deny ip from 127.0.0.0/8 to any 01040 10536696 4972401334 allow ip from any to any via re0 01050 11 3439 deny ip from any to 192.168.0.0/16 in recv rl0 01060 483 32844 deny ip from 192.168.0.0/16 to any in recv rl0 01070 0 0 deny ip from any to 172.16.0.0/12 in recv rl0 01080 0 0 deny ip from 172.16.0.0/12 to any in recv rl0 01090 53988 5696082 deny ip from any to 10.0.0.0/8 in recv rl0 10100 1555 250521 deny ip from 10.0.0.0/8 to any in recv rl0 10110 8071 647564 deny ip from any to 169.254.0.0/16 in recv rl0 10125 355291 37167170 fwd 127.0.0.1,3128 tcp from 192.168.0.0/24 to any dst-port 80 via rl0 10130 4 204 allow tcp from any to me dst-port 1723 setup 10150 480593 48282691 allow tcp from any to any via ng* 10160 6618 1886743 allow udp from any to any via ng* 10170 714 60864 allow tcp from any to me dst-port 14441 in via rl0 10180 17 742 allow icmp from any to me icmptypes 8 in recv rl0 10190 1573 80576 allow tcp from any to me dst-port 25 setup 10210 15 772 allow tcp from any to me dst-port 80 setup 10530 10816205 5020467447 nat 1 ip from any to any via rl0 65534 105 3376 deny ip from any to any 65535 0 0 allow ip from any to any | Сейчас все работает.. инет везде есть... ходят через сквид... и где тут правило которое разрешает исходящий трафик с сервера через внешний интерфейс ? Добавлено: Немного изменил Сейчас в /etc/rc.conf Код: ifconfig_re0="inet 192.168.0.1 netmask 255.255.255.0" ifconfig rl0 ether 00:00:00:00:00:00 ifconfig_rl0="inet 193.x.x.x netmask 255.255.255.192" defaultrouter="193.x.x.x" gateway_enable="YES" ipnat_enable="yes" ipnat_rules="/etc/ipnat.rules" firewall_enable="YES" firewall_script="/etc/ipfw.script" | Файл /etc/ipfw.script с правами 755 Код: #!/bin/sh # для начала вводим переменные - для нашего же удобства, чтобы не # вводить по сотне раз одно и то же, а потом искать почему не работает, # и в итоге выяснять, что ошибся IP адресом в одном из правил FwCMD="/sbin/ipfw" # собственно где лежит бинарник ipfw LanOut="rl0" # внешний интерфейс LanIn="re0" # внутренний интерфейс IpOut="193.х.х.х" # внешний IP адрес машины IpIn="192.168.0.1" # внутренний IP машины NetMask="24" # маска сети (если она разная для внешней # и внутренней сети - придётся вводить ещё # одну переменную, но самое забавное, что # можно и забить - оставить 24 - всё будет # работать, по крайней мере я пробовал - # работаало на 4-х машинах, в разных сетях, # с разными масками - настоящими разными! но - # это неправильно.) NetIn="192.168.0.0" # Внутренняя сеть # Сбрасываем все правила: ${FwCMD} -f flush # Проверяем - соответствует ли пакет динамическим правилам: ${FwCMD} add check-state # Разрешаем весь траффик по внутреннему интерфейсу (петле) ${FwCMD} add allow ip from any to any via lo0 # рубим попытки lo0 куда-то лезть и откуда-то лезть на lo0 ${FwCMD} add deny ip from any to 127.0.0.0/8 ${FwCMD} add deny 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 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} # рубим траффик к частным сетям через внешний интерфейс # заметтьте - эти правила отличаются от тех что были выше! ${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} # разрешаем некоторые типы 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} # Открываем порт 1723 для MPD5 ${FwCMD} add allow tcp from any to ${IpOut} 1723 via ${LanOut} # разрешаем весь 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 | Файл /etc/ipnat.rules Код: map rl0 192.168.0.0/24 -> 0.0.0.0/32 proxy port ftp ftp/tcp map rl0 192.168.0.0/24 -> 0.0.0.0/32 rdr re0 0/0 port 80 -> 127.0.0.1 port 3128 | Не работает!!!! Хотя есть правила ${FwCMD} add allow tcp from any to any established и ${FwCMD} add allow ip from ${IpOut} to any out xmit ${LanOut} Код: # ipfw list 00100 check-state 00200 allow ip from any to any via lo0 00300 deny ip from any to 127.0.0.0/8 00400 deny ip from 127.0.0.0/8 to any 00500 deny ip from any to 10.0.0.0/8 in via rl0 00600 deny ip from any to 172.16.0.0/12 in via rl0 00700 deny ip from any to 192.168.0.0/16 in via rl0 00800 deny ip from any to 0.0.0.0/8 in via rl0 00900 deny ip from any to 169.254.0.0/16 in via rl0 01000 deny ip from any to 240.0.0.0/4 in via rl0 01100 deny icmp from any to any frag 01200 deny log logamount 1000 icmp from any to 255.255.255.255 in via rl0 01300 deny log logamount 1000 icmp from any to 255.255.255.255 out via rl0 01400 deny ip from 10.0.0.0/8 to any out via rl0 01500 deny ip from 172.16.0.0/12 to any out via rl0 01600 deny ip from 192.168.0.0/16 to any out via rl0 01700 deny ip from 0.0.0.0/8 to any out via rl0 01800 deny ip from 169.254.0.0/16 to any out via rl0 01900 deny ip from 224.0.0.0/4 to any out via rl0 02000 deny ip from 240.0.0.0/4 to any out via rl0 02100 allow tcp from any to any established 02200 allow ip from 193.x.x.x to any out xmit rl0 02300 allow icmp from any to any icmptypes 0,8,11 02400 allow tcp from any to 193.x.x.x dst-port 80 via rl0 02500 allow tcp from any to 193.x.x.x dst-port 14441 via rl0 02600 allow tcp from any to 193.x.x.x dst-port 1723 via rl0 02700 allow tcp from any to any via re0 02800 allow udp from any to any via re0 02900 allow icmp from any to any via re0 03000 deny ip from any to any 65535 allow ip from any to any |
|