The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]

Особенности использование ftp из-за фаервола ipfw/natd
Необходимо выпустить пользователей на ftp сайты из локальной сети, но при этом не устанавливая 
дополнительного ПО, используя только возможности FreeBSD 4.10.
Этими возможностями, как ни странно, оказались ipfw и natd 
вот собственно как все это прописывается.

Исходные данные, FreeBSD 4.10 + настроенный nat правила для ipfw 
   ipfw -q add 100 divert natd from 192.168.20.0/24 to any 20, 21 out via $oif 
   ipfw -q add 200 divert natd from any 20, 21 to $iip in via $oif 
   ipfw -q add 300 allow tcp from any to any established 
   ipfw -q add 400 allow tcp from any to any setup 
где $oif и $iip соответственно внешний интерфейс и внешний IP 

теперь запускаем natd 
   /sbin/natd -m -s -u -punch_fw 500:200 -n xl1

заострю внимание на параметре "-punch_fw" -этот параметр создает в фаерволе "ходы", 
добавляя динамические правила. В моем случае эти правила начнутся с номера 500
и будет их добавлено
максимум 200 (понятно чем больше сеть, те больше нужно правил).

Особое спасибо A Clockwork Orange.
 
06.09.2004 , Автор: globus
Ключи: freebsd, ftp, nat, ipfw / Лицензия: CC-BY
Раздел:    Корень / Администратору / Сетевые сервисы / FTP, Bittorrent

Обсуждение [ Линейный режим | Показать все | RSS ]
  • 1.1, MoHaX (ok), 06:25, 09/09/2004 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Я чего-то не понял, во эта строчка
    ipfw -q add 400 allow tcp from any to any setup
    открывает доступ ко всем портам? Если да то это помоему не безопастно... Или я ошибаюсь?
     
     
  • 2.2, Аноним (2), 19:50, 27/09/2004 [^] [^^] [^^^] [ответить]  
  • +/
    Все гораздо хуже
    setup пропускает SYN пакеты.
    eslablished - пакеты с ACK'ами.

    В итоге мы имеем allow на любую TCP сессию. ПЫП.

    Поясняю ин-рашан: ко всему, что работает по TCP доступ открыт.

     
     
  • 3.6, PASHA (?), 22:24, 08/01/2006 [^] [^^] [^^^] [ответить]  
  • +/
    >Все гораздо хуже
    >setup пропускает SYN пакеты.
    >eslablished - пакеты с ACK'ами.

    А если мы добавим вот это?:
    ${ipfw} add 60 deny tcp from any to any not established tcpflags fin
    ${ipfw} add 70 deny tcp from any to any tcpflags fin,syn,rst,psh,ack,urg
    ${ipfw} add 80 deny tcp from any to any tcpflags !fin,!syn,!rst,!psh,!ack,!urg


     

  • 1.3, globus (ok), 07:39, 29/10/2004 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    а кто сказал что на этой тачке есть сервисы запущенные ?
     
  • 1.4, Mitry (?), 17:27, 07/01/2005 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    если мы заменим
    ipfw -q add 400 allow tcp from any to any setup
    на
    ipfw -q add 2000 deny tcp from any to any setup in via $oif

    то получим не только возможность работы по ftp из локалки, но и "немного" закрытый снаружи файервол.

     
  • 1.5, Гость (?), 18:48, 05/09/2005 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Откровенный бред.
    Вас еще не сломали? тогда мы идем к вам :-)
     
  • 1.7, Александр (??), 18:41, 07/02/2006 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    А если сделать?:
    ipfw -q add 300 allow tcp from any to $iip 20,21 established
    ipfw -q add 350 allow tcp from $iip 20,21 to any established
    ipfw -q add 400 allow tcp from any to $iip 20,21 setup
    ipfw -q add 450 allow tcp from $iip 20,21 to any setup
     
     
  • 2.8, Stefman (?), 16:04, 30/05/2006 [^] [^^] [^^^] [ответить]  
  • +/
    В этом случае пассивный FTP не работает. Данные идут по >1023 портам. 20-й порт не используется вообще
     

  • 1.9, Bani (?), 17:30, 19/10/2006 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    нихера не помогает то что ты написал, как не входит так и не входит, есть ешё что нить для решения задачи?
     
  • 1.10, Dzmitry (??), 13:48, 09/10/2008 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
       ipfw -q add 300 allow tcp from any to any established
       ipfw -q add 400 allow tcp from any to any setup

    Не пугайте людей.
    Сначала setup, потом established?

    Это равносильно allow all from any to any!

     
  • 1.11, agape (?), 12:42, 13/08/2009 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Все-таки, как сделать, чтобы работало? У меня не работает. Написал вот что:

    rc.conf:
    ...
    natd -p 8671 -f /etc/natd.conf -n ${prov1} -punch_fw 10000:200
    ...

    rc.firewall:
    ...
    prov1="rl2"
    fwcmd="ipfw -q add"
    ...
    ${fwcmd} 9500 divert 8671 ip4 from any to any 20,21 out xmit ${prov1}
    ${fwcmd} 9510 divert 8671 ip4 from any 20,21 to any in recv ${prov1}
    ${fwcmd} 9540 allow tcp from any to any established
    ${fwcmd} 9550 count tcp from any to any setup
    ...
    ${fwcmd} 60000 deny log logamount 20000 ip from any to any
    ...

    Судя по логу видно, что на фаер прилетают запросы на 21 порт, который фаер банит. Дописал:
    ${fwcmd} 9560 allow tcp from any to any 20,21
    В логе фаера ошибки исчезли, но соединение не происходит и в логах ftp-сервера видно, что авторизация на сервере происходит до того момента как клиент попытается "создать в фаерволле ходы" :(

     
  • 1.12, agape (?), 06:38, 14/08/2009 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    А вообще оно работает? Пробовал написать даже так:
    allow tcp from any to any 20,21,1024-65535
    allow tcp from any 20,21,1024-65535 to any
    И вообще вот так:
    allow tcp from any to any
    allow tcp from any to any
    Пофиг! Разница только в том, что если я разбаниваю эти порты, коннект отлетает не на команде PORT (куча_цифр) а на команде LIST с сообщением 425 Unable to open the data connection

    Оно вообще из-за nat-а работает?!

     
  • 1.13, agape (?), 06:43, 14/08/2009 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    А вообще не очень понятно, чем был плох старый стандарт, когда коннект происходил по 21 порту, а данные лились по 20? Какого х*** потребовалось изобретать этот е****** кретинский режим работы, из-за которого у админов одна только е***** и еще х** знает с каким результатом? Что вообще позитивного внесли эти дегенераты, которые этот стандарт придумали?
     

     Добавить комментарий
    Имя:
    E-Mail:
    Заголовок:
    Текст:




    Спонсоры:
    Слёрм
    Inferno Solutions
    Hosting by Ihor
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2019 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру