Настройка ftp сервера на FreeBSD 10.X, на примере vsftpd
Установку vsftpd произведём командой
pkg install vsftpd-ssl
так-же необходимо установить Midnight Commander
pkg install mc
Запустите Midnight Commander командой
mc
и откройте файл, с помощью клавиши F4, rc.conf в каталоге /etc, и внесите туда следующие изменения
firewall_enable="YES"
firewall_script="/etc/0.sh"
vsftpd_enable="YES"
сохраните изменение клавишей F2
Далее необходимо отредактировать файл vsftpd.conf, который находится в паке /usr/local/etc, внесите туда следующие изменения
pasv_enable=YES
pasv_min_port=65000
pasv_max_port=65500
allow_writeable_chroot=YES
поставьте символ # перед строкой listen=NO
удалите символ # перед строкой listen=YES, background=YES, chroot_local_user=YES, local_enable=YES
В данной конфигурации к серверу будет предоставлен анонимный доступ, доступ локальных пользователей и доступ по протоколу sftp(у пользователя который подключится под данным протоколом будет возможность просматривать практически все каталоги на сервере), что-бы отключить возможность подключаться по протоколу sftp необходимо открыть файл sshd_config который распологается в каталоге /etc/ssh/, и добавить символ # перед строкой Subsystem и сохранить изменение клавишей F2
Для того что-бы изменения вступили в силу необходимо перезагрузить службу sshd командой
service sshd restart
Осталось создать скрипт с правилами firewall, запустить службы vsftpd и ipfw, для создания скрипта правил введите
vi /etc/0.sh
далее необходимо нажать клавишу i и ввести то что указанно ниже
ipfw -q -f flush
c="ipfw -q add "
$c 00020 allow tcp from any to me 22 setup keep-state
$c 00025 allow tcp from any to me 21 setup keep-state
$c 00026 allow tcp from any to me 65000-65500 keep-state
$c 00030 allow tcp from me to any 443 setup keep-state
$c 00030 allow tcp from me to any 80 setup keep-state
$c 00040 allow tcp from me to any 21 setup keep-state
$c 00045 allow tcp from me to any 65000-65500 keep-state
$c 00050 allow icmp from any to any keep-state
$c 00060 allow tcp from me to any 53 keep-state
$c 00070 allow udp from me to any 53 keep-state
$c 65000 allow tcp from any to any established
$c 65010 allow tcp from any to any related
$c 65020 deny udp from any to any
$c 65534 deny tcp from any to any
$c 65535 deny ip from any to any
(если к серверу подключаетесь с помощью программы putty, то можно скопировать данный скрипт и вставить, правой кнопкой мыши, непосредственно в редактор vi, в режиме редактирования, тоесть после нажатия клавиши i)
Сохраните изменение, последовательно нажав ESC :wq и нажмите Enter
Выставим права на скрипт для root
chmod 700 /etc/0.sh
Запустим службу vsftpd и ipfw(firewall)
service vsftpd start
service ipfw start
На этом всё, анонимный и для локальных пользователей ftp сервер готов!