Страница 1 из 1
Открытие портов в ipfw
Добавлено: 2016-09-21 11:03:50
Гость
Здравствуйте, подскажите пожалуйста
В локальной сетке нужно запустить программу для удаленного доступа... Программа работает через порты 80,443,8080
В локальной сетке все компы смотрят в инет через шлюз на FreeBSD
На FreeBSD настроен скрипт для ipfw
есть запрещающее правило, которое блокирует работу программы удаленного доступа:
Код: Выделить всё
${FwCMD} add 9500 deny log all from any to any in via $LIF
Пробовал выше добавить правила:
Код: Выделить всё
${FwCMD} add 4000 allow tcp from any to me dst-port 443
${FwCMD} add 4010 allow tcp from any to me dst-port 80
Программа всё равно не подключается...
Подскажите пожалуйста, как правильно открыть порты?
Открытие портов в ipfw
Добавлено: 2016-09-21 19:42:29
kharkov_max
Вы к шлюзу подключаетесь супер программой?
Открытие портов в ipfw
Добавлено: 2016-09-22 8:08:41
Гость
kharkov_max писал(а):Вы к шлюзу подключаетесь супер программой?
Нет, мне нужно из компа в локальной сети, подключиться к компу вне локальной сети... Через aeroadmin...
Aeroadmin слушает порт 443,80,8080
Открытие портов в ipfw
Добавлено: 2016-09-22 10:10:00
snorlov
У вас просто роутер с натом или еще что-нибудь на нем стоит, например squid? Я к чему, может вам ipfw и не нужен для всей блокировки, а нужен просто выход в инет с прозрачным натом...
Открытие портов в ipfw
Добавлено: 2016-09-22 22:41:10
kharkov_max
Судя по правилам вы открываете доступ к шюзу... Прочитайте что такое me в ваших правилах и поймете что пишите.
Открытие портов в ipfw
Добавлено: 2016-09-22 23:53:09
snorlov
Еще одна поделка на базе vnc, типа teamviewer, radmin... Без полного показа правил никто вам путного сказать не сможет, там у вас еще наверняка правила имеются...
Открытие портов в ipfw
Добавлено: 2016-09-23 20:36:35
lordlev
КМК, проще всего воспользоваться rinetd из портов. Или давай полный листинг правил ipfw
Открытие портов в ipfw
Добавлено: 2016-09-26 14:15:36
Гость
Конфиг ipfw ниже, на FreeBSD установлен squid, компы из локалки выходят в ИНЕТ через прокси.
Код: Выделить всё
/sbin/ipfw -q -f flush #sbros pravil
FwCMD="/sbin/ipfw -q" #oboznachenie comand
LIF="rl0" #localni interfeis
LIP="`ifconfig $LIF|awk '/inet /{print \$2}'`" #local IP
LAN="$LIP/24" #local setka
WIF="sis0" #vneshni interfeis
WIP="`ifconfig $WIF|awk '/inet /{print \$2}'`" #vneshni IP
WAN="$WIP/24" #vneshni setka
#########PRAVILA#########
${FwCMD} add 1100 allow ip from any to any via lo0
${FwCMD} add 1200 deny ip from any to 127.0.0.0/8 #zapret vsego iz 127.0.0.0/8
${FwCMD} add 1250 deny ip from 127.0.0.0/8 to any #zapret 127.0.0.0/8 dly vsego
${FwCMD} add 1255 allow ip from me to me #razreshit IP compa
############################
${FwCMD} add 1260 deny ip from $LAN to any in via $WIF #zapret v inet
${FwCMD} add 1265 deny ip from $WAN to any in via $LIF #zapret
${FwCMD} add 1270 deny ip from any to 172.16.0.0/12 in via $WIF #zapret v WIF
${FwCMD} add 1275 deny ip from any to 0.0.0.0/8 in via $WIF #zapret v WIF
${FwCMD} add 1280 deny ip from any to 169.254.0.0/16 in via $WIF #zapret v WIF
${FwCMD} add 1285 deny ip from any to 244.0.0.0/4 in via $WIF #zapret v WIF
${FwCMD} add 1290 deny ip from any to 240.0.0.0/4 in via $WIF #zapret v WIF
${FwCMD} add 1295 deny ip from 172.16.0.0/12 to any out via $WIF #zapret
${FwCMD} add 1300 deny ip from 0.0.0.0/8 to any out via $WIF #zapret
${FwCMD} add 1305 deny ip from 169.254.0.0/16 to any out via $WIF #zapret
${FwCMD} add 1310 deny ip from 244.0.0.0/4 to any out via $WIF #zapret
${FwCMD} add 1315 deny ip from 240.0.0.0/4 to any out via $WIF #zapret
##################################
${FwCMD} add 3000 allow ip from any to $LAN in via $LIF #hozdenie paketov po local
${FwCMD} add 3005 allow ip from $LAN to any out via $LIF #hozdenie paketov po local
${FwCMD} add 3055 allow tcp from any to $WIP in via $WIF
############################
${FwCMD} add 3455 allow tcp from 192.168.10.0/24 to 37.48.115.46 in via $LIF # 37.48.115.46 server aeroadmin
${FwCMD} add 9500 deny log all from any to any in via $LIF
${FwCMD} nat 1 config log if $WIF same_ports
${FwCMD} add 10000 nat 1 all from any to any
${FwCMD} add 65530 allow all from any to any
Открытие портов в ipfw
Добавлено: 2016-09-26 15:58:44
snorlov
У тебя сквид на каком порту пашет не 8080 случайно
Открытие портов в ipfw
Добавлено: 2016-09-27 8:08:03
Гость
нет, squid у меня не использует 8080
Я опечатался в правиле 3455, оно выглядит так:
Код: Выделить всё
${FwCMD} add 3455 allow tcp from 192.168.10.0/24 to 37.48.115.46 443 in via $LIF # 37.48.115.46 server aeroadmin
но всё равно не отрабатывает
Открытие портов в ipfw
Добавлено: 2016-09-27 9:19:00
snorlov
Из всего, что я вижу, у вас файер с прозрачным натом, осталось выяснить версию операционки и значение disable_one_pass, и вообще
1. на сайте есть статья про ipfw, почитайте ее,
2. возьмите правила, идущие в вашем дистрибутиве, /etc/rc.firewall, и посмотрите реализацию OPEN, задействуйте ее
3. Может после этого поймете нужно ли вам правило 3455...
Открытие портов в ipfw
Добавлено: 2016-09-27 14:01:15
Гость
если поставить firewall в значение open, тогда он будет всё пропускать... Правила из скрипта тогда нужны не будут
А можно как то через скрипт правил, используя правила разрешить aeroadmin?
Открытие портов в ipfw
Добавлено: 2016-09-27 16:21:54
snorlov
Гость писал(а):если поставить firewall в значение open, тогда он будет всё пропускать... Правила из скрипта тогда нужны не будут
А можно как то через скрипт правил, используя правила разрешить aeroadmin?
Да вы взгляните на свои правила, у вас почти open, дайте
да посмотрите на счетчики, чтобы понять что у вас работает, а что для мебели..
Открытие портов в ipfw
Добавлено: 2016-09-28 8:40:02
Гость
Если поставить значение open то aeroadmin заработает, это мне понято. Подскажите мне пожалуйста, можно ли конкретно в вышеуказанном скрипте разрешить работу aeroadmin, мне это нужно понять, не реализовать, а просто понять, возможно или нет.
Спасибо за Ваши советы.
Открытие портов в ipfw
Добавлено: 2016-09-28 9:42:55
lordlev
смотри в строну ipfw add fwd и ipfw add divert
Но, ИМХО, natd redirect_port разумней, а rinetd проще
Открытие портов в ipfw
Добавлено: 2016-09-28 9:50:19
snorlov
Гость писал(а):Если поставить значение open то aeroadmin заработает, это мне понято. Подскажите мне пожалуйста, можно ли конкретно в вышеуказанном скрипте разрешить работу aeroadmin, мне это нужно понять, не реализовать, а просто понять, возможно или нет.
Спасибо за Ваши советы.
Берите книжку про tcp/ip и читайте на ночь, обращая внимание как он маршрутизируется, после чего ищем в инете описание как работает ipfw...
P.S. В ваших правилах, а именно разрешения доступа к сайту не срабатывает нат, в результате пакет пакет маршрутизируется в инет, точнее его отправляют на внешний интерфейс, дальше думайте что с ним происходит...
Открытие портов в ipfw
Добавлено: 2016-09-28 15:05:52
Гость
snorlov писал(а): В ваших правилах, а именно разрешения доступа к сайту не срабатывает нат, в результате пакет пакет маршрутизируется в инет, точнее его отправляют на внешний интерфейс, дальше думайте что с ним происходит...
Получается у меня пакет хочет отправиться с внешнего интерфейса с IP адресом 192.168.10.X, что невозможно... Я правильно понял?
Открытие портов в ipfw
Добавлено: 2016-09-28 19:40:43
snorlov
Берем книжку про tcp/ip, грубо говоря у вас нет базовых знаний про сетевую инфраструктуру, там не только tcp/ip используется...
Открытие портов в ipfw
Добавлено: 2016-09-29 10:26:58
Гость
Стараюсь заполнить пробелы в понимании сетевой инфраструктуры, книги само собой читаю...
Вот к какому выводу я пришел, может конечно к неправильному...
Из "учебника" говорится:
Процесс начала сеанса TCP (также называемый «рукопожатие» (англ. handshake)), состоит из трёх шагов #Aeroadmin работает же через протокол tcp
Код: Выделить всё
1. Клиент, который намеревается установить соединение, посылает серверу сегмент с номером последовательности и флагом SYN.
Сервер получает сегмент, запоминает номер последовательности и пытается создать сокет (буферы и управляющие структуры памяти) для обслуживания нового клиента.
В случае успеха сервер посылает клиенту сегмент с номером последовательности и флагами SYN и ACK, и переходит в состояние SYN-RECEIVED.
В случае неудачи сервер посылает клиенту сегмент с флагом RST.
2. Если клиент получает сегмент с флагом SYN, то он запоминает номер последовательности и посылает сегмент с флагом ACK.
Если он одновременно получает и флаг ACK (что обычно и происходит), то он переходит в состояние ESTABLISHED.
Если клиент получает сегмент с флагом RST, то он прекращает попытки соединиться.
Если клиент не получает ответа в течение 10 секунд, то он повторяет процесс соединения заново.
3. Если сервер в состоянии SYN-RECEIVED получает сегмент с флагом ACK, то он переходит в состояние ESTABLISHED.
В противном случае после тайм-аута он закрывает сокет и переходит в состояние CLOSED.
Грубо говоря я представляю это следующим образом: Клиент отправляет запрос серверу, сервер отправляет обратный запрос. В моем правиле, было разрешено только клиенту отправлять запрос к серверу по 443 порту. Сервер же (aeroadmin) не мог отправить запрос обратно, так как не было разрешающего правила. После этого подредактировал правила относительно aeroadmin, привел их к следующему виду:
Код: Выделить всё
${FwCMD} add 3450 allow tcp from $LAN to 37.48.115.46 443 in via $LIF #разрешаем клиенту отправить сегмент
${FwCMD} add 3455 allow tcp from 37.48.115.46 443 to $LAN via $LIF #разрешаем клиенту принять от сервера сегмент
${FwCMD} add 3460 deny log all from any to any in via $LIF #запрещаем всё
После этого подключение сработало. Может быть я всё неправильно понял, и просто методом "подбора" получилось установить соединение. Во всяком случае буду разбираться и понимать проделанные действия...
Всем спасибо за советы...