Итак, есть шлюз на FreeBSD 4.8. На нем есть файрвол ipfw. Для работы клиент банка нужно открыть порт 2048 во все стороны. Клиент-банк - КУРСКПРОМБАНК, если кому-то это что скажет.Хочу получить файл вида:
=+++
#!/bin/shipfw -q add 090 allow tcp from 77.243.3.22 2048 to 192.168.0.98 in via ed0
ipfw -q add 095 allow tcp from 94.25.33.59 to 77.243.3.22 2048 in via ed0=+++
Это мои измышления на эту тему. Неправильные. Надо их поправить так, что бы работало.
Пояснения:
77.243.3.22 - адрес банковского компа
2048 - нужный им порт
192.168.0.98 - адрес компа с клиент банком в локальной сети
94.25.33.59 - внешний IP-шлюза
ed0 - интерфейс который смотрит в инет
rl0 -интерфейс который смотрит в локалкуЗнаю, что надо идти в поиск, читать мануалы т.д. Но вся админка это несколько не мое. И у меня уже голова опухла от чтения того, в чем не особенно разбираешься. Поэтому прошу дать конкретный ответ. Первому, кто пришлет РАБОТОСПОСОБНЫЙ ВАРИАНТ (в обсуждении темы, что бы все видели) - приз в виде 3 WMZ :) Мелочь конечно, но на маленькую бутылочку пива хватит. Тем более, что для знающего человека - такой файл дело 5-ти минут.
Проверять буду завтра (17 августа) утром.
P.S. То что так делать неправильно знаю, но админа сейчас нет (тут много проблем, о которых рассказывать не имеет смысла), а надо что бы завтра к утру все работало :(
Что кажет
ipfw list
>Что кажет
>ipfw list00050 divert 8668 ip from 192.168.0.38 to 95.107.51.118 out xmit ed0
00052 divert 8668 ip from 192.168.0.98 to 95.107.51.118 out xmit ed0
00060 divert 8668 ip from any to any in recv ed0
00070 allow udp from 95.107.51.118 87 to 192.168.0.38 in recv ed0
00072 allow udp from 95.107.51.118 87 to 192.168.0.98 in recv ed0
00085 allow udp from 94.25.33.59 to 95.107.51.118 87 in recv ed0
00090 allow tcp from any to 192.168.0.98 2048
00090 allow tcp from 77.243.3.22 2048 to 192.168.0.98 in recv ed0
00092 allow tcp from any 2048 to 192.168.0.98
00095 allow tcp from 94.25.33.59 to 77.243.3.22 2048 in recv ed0
00100 deny tcp from any to any 137
00200 deny udp from any to any 137
00300 allow ip from any to any
00400 deny tcp from any to any 3306
00500 count ip from any to any in recv ed0
00600 allow ip from any to 84.17.225.15 in
00700 allow ip from 192.168.0.0/24 to 192.168.0.3 in recv fxp0
00800 allow ip from 84.17.225.15 to any out
00900 allow ip from 192.168.0.3 to any out
01000 allow ip from 192.168.0.0/24 to 84.17.224.0/28 in recv fxp0
01100 deny ip from 192.168.0.0/24 to any in recv fxp0
01200 divert 8668 ip from any to any via ed0
65535 allow ip from any to anyСтроки с 50 по 85 - это для работы клиент-банка от Сбербанка. Работает отлично. После перезагрузки добавляется командным файлом. Так сделано специально по одной причине ;)
Строки с 90-95 - это мои криворукие эксперименты.
После перезагрузки остаются только строки начиная с 100.
>[оверквотинг удален]
>01100 deny ip from 192.168.0.0/24 to any in recv fxp0
>01200 divert 8668 ip from any to any via ed0
>65535 allow ip from any to any
>
>Строки с 50 по 85 - это для работы клиент-банка от Сбербанка.
>Работает отлично. После перезагрузки добавляется командным файлом. Так сделано специально по
>одной причине ;)
>
>Строки с 90-95 - это мои криворукие эксперименты.
>После перезагрузки остаются только строки начиная с 100.00053 allow ip from 77.243.3.22 to 192.168.0.98 in recv ed0
00054 allow ip from 192.168.0.98 to 77.243.3.22 2048 out recv ed0
00060 divert 8668 ip from any to any in recv ed0
Как то так.
>>[оверквотинг удален]
>00053 allow ip from 77.243.3.22 to 192.168.0.98 in recv ed0
>00054 allow ip from 192.168.0.98 to 77.243.3.22 2048 out recv ed0
>00060 divert 8668 ip from any to any in recv ed0
>Как то так.Применил. Строку 54 не приняла
ipfw: only TCP and UDP protocols are valid with port specifications. Исправил ip на tcp. Все принялось
результат:
00050 0 0 divert 8668 ip from 192.168.0.38 to 95.107.51.118 out xmit ed0
00052 0 0 divert 8668 ip from 192.168.0.98 to 95.107.51.118 out xmit ed0
00053 0 0 allow ip from 77.243.3.22 to 192.168.0.98 in recv ed0
00054 0 0 allow tcp from 192.168.0.98 to 77.243.3.22 2048 out recv ed0
00060 88 11024 divert 8668 ip from any to any in recv ed0
00070 0 0 allow udp from 95.107.51.118 87 to 192.168.0.38 in recv ed0
00072 0 0 allow udp from 95.107.51.118 87 to 192.168.0.98 in recv ed0
00085 0 0 allow udp from 94.25.33.59 to 95.107.51.118 87 in recv ed0
00100 0 0 deny tcp from any to any 137
00200 10 780 deny udp from any to any 137
00300 1944 265815 allow ip from any to any
00400 0 0 deny tcp from any to any 3306
00500 0 0 count ip from any to any in recv ed0
00600 0 0 allow ip from any to 84.17.225.15 in
00700 0 0 allow ip from 192.168.0.0/24 to 192.168.0.3 in recv fxp0
00800 0 0 allow ip from 84.17.225.15 to any out
00900 0 0 allow ip from 192.168.0.3 to any out
01000 0 0 allow ip from 192.168.0.0/24 to 84.17.224.0/28 in recv fxp0
01100 0 0 deny ip from 192.168.0.0/24 to any in recv fxp0
01200 0 0 divert 8668 ip from any to any via ed0
65535 0 0 allow ip from any to anyКлиент-банк смогу проверить только завтра. Но кажется чего-то пропущено...
И еще вопрос - как открыть почтовые порты 25 и 110? И где хранятся текущие настройки ipfw? Точнее сохраненные строки - ошибочки в 900, 800 и 600 строках есть. Там внешний ip неверный стоит.
Отвечаю сам себе :)настройки хранятся в файле ipfw.rules
Немного подправил
00050 divert 8668 ip from 192.168.0.38 to 95.107.51.118 out xmit ed0
00052 divert 8668 ip from 192.168.0.98 to 95.107.51.118 out xmit ed0
00053 allow ip from 77.243.3.22 to 192.168.0.98 in recv ed0
00054 allow tcp from 192.168.0.98 to 77.243.3.22 2048 out recv ed0
00060 divert 8668 ip from any to any in recv ed0
00070 allow udp from 95.107.51.118 87 to 192.168.0.38 in recv ed0
00072 allow udp from 95.107.51.118 87 to 192.168.0.98 in recv ed0
00085 allow udp from 94.25.33.59 to 95.107.51.118 87 in recv ed0
00100 deny tcp from any to any 137
00200 deny udp from any to any 137
00300 allow ip from any to any
00400 deny tcp from any to any 3306
00500 count ip from any to any in recv ed0
00600 allow ip from any to 94.25.33.59 in
00700 allow ip from 192.168.0.0/24 to 192.168.0.3 in recv fxp0
00800 allow ip from 94.25.33.59 to any out
00900 allow ip from 192.168.0.3 to any out
01000 allow tcp from 192.168.0.0/24 to any 25,110 in recv fxp0
01100 allow ip from 192.168.0.0/24 to 94.25.33.59/28 in recv fxp0
01200 deny ip from 192.168.0.0/24 to any in recv fxp0
01300 divert 8668 ip from any to any via ed0
65535 allow ip from any to anyЗаодно разрешил почту по 25 и 110 портам (строка 1000). Хотя меня больше волнует порт 2048. Проверить клинт-банк смогу только завтра.
И что такое fxp0? Наверно вместо него должно быть ed0 (интерфейс который смотрит в интернет)?
>[оверквотинг удален]
>01100 allow ip from 192.168.0.0/24 to 94.25.33.59/28 in recv fxp0
>01200 deny ip from 192.168.0.0/24 to any in recv fxp0
>01300 divert 8668 ip from any to any via ed0
>65535 allow ip from any to any
>
>Заодно разрешил почту по 25 и 110 портам (строка 1000). Хотя меня
>больше волнует порт 2048. Проверить клинт-банк смогу только завтра.
>
>И что такое fxp0? Наверно вместо него должно быть ed0 (интерфейс который
>смотрит в интернет)?Вообще то есть несколько видов правил: для входящего интерфейса, исходящего интерфейса, внутренней петли. Вы для почты прописали разрешение на входящий трафик по внутреннему интерфейсу, а надо бы исходящий трафик. Попробуйте убрать запись "in recv fxp0". А вообще совет запустить tcpdump и смотреть как проходят пакеты или ставить правило allow log all from any to any и смотреть как проходят пакеты. Для затравки гляньте http://www.freebsd.org/doc/en/books/handbook/firewalls-ipfw.... Вас интересует общая часть и пример с NAT.