У меня чертовски много времени на создание набора правил pf для FTP.
Я пытаюсь сделать следующее:
Разрешить только $ WHITELIST подключаться к FTP-порту 21
Открытые порты 49152-65535 для диапазона пассивных портов
Кто-нибудь может мне с этим помочь?
Я пытался :
FTPWHITELIST = "локальный хост, XX.XX.XX.XX"
быстро передать протокол TCP $ EXT_IF из {$ FTPWHITELIST} в XX.XX.XX.XX порт 21 сохранить состояние
быстро передать $ EXT_IF proto tcp от {$ FTPWHITELIST} к XX.XX.XX.XX порт 49512> <65535 сохранить состояние
Вы пробовали то, что упомянуто в FAQ:
http://www.openbsd.org/faq/pf/ftp.html
FTP - довольно запутанный алгоритм, который развивался на протяжении десятилетий (он был создан в 1971 году), а брандмауэры (и даже TCP / IP) еще не изобретены, поэтому заставить его работать может быть проблематично.
Постарайтесь убедиться, что вы используете «пассивный» режим на своих клиентах.
Если возможно, попробуйте использовать HTTP / S или SFTP (SSH FTP), если это возможно. Они оба намного чище и современнее.
Чтобы разрешить только $ FTP WHITELIST, вам необходимо заблокировать весь остальной трафик до:
# WARNING! DO NOT use this snippet on production until you completely understand it
block in on $EXT_IF
pass in quick on $EXT_IF proto tcp from { $FTPWHITELIST } to XXX port 21 keep state
...