Мы — долго запрягаем, быстро ездим, и сильно тормозим.
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
www.lissyara.su
—> статьи
—> FreeBSD
|
|
ну и создаём указанный файл, такого содержания:
|
Заметтьте в файле используется не краткая а полная форма записи ключей. Потом перезапускаем машину (или убиваем natd и запускаем с командной строки с нужными ключами-файлами), интернет должен работать как и работал, а вот при попытке зайти на 81 порт - скорей всего будет облом. Файрволл. Я убил минут 30 пока понял почему оно работате так и только так:
|
Видать, пакеты в nat попадают ещё до файрволла, потому и приходится изгаляться с разрешением внутреннего адреса на внешнем интерфейсе (Вообще, если вдаваться в подробности - то пакеты через файр проходят неоднократно, и на каком из заходов действует это правило - я не знаю :()
Вот тока после этого и заработало.
|
Abigor, 2006-04-24 в 9:01:54
было бы не плохо, если бы ты добавил в статью еще редирект для ftp так как это всегда больная тема =)
3EBC, 2006-05-02 в 0:33:23
А чего тут сложного?
Точно также пишешь в /etc/natd.conf:
redirect_port tcp 192.168.20.251:21 21
Всё.
Если пэссив моде используется, то тут надо целый диапазон портов указывать. Например в ProFTPD можно указать какие именно порты использовать для пассивного режима(для этого в proftpd.conf суем строку PassivePorts 8001 8100, таким образом будут использоваться порты с 8001 до 8100). Затем точно также в /etc/natd.conf добавляем:
redirect_port tcp 192.168.20.251:8001-8100 8001-8100
При этом также не забывааем добавить в proftpd.conf такую строку:
MasqueradeAddress <внешний_айпи_роутера>
SergDN, 2006-05-28 в 0:28:29
Когда редиректов несколько (по адресам и портам), как быть?
Есть некоторые неприятные зависимости результатов редиректа от расположения в файле правил на ipfw (особенно c проверкой состояния). Надежнее переходить на редирект в pf от OpenBSD. Тем более что даже от разработчиков толком не добится правильного решения подобных задач для ipfw/ipfw2. Не подставляйте свои шлюзы (примеров не будет :))
lissyara, 2006-05-28 в 9:26:52
По ушам не езди. На данный момент - это беспочвенное утверждение.
none, 2006-10-25 в 12:16:22
Спасибо за статью (-:
Для редиректа портов, для осла, использовал ipnat - очень просто и удобно, советую тоже обратить внимание (-:
FiSHeR, 2006-11-09 в 4:34:29
можно еще серез rinetd
rinetd.conf
0.0.0.0 1234 192.168.0.10 1234
откуда и куда
:)
vek, 2007-01-09 в 13:02:58
Ну спасибо ! Сильно помог.
Zeus, 2007-03-13 в 14:24:17
а еще есть хорошая утилитка в в портах - bounce
bounce [-a localaddr | -b localaddr] [-p localport] machine port
kapvik, 2007-03-15 в 12:00:37
А ещё есть в портах redir
VAdim, 2007-03-22 в 11:07:18
Redir нормально пашет с ftp passive mode
sergio, 2007-03-30 в 17:03:17
Спасибо!
Есть еще вариант:
1) в файл /etc/services:
прописываем
nashport81 81/tcp
2) в /etc/inetd.conf пишем:
nashport81 stream tcp nowait root /usr/local/bin/socket socket 192.168.0.1 80
3) killall -1 inetd
Тоже пашет!
Gracias, 2007-04-19 в 20:47:24
Думал что Nat'ом пользуюсь на 100%,
не тут-то было! echo "Thanks to Lissyara.su";)
Alexander Sheiko, 2007-05-04 в 5:55:23
> Я убил минут 30 пока понял почему оно работате так и только так
Пакеты попадают в файерволл дважды - на входе и на выходе из интерфейса...
Колян, 2007-08-30 в 18:43:34
Советую юзать айпинат, аффтар, пешы на мыло или в аську, 4461828.
ADilm, 2007-09-08 в 14:27:16
PF
время ipfw уже прошло
Fmod, 2007-10-18 в 17:08:12
redirect_port отказывается работать если комп подключен в инет через адсл, уже все перепробовал :( (нужно чтоб некоторые сервера локальной сети были доступны из инета)
Приходится использовать rinetd и portfwd.
Причем в локальной сети redirect_port работает замечательно.
Заметил такую особенность redirect_port, при редиректе он выдает реальный ип того кто конектится, rinetd и portfwd заменяют ип на ип компа на котором установлены, из за чего невозможно вычислить ип подключившегося.
P.S. rinetd не рекомендую ибо виснет.
Fmod, 2007-10-26 в 21:50:08
Оказалось что и portfwd падает если использовать его для торентов. Вариант sergio с сокетами оказался самым лучшим. Только надо не забыть cd /usr/ports/sysutils/socket && make install clean
friman, 2007-12-05 в 13:57:52
Вот разберись как связать и почему так происходит когда nat отдельно, фильтр отдельно, шейпер отдельно ...
PF действительно лучший - умет всё сам.
vid, 2008-04-18 в 8:18:35
Для некоторых портов еще необходимо делать проброс и udp.
redirect_port tcp 192.168.20.251:80 81
redirect_port udp 192.168.20.251:80 81
и еще у меня заработало только когда я в ipfw добавил помимо
${FwCMD} add allow tcp from any to 192.168.20.251 80 via ${LanOut}
еще и
${FwCMD} add allow tcp from any to 192.168.20.251 80 via ${LanIn}
Volkoff, 2008-05-08 в 10:44:56
Предложенная схема не заработала на 7-ке, NAT просто игнорирует файлик natd.conf и слушает только стандартный 8668, скорее всего из-за компиляции в ядро. Зато заработала схема предложенная sergio. Только там надо добавить
${FwCMD} add allow tcp from "ип клиента или any" to ${IpOut} "порт" in via ${LanOut} setup
в правила фаирвола и разрешить inetd в rc.conf
inetd_enable="YES"
HOSTER, 2008-09-09 в 1:48:46
АЛЯ PF(Packet Filter)
rdr on em0 proto tcp from any to any port 99 -> google.com port 80
Прокинет что хочешь и куда хочешь!
Вот что нужно юзать )
mazdayka, 2008-09-19 в 9:34:31
socket -это конечно хорошо, но он показывает только локальный ip при пробросе, а как быть или что использовать если нужно знать реальный ip откуда идёт коннект?
Michael /780, 2008-10-30 в 8:58:09
Решил поставить почтовый сервак за шлюзом. Этот шлюз раздает nat на несколько сетевых интерфейсов (раздает инет), сервисом natd+ipfw. Как тут быть?
redirect_port tcp 192.168.1.10:25 25
Где 192.168.1.10 - ip почтовика
Правило ipfw
${FwCMD} add allow tcp from any to 192.168.1.10 25 via ${внешний интерфейс с нат'ом}
Непонятки: где разрешать 110 порт на почтовик?
abigor, 2008-11-05 в 11:32:10
to Michael /780
там же
redirect_port tcp 192.168.1.10:110 110
${FwCMD} add allow tcp from any to 192.168.1.10 110 via ${внешний интерфейс с нат'ом}
Zar, 2008-11-18 в 11:57:17
народ, а что с natd в 7ой ветке? что с ним сделали? у меня как и у Volkoff не могу уже неделю настроить,
буква в букву переписал с боевого сервера 6.2... не работает... не редиректит порты... и логов нету..
Zar, 2008-11-19 в 9:20:16
ааа разобрался.
на машине с которой редиректется порт должен быть прописан шлюз там машина на которую редеректят порт...
что то типо того...
блин три недели убил чтоб разобраться...
Damon_X, 2008-12-24 в 12:01:57
RINETD на 7ки отлично работал. Сбоев замечено не было. Ушёл от него из-за того, что подменяет IP!
Roland, 2009-02-04 в 15:36:42
на 7-ке что только не делал, месяц уже убил.
Не пашет ни ipfw nat ни divert natd(((
Аноним , 2009-02-27 в 17:32:29
Фря 7.1 ipfw + natd
Работает следующая конструкция,
${FwCMD} add allow tcp from any to 192.168.1.10 80 via ${внешний интерфейс с нат'ом}
+ inetd_enable="YES"
респект и уважуха !!!!
Дай вам Бог здоровья )))
daggerok, 2009-03-17 в 2:32:13
на 7-ке у меня так (надеюсь кому-то пригодится):
в /etc/rc.conf ничего о natd нет. я буду его запускать из скрипта фаера, и вообще мне проще по максимуму делать все в нем. скрипт лежит в /usr/local/etc/rc.d/
вот его часть касательно сабжа (пробрасываем, для примера, порт радмина. стандартный):
ipfw="/sbin/ipfw"
natd="/sbin/natd"
sysctl="/sbin/sysctl"
$sysctl net.inet.ip.fw.one_pass=0
oip="222.222.222.2" #внешний ип
oif="em0" #внешний иф
iip="192.168.0.1" #внутренний ип
iif="xl0" #внутренний иф
local_pc_ip="192.168.0.2" #тазик в локалке, на который надо пробросить порт 4899
#стартуем нат на внешнем ифе с редиректом:
$natd -m -s -n $oif -p 8669 -redirect_port tcp $local_pc_ip:4899 4899
#стартуем нат на внутриннем ифе:
$natd -m -s -n $iif -p 8668
#дальше собственно диверты:
$ipfw add divert 8669 log all from any to $oip 4899 in via $oif
$ipfw add divert 8668 log all from any to $local_pc_ip 4899 out via $iif
$ipfw add divert 8668 log all from $local_pc_ip 4899 to me in via $iif
$ipfw add divert 8669 log all from $local_pc_ip 4899 to any out via $oif
#ну и разрешаем нашим пакетам ходить через фаер:
$ipfw add allow tcp from any to $local_pc_ip 4899 via $oif
#в конце последнее правило
$ipfw add deny ip from any to any
#в нескольких статьях от "некоторых" авторов видел примеры с пробросами (более простые), но завершающиеся разрешающим правилом всего:))
$ipfw add allow ip from any to any
#меня это совершенно не вдохновляло, думаю многих так же не порадует.
#предложенная конструкция проверена и работоспособна на 7.1
daggerok, 2009-03-17 в 11:41:00
да, кста, можно так же не извращаться с двумя натами и сделать еще так (у меня работают оба варианта, тот что выше и следующий):
#вешаем нат на внешний ип с редиректом:
$natd -a ${oip} -p 8668 -redirect_port tcp $local_pc_ip:4899 4899
#собсно диверт:
$ipfw add divert 8668 ip from any to $oip in via $oif
$ipfw add divert 8668 ip from $local_pc_ip to any out via $oif
#для проверки обязательно перед денаем пишем следующие правила:
$ipfw add allow ip from any to me 4899
$ipfw add allow ip from any to $local_pc_ip 4899
$ipfw add allow ip from $local_pc_ip 4899 to any
#хотя мне кажется, что первое их этих трех правил (ip from any to me 4899) ненужно :)
# в любом случае потом можно будет по ipfw show посмотреть, ходят ли через него пакеты
#есть не ходят то можно спокойно убить его :)
#лично мне оно было нужно из-за того что в скрипте фаера, ниже - были определенные запреты.
#ну и обязательно последнее запрещающее правило:
$ipfw add deny ip from any to any
#в этом варианте используется один нат, и по идее, так должно быстрее работать чем в примере выше
#хотя хз :))
rexxer, 2010-09-14 в 10:36:49
Всем привет!
Настраивал это дело на 2х машинах - поначалу был везде разный результат и пришлось помучаться. В результате был найден рецепт.
1. НАТД умеет редиректить любые порты в любые.
2. Разрешающее правило для прохождения пакета должно стоять после диверта (у меня он одним правилом).
3. Перед этим не должно стоять правил разрешающих и з апрещающих есстественно.
4. Самое интересное, что net.inet.ip.fw.one_pass=0 не помогло.
yanixoids, 2010-09-28 в 12:09:25
И зачем такие паравозы, все банально и просто в ipfw+ipnat. В ipnat'e достаточно пробросить 80 порт на локальную машинку и всего делов.
rdr em0(вн.интерфейс) from any to out_ip port=80 -> 192.168.1.50 port 81 tcp
2014-07-27, lissyara
gmirror
Удалённое создание софтверного зеркала средствами gmirror, на диске разбитом с использованием gpart. Использование меток дисков для монтирования разделов.
2013-08-20, zentarim
Scan+Print server FreeBSD 9
Настройка сервера печати и сервера сканирования под управлением операционной системы FreebSD 9 для МФУ Canon PIXMA MP540
2011-11-20, BlackCat
Разъём на WiFi-карту
Делаем съёмной несъёмную антену на WiFi-карте путём установки ВЧ-разъёма
2011-09-14, manefesto
Настройка git+gitosis
Настройка системы контроля версия исходного кода в связке git+gitosis+ssh
2011-08-14, zentarim
Wi-FI роутер + DHCP + DNS
Настройка Wi-Fi роутера на Freebsd 8 + DNS сервер + DHCP сервер: чтобы Wi-Fi клиенты были в одной подсети с проводными, проводные и беспроводные клиенты получали адреса автоматически по DHCP, кэширующ
2011-06-15, -ZG-
Охранная система на FreeBSD+LPT
В этой статье описана попытка реализации простой охранной системы на базе FreeBSD с подключением к ней охранных устройтсв на LPT порт и видеорегистрацией.
2011-03-13, terminus
ng_nat
Описание работы ng_nat, практическое использование, достоинства и недостатки в сравнении с ipfw nat
вверх
|
Этот информационный блок появился по той простой причине,
что многие считают нормальным, брать чужую информацию не уведомляя автора
(что не так страшно), и не оставляя линк на оригинал и автора — что более существенно.
Я не против распространения информации — только за. Только условие простое — извольте
подписывать автора, и оставлять линк на оригинальную страницу в виде прямой, активной, нескриптовой,
незакрытой от индексирования, и не запрещенной для следования роботов ссылки.
Если соизволите поставить автора в известность — то вообще почёт вам и уважение.
© lissyara 2006-10-24 08:47 MSK
Комментарии пользователей [33 шт.]