Мы — долго запрягаем, быстро ездим, и сильно тормозим.

FreeBSD
  настройка
  подсчёт трафика
  программы
  почтовые системы
  Шелезяки
  Мелочи
  Русификация
  COM-порт
  Монтирование образов
  dd
  burncd
  Консоль
  polling
  redirect_port
  wolf3d
  W.O.L.
  HDD->HDD
  bsdstats
  pdf в html
  monitord
  monit
  dvd в avi
  LAM
  Контроль провайдера
  pppd
  ru man
  geom_uzip
  colorize
  nettop
  немного о ssh
  установка по сети
  ClamAV mirror
  BlueTooth
  WiFi WPA
  iftop
  iPod
  2 CD -> 1 DVD
  ipcalc
  LACP и VLAN
  FFS из-под WinXP
  queues
  NFS & Win2k3
  Dynamic DNS
  ProFTPD+iconv
  deltup, xdelta, bdelta
  Приглашение csh/tcsh
  настрока bash
  Lan over Bluetooth
  pppoe
  метаданные exif
  dd : бэкапируем windows
  mozilla autoconfig
  Proxy Auto Configuration
  NNTP сервер
  Rinetd
  ISO DVD FreeBSD
  my disc1
  sftp+chroot
  SendXMPP
  APCUPSD
  Видеонаблюдение
  Настройка аудиоплеера на ximp3
  HDD(mbr) -> HDD(gpt)
  mc 4.6.2
  Динамический DNS
  axel
  LiveCD
  NAS на MPD
  backup конфигов на почту
  Файловая система
  WWW
  Security
  system
  Games Servers
  X11
  Programming
Очумелые Ручки
OpenBSD
Cisco


www.lissyara.su —> статьи —> FreeBSD —> Мелочи —> Rinetd

Редирект портов с помощью Rinetd

Автор: DNK.


Уважаемым автором сайта - паном Лисом, уже был описан принцип редиректа портов с использованием NAT, но все же хочу описать еще более простой способ - с использованием Rinetd.
Предположим что организация купила какую-то дополнительную биллинговую систему ,у стороннего разработчика, управляющуюся 5 серверами да еще под виндой. Разработчик находится в другой стране и для обслуживания системы ему необходим доступ к этим серверам (к примеру радмином). Кроме того, программеры написали и отлаживают какую-то нужную задачку для корпорации но (как обычно) не знают на каком компе она будет дальше эксплуатироваться , а менять 2 раза в неделю IP компа с задачей у пользователей в локальной сети (но во всех регионах страны) "не есть хорошо".
И так приступим к нашей нелегкой работе.

# cd /usr/ports/net/rinetd/
# make install clean


Теперь создаем наш конфиг для rinetd.

предположим : внутренние IP 5 серверов 192.168.1.5-9,внешний IP 85.85.85.85,локальный IP любимой фрюки 192.168.1.1
Настраиваем радмины на компах слушать на адресе к примеру : 1234.
"Блуждающий" сервер прогеров имеет текущий IP 192.168.1.50 и порт для проги 9898.

# ee /usr/local/etc/rinetd.conf

85.85.85.85 12341 192.168.1.5 1234
85.85.85.85 12342 192.168.1.6 1234
85.85.85.85 12343 192.168.1.7 1234
85.85.85.85 12344 192.168.1.8 1234
85.85.85.85 12345 192.168.1.9 1234

192.168.1.1 9898 192.168.1.50 9898

Собственно все.

# echo 'rinetd_enable="YES"` >> /etc/rc.conf
# /usr/local/etc/rc.d/rinetd start


Проверяем

#sockstat | grep rinetd

root     rinetd     845   4  tcp4   85.85.85.85:12341    *:*
root     rinetd     845   5  tcp4   85.85.85.85:12342    *:*
root     rinetd     845   6  tcp4   85.85.85.85:12343    *:*
root     rinetd     845   7  tcp4   85.85.85.85:12344    *:*
root     rinetd     845   8  tcp4   85.85.85.85:12345    *:*
root     rinetd     845   9  tcp4   192.168.1.1:9898    *:*


Желательно не забыть дописать в IPFW с каких IP разрешон доступ к внешним портам указанным в rinetd (разработчики как правило имеют статичные IP).Даем разработчику внешний IP и порты 1234Х - с указанием на какой комп они попадут.
Когда у прогеров опять поменяется IP , меняем 192.168.1.50 на другой и рестартум , а клиенты продолжают соединяться с 192.168.1.1 порт 9898

Вытераем натруженный пот и идем читать маны.



Ссылка на обсуждение: http://forum.lissyara.su/viewtopic.php?t=9879.

размещено: 2008-09-03,
последнее обновление: 2016-05-10,
автор: DNK

оценить статью:

abigor, 2008-08-22 в 6:18:59

За статью спасибо. НО если честно, чтоб не городить лес из ipfw и natd или ipfw rinetd ( второй кстати если не изменяет память только tcp порты умеет редиректить) пользуйтесь pf там и нат и бинат из коробки есть :) и синтаксис не страшный как с первого раза кажется :)

DNK, 2008-08-22 в 10:38:46

Действительно pf делает все тоже самое,и легок в понимании синтаксиса,но я , например,привык по старинке с ipfw.
Rinetd проще в настройке и контроле состояния, редиректит все порты (не только tcp).
Данной статьей я не призываю к переходу на rinetd, а лишь показываю (особенно для начинающих админов) насколько прост редирект и в каких задачах хорошо его использовать.
К стати, уважаемый abigor, если вы напишете статью по настройке Pf для указанных и других интересных примеров , думаю это будет очень полезно и интересно для многих желающих мигрировать с ipfw на pf.

Morty, 2008-09-03 в 22:30:33

FreeBSD7 и kernel_nat,все решаемо одним конфигом ipfw ,
без запуска доп демонов , в том числе natd. Хотя в 6.*
связка ipfw+natd меня тоже устраивает.

www2, 2008-09-04 в 7:26:25

А ещё проще - iptables.

pshenya, 2008-09-04 в 11:11:35

кста там ещё можно лог включить временами очень удобно посмотреть кто и когда перебрасывался )

www2, 2008-09-04 в 13:41:28

xinetd, netcat и pptpproxy ещё опишите для комплекта

abigor, 2008-09-08 в 8:10:26

2 DNK зачем писать про это, уже до меня все написано
вот тут

Yarikello, 2008-09-16 в 9:33:49

не упоминается о ограничениях.. не пробрасывает UDP. Долго мучался сервер кс пробрасывал когда =)

Dark, 2008-09-16 в 10:47:15

Это всё конечно замечательно, но автор умолчал о такой бяке как неумение RINETD передавать IP адрес клиента, что делает эту утилитку просто бессмысленной для большинства сетевых сервисов. В логах так и будет вечно светиться IP адресс сервера с которого идёт редирект, вместо реального IP клиента и заниматься сопоставлением логов, скажем, SMTP сервера с логами самого rinetd есть великий изврат.

+ если не изменяет память, в rc.conf также можно добавить rinetd_flags, чтобы указать путь до конфигурационного файла '-c /usr/local/etc/rinetd.conf', в противном случае, если верить документации, то приоритет будет по пути /etc/rinetd.conf

+Помимо указать ipfw с каких IP разрешон доступ у самого rinetd также есть похожие правила фильтрации, прописываемые в конфигурацинном файле.

Ну и всё-таки логирование надо включать logfile /var/log/rinetd.log в конфигурационном файле ибо по умолчанию не пишет.

Вердикт: верните natd на законное место.

Саня, 2008-09-19 в 23:40:49

85.85.85.85 12341 192.168.1.5 1234
так у меня не работает а работает так 0.0.0.0 12341 192.168.1.5 1234 .  незнаю почему . Даже если делаю .sockstat | grep rinetd

kmb, 2008-09-20 в 15:14:19

Перебрасывает только tcp!

ugen0, 2008-10-14 в 13:10:11

rinetd кривое поделие - не способное работать с нормальной нагрузкойскажем в 100 коннектов - удалите эту статью. В FreeBSD  natd прекрасно с этим справляется!

DNK, 2008-10-15 в 10:36:05

Уважаемый ugen0.Проверил работу rinetd
при коннекте 250, проблем нет.Я использую
pf как фиревол и для проброски портов, но (!!)
это не значит что ВСЕ должны использовать только pf.
Данная статья ознакомительная и предназначена (в основном)
для начинающих админов.

apm, 2008-12-06 в 21:39:59

Исходник rinetd выглядит как минимум страшно, мало того что он написан в Visual Studio и предназначет для винды, дык обратите внимание на качество кода.

lissyara, 2008-12-07 в 12:33:31

Он работает.
==========
Напишите свой - лучше. Если будет дейсвительно лучше - про rinetd все быстро забадут.

cawok, 2009-01-14 в 14:52:32

Спасиб! Очень полезно и просто! Кстати конфиг как у ipnat - тоже как вариант

mirlas, 2009-02-07 в 23:12:16

ugen0 прав, rintd - унылое говно. Стоял редирект паралельно с natd - через неделю работы (нагрузка в часы пик денем - ~180 коннектов в теченее 2 часов) или даже меньше - нагрузка на проц 100%, коннекты отваливаются, а нагрузка не падает. Так и работала эта какашка, пока не нашел jumpgate (есть в портах) - забыл про сервак, на котором она стоит :) Наверно уже с полгода аптайм, если не больше.

cawok, 2009-04-02 в 22:51:34

А у меня вот возникла проблемка:
869 root 1 114 0 3104K  1084K RUN 309:02 80.66% rinetd

cat_ua, 2009-04-09 в 17:32:35

За статью спс. А можно ли указать диапазон портов и как?

Saykhan, 2009-06-16 в 5:45:53

Если IP динамический, то вместо внешнего айпи ставится 0.0.0.0

wildcat, 2009-07-16 в 12:45:43

Маленький комментарий. rinetd действительно удобен, но есть нюанс, может кто не знает. Когда на dst ip приходит коннекшн проброшенный со шлюза посредством rinetd, он (dst) думает, что пришли с ip шлюза. В случае, если порт проброшен посредством natd, src ip не меняется. То есть для корректной работы почтового сервера, находящегося в приватной сети за шлюзом с фильтрацией по DRBL rinetd не пригоден. Нужно использовать natd.

Dmitry, 2009-10-14 в 9:42:36

А он работает вообще на 7.2 ?? Замучался....
В конфиге:
cat /usr/local/etc/rinetd.conf
80.64.xx.2xx  1879  192.168.0.15 1879

далее пускаю от рута
/usr/local/etc/rc.d/rinetd start  и получаю

rinetd: couldn't bind to address 80.64.хх.2хх port 1879

Где грабли то? На фряхе 6.3 - все пучком.

wildcat, 2009-10-14 в 12:28:23

Вообще-то прекрасно работает.
Проверьте, кто висит у Вас на этом порту и занимает его.
sockstat -4 |grep 1879
до запуска rinetd
либо проверьте правильность внешнего IP :)

Ivan, 2009-11-29 в 13:26:49

Хорошая вещь, natd конечно лучше, но и rinetd заслуживает внимания.

Саня , 2009-12-24 в 19:25:01

>[оверквотинг удален]
>
>
>РЕШИЛ проблему очень просто:
>в портах /usr/ports/net/rinetd
>ставим, создаем файл конфига /usr/local/etc/rinetd.conf
>
>формат: rinetd.conf
>внешнийIP внешнийПОРТ внутреннийIP внутреннийПОРТ
>


та  как должнобить ((((((((9
>ВСЕ ЗАРАБОТАЛО С ПЕРВОГО РАЗА
Только вот синтаксис ты немножко неправильно написал - у меня заработало вот так:

внутренний_адрес_карточки порт адрес_назначения порт

Александр, 2009-12-24 в 19:52:24

вот мой пример работает !

logcommon                      #тип лог файла
logfile /var/log/rinetd.log    #собственно сам лог файл
allow *.87.154.*
deny 192.*.*.*
deny 192.168.*.*
deny 224.*.*.*
deny 172.16.*.*
deny 172.16.*.*
deny 10.*.*.*
deny 169.254.*.*

0.0.0.0 8020  192.168.3.220 8080

andrey7x7, 2011-04-18 в 13:01:28

А кто-нить сталкивался с тем что при отправке письма с вложением 50-100kb оно в в упор не хочет отправляться?
Только из-за этого пришлось поднять NAT для почты,
но как быть с RDP ибо тоже тупит хотя и работает :)

srg, 2011-10-13 в 1:20:05

Товарищщи! Обратите внимание на то, что тут описываются конкретные случае в большенстве случае по Defoult событиям по настройке сервисов. Если возникают проблемы или же не допонимания к той или иной статье, пишите в форум. не стоит засорять доску, уважайте автора сайта.

Александр, 2020-11-12 в 18:05:32

Проблема вто что програма начала есть место на диске.
/dev/nvd0p2                        447G    447G    -35G   109%    /

./rinetd restart

df -h
Filesystem     Size    Used   Avail Capacity  Mounted on
/dev/nvd0p2    447G     52G    359G    13%    /


rinetd.conf
logcommon                      
logfile /var/log/rinetd.log    


0.0.0.0 3398  192.168.3.251 3389 #
#0.0.0.0 2217  192.168.3.17 22 #
0.0.0.0 2222  192.168.3.70 22 #


rinetd.log       85
rinetd.log.0.gz  16578


Оставьте свой комментарий:
Ваше имя:   *
e-mail:  
жирный
наклонный
подчёркнутый
ссылка
цвет
Нынешний год:   *
 


Хостинг HOST-FOOD

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
2011-02-20, Капитан
Nagios+Digitemp

Статья описывает создание системы оповещения о превышении температуры в специальных помещениях на основе Nagios с использованием программы Digitemp.
2011-02-17, Le1
Zyxel Configuration

Скрипт для массового изменения конфига свичей Zyxel. Берет из файла iplist список ip-шек, заходит последовательно на каждый и выполняет комманды из файла commands, записывая происходящее в лог файл.
2011-02-16, fox
hast carp zfs ucarp cluster

HAST (Highly Available Storage), CARP, UCARP, ZFS, Cluster настройка и одаптация плюс личные размышления…
2011-02-04, BlackCat
Восстановление ZFS

История о том, как был восстановлен развалившийся RAIDZ ZFS-пул (перешедший в FAULTED) с помощью скотча и подручных средств. Или о том, какие приключения ожидают тех, кто не делает резервных копий.
подписка

    вверх      
Статистика сайта
Сейчас на сайте находится: 8 чел.
За последние 30 мин было: 38 человек
За сегодня было
4 показов,
4 уникальных IP
 

  Этот информационный блок появился по той простой причине, что многие считают нормальным, брать чужую информацию не уведомляя автора (что не так страшно), и не оставляя линк на оригинал и автора — что более существенно. Я не против распространения информации — только за. Только условие простое — извольте подписывать автора, и оставлять линк на оригинальную страницу в виде прямой, активной, нескриптовой, незакрытой от индексирования, и не запрещенной для следования роботов ссылки.
  Если соизволите поставить автора в известность — то вообще почёт вам и уважение.

© lissyara 2006-10-24 08:47 MSK

Время генерации страницы 0.0356 секунд
Из них PHP: 18%; SQL: 82%; Число SQL-запросов: 77 шт.
Исходный размер: 139849; Сжатая: 24975