Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » В помощь системному администратору » FreeBSD + ipfw + port mapping

Модерирует : lynx, Crash_Master, dg, emx, ShriEkeR

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3

Открыть новую тему     Написать ответ в эту тему

13th_apostle

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
SSV_RA
да, заработало =) спасибо за помощь. вот в таком виде:

Код:
freebsd# ipfw show
00045     33     1937 divert 8668 log tcp from 192.168.0.11 25 to any out via fxp1
00055     28     1156 divert 8668 log tcp from any to 10.0.2.35 dst-port 25 in via fxp1
00065    944    77772 allow log ip from any to any via fxp0
00070 118313 14415642 allow log ip from any to any
00100    796    97554 allow log ip from me to 192.168.0.0/24
00101    850    85316 allow log ip from 192.168.0.0/24 to me
65535   4535   609687 deny ip from any to any

 
- принимаются  на обработку natd только пакеты, пришедшие к и отправленные почтовому(ым) серверу(ом) - чего я и добивался.

Всего записей: 45 | Зарегистр. 07-04-2005 | Отправлено: 13:41 10-11-2006 | Исправлено: 13th_apostle, 13:42 10-11-2006
SSV_RA



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Ну и хорошо, теперь можешь выкинуть из фаера протоколирование.
А предлагал все заворачивать на нат для того, чтобы проверить вообще работает оно или нет.

Всего записей: 77 | Зарегистр. 21-02-2005 | Отправлено: 14:06 10-11-2006
13th_apostle

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
SSV_RA

Цитата:
А предлагал все заворачивать на нат для того, чтобы проверить вообще работает оно или нет.

да я понимаю =) спасибо за помощь - помогло разобраться, как работает связка ipfw+natd.

Всего записей: 45 | Зарегистр. 07-04-2005 | Отправлено: 14:16 10-11-2006
DIMBOSS

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
А в чем принципиальная разница между правилом fwd и divert в ipfw. Мне надо настроить Kerio VPN, порт 4090. Роутер FreeBSD+ipfw+natd: xl0 - внешний (ххх.ххх.ххх.х)
fxp1 - внутренний 192.168.0.1. За freebsd стоят: почтарь МДемон+прокси+биллинг 192.168.0.99 и Kerio VPN сервер 192.168.0.4.
С почтарем и пробросом трафика разобрался просто:
natd.conf>
 
same_ports yes
use_sockets yes
interface xl0
redirect_port tcp 192.168.0.99:25 25
redirect_address 192.168.0.99 xxx.xxx.xxx.x
 
причем в правила ipfw ничего, аля divert не добавлял. И все работает. ОСь FreeBSD 6.1
добавил лишь  
add allow tcp from any 25 to any
add allow tcp from any to any 25
 
Сейчас мне надо настроить VPN - для этого нужно настроить портмапинг, чтобы все запросы приходящие извне на порт 4090 перебрасывались вот сюда - 192.168.0.4:4090
Соответственно я вписываю в natd.conf вот такие строки
redirect_port tcp 192.168.0.4:4090 4090
redirect_port udp 192.168.0.4:4090 4090
 
А в rc.firewall вписываю следующее
add allow tcp from any to 192.168.0.4 4090
add allow tcp from 192.168.0.4 4090 to any
add allow udp from any to 192.168.0.4 4090
add allow udp from 192.168.0.4 4090 to any
 
В принципе должно работать, но меня терзают смутные сомнения.
Нужно ли вписывать в rc.firewall следующее
add divert 4090 tcp,udp from 192.168.0.4 to any out via xl0  
add divert 4090 tcp,udp from any to 192.168.0.4 in via xl0  
 
И можно ли настроить портмапинг с помощью команды fwd. Может есть у кого готовые решения? Знаю то, что, чтобы использовать команду fwd нужно пересобрать ядро с опциями options IPFIREWALL_FORWARD и options IPFIREWALL_FORWARD_EXTENDED - а некогда. И правильно ли делать портмапинг при помощи команды divert? И можно ли вообще обойтись одним ipfw не прикручивая natd.conf???
 
Добавлено:
Ну что, так никто и не смог найти ответ на мои вопросы и тема убежала на вторую страницу... (((

Всего записей: 23 | Зарегистр. 26-04-2004 | Отправлено: 12:14 14-12-2006
podlom

Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Может быть кто-то подскажет мне как сделать такую штуку: входящие пакеты на внешний (инетовский) интерфейс на порт 3389 мэппить (прямой переадрес) на машину в корпоративной сети, на тот же порт.
Вот настройки:
/etc/rc.conf

Код:
 
...
firewall_enable="YES"
firewall_script="/etc/fw.rules.new"
firewall_quiet="NO"
firewall_logging="YES"
 
natd_enable="YES"
natd_interface="rl1"
natd_flags="-f /etc/natd.conf"
...
 

 
/etc/fw.rules.new

Код:
 
...
fwcmd="/sbin/ipfw"
$fwcmd -f flush
ext_if=rl1
int_if=rl0
 
$fwcmd add deny ip from 192.168.0.0/16 to me in via $ext_if
$fwcmd add deny ip from 172.16.0.0/12 to me in via $ext_if
$fwcmd add deny ip from table\(1\) to any
$fwcmd add allow all from any to any via lo0
$fwcmd add deny ip from any to 127.0.0.1/8
$fwcmd add deny ip from 127.0.0.1/8 to any
$fwcmd add allow ip from 192.168.1.0/24 to any via $int_if
$fwcmd add allow ip from any to 192.168.1.0/24 via $int_if
$fwcmd add divert natd ip from any to me 3389 via $ext_if
$fwcmd add divert 8668 ip from any to any via $ext_if
...
 

и наконец файл
/etc/natd.conf

Код:
 
same_ports yes
log yes
log_denied yes
use_sockets yes
 
unregistered_only yes
redirect_port tcp 192.168.1.2:3389 3389
 

 
Что я неправильно настроил или недонастроил?

Всего записей: 34 | Зарегистр. 10-10-2005 | Отправлено: 15:43 19-12-2007
MrTroll



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Нужна помощь, я во фряхе полный ноль, только начал изучать, и остановился вот на каком моменте:
собрал ядро вот с такими опциями:

Цитата:
options         IPFIREWALL
options         IPFIREWALL_VERBOSE
options         IPFIREWALL_VERBOSE_LIMIT=100
options         IPFIREWALL_FORWARD
options         IPDIVERT
options         DUMMYNET
 

есть три правила  

Цитата:
10022 allow tcp from 192.168.1.80 to any dst-port 22 in via em0 setup keep-state
13080 allow tcp from 192.168.1.80 to any dst-port 3080 in via em0 setup keep-state
65535 deny ip from any to any
 

Следуя правилам должны быть открыты всего два порта - 22 и 3080.
Но на деле открыт только 22, по 3080 не могу достучаться по http.
Но еще по телнету могу подключиться на 80 порт.
Помогите разобраться с этой проблемой. Почему телнетится 80 порт - когда он закрыт должен быть, и почему не конектится по 3080.
rc.conf Подробнее...
rc.ipfw Подробнее...

----------
80ov

Всего записей: 1238 | Зарегистр. 05-08-2003 | Отправлено: 12:45 16-12-2008
Drron

Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Опиши точнее что, откуда и куда должно проходить.

Всего записей: 826 | Зарегистр. 20-11-2003 | Отправлено: 17:55 16-12-2008
MrTroll



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Drron

Цитата:
Опиши точнее что, откуда и куда должно проходить.

На фряхе надо открыть только 2 порта: 22 и 3080. Разрешить подключения к фряхе только с IP 192.168.1.80
(порт 22 открыт - правило сработало
 порт 3080 (центр управления Kaspersky Anti-Spam) - не могу пробиться на него, хотя по sockstat вижу
 mailflt3 kas-thttpd 12777 2  tcp4   127.0.0.1:3080        *:* т.е. порт слушается.
 freebsd и комп с которого подключаюсь находятся в одной сетке)

----------
80ov

Всего записей: 1238 | Зарегистр. 05-08-2003 | Отправлено: 07:57 17-12-2008
Drron

Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Минимальный набор правил для твоего случая может быть таким
 
 
ipfw -q add check-state
ipfw -q add pass all from any to any via lo0
ipfw -q add pass all from me to any keep-state
ipfw -q add pass tcp from 192.168.1.80 to me 22
ipfw -q add pass tcp from 192.168.1.80 to me 3080
ipfw -q add deny all from any to any
 

Всего записей: 826 | Зарегистр. 20-11-2003 | Отправлено: 12:06 17-12-2008
Tavork

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Никак не получается, чтобы The Bat на компьютерах в локальной сети работал с сервером FreeBSD.
Все настройки перенес со старого сервера FreeBSD 5.4 c изменением адресов (новый провайдер) и названий устройств (новый комп). Со старым сервером the bat работал.
Сейчас у меня
FreeBSD 7.0
Squid 2.6
В файерволле прописано (правила достались от предыдущего админа), xx.xх.хх.хх - внешний адрес:
#!/bin/sh
ipfw -q -f flush
ipfw -q add 00050 allow ip from any to any via lo0
ipfw -q add 00051 deny ip from any to 127.0.0.0/8
ipfw -q add 00052 deny ip from 127.0.0.0/8 to any
ipfw -q add 00101 divert 8668 ip from any to any via em0
ipfw -q add 00107 allow ip from 10.73.200.0/24 to any dst-port 5190
ipfw -q add 00108 allow ip from any 5190 to 10.73.200.0/24
ipfw -q add 00111 allow ip from xx.xx.xx.xx to any out via em0
ipfw -q add 00122 allow ip from 10.73.200.1 to 10.73.200.150
ipfw -q add 00123 allow ip from 10.73.200.1 to 10.73.200.0/24 via em1
ipfw -q add 00124 allow ip from 10.73.200.1 to any out via em1
ipfw -q add 00500 allow tcp from any to any established
ipfw -q add 00555 allow ip from 10.73.200.150 to any
ipfw -q add 00556 allow ip from any to 10.73.200.150
ipfw -q add 01000 allow udp from 10.73.200.0/24 to 10.73.200.1 dst-port 53
ipfw -q add 01001 allow udp from any to xx.xx.xx.xx dst-port 53
ipfw -q add 01002 allow udp from 10.73.200.0/24 53 to 10.73.200.1
ipfw -q add 01003 allow udp from any 53 to xx.xx.xx.xx
ipfw -q add 01004 allow udp from 10.73.200.1 53 to 10.73.200.0/24
ipfw -q add 01005 allow udp from xx.xx.xx.xx 53 to any
ipfw -q add 01006 allow udp from xx.xx.xx.xx to any dst-port 53
ipfw -q add 01007 allow udp from 10.73.200.3 to 10.73.200.1 dst-port 53
ipfw -q add 01008 allow udp from 10.73.200.3 53 to 10.73.200.1
ipfw -q add 01009 allow udp from 10.73.200.1 54 to 10.73.200.3
ipfw -q add 02001 allow tcp from 10.73.200.0/24 to 10.73.200.1 dst-port 3128
ipfw -q add 02002 allow tcp from not 10.73.200.0/24 to xx.xx.xx.xx dst-port 80
ipfw -q add 02003 allow tcp from any 80 to xx.xx.xx.xx in via em0
ipfw -q add 02004 allow tcp from 10.73.200.0/24 to 10.73.200.1 dst-port 8080
ipfw -q add 02005 allow tcp from 10.73.200.0/24 to 10.73.200.1 dst-port 80
ipfw -q add 02101 allow tcp from 10.73.200.0/24 to 10.73.200.1 dst-port 443
ipfw -q add 02102 allow tcp from not 10.73.200.0/24 to xx.xx.xx.xx dst-port 443
ipfw -q add 02103 allow tcp from any 443 to xx.xx.xx.xx
ipfw -q add 02104 allow tcp from 10.73.200.0/24 to any dst-port 443
ipfw -q add 03001 allow tcp from 10.73.200.0/24 to any dst-port 25,110
ipfw -q add 03002 allow tcp from 10.73.200.1 25,110 to any
ipfw -q add 03003 allow tcp from any 25,110 to xx.xx.xx.xx
ipfw -q add 03004 allow tcp from any to xx.xx.xx.xx dst-port 25,110
ipfw -q add 03005 allow tcp from 10.73.200.0/24 to 10.73.200.1 dst-port 25,110
ipfw -q add 65000 deny log logamount 20 ip from any to any  
 
В rc.conf прописано
defaultrouter="83.217.0.65"
gateway_enable="YES"
hostname="moihost.ru"
ifconfig_em0="inet xx.xx.xx.xx  netmask 255.255.255.0"
inetd_enable="YES"
moused_enable="YES"
sshd_enable="YES"
usbd_enable="YES"
named_enable="YES"
firewall_enable="YES"
firewall_script="/etc/pravila.ipfw"
firewall_type="simple"
natd_enable="YES"
natd_interface="em0"
#natd_flags="-redirect_port tcp 10.73.1.1:4899 4899"
natd_flags="-f /etc/natd.conf"
squid_enable="YES"
frox_enable="YES"
#saslauthd_enable="YES"
sendmail_enable="NO"
ntpd_enable="YES"
ntpd_sync_on_start="YES"
ntpd_flags="-c /etc/ntp.conf -l /var/log/ntpd.log -p /var/run/ntpd.pid"
#saslauthd_enable="YES"
#sasl_saslauthd_flags="-a sasldb"
 
apache_enable="YES"
#apache_flags="-DSSL"
apache_pidfile="/var/run/httpd.pid"  
mysql_enable="YES"
mysqllimits_enable="YES"
 
 
ifconfig_em0="xx.xx.xx.xx netmask 255.255.255.192"
ifconfig_em1="10.73.200.1 netmask 255.255.255.0"
 
 
На всякий случай в сквиде прописал acl Safe_ports port 25 и acl Safe_ports port 110, но не помогло
 
В natd.conf  у меня прописано
same_ports yes
use_sockets yes
redirect_port tcp 10.73.1.1:4899 4899
 
Буду рад любому совету.
Надо ли мне в natd прописать какую-то дополнительную строку? Или может правила в ipfw c портами 110 и 25 поднять выше 101 правила с divert или добавить ipfw -q add 00102 divert 8668 ip from any 110 to any??? Самому поэскпериментировать нет возможности, инет нужен всем стабильный

Всего записей: 53 | Зарегистр. 11-08-2006 | Отправлено: 13:00 28-02-2009 | Исправлено: Tavork, 21:39 28-02-2009
klimusu



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
nat, две сетевухи - внешняя и внутренняя
 
внутри сети стоит компьютер с внешним адресом. как на нате разрешить этому компу выход наружу без всяких трансляций?

Всего записей: 931 | Зарегистр. 23-01-2006 | Отправлено: 15:55 30-08-2009
roma



skydiver
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
klimusu
да вобщем-то никак
в том смысле что без трансляций - это чистая маршрутизация. а для чистой маршрутизации в данной ситуации нужно чтобы на внутренней сетевушке висел секондари айпиадрес из той же подсети что и "компьютер с внешним адресом" и даже после этого может ничё не заработать - зависит от того какие внешние адреса используются.

Всего записей: 2908 | Зарегистр. 10-09-2001 | Отправлено: 17:12 30-08-2009
klimusu



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
roma
Странно на FreeBSD6 было все нормально.
 
Компьютер:
сетевая одна, на ней конфигурация ip для внутренней сети, шлюз - внутренняя сетевая на нате
+ алиасом весит внешний адрес на этой же сетевой.
 
Сервер:
сеть1 внутр.
сеть2 внешн.
соединены в мост + форвардинг
далее natd на внешнем интерфейсе и правила ipfw типа  
1. разрешить все от всех для внегнего_адреса_компа_внутри_сети
2. разрешить все от внегнего_адреса_компа_внутри_сети для всех
ну два правила для разворота траффика на нат.
 
Тут с чего-то сдох винт (150 бэдов обноружилось, 3 года работал без вопросов и на те..)
Решил заменить его на FreeBSD7, мало то го что мост пришлось делать через ifconfig bridge create, дак еще и не работает как раньше.

Всего записей: 931 | Зарегистр. 23-01-2006 | Отправлено: 21:56 30-08-2009 | Исправлено: klimusu, 21:57 30-08-2009
klimusu



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Ну и наверно сразу вопрос в догонку, как выпустить внутренний адрес наружу без ната, на определенные подсети.

Всего записей: 931 | Зарегистр. 23-01-2006 | Отправлено: 08:12 31-08-2009
maksobus

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
В FreeBSD полный 0. Поэтому если вопрос глупый, далеко не посылайте.
 
Есть локалка 192.168.1.0/24
Есть прокси 192.168.1.1
Есть машина в локалке  192.168.1.111 с поднятым Апачем
Вопрос: каким образом возможно перенаправление пользователя на эту машину, если он набирает определенный адрес например 89.111.185.118 из локальной сети

Всего записей: 5 | Зарегистр. 16-05-2007 | Отправлено: 17:28 14-09-2009
attaattaatta



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
В прямой и обратной зоне локального днс прописываете имя "машина с поднятым апачем" и указываете ip адрес 192.168.1.111, в обратной зоне добавляете указатель (PTR) 89.111.185.118 на имя "машина с поднятым апачем"

----------
Фрилансю

Всего записей: 1118 | Зарегистр. 25-09-2007 | Отправлено: 17:42 14-09-2009
maksobus

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Спасибо. А не подскажите еще ответ на один тупой вопрос.  Локальный днс находится здесь /ect/namedb ?

Всего записей: 5 | Зарегистр. 16-05-2007 | Отправлено: 18:35 14-09-2009
attaattaatta



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Если установлен bind с параметрами по умолчанию, то да. Если ДНС сервер не установлен, то /etc/hosts.

----------
Фрилансю

Всего записей: 1118 | Зарегистр. 25-09-2007 | Отправлено: 06:09 15-09-2009
Jerry Lutor

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Всем Доброго!
 
Помогите разобраться с проблемой есть машина на фребсд с внешним айпи (сетевая на машине одна) и есть машина во внутреней сети. Как можна пробросить 3ри порта чтоб их біло видно с наружи, пробовал все варианты ниодин несработывает
ipfw:
 
 
00010       27       1080 allow tcp from any 10011 to any
00011       27       1404 allow tcp from any to any dst-port 10011
00012        0          0 allow tcp from any 9987 to any
00013        0          0 allow tcp from any to any dst-port 9987
00050     1536      59904 allow ip from me to 192.168.0.0/24 dst-port 29900
00100    85174   13796336 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
65000 22203971 4244806028 allow ip from any to any
65535        0          0 deny ip from any to any
для начала нада пробросить хотяб 2ва порта 10011 и 9987
 
 
natd.conf
same_ports yes  
use_sockets yes  
redirect_port tcp 172.16.1.2:10011 10011
redirect_port tcp 172.16.1.2:9987 9987
 
 
Что я делаю нетак?  
 
Зарание спасибо!

Всего записей: 62 | Зарегистр. 13-03-2006 | Отправлено: 01:40 21-03-2010
Desmont



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
У меня так было
 
FwCMD="/sbin/ipfw"
LanOut="fxp0"
.......
.......
.......
${FwCMD} add allow tcp from any to 10.0.1.99 36760 via ${LanOut}
 
в натд :
 
interface rl0
same_ports yes
use_sockets yes
dynamic yes
 
redirect_port tcp 10.0.1.99:36760 36760
 
Потом перешел на PF и его НАТ , а сейчас вообще поставил pfSense и тащюсь

Всего записей: 171 | Зарегистр. 04-07-2006 | Отправлено: 09:31 21-03-2010
Открыть новую тему     Написать ответ в эту тему

Страницы: 1 2 3

Компьютерный форум Ru.Board » Компьютеры » В помощь системному администратору » FreeBSD + ipfw + port mapping


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru