Доброго времени суток уважаемые форумчане. Вопрос в следующем, имеется сервак (отдельная машина) ftp под виндой.
Задача: сделать его под FreeBSD, как это лучше осуществить? Как все файлы имеющиеся на дисках (а это порядка 3Тб) подчинить=) proftpd? Что почитать???
Спасибо
ftp под FreeBSD
Модератор: arachnid
-
- Сообщения: 45
- ОС: Win)
ftp под FreeBSD
"Системный программист - это дятел-долбёжник."
Зеленский В.П.
Зеленский В.П.
-
- Сообщения: 433
- ОС: FreeBSD 8.2, ArchLinux
Re: ftp под FreeBSD
paxic писал(а): ↑08.01.2010 22:19Доброго времени суток уважаемые форумчане. Вопрос в следующем, имеется сервак (отдельная машина) ftp под виндой.
Задача: сделать его под FreeBSD, как это лучше осуществить? Как все файлы имеющиеся на дисках (а это порядка 3Тб) подчинить=) proftpd? Что почитать???
Спасибо
Написать конфиг для proftpd (кстати сейчас proftpd прекрасно поддерживает перекодировку) смонтировать ntfsные диски в систему. Задача тривиальная. Но лучше все таки переписать с ntfsных разделов информацию на ufs2. Или Вам требуется пошаговая инструкция? Если сильно нужно могу написать в виде статьи...
-
- Сообщения: 45
- ОС: Win)
Re: ftp под FreeBSD
Буду признателен за статью
"Системный программист - это дятел-долбёжник."
Зеленский В.П.
Зеленский В.П.
-
- Сообщения: 45
- ОС: Win)
Re: ftp под FreeBSD
Буду весьма признателен за статью
"Системный программист - это дятел-долбёжник."
Зеленский В.П.
Зеленский В.П.
-
- Сообщения: 433
- ОС: FreeBSD 8.2, ArchLinux
Re: ftp под FreeBSD
Создание простого FTP сервера на базе FreeBSD.
Задачи:
1. Смонтировать в систему NTFS разделы.
2. Установить и настроить FTP сервер PROFTPD.
Исходим из того, что имеется система с установленной FreeBSD. В системе консоль настроена на koi8-r кодировку, и имеется пользователь с локалью ru_RU.KOI8-R.
Монтируем NTFS:
Для того чтобы смонтировать NTFSный раздел нужно воспользоваться командой:
mount_ntfs -CKOI8-R /dev/ad4s1 /mnt/winC/
Где - -CKOI8-R - опция которая обеспечит перекодирвку в текущую локаль (она у нас KOI8-R), /dev/ad4s1 - собственно NTFS раздел, /mnt/winC - каталог в который будет смонтирован NTFS раздел. NTFS раздел будет доступен только для чтения. Для записи в раздел придется использовать fusefs - ntfs3g, но более правильный подход использовать UFS2 как изначальную файловую систему для FreeBSD, т.е. располагать файлы в UFS2, а NTFS не использовать.
Устанавливаем proftpd:
Устанавливаем proftp из портов, при конфигурировании опций обязательно должна быть включена опция "Use nls (builds mod_lang)". Сборка с этой опцией нужна для того чтобы обеспечить перекодировку имен файлов из cp1251 (для виндовых клиентов) в koi8-r. После того как proftpd собрана и готова к работе, следует сформировать конфигурационный файл.
/usr/local/etc/proftpd.conf :
Рассмотрим некоторые параметры подробнее:
LangEngine On
UseEncoding koi8-r cp1251
Эти опции включают перекодировку имен файлов из koi8-r в cp1251.
AuthUserFile /usr/local/etc/ftpd.passwd
AuthGroupFile /usr/local/etc/ftpd.group
Эти параметры указывают откуда брать логины пользователей для соединения, в нашем случае пользователь всего один (anonftp) и содержимое файлов будет таким:
ftpd.passwd:
anonftp:*:65534:65534::/mnt/winC/Games:/sbin/nologin
ftpd.group
anonftp:x:65534:
Фактически идентификаторы пользователя и группы anonftp указывают на nobody.
<Anonymous /mnt/winC/Games>
Указывает на корневой каталог ftp сервера. Подключившись к фтп серверу мы увидим в доступе наш смонтированный ntfsный раздел.
P.S. В конфиге не исключены какие либо недочеты... На статью конечно не очень тянет
. Описывать подробно времени нет.
Задачи:
1. Смонтировать в систему NTFS разделы.
2. Установить и настроить FTP сервер PROFTPD.
Исходим из того, что имеется система с установленной FreeBSD. В системе консоль настроена на koi8-r кодировку, и имеется пользователь с локалью ru_RU.KOI8-R.
Монтируем NTFS:
Для того чтобы смонтировать NTFSный раздел нужно воспользоваться командой:
mount_ntfs -CKOI8-R /dev/ad4s1 /mnt/winC/
Где - -CKOI8-R - опция которая обеспечит перекодирвку в текущую локаль (она у нас KOI8-R), /dev/ad4s1 - собственно NTFS раздел, /mnt/winC - каталог в который будет смонтирован NTFS раздел. NTFS раздел будет доступен только для чтения. Для записи в раздел придется использовать fusefs - ntfs3g, но более правильный подход использовать UFS2 как изначальную файловую систему для FreeBSD, т.е. располагать файлы в UFS2, а NTFS не использовать.
Устанавливаем proftpd:
Устанавливаем proftp из портов, при конфигурировании опций обязательно должна быть включена опция "Use nls (builds mod_lang)". Сборка с этой опцией нужна для того чтобы обеспечить перекодировку имен файлов из cp1251 (для виндовых клиентов) в koi8-r. После того как proftpd собрана и готова к работе, следует сформировать конфигурационный файл.
/usr/local/etc/proftpd.conf :
Код: Выделить всё
ServerName "MYFTP"
ServerType standalone
DefaultServer on
MaxLoginAttempts 20
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
LangEngine On
UseEncoding koi8-r cp1251
AccessDenyMsg "FTP server use only `anonymous` user name"
AccessGrantMsg "Welcome to MY FTP server"
<Limit LOGIN>
DenyAll
</Limit>
<Directory /*>
<Limit SITE_CHMOD>
DenyAll
</Limit>
</Directory>
<Anonymous /mnt/winC/Games>
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>
Рассмотрим некоторые параметры подробнее:
LangEngine On
UseEncoding koi8-r cp1251
Эти опции включают перекодировку имен файлов из koi8-r в cp1251.
AuthUserFile /usr/local/etc/ftpd.passwd
AuthGroupFile /usr/local/etc/ftpd.group
Эти параметры указывают откуда брать логины пользователей для соединения, в нашем случае пользователь всего один (anonftp) и содержимое файлов будет таким:
ftpd.passwd:
anonftp:*:65534:65534::/mnt/winC/Games:/sbin/nologin
ftpd.group
anonftp:x:65534:
Фактически идентификаторы пользователя и группы anonftp указывают на nobody.
<Anonymous /mnt/winC/Games>
Указывает на корневой каталог ftp сервера. Подключившись к фтп серверу мы увидим в доступе наш смонтированный ntfsный раздел.
P.S. В конфиге не исключены какие либо недочеты... На статью конечно не очень тянет

-
- Сообщения: 45
- ОС: Win)
Re: ftp под FreeBSD
AlexNT, я уже говорил как-то что ты мой персональный Бог))))))))))))
Огромное спасибо. Возникнут вопросы, я их незамедлительно сюда помещу.
Огромное спасибо. Возникнут вопросы, я их незамедлительно сюда помещу.
"Системный программист - это дятел-долбёжник."
Зеленский В.П.
Зеленский В.П.
-
- Сообщения: 137
- Статус: FreeBSD
Re: ftp под FreeBSD
ftpd.passwd:
anonftp:*:65534:65534::/mnt/winC/Games:/sbin/nologin
А если чувак захочет еще и юзера test с паролем test и полным доступом к папке /mnt/test
То как добавлять будем ? Просто посмотрел конфиг, все просто и со вкусом

-
- Сообщения: 433
- ОС: FreeBSD 8.2, ArchLinux
Re: ftp под FreeBSD
http://www.bsdnotes.ru/files/ftpasswd
ссылка на скрипт который генерирует пользователя с паролем в заданный файл...
Придется еще дать разрешение на соед. этому пользователю:
...
<Limit LOGIN>
Allow test
DenyAll
</Limit>
...
Следующий пользователь указывается через запятую...
Фактически если же убрать из конфига строки:
AuthUserFile /usr/local/etc/ftpd.passwd
AuthGroupFile /usr/local/etc/ftpd.group
То proftpd будет использовать системных пользователей со всеми вытекающими...
-
- Сообщения: 137
- Статус: FreeBSD
Re: ftp под FreeBSD
AlexNT, спасибо... подчерпнул для себя необходимую информацию 

-
- Сообщения: 137
- Статус: FreeBSD
Re: ftp под FreeBSD
По советам AlexNT, реализовал ProFTPD сервер с доступом к анонимных юзеров так и с пользователями по логину и паролю, без внесения учетных записей в систему, что очень удобно
Для наглядности пользователь с аунтификацией взят test и паролем test. Вот конфиг proftpd.conf
При помощи скрипта http://www.bsdnotes.ru/files/ftpasswd создаем наших пользователей в фаиле /usr/local/etc/ftpd.passwd
Скрипт попросит вас указать пароль пользователю и подтвердить его.
Далее в /usr/local/etc/ftpd.group добавим строку
Я прописал в /etc/shells
строку либо , но можно и не делать при наличии в proftpd.conf строки
Для анонимных пользователей вносим в /usr/local/etc/ftpd.passwd
А так же в /usr/local/etc/ftpd.group
Ну вот собственно и все
Для наглядности пользователь с аунтификацией взят test и паролем test. Вот конфиг proftpd.conf
Код: Выделить всё
ServerName "MY FTP"
ServerType standalone
DefaultServer on
MaxLoginAttempts 20
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>
При помощи скрипта http://www.bsdnotes.ru/files/ftpasswd создаем наших пользователей в фаиле /usr/local/etc/ftpd.passwd
Код: Выделить всё
ftpasswd --file /etc/proftpd/ftp.passwd --name test --shell /bin/false --passwd --home /mnt/upload --uid 222 --gid 65534
Скрипт попросит вас указать пароль пользователю и подтвердить его.
Далее в /usr/local/etc/ftpd.group добавим строку
Код: Выделить всё
test:x:65534:
Я прописал в /etc/shells
строку
Код: Выделить всё
/bin/false
Код: Выделить всё
/sbin/nologin
Код: Выделить всё
RequireValidShell off
Для анонимных пользователей вносим в /usr/local/etc/ftpd.passwd
Код: Выделить всё
anonftp:*:65534:65534::/mnt/upload:/sbin/nologin
А так же в /usr/local/etc/ftpd.group
Код: Выделить всё
anonftp:x:65534::x:65534:
Ну вот собственно и все
