Настройка правил ipfw

FreeBSD, NetBSD, OpenBSD, DragonFly и т. д.

Модератор: arachnid

vitaliy2007
Сообщения: 14

Настройка правил ipfw

Сообщение vitaliy2007 »

Доброе утро. У меня проблема с настройкой firewall.И так начнем по порядку:
У меня есть машина c FreeBSD 6.2. она выходит через ADSL модем в инет интерфейс tun0. конфигурационный файл такой:
/etc/ppp/ppp.conf
default:
set log Phase Chat LCP IPCP CCP tun command
ident user-ppp VERSION (built COMPILATIONDATE)

set device PPPoE:rl0


set speed sync
set timeout 180 # 3 minute idle timer (the default)
enable dns # request DNS info (for resolv.conf)
set log Phase tun command
set mru 1500
set mtu 1500
set ctsrts off
set dial
set login

isp:

set authname NBgPKYaW
set authkey qaJ6tKRi2t

set ifaddr 10.0.0.1/0 10.0.0.2/0 255.255.255.0 0.0.0.0
add default HISADDR # Add a (sticky) default route

Эту тачку я назначил proxy для остальных машин в локальной сети (локалка 193.125.119.0/24 хотя маска 255.255.255.128)
стоит squid, он разруливает весь инет (интернет на локальных машинах работает, а пинги на тачки в инете типа ping www.yanedx.ru не идут, а на внешний интерфейс (ip) моего модема пинги доходят).
Вот правила firewall:
/etc/rc.firewall.local

#!/bin/sh
ipfw='/sbin/ipfw'
bkk_net='193.125.119.0/24'
sbyt_net='192.168.50.0/24'
real_net='62.183.83.0/29'
priv_net='192.168.0.0/16'
any='any'

bkk_pref='193.125.119'
sbyt_pref='192.168.50'
real_pref='62.183.83'
priv_pref='192.168'

ifout='tun0'
ifoutp='rl0'
ifbkk='rl1'
ifsbyt='rl2'

proxy='me 3128'

kabene='62.183.83.164 25,110'


${ipfw} -q flush

${ipfw} add 1000 allow ip from any to any via lo0
${ipfw} add 1050 deny ip from any to 127.0.0.0/8
${ipfw} add 1100 deny ip from 127.0.0.0/8 to any



${ipfw} add 1150 deny icmp from any to any in icmptype 5,9,13,14,15,16,17
${ipfw} add 1200 deny icmp from any to any frag

${ipfw} add 1204 deny ip from any to ${priv_net} in via ${ifout}
${ipfw} add 1206 deny ip from any to ${bkk_net} in via ${ifout}


#Запрет хождения пакетов между приватными подсетями
${ipfw} add 1224 deny ip from ${priv_net} to ${bkk_net}
${ipfw} add 1232 deny ip from ${bkk_net} to ${priv_net}


#Защита от подмены приватных ip снаружи
${ipfw} add 1300 deny ip from ${priv_net} to any in via ${ifout}
${ipfw} add 1350 deny ip from ${priv_net} to any in via ${ifreal}


#############################################################################
# #
# RULES NAT #
#############################################################################

#
${ipfw} add 1425 divert natd ip from any to me in via rl0
${ipfw} add 1430 divert natd ip from ${priv_net} to any out via rl0

${ipfw} add 1433 divert natd ip from ${bkk_net} to any out via rl0


#${ipfw} add 1442 count ip from ${any} to ${bkk_pref}.74 in via tun0
#${ipfw} add 1443 count ip from me 3128 to ${bkk_pref}.74 out via rl1

# IL FAUT APRES NATD
${ipfw} add 1444 allow ip from any to ${priv_net} in via tun0
${ipfw} add 1445 allow ip from any to ${priv_net} in via rl0

#${ipfw} add 1446 allow tcp from not me to ${bkk_pref}.13 25,110
#${ipfw} add 1446 allow tcp from ${bkk_pref}.13 25,110 to not me
#${ipfw} add 1447 allow ip from ${bkk_pref}.13 to not me keep-state

${ipfw} add 1452 allow ip from ${real_pref}.164 to not me in via tun0
${ipfw} add 1453 allow ip from not me to ${real_pref}.164 out via tun0
${ipfw} add 1454 allow ip from ${real_pref}.164 to not me out via rl0
${ipfw} add 1455 allow ip from not me to ${real_pref}.164 in via rl0

${ipfw} add 1550 check-state
${ipfw} add 1600 allow tcp from me to any keep-state
${ipfw} add 1700 allow udp from me to any keep-state
${ipfw} add 1800 allow icmp from any to any

####################################
# NET #
####################################

#Впускаем траффик после NAT
${ipfw} add 1820 allow ip from any to ${bkk_net} out via rl1
${ipfw} add 1822 allow ip from any to ${sbyt_net} out via rl2

#UDP 53
${ipfw} add 1900 allow udp from ${bkk_pref}.108 to any domain in via rl1

# 1C <-> TCP SNTP NTP2.USNO.NAVY.MIL
${ipfw} add 1910 allow udp from ${bkk_pref}.108 to 192.5.41.209 ntp in via rl1
Говорят что проблема вы nat, но я как понял и настроил redirect c tun0 на rl0
это описанно у меня в файле
/etc/rc.conf
hostname="gw.kabene.ru"
ifconfig_rl0="inet 192.168.1.2 netmask 255.255.255.0"
ifconfig_rl1="inet 193.125.119.126 netmask 255.255.255.128"
ifconfig_rl2="inet 192.168.50.3 netmask 255.255.255.0"

gateway_enable="YES"
firewall_enable="YES"
firewall_script="/etc/rc.firewall.local"


natd_enable="YES"
natd_interface="tun0"
natd_flags="-redirect_address 192.168.1.2 62.183.83.164"


linux_enable="YES"
sshd_enable="YES"
usbd_enable="YES"


ppp_enable="YES"
ppp_mode="ddial"
ppp_nat="NO"
ppp_profile="isp"

mousechar_start="3"
font8x8="cp866-8x8"
font8x14="cp866-8x14"
font8x16="cp866b-8x16"
scrmap="koi8-r2cp866"
keymap="ru.koi8-r"
Вот такие параметры. Кто что подскажет?
Заранее благодврю.
Спасибо сказали:
Аватара пользователя
-Dolphin-
Сообщения: 131
Статус: генерал

Re: Настройка правил ipfw

Сообщение -Dolphin- »

Друк ты бы пароли не выкладывал в не шифрованном виде(или на что-то другое заменял) на форум, не секурно как то ;)
Счастливый обладатель трусов с пингвином. Линуксцентр отдыхает. Китайская промышленность заботиться о нас...
Спасибо сказали:
vitaliy2007
Сообщения: 14

Re: Настройка правил ipfw

Сообщение vitaliy2007 »

А с чего ты взял что это настоящие??? ;)

Рашение проблемы вот в чем состоит,
1. Маршрутизация
2. настройка DNS сервера
Это все нужно сделать на фришке, люди помогите с документацией по настройке, а то мануал что то не понятен.
Спасибо сказали:
Jay
Сообщения: 57
ОС: FreeBSD, Kubuntu Linux

Re: Настройка правил ipfw

Сообщение Jay »

Вот что я вижу из вашего поста:
- у вас есть ADSL-подключение с PPPoE
- у вас есть комп с FreeBSD 6.2, на нем настроен ppp, squid и ipfw с natd.
- у людей в локалке интернет через проксю (squid) работает
- у людей в локалке не ходит icmp в интернет (или обратно)
- кто-то считает, что у вас проблема в NAT
- вы просите кого-нибудь что-нибудь вам подсказать

Где здесь вопрос, на который надо ответить? :)

Второй пост внес новые положения в список:
- решение проблемы состоит в маршрутизации и настройке DNS-сервера

Но описания самой проблемы я так и не увидел :))
Что не работает-то? Или что-то сделать надо?
Может быть нужно, чтобы клиенты могли пинговать хосты в интернете? :)
FreeBSD 6.2-REL, Kubuntu 6.06
pdaXrom r198 на Sharp Zaurus C1000
Спасибо сказали:
vitaliy2007
Сообщения: 14

Re: Настройка правил ipfw

Сообщение vitaliy2007 »

Да и это тоже, а подсказать как будет правильно написать правила хождения в интернет пользователей через это все, и мне нужно настроить правильно DNS.У меня из за этого не работает почтовый сервак в локальной сети.

Только проблема я не знаю как это все решить, и еще у меня dns зоны прописаны у провайдера, если я у себя их напишу то сервер dns будет работать?

* Сервера имен ***
ns1.kbrnet.ru (217.106.192.1 )
ns.kbrnet.ru

*** Ответ серверов имен ***

---------- информация DNS ns1.kbrnet.ru (217.106.192.1) ----------
kabene.ru
origin = ns.kbrnet.ru
mail addr = root.ns.kbr.net.ru
serial = 2006040501
refresh = 28800 (8H)
retry = 7200 (2H)
expire = 3600000 (5w6d16h)
minimum ttl = 86400 (1D)
kabene.ru nameserver = ns.kbrnet.ru
kabene.ru nameserver = ns1.kbrnet.ru
kabene.ru preference = 10, mail exchanger = mail.kabene.ru
ns.kbrnet.ru internet address = 213.59.120.130
ns1.kbrnet.ru internet address = 217.106.192.1
mail.kabene.ru internet address = 62.183.83.164

---------- информация DNS ns1.kbrnet.ru (217.106.192.1) ----------

---------- информация DNS ns.kbrnet.ru (213.59.120.130) ----------
kabene.ru
origin = ns.kbrnet.ru
mail addr = root.ns.kbr.net.ru
serial = 2006040501
refresh = 28800 (8H)
retry = 7200 (2H)
expire = 3600000 (5w6d16h)
minimum ttl = 86400 (1D)
kabene.ru nameserver = ns.kbrnet.ru
kabene.ru nameserver = ns1.kbrnet.ru
kabene.ru preference = 10, mail exchanger = mail.kabene.ru
ns.kbrnet.ru internet address = 213.59.120.130
ns1.kbrnet.ru internet address = 217.106.192.1
mail.kabene.ru internet address = 62.183.83.164
Спасибо сказали:
Jay
Сообщения: 57
ОС: FreeBSD, Kubuntu Linux

Re: Настройка правил ipfw

Сообщение Jay »

Грамотно заданный вопрос - это половина ответа.. Это я не вам :)

Давайте я расскажу вам, что вы хотите сделать (мое видение вашей проблемы). Я, типа, телепат со стажем..

Во-первых, вы хотите, чтобы пользователи из локальной сети могли ходить в интернет. Возможно, что некоторые даже без прокси. И возможно, обращаться к сервисам, которые не проксируются сквидом. То есть, кроме установки прокси на шлюз, надо еще настроить NAT. А чтобы было не так просто, у вас, кроме локалки 192.168.50.0/24, есть еще две реальные сетки (62.183.83.0/29 и 193.125.119.0/24), которые надо куда-то роутить. Но куда, вы не говорите.

Во-вторых, вы хотите, чтобы у вас в локалке работал smtp-сервер для домена kabene.ru. При этом почту, приходящую из интернет на домен kabene.ru, обрабатывает smtp-сервер провайдера.. Дайте-ка подумать, как свести две этих формулировки в одну.. Наверное, исходящую из ваших сетей почту надо складывать на локальный smtp-сервер. А он уже дальше будет передавать ее smtp-серверу провайдера. А как же быть с почтой, которая принимается извне smtp-сервером провайдера? Может ее надо забирать по pop3/imap с группового почтового ящика и раскладывать по ящикам на локальном сервере? Наверное, так и есть :)

Можно ли мне теперь пойти взять с полки пирожок, за то, как я правильно прочитал ваши мысли? :)
FreeBSD 6.2-REL, Kubuntu 6.06
pdaXrom r198 на Sharp Zaurus C1000
Спасибо сказали:
Jay
Сообщения: 57
ОС: FreeBSD, Kubuntu Linux

Re: Настройка правил ipfw

Сообщение Jay »

Блин, как же я мог так ошибиться! IP 62.183.83.164, наверняка, выдается вам провайдером при подключении по ADSL. И smtp-сервер провайдера здесь не при чем. Вся входящая почта на домен kabene.ru сразу передается на smtp-сервер с ip 62.183.83.164.

Вот! Теперь я прав на все 80% :)
FreeBSD 6.2-REL, Kubuntu 6.06
pdaXrom r198 на Sharp Zaurus C1000
Спасибо сказали:
vitaliy2007
Сообщения: 14

Re: Настройка правил ipfw

Сообщение vitaliy2007 »

Jay писал(а):
12.07.2007 01:12
Вот! Теперь я прав на все 80% :)

:clap: Привет!
Да считай на все сто прав :) У меня складываеться впечатление что за 7 дней безвылазной возни с сервером у меня не осталось правильных мыслей, что бы изложить их ясно для народа, но все же попробую.
Мне осталось только настроить исходящую почту на внешние серверы (в инете), схема такая

Почтовый сервер
193.125.119.13 (это локальная сеть) -------->proxy 62.183.83.164 (squid+ipfw) ------->(ADSL)------>{Интернет}


На почтовый сервер приходит почта, внутри сети почта так же работает, но не уходит
правило ipfw add allow tcp from 193.125.119.13 to any 25,110 in via rl1 (интерфейс накотором сидит сетка 193.125.119.0.24)
Вопрос №1: какое правило нужно прописать, что бы почта ходила в инет?
Вопрос №2: Почему когда я коментирую правила c divert natd интернет в локальной сети работатет?
Спасибо сказали:
mor
Сообщения: 4
ОС: FreeBSD 6.4

Re: Настройка правил ipfw

Сообщение mor »

vita писал(а):
12.07.2007 08:58
Вопрос №1: какое правило нужно прописать, что бы почта ходила в инет?


:), а может это правило у тебя стоит после правила, запрещающего отправку почты?
Спасибо сказали:
vitaliy2007
Сообщения: 14

Re: Настройка правил ipfw

Сообщение vitaliy2007 »

mor писал(а):
12.07.2007 13:29
vita писал(а):
12.07.2007 08:58
Вопрос №1: какое правило нужно прописать, что бы почта ходила в инет?


:), а может это правило у тебя стоит после правила, запрещающего отправку почты?

Слушай, наверху написанны правила ткни пожалуста пальцем куда нужно написать правило и как оно выглядит?
Спасибо сказали:
mor
Сообщения: 4
ОС: FreeBSD 6.4

Re: Настройка правил ipfw

Сообщение mor »

vita писал(а):
12.07.2007 13:34
mor писал(а):
12.07.2007 13:29
vita писал(а):
12.07.2007 08:58
Вопрос №1: какое правило нужно прописать, что бы почта ходила в инет?


:), а может это правило у тебя стоит после правила, запрещающего отправку почты?

Слушай, наверху написанны правила ткни пожалуста пальцем куда нужно написать правило и как оно выглядит?


Отдельного правила на мыльник не вижу :)

Если просто вбить ipfw add allow tcp from 193.125.119.13 to any 25,110 in via rl1, то оно тебе его добавит после всех твоих правил, пробуй добавить его выше, типа ipfw add 500 allow tcp from 193.125.119.13 to any 25,110 in via rl1.
Спасибо сказали:
vitaliy2007
Сообщения: 14

Re: Настройка правил ipfw

Сообщение vitaliy2007 »

mor писал(а):
12.07.2007 13:42
vita писал(а):
12.07.2007 13:34
mor писал(а):
12.07.2007 13:29
vita писал(а):
12.07.2007 08:58
Вопрос №1: какое правило нужно прописать, что бы почта ходила в инет?


:), а может это правило у тебя стоит после правила, запрещающего отправку почты?

Слушай, наверху написанны правила ткни пожалуста пальцем куда нужно написать правило и как оно выглядит?


Отдельного правила на мыльник не вижу :)

Если просто вбить ipfw add allow tcp from 193.125.119.13 to any 25,110 in via rl1, то оно тебе его добавит после всех твоих правил, пробуй добавить его выше, типа ipfw add 500 allow tcp from 193.125.119.13 to any 25,110 in via rl1.

Нет не уходит, может там с дивертом, или на самом сервере mail подправить нужно?
Спасибо сказали: