fetch001 Опубликовано 6 октября, 2011 (изменено) · Жалоба В качестве маршрутизатора вступает FreeBSD. 1) Other PC1 - ip 10.0.0.2/30 2) Other PC2 - ip 10.1.2.2/30 3) Other PC3 - ip 10.2.2.2/30 все IP адреса отмаршрутизированны провайдером на 10.0.28.2/24 (интерфейс vlan5 FreeBSD сервера) WEB сервер ip из подсетки 192.168.0.0/24 FTP сервер ip из подсетки 192.168.0.0/24 И локальные клиенты тоже принадлежат подсетке 192.168.0.0/24 (vlan3) FreeBSD еще раздает интернет локальным пользователям (Internet, VLAN1) Нат на FreeBSD запущен таким образом: freebsd# ps ax|grep natd 91912 ?? Ss 0:04.40 natd -a xxx.xxx.xxx.xxx -p 8668 где xxx.xxx.xxx.xxx адрес внешнего интерфейса (предоставленный другим провайдером) Сейчас локальные уже имеют доступ на внешку (т.е на интернет) У клиентов Other PC1-3 было настроенно программа на ftp://10.0.28.2 так как и в качестве FTP сервера вступал FreeBSD. Теперь для FTP выделен новый сервер и соответственно "Other PC1-3" не имеют доступа к нему. Задача состоит в том чтоб Other PC1-3 имели доступ к FTP серверу не меняя никаких настроек в своей программе. Делаю таким образом: freebsd# natd -redirect_port tcp 192.168.0.100:21 21 Loading /lib/libalias_cuseeme.so Loading /lib/libalias_ftp.so Loading /lib/libalias_irc.so Loading /lib/libalias_nbt.so Loading /lib/libalias_pptp.so Loading /lib/libalias_skinny.so Loading /lib/libalias_smedia.so natd: instance default: aliasing address not given Также и для WEB: freebsd# natd -redirect_port tcp 192.168.0.111:80 81 Loading /lib/libalias_cuseeme.so Loading /lib/libalias_ftp.so Loading /lib/libalias_irc.so Loading /lib/libalias_nbt.so Loading /lib/libalias_pptp.so Loading /lib/libalias_skinny.so Loading /lib/libalias_smedia.so natd: instance default: aliasing address not given NAT как я говорил уже запущен для раздачи интернета: freebsd# ps ax|grep natd 91912 ?? Ss 0:05.36 natd -a xxx.xxx.xxx.xxx -p 8668 ipfw sh: 10000 103058 8136962 divert 8668 ip from 192.168.0.0/24 to any out via vlan1 10100 328274 373747289 divert 8668 ip from any to xxx.xxx.xxx.xxx in via vlan1 Что делать и где копать, подскажите где я допустил ошибку или что я делаю неправильно? P.S. Конечно можно им IP сказать нового сервера, но им еще нужно прописать до него маршруты. А сами эти удаленные клиенты находятся очень далеко и сидят там простые операторы которому час нужно объяснять. И ктому-же их количество очень много. Изменено 6 октября, 2011 пользователем fetch001 Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
vlad11 Опубликовано 6 октября, 2011 · Жалоба Что делать и где копать, подскажите где я допустил ошибку или что я делаю неправильно? Вы натите только наружу. А вам надо обычный порт форвардинг для локальной сети. Например, используя net/portfwd Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Ivan_83 Опубликовано 6 октября, 2011 · Жалоба Откройте для себя pf, там вам и нат и форвард и фаервол. Либо fwd в правилах ipfw. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Negator Опубликовано 6 октября, 2011 · Жалоба Я давно для редиректа портов использую rinetd. Настройки там -простейшие Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
fetch001 Опубликовано 6 октября, 2011 (изменено) · Жалоба Что делать и где копать, подскажите где я допустил ошибку или что я делаю неправильно? Вы натите только наружу. А вам надо обычный порт форвардинг для локальной сети. Например, используя net/portfwd для начала попробовал Ваш вариант: freebsd# more /usr/local/etc/ftp.cfg /* ftp.cfg $Id: ftp.cfg,v 1.1.1.1 2001/05/15 00:24:48 evertonm Exp $ */ tcp { 21 { => 192.168.0.100:ftp } } freebsd# /usr/local/sbin/portfwd -c /usr/local/etc/ftp.cfg freebsd# ps ax | grep port 10554 ?? Ss 0:00.00 /usr/local/sbin/portfwd -c /usr/local/etc/ftp.cfg 10555 ?? S 0:00.00 /usr/local/sbin/portfwd -c /usr/local/etc/ftp.cfg 10557 1 S+ 0:00.00 grep port freebsd# sockstat |grep port root portfwd 10555 3 dgram -> /var/run/logpriv root portfwd 10555 4 tcp4 *:21 *:* root portfwd 10554 3 dgram -> /var/run/logpriv при соединении на 21 порт с какой либо программой (программы для работы с FTP серверами) Выдает ошибку: 500 Invalid PORT command 00010 308 17460 allow tcp from me to any setup 00020 866 418400 allow tcp from any to any dst-port 20,21,20000-29999 00400 1247 78330 deny ip from any to 127.0.0.0/8 00500 1 84 deny ip from 127.0.0.0/8 to any 00600 48 1944 deny tcp from any 135,137-139 to any 00700 46680 3904441 deny udp from any 135,137-139 to any 00750 4156 533862 allow tcp from any to me dst-port 3128 10000 12968 798270 divert 8668 ip from 172.16.16.0/24 to any out via vlan1 10100 45025 51199826 divert 8668 ip from any to xx.xx.xx.xx in via vlan1 10400 66597 24735364 allow ip from any to any 10450 146 10091 allow tcp from any 20,21 to any 10500 411 27325 deny log logamount 100 ip from any to any 65535 9 686 deny ip from any to any Тот-же ошибочное сообщение выдает и с rinetd. Изменено 6 октября, 2011 пользователем fetch001 Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
WoroN Опубликовано 6 октября, 2011 · Жалоба Если я не ошибаюсь .. для ftp нужно прокидывать группу портов 21, 20 и диапазон например 1024-2000 (указывается и на самом сервере ftp) Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Ivan_83 Опубликовано 6 октября, 2011 · Жалоба Я давно для редиректа портов использую rinetd. Настройки там -простейшие В pf: rdr inet proto tcp from any to (self) port 3389 -> $int_rdp_server pass in quick inet proto tcp from any to $int_rdp_server port 3389 flags S/SA synproxy state притом что не создаётся доп процессов, всё обрабатывается в ядре, синпрокси - доп возможность не тыркать хост пока коннект с клиентом не установлен. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
fetch001 Опубликовано 7 октября, 2011 (изменено) · Жалоба (Offtop к предедущей схеме) Проблема так и не решается тогда такой вопрос: Для теста поставил себе IP адрес 192.168.10.253, Server FreeBSD ip 192.168.10.113, Windows Server ip 192.168.10.100 Правила FreeBSD 00060 9470 733853 allow tcp from any to any dst-port 22 00300 0 0 allow ip from any to any via lo 00500 1 84 deny ip from 127.0.0.0/8 to any 00550 1885 118783 allow ip from any to 172.16.24.1 00550 126 13048 allow ip from 172.16.24.1 to any 00750 40347 3495168 allow tcp from any to me dst-port 3128 00800 2312869 2781006110 allow ip from 172.16.16.0/24 to 192.168.10.100 00900 1722421 867613038 allow ip from 192.168.10.100 to 172.16.16.0/24 10000 13303 819325 divert 8668 ip from 172.16.16.0/24 to any out via vlan2 10100 99508 120352680 divert 8668 ip from any to 172.16.24.113 in via vlan2 10200 233929 42635926 allow ip from 172.16.16.0/24 to any 10300 41742 56449032 allow ip from any to 172.16.16.0/24 10451 87402 74305204 allow ip from any to any 65535 9 686 deny ip from any to any Перенаправление порта: root rinetd 38734 4 tcp4 172.16.16.1:20 *:* root rinetd 38734 5 tcp4 172.16.16.1:21 *:* root rinetd 38734 6 tcp4 172.16.16.1:81 *:* root rinetd 38734 7 tcp4 192.168.10.113:81 *:* root rinetd 38734 8 tcp4 192.168.10.113:21 *:* root rinetd 38734 9 tcp4 192.168.10.113:20 *:* root rinetd 38734 10 tcp4 192.168.10.113:21 192.168.10.253:3199 root rinetd 38734 11 tcp4 192.168.10.113:37451 192.168.10.100:21 Кусочек дампа на FreeBSD при обращение моего IP на 192.168.10.113 по 21 порту: freebsd# tcpdump -i vlan2 -n|grep 192.168.10.100 tcpdump: verbose output suppressed, use -v or -vv for full protocol decode listening on vlan2, link-type EN10MB (Ethernet), capture size 96 bytes 13:30:57.800431 IP 192.168.10.113.37451 > 192.168.10.100.21: Flags [P.], ack 2982247719, win 8326, options [nop,nop,TS val 79997948 ecr 51808], length 5 13:30:57.800639 IP 192.168.10.100.21 > 192.168.10.113.37451: Flags [P.], ack 5, win 64561, options [nop,nop,TS val 51909 ecr 79997948], length 31 13:30:57.801969 IP 192.168.10.113.37451 > 192.168.10.100.21: Flags [P.], ack 32, win 8326, options [nop,nop,TS val 79997950 ecr 51909], length 28 13:30:57.802129 IP 192.168.10.100.21 > 192.168.10.113.37451: Flags [P.], ack 33, win 64533, options [nop,nop,TS val 51909 ecr 79997950], length 27 13:30:57.906080 IP 192.168.10.113.37451 > 192.168.10.100.21: Flags [.], ack 59, win 8326, options [nop,nop,TS val 79998050 ecr 51909], length 0 13:31:00.100191 ARP, Request who-has 192.168.10.100 tell 192.168.10.103, length 46 13:31:00.319406 IP 192.168.10.113.37451 > 192.168.10.100.21: Flags [P.], ack 59, win 8326, options [nop,nop,TS val 80000367 ecr 51909], length 5 13:31:00.319588 IP 192.168.10.100.21 > 192.168.10.113.37451: Flags [P.], ack 38, win 64528, options [nop,nop,TS val 51934 ecr 80000367], length 31 13:31:00.321878 IP 192.168.10.113.37451 > 192.168.10.100.21: Flags [P.], ack 90, win 8326, options [nop,nop,TS val 80000369 ecr 51934], length 28 13:31:00.322033 IP 192.168.10.100.21 > 192.168.10.113.37451: Flags [P.], ack 66, win 64500, options [nop,nop,TS val 51934 ecr 80000369], length 27 13:31:00.425576 IP 192.168.10.113.37451 > 192.168.10.100.21: Flags [.], ack 117, win 8326, options [nop,nop,TS val 80000469 ecr 51934], length 0 13:31:01.934627 IP 192.168.10.113.37451 > 192.168.10.100.21: Flags [P.], ack 117, win 8326, options [nop,nop,TS val 80001929 ecr 51934], length 5 13:31:01.934817 IP 192.168.10.100.21 > 192.168.10.113.37451: Flags [P.], ack 71, win 64495, options [nop,nop,TS val 51950 ecr 80001929], length 31 13:31:01.937207 IP 192.168.10.113.37451 > 192.168.10.100.21: Flags [P.], ack 148, win 8326, options [nop,nop,TS val 80001931 ecr 51950], length 28 13:31:01.937354 IP 192.168.10.100.21 > 192.168.10.113.37451: Flags [P.], ack 99, win 64467, options [nop,nop,TS val 51950 ecr 80001931], length 27 13:31:02.039021 IP 192.168.10.113.37451 > 192.168.10.100.21: Flags [.], ack 175, win 8326, options [nop,nop,TS val 80002031 ecr 51950], length 0 13:31:03.147577 IP 192.168.10.113.37451 > 192.168.10.100.21: Flags [P.], ack 175, win 8326, options [nop,nop,TS val 80003098 ecr 51950], length 5 13:31:03.147740 IP 192.168.10.100.21 > 192.168.10.113.37451: Flags [P.], ack 104, win 64462, options [nop,nop,TS val 51962 ecr 80003098], length 31 13:31:03.150042 IP 192.168.10.113.37451 > 192.168.10.100.21: Flags [P.], ack 206, win 8326, options [nop,nop,TS val 80003100 ecr 51962], length 28 13:31:03.150195 IP 192.168.10.100.21 > 192.168.10.113.37451: Flags [P.], ack 132, win 64434, options [nop,nop,TS val 51962 ecr 80003100], length 27 13:31:03.253634 IP 192.168.10.113.37451 > 192.168.10.100.21: Flags [.], ack 233, win 8326, options [nop,nop,TS val 80003200 ecr 51962], length 0 freebsd# tcpdump -i vlan2 -n | grep 192.168.10.253 tcpdump: verbose output suppressed, use -v or -vv for full protocol decode listening on vlan2, link-type EN10MB (Ethernet), capture size 96 bytes 13:38:17.944418 IP 192.168.10.113.22 > 192.168.10.253.2662: Flags [P.], ack 4093483279, win 65535, length 196 13:38:17.944694 IP 192.168.10.253.2662 > 192.168.10.113.22: Flags [.], ack 196, win 64603, length 0 13:38:20.049088 IP 192.168.10.253.3199 > 192.168.10.113.21: Flags [P.], ack 3707215829, win 65245, length 5 13:38:20.049396 IP 192.168.10.113.21 > 192.168.10.253.3199: Flags [P.], ack 5, win 65535, length 31 13:38:20.052320 IP 192.168.10.253.3199 > 192.168.10.113.21: Flags [P.], ack 32, win 65214, length 27 13:38:20.052556 IP 192.168.10.113.21 > 192.168.10.253.3199: Flags [P.], ack 32, win 65535, length 27 13:38:20.177288 IP 192.168.10.253.3199 > 192.168.10.113.21: Flags [.], ack 59, win 65187, length 0 13:38:21.162373 IP 192.168.10.253.3199 > 192.168.10.113.21: Flags [P.], ack 59, win 65187, length 5 13:38:21.162685 IP 192.168.10.113.21 > 192.168.10.253.3199: Flags [P.], ack 37, win 65535, length 31 13:38:21.164929 IP 192.168.10.253.3199 > 192.168.10.113.21: Flags [P.], ack 90, win 65156, length 27 13:38:21.165135 IP 192.168.10.113.21 > 192.168.10.253.3199: Flags [P.], ack 64, win 65535, length 27 13:38:21.283803 IP 192.168.10.253.3199 > 192.168.10.113.21: Flags [.], ack 117, win 65129, length 0 13:38:22.274721 IP 192.168.10.253.3199 > 192.168.10.113.21: Flags [P.], ack 117, win 65129, length 5 13:38:22.275231 IP 192.168.10.113.21 > 192.168.10.253.3199: Flags [P.], ack 69, win 65535, length 31 13:38:22.277437 IP 192.168.10.253.3199 > 192.168.10.113.21: Flags [P.], ack 148, win 65098, length 27 13:38:22.277665 IP 192.168.10.113.21 > 192.168.10.253.3199: Flags [P.], ack 96, win 65535, length 27 13:38:22.390325 IP 192.168.10.253.3199 > 192.168.10.113.21: Flags [.], ack 175, win 65071, length 0 13:38:22.883216 IP 192.168.10.253.3199 > 192.168.10.113.21: Flags [P.], ack 175, win 65071, length 5 13:38:22.883515 IP 192.168.10.113.21 > 192.168.10.253.3199: Flags [P.], ack 101, win 65535, length 31 13:38:22.885695 IP 192.168.10.253.3199 > 192.168.10.113.21: Flags [P.], ack 206, win 65040, length 27 у меня нет величайшего опыта с ipfw (нужные мне сервисы и интернет пока работают). Но никак не могу перебросить порт. Может кто подскажет, какую строчку мне прописать на ipfw (файрволе) чтоб все пакеты проходили нормально при редиректе порта. Изменено 7 октября, 2011 пользователем fetch001 Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
vlad11 Опубликовано 7 октября, 2011 · Жалоба Для теста поставил себе IP адрес 192.168.10.253, Server FreeBSD ip 192.168.10.113, Windows Server ip 192.168.10.100 Они все в одной подсети. Или пусть ходят напрямую или на фряхе сооружайте NAT для этого. ftp server <--- freebsd [portforwarding] <---- ftp client ftp server ---> freebsd [NAT] ----> ftp client Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...