ipfw, чето не получается с фаером слегка

Проблемы установки, настройки и работы Правильной Операционной Системы

Модератор: terminus

Правила форума
Убедительная просьба юзать теги [cоde] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
smash_necros
мл. сержант
Сообщения: 138
Зарегистрирован: 2007-06-20 8:39:38
Контактная информация:

ipfw, чето не получается с фаером слегка

Непрочитанное сообщение smash_necros » 2008-12-12 7:17:12

собсно фря 7.0, сетка офиса и выход в инет через адсл модем.
задача: всех гнать через проксю, избранным оставить аську и почтовых клиентов.
накрапал такой вот конфиг для ipfw, только вот после его применения инет не пашет, с самого сервака пингануться не могу. плиз хелп

Код: Выделить всё

#!/bin/sh
FwCMD="/sbin/ipfw add"          # binarnik ipfw
LanOut="vr0"                    # modem lan
LanIn="vr2"                     # office lan
IpOut="192.168.1.21"            # na modem
IpIn="192.168.210.21"           # na office lan
NetIn="192.168.210.0/24"        # setka offisa
Pochta=" 192.168.210.199/32, 192.168.210.26/32, 192.168.210.225/32 "
ICQ=" 192.169.210.8/32"
skip="skipto 10000 "
/sbin/ipfw -q -f flush
#####################################################################
###Begin IPFW rules
#####################################################################
${FwCMD} 100 allow ip from any to any via lo0
#razreshem trafic office_lan na vnutrennem interfeice
${FwCMD} 150 allow ip from any to any via ${LanIn}
${FwCMD} 200 divert natd ip from any to any in  via ${LanOut}
${FwCMD} 300 check-state
# rubim autoconfig ip
${FwCMD} 400 deny ip from any to 169.254.0.0/16 in via ${LanOut}
#rubim multicast
${FwCMD} 500 deny ip from any to 240.0.0.0/4 in via ${LanOut}
${FwCMD} 600 deny ip from 224.0.0.0/4 to any out via ${LanOut}
${FwCMD} 700 deny ip from 240.0.0.0/4 to any out via ${LanOut}
#rubim fragmetirovannie icmp paketi
#{FwCMD} 800 deny icmp from any to any frag
# rubim shirokoveschatelnie icmp na vheshnem interfeice
${FwCMD} 900 deny log icmp from any to 255.255.255.255 in via ${LanOut}
${FwCMD} 1000 deny log icmp from any to 255.255.255.255 out via ${LanOut}
# Allow out FreeBSD (make install & CVSUP) functions
# Basically give user root "GOD" privileges.
${FwCMD} 1050 $skip log tcp from me to any out via ${LanOut} setup keep-state uid root
#razreshaem serveru v inet
${FwCMD} 1100 allow log ip from me to any out via ${LanOut} setup keep-state
#zapreschaem dostup k mysql iz vneshki
${FwCMD} 1200 deny ip from any to me 3306 via ${LanOut}
#zapreschaem dostup k squid iz vneshki
${FwCMD} 1300 deny ip from any to me 3128 via ${LanOut}
#zapreschaem dostup k apache iz vneshki
${FwCMD} 1400 deny ip from any to me 80 via ${LanOut}
#zapreschaem dostup k sshd iz vneshki
${FwCMD} 1500 deny ip from any to me 22 via ${LanOut}
#rubim  ${NetIn} na 80 port,chtobi ne hodili mimo proxy
${FwCMD} 1600 deny log ip from ${NetIn} to any 80 via ${LanOut}
#razreshaem  ${NetIn} na proxy
${FwCMD} 1700 allow ip from ${NetIn} to me 3128 via ${LanIn}
# Allow out send & get email function
${FwCMD} 1800 $skip log tcp from ${Pochta} to any 25 out via ${LanOut} setup keep-state
${FwCMD} 1850 $skip log tcp from ${Pochta} to any 110 out via ${LanOut} setup keep-state
#razreshem gruppe ICQ 5190 port
${FwCMD} 1900 $skip log tcp from ${ICQ} to any 5190  setup
# Allow out ping
${FwCMD} 2000 $skip log icmp from any to any out via ${LanOut} keep-state
#razreshaem DNS
${FwCMD} 2100 $skip log tcp from any to any 53 out via ${LanOut} setup keep-state
# rubim autoconfig ip
${FwCMD} 2500 deny ip from 169.254.0.0/16 to any out via ${LanOut}
# rubim multicast na vneshke
${FwCMD} 2600 deny ip from 224.0.0.0/4 to any out via ${LanOut}
${FwCMD} 2700 deny ip from 240.0.0.0/4 to any out via ${LanOut}
#razreshaem uge ustanovlennie tcp
${FwCMD} 3000 allow tcp from any to any established
# Allow out whois
${FwCMD} 3100 $skip tcp from any to any 43 out via ${LanOut} setup keep-state
# Allow ntp time server
${FwCMD} 3200 $skip udp from any to any 123 out via ${LanOut} keep-state
# Reject & Log all unauthorized incoming connections from the public Internet
${FwCMD} 3300 deny log all from any to any in via ${LanOut}
# Reject & Log all unauthorized out going connections to the public Internet
${FwCMD} 3400 deny log all from any to any out via ${LanOut}

# This is skipto location for outbound stateful rules
#${FwCMD} 10000 divert natd ip from ${NetIn} to ${IpOut} out via ${LanOut}
${FwCMD} 10000 divert natd ip from any to any out via ${LanOut}
${FwCMD} 10100 allow log ip from any to any
# Everything else is denied by default
# deny and log all packets that fell through to see what they are
${FwCMD} 20000 deny log all from any to any
#####################################################################
###End IPFW rules
#####################################################################


Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

Гость
проходил мимо

Re: ipfw, чето не получается с фаером слегка

Непрочитанное сообщение Гость » 2008-12-12 7:23:07

кто вас учил так диверты расставлять?
задача: всех гнать через проксю, избранным оставить аську и почтовых клиентов
это делаеться несколькими строчками фаервола

а у вас целое бородино а не фаервол
вы сами непонимаете что у вас с нем происходит
а хотите что бы другие разобрались

smash_necros
мл. сержант
Сообщения: 138
Зарегистрирован: 2007-06-20 8:39:38
Контактная информация:

Re: ipfw, чето не получается с фаером слегка

Непрочитанное сообщение smash_necros » 2008-12-12 7:38:17

диверты учил расставлять хэндбук
http://www.freebsd.org/doc/en_US.ISO885 ... -ipfw.html

Гость
проходил мимо

Re: ipfw, чето не получается с фаером слегка

Непрочитанное сообщение Гость » 2008-12-12 7:49:50

я неодобряю тот хендбук относительно диверта

посмотрите на дефолтовый в системе

smash_necros
мл. сержант
Сообщения: 138
Зарегистрирован: 2007-06-20 8:39:38
Контактная информация:

Re: ipfw, чето не получается с фаером слегка

Непрочитанное сообщение smash_necros » 2008-12-12 11:11:11

а я не дефолтовый пользую чтоли? )

paradox
проходил мимо
Сообщения: 11620
Зарегистрирован: 2008-02-21 18:15:41

Re: ipfw, чето не получается с фаером слегка

Непрочитанное сообщение paradox » 2008-12-12 11:48:09

наверное имелся ввиду тот что уже в системе rc.firewall

smash_necros
мл. сержант
Сообщения: 138
Зарегистрирован: 2007-06-20 8:39:38
Контактная информация:

Re: ipfw, чето не получается с фаером слегка

Непрочитанное сообщение smash_necros » 2008-12-13 21:09:26

хм, а сказать кто-нить может точнее де я ошибся?

Аватара пользователя
zevs5
рядовой
Сообщения: 21
Зарегистрирован: 2008-10-20 0:20:14
Откуда: Ставрополь
Контактная информация:

Re: ipfw, чето не получается с фаером слегка

Непрочитанное сообщение zevs5 » 2008-12-14 13:20:45

Ваш скрипт понять очень сложно, в первых строчках вы уже разрешаете всем доступ на внутреннем интерфейсе и следующей строкой разрешаете диверт на <нат>
Вопрос:
для чего нужен диверт на <нат> в 10000 правиле?

На прокси заворачивают до НАТА и не дивертом, а форвадингом (fwd).

Просмотрите через

Код: Выделить всё

ipfw show
Отрабатывает ли ваши правила

Код: Выделить всё

${FwCMD} 1050 $skip log tcp from me to any out via ${LanOut} setup keep-state uid root

${FwCMD} 10000 divert natd ip from any to any out via ${LanOut}
Сделать можно все, надо только знать как

Аватара пользователя
E-Wind
сержант
Сообщения: 155
Зарегистрирован: 2008-05-14 16:19:54
Откуда: Санкт-Петербург

Re: ipfw, чето не получается с фаером слегка

Непрочитанное сообщение E-Wind » 2008-12-14 16:42:08

Наверное надо начать с правильной структуры (э.. отступы, переносы и пр... ) для наглядности... и понимания, как работает...

Вариация на тему.... буду рад, если Знающие в этом топике покажут возможные недостатки / ошибки "вариации"... а так оно рабочее )

+
на 10000 нат нужен, чтобы поскипанные туда разрешенные пакеты уходя наружу через него пропускались... / маскарадились...

Код: Выделить всё


#!/bin/sh

ipfw -q -f flush

# table for sshit - rule 9400
ipfw -q -f table 1 flush

cmd="ipfw -q add"

skip="skipto 10000"

# External interface

exif="fxp0"
exip="XXX.XXX.XXX.XXX"
exnw="XXX.XXX.XXX.YYY/25"


# Internal interface

inif="em0"
inip="AAA.AAA.AAA.AAA"
innw="AAA.AAA.AAA.BBB/24"

# External DNS

ens1="ZZZ.ZZZ.ZZZ.ZZ1"
ens2="ZZZ.ZZZ.ZZZ.ZZ2"
ens3="ZZZ.ZZZ.ZZZ.ZZ3"

# Internal Servers and PC (full access)
# rules 280x, 881x

inp1="CCC.CCC.CCC.CCC"	# Baka PC

# Start ruleset

# ----------------------------------------------------------------------------
# LoopBack

$cmd 1000 allow ip from any to any via lo0

# ----------------------------------------------------------------------------
# Internal interface

# In

# .... [! allow from our net ] .... deny others
$cmd 2000 deny all from not $innw to any in via $inif

# Over services

# allow icmp ( +4,12 in some mans )    
$cmd 2100 allow icmp from $innw to any icmptypes 0,3,5,8,11 in via $inif

# allow over NAT some services (ssh.22, mail.25.110, whois.43, web.443, icq.5190)
$cmd 2200 allow tcp from $innw to not me 22,25,43,110,443,5190 in via $inif

# allow over SQUID (web.80)
$cmd 2210 fwd 127.0.0.1,3128 tcp from $innw to not me 80 in via $inif

# allow our www on exip outside over squid (!NOT ACCESS TO OUR WWW WITHOUT THIS RULE!)
$cmd 2211 fwd 127.0.0.1,3128 tcp from $innw to $exip 80 in via $inif

# read mans for this!
# allow passive ftp
# $cmd 2220 allow tcp from $innw to not me 20,21,49152-65535 in via $inif



# In services

# allow DNS resolving fwd
$cmd 2300 allow udp from $innw to $inip 53 in via $inif

# allow local net admin ssh
$cmd 2400 allow tcp from $innw to $inip 22 in via $inif

# www server 80, 443
$cmd 2500 allow tcp from $innw to $inip 80 in via $inif
# $cmd 2501 allow tcp from $innw to $inip 443 in via $inif

# samba
$cmd 2600 allow tcp from $innw to $inip 139,445 in via $inif
$cmd 2601 allow udp from $innw to $innw 137,138 in via $inif



# Over & In services... full )

# allow for some PC/Servers full access (? test)
$cmd 2800 allow tcp from $inp1 to any in via $inif



# deny other in
$cmd 2900 deny log all from any to any in via $inif



# Out

# .... [! allow to our net ] .... deny others
$cmd 3900 deny all from any to not $innw out via $inif


# ----------------------------------------------------------------------------
# Nat IN

$cmd 4000 divert natd ip from any to $exip in via $exif

# ----------------------------------------------------------------------------
# Check-state

$cmd 5000 check-state

# ----------------------------------------------------------------------------
# External interface

# Out

# NEXT SOME COMMENTS... later...

# $cmd 6000 deny all from any to 192.168.0.0/16 out via $exif
# $cmd 6001 deny all from any to 172.16.0.0/12 out via $exif
# $cmd 6002 deny all from any to 127.0.0.0/8 out via $exif
# $cmd 6003 deny all from any to 10.0.0.0/8 out via $exif
# $cmd 6004 deny all from any to 0.0.0.0/8 out via $exif
# $cmd 6005 deny all from any to 169.254.0.0/16 out via $exif
# $cmd 6006 deny all from any to 192.0.2.0/24 out via $exif
# $cmd 6007 deny all from any to 204.152.64.0/23 out via $exif
# $cmd 6008 deny all from any to 224.0.0.0/3 out via $exif
# $cmd 6009 deny all from any to 240.0.0.0/4 out via $exif

# allow icmp out (?sync with up localnet->in rule) (any [icmptypes 0,8,3,5,11] out   +4,12 in some mans )
$cmd 8000 $skip icmp from any to any out via $exif keep-state

# allow dns outside
$cmd 8100 $skip udp from any to $ens1 53 out via $exif setup keep-state
$cmd 8101 $skip udp from any to $ens2 53 out via $exif setup keep-state
$cmd 8102 $skip udp from any to $ens3 53 out via $exif setup keep-state

# allow http, https outside
$cmd 8200 $skip tcp from any to any 80 out via $exif setup keep-state
$cmd 8201 $skip tcp from any to any 443 out via $exif setup keep-state

# allow e-mail outside
$cmd 8300 $skip tcp from any to any 25 out via $exif setup keep-state
$cmd 8301 $skip tcp from any to any 110 out via $exif setup keep-state

# ssh
$cmd 8400 $skip tcp from any to any 22 out via $exif setup keep-state

# whois
$cmd 8500 $skip tcp from any to any 43 out via $exif setup keep-state

# icq
$cmd 8600 $skip tcp from any to any 5190 out via $exif setup keep-state

# passive ftp
# $cmd 8700 $skip tcp from any to any 20,21,49152-65535 out via $exif setup keep-state

# allow root outside )
$cmd 8800 $skip tcp from me to any out via $exif setup keep-state uid root

# allow for some PC/Servers full access
$cmd 8810 $skip tcp from $inp1 to any out via $exif setup keep-state

# Deny all other out
$cmd 8900 deny log all from any to any out via $exif 

# In

# Deny Lans
$cmd 9000 deny all from 192.168.0.0/16 to any in via $exif
$cmd 9001 deny all from 172.16.0.0/12 to any in via $exif
$cmd 9002 deny all from 127.0.0.0/8 to any in via $exif
$cmd 9003 deny all from 10.0.0.0/8 to any in via $exif
$cmd 9004 deny all from 0.0.0.0/8 to any in via $exif
$cmd 9005 deny all from 169.254.0.0/16 to any in via $exif
$cmd 9006 deny all from 192.0.2.0/24 to any in via $exif
$cmd 9007 deny all from 204.152.64.0/23 to any in via $exif
$cmd 9008 deny all from 224.0.0.0/3 to any in via $exif
$cmd 9009 deny all from 240.0.0.0/4 to any in via $exif

# Deny ident, netbios, ms ns
$cmd 9100 deny tcp from any to any 113,137,138,139,81 in via $exif

# deny any late arriving packets
$cmd 9200 deny all from any to any frag in via $exif

# deny ack packets that did not match the dynamic rule table
$cmd 9300 deny tcp from any to any established in via $exif

# allow apache, mail, ssh outside later !change <port>! 9500 - 9800
# $cmd allow tcp from any to me <PORT> in via $exif limit src-addr 2

# sshit
$cmd 9400 deny ip from "table(1)" to any in via $exif

# allow http outside
$cmd 9500 allow tcp from any to $exip 80 in via $exif limit src-addr 2

# allow ssh outside
$cmd 9600 allow tcp from any to $exip 22 in via $exif limit src-addr 2


# deny all other in
$cmd 9900 deny log all from any to any in via $exif


# ----------------------------------------------------------------------------
# NAT

# Skipto place here

$cmd 10000 divert natd ip from $innw to any out via $exif

$cmd 10100 allow ip from any to any

$cmd 30000 deny log all from any to any



Гость
проходил мимо

Re: ipfw, чето не получается с фаером слегка

Непрочитанное сообщение Гость » 2008-12-14 18:55:38

off
таких накрученых фаерволов нет не на одном сервере на просторах интернета
токо на домашних сетках и приватных оффисах

задумайтесь

warzoni
сержант
Сообщения: 186
Зарегистрирован: 2008-07-04 17:17:59
Откуда: Ukraine,Kiev
Контактная информация:

Re: ipfw, чето не получается с фаером слегка

Непрочитанное сообщение warzoni » 2008-12-15 10:10:43

собсно фря 7.0, сетка офиса и выход в инет через адсл модем.
задача: всех гнать через проксю, избранным оставить аську и почтовых клиентов.
накрапал такой вот конфиг для ipfw, только вот после его применения инет не пашет, с самого сервака пингануться не могу. плиз хелп

скажите зачем вам сквид и зачем такие жоские ограничение ? раз это офес ,то лучьше дайте доступ ковсему,и дальше просто ограничение постройте на полосе пропускание+приоретет по важности , типа директору 90% канал менеджерам 50% канала остальным 25% и нечего мудрить так жестоко ненадо.

Аватара пользователя
zevs5
рядовой
Сообщения: 21
Зарегистрирован: 2008-10-20 0:20:14
Откуда: Ставрополь
Контактная информация:

Re: ipfw, чето не получается с фаером слегка

Непрочитанное сообщение zevs5 » 2008-12-15 10:21:47

Ну скажем Свид немножко экономит трафик.
И человеку наверное поставлена задача запретить определенному контенгенту доступ в инет.
Сделать можно все, надо только знать как

smash_necros
мл. сержант
Сообщения: 138
Зарегистрирован: 2007-06-20 8:39:38
Контактная информация:

Re: ipfw, чето не получается с фаером слегка

Непрочитанное сообщение smash_necros » 2008-12-15 10:35:08

ахха, + к сквиду прикручен самс, который считает трафик. лан, буду смотреть ...

warzoni
сержант
Сообщения: 186
Зарегистрирован: 2008-07-04 17:17:59
Откуда: Ukraine,Kiev
Контактная информация:

Re: ipfw, чето не получается с фаером слегка

Непрочитанное сообщение warzoni » 2008-12-15 10:49:24

smash_necros писал(а):ахха, + к сквиду прикручен самс, который считает трафик. лан, буду смотреть ...

ааа )) ыыы можно сказать ЛОЛ ))

трафик ух серьёзно stargazer 5 минут ставитца,аа трафик экономия у вас шо там фирма из 100 кампов шо вы там экономить хотите адсл он анлимный у вас ????

раз всё так и типа лан я разберусь,тогда разберайтесь сами,либо обресуйте топологию сети раскажите разумно цель вашего сервера и вам дам консультацию ,думаю и другие тоже,задачу ставит админ по построению сервера а не офис .админу виднее как зделать лучьше и каму что довать .