LinuxForum.Fans
Тема

Proftpd FreeBSD 8

Автор: Dimas 9 сообщений 7475 просмотров
#59244

Оригинал статьи http://www.unixlife.net/?p=27

Часто возникает у многих вопрос о настройке фтп сервера на FreeBSD, может быть кому поможет.

Наш фтп сервер мы постоим на базе Proftp с авторизацией при помощи системных пользователей к их рабочим папкам, при помощи логина и пароля без внесения пользователя в систему, а так же авторизация анонимного пользователя. Для наглядности пользователь с аунтификацией взят test и паролем test, анонимные пользователи попадают в папку /mnt/upload/pub, зарегестрированные в сисстеме пользователи попадают в свои домашние рабочие каталоги (обычно это /home/user), наш пользователь test попадает в папку /mnt/upload

1. Устанавливаем Proftpd из портов

text
make -C /usr/ports/ftp/proftpd install clean

2. Редактируем файл /usr/local/etc/proftpd.conf

text
ServerName "MY FTP"
ServerType standalone
DefaultServer on
MaxInstances 30
Port 21
UseReverseDNS off
IdentLookups off
DefaultRoot ~
ServerIdent off
RequireValidShell off
User nobody
Group nobody
SystemLog /var/log/proftpd/system.log
TransferLog /var/log/proftpd/transfer.log
ExtendedLog /var/log/proftpd/extended.log
ScoreboardFile /var/run/proftpd/proftpd.scoreboard
AuthUserFile /usr/local/etc/ftpd.passwd
AuthGroupFile /usr/local/etc/ftpd.group
DefaultRoot ~
<Directory /mnt/upload>
<Limit STOR APPE WRITE DELE>
AllowUser test
DenyAll
</Limit>
<Limit DELE SITE_CHMOD>
AllowUser test
DenyAll
</Limit>
</Directory>
<Anonymous /mnt/upload/pub>
User anonftp
Group anonftp
UserAlias anonymous anonftp
MaxClients 40 "Sorry, SERVER OVERLOADED."
MaxClientsPerHost 10 "Sorry, maximum connects from ONE HOST."
ShowSymlinks off
<Limit WRITE>
DenyAll
</Limit>
<Limit LOGIN>
Order deny,allow
Allow from all
</Limit>
</Anonymous>

3. При помощи скрипта http://www.castaglia.org/proftpd/contrib/ftpasswd создаем наших пользователей в фаиле /usr/local/etc/ftpd.passwd командой:

text
ftpasswd  --file /usr/local/etc/proftpd/ftp.passwd --name test --shell /bin/false --passwd --home /mnt/upload --uid 222 --gid 65534

Скрипт попросит вас указать пароль пользователю и подтвердить его. (У нас это test test)

4. Далее в /usr/local/etc/ftpd.group добавим строку test:x:65534:

Фаилы [url=ftp://ftp.passwd]ftp.passwd[/url] и ftpd.group создаем вручную.

5. Пропишем в /etc/shells строку /bin/false

6. Для анонимных пользователей вносим в файл /usr/local/etc/ftpd.passwd строку:

text
anonftp:*:65534:65534::/mnt/upload:/sbin/nologin

7. А так же в usr/local/etc/ftpd.group вносим anonftp:x:65534::x:65534:

8. Добавляем в в /etc/rc.conf строку:

proftpd_enable=YES

9. Пробуем запустить /usr/local/etc/rc.d/proftpd start

10. Если все запустилось без ошибок, то проверяем работу демона sockstat | grep 21 и увидим примерно следующее:

nobody proftpd 18417 0 tcp4 6 *:21 *:*

11. Можем проверять работу фтп сервера любым клиентом.

P.S. Ошибки обычно возникают из за неправильного синтаксиса, проверяйте правильность логина пользователя и путь к его папке. А так же наличие необходимых прав на папку.

P.S.S. Конструктивная критика приветствуется, вместе сумеем довести статью до ума )

#59262
Dimas написал:
P.S.S. Конструктивная критика приветствуется, вместе сумеем довести статью до ума )

ИМХО всё верно. Только оно и для Linux подойдёт. Для Slackware почти без всяких изменений.

#219747

не плохо было бы добавить настройки TLS

#219784

morphay, а зачем в FTP TLS? Я вот в таких случаях юзаю SSH. А то, TLS оно знаете-ли несекьюрно.... Да и возится с этими сертификатами... Да и зачем вообще огород городить?

#220030
drBatty написал:
Да и зачем вообще огород городить?

подождите, так а зачем вообще тогда ftp?
мы же тут вроде ftp программу разбираем... я думал это одно из преимуществ proftpd

#220034

я вот активировал данную фичу, но когда соединяюсь, то нет прав на редактирование папок файлов...
а если соединяюсь под тем же логином, но без TLS, то все необходимые права присутствуют...

не подскажите где я накосячил?

text

ServerName                      "ProFTPD Default Installation"
ServerType                      standalone
DefaultServer                   on
ScoreboardFile          /var/run/proftpd/proftpd.scoreboard
Port                            21
UseIPv6                         on
Umask                           022
MaxInstances                    30
CommandBufferSize       512
CommandBufferSize       512
User                            nobody
Group                           nogroup
AllowOverwrite          on
<Limit SITE_CHMOD>
  AllowAll
</Limit>

<IfModule mod_tls.c> TLSEngine on TLSLog /var/log/proftpd/proftpd-tls.log TLSProtocol SSLv3 TLSOptions NoCertRequest TLSRSACertificateFile /usr/local/etc/proftpd_ssl/proftpd.cert.pem TLSRSACertificateKeyFile /usr/local/etc/proftpd_ssl/proftpd.key.pem TLSVerifyClient on TLSRequired off </IfModule>

<Global> AllowOverwrite on RootLogin on </Global>

#220035
morphay написал:
подождите, так а зачем вообще тогда ftp?

1. FTP, это единственный нормальны протокол передачи файлов, который понимает другая ОС. Просто воткнул провод, и качай прямо проводником. Быстро и просто.
2. лично мне часто приходится туда-сюда гонять сотни метров, причём уже зашифрованных файлов. Не вижу никакого смысл использовать тут ещё и TLS или другие средства защиты.
3. насколько я понял, TLS с самоподписанным сертификатом ничем не лучше, а даже хуже того-же SSH. Смысл? Ну а подписанный серт стОит денег.
Это минусы. Плюсов я не вижу, но было-бы конечно интересно. Тогда попробую привернуть, о результатах отпишусь. Вы действительно правы - почему-бы не привернуть, если есть желание, и возможность?

#220040
drBatty написал:
2. лично мне часто приходится туда-сюда гонять сотни метров, причём уже зашифрованных файлов. Не вижу никакого смысл использовать тут ещё и TLS или другие средства защиты.

я особо не сведущ в этих вопросах, но все же интересно, без использования tls разве пароль шифруется?

#220042
morphay написал:
я особо не сведущ в этих вопросах, но все же интересно, без использования tls разве пароль шифруется?

нет, не шифруется. В принципе его можно перехватить (хотя и сложно, если только вы не админ моего ISP), и стянуть с меня все зашифрованные файлы. А что дальше?

Войдите или зарегистрируйтесь, чтобы ответить.