Компьютерная помощь
Сайт комнаты "Компьютерная помощь"

Поднимаем FTP сервер за 10 минут

Системы *nix » Помощь, настройка | 16 июля 2016 г.

Многие наверняка задумывались на тему создания собственного FTP сервера... Для того чтоб просто временно расшарить некоторые ресурсы, либо для создания постоянно действующего ФТП... но назначение по сути нам не важно...

Также можно отметить что наверняка многие задумывались в целях повышения надёжности и отказоустойчивости организовать сие мероприятие на базе какой-нить *nix системы...

В данной статье я покажу как создать анонимный ФТП сервер на базе довольно популярного демона ProFTPd и дистрибутива Gentoo Linux (в отличных от gentoo дистрибутивах разница будет только в установке пакета и расположении init-скрипта для запуска сервера).

Итак.. Начнём.. Для начала нам нужно установить сам демон. Тут же сразу возникает первый нюанс. Чтобы у нашего сервера работал анонимный доступ, мы должны исключить из сборки поддержку acl, для чего используем USE-флаг -acl при сборке... также можно включить поддержки фалов антивирусом clamav при загрузке. (все флаги для данного пакета можно узреть набрав команду emerge -pv proftpd). Определившись с тем что нам надо и что ненадо, входим в консоль как root (команда su) и набираем нечто вроде:

USE="-acl clamav" emerge proftpd

#в отличных от gentoo дистрибутивах установка осуществляется с помощью родного для того дистрибутива менеджера пакетов, например apt-get (sudo apt-get install proftpd) или RPM (rpm -i <путь к prm-пакету с proftpd>

После окончания сборки у нас автоматом создаётся пользователь и группа с идентичными именами - ftp. Удалять их не в коем разе нельзя, ибо как можно догадаться в противном случае наш сервер не заработает. Теперь используя любой текстовый редактор (обязательно запущенный от имени root) открываем файл /etc/proftpd/proftpd.conf и собственно начинаем составлять конфиг... Я приведу пример конфига для анонимного фтп с 2мя каталогами (upload с доступом на запись и download с доступом только на чтение)

ServerName "My FTP Server" #имя сервера
ServerType standalone #тип сервера (возможные варианты - standalone, inetd)
DefaultServer on #использовать это файл конфига по умолчанию
PassivePorts 40000 40500 #указываем диапазон пассивных портов, выдаваемых сервером
Port 21 #указываем через какой порт будет осуществлён доступ с серверу
DefaultAddress 192.168.1.2 #данная строка нужна с случае если у вас Ethernet подключение к интернету..
#В ней указывается адрес выдаваемый вам роутером
ServerIdent on "Welcome to DimoSoft FTP-Server!" #строка приветствия
Umask 022
MaxInstances 30
TimeoutLogin 120
TimeoutIdle 600
TimeoutNoTransfer 900
TimeoutStalled 3600
User ftp
Group ftp
UseReverseDNS off
ScoreboardFile /var/run/proftpd/proftpd
TransferLog /var/log/proftpd/xferlog.legacy
LogFormat default "%h %l %u %t \"%r\" %s %b"
LogFormat auth "%v [%P] %h %t \"%r\" %s"
LogFormat write "%h %l %u %t \"%r\" %s %b"

<Global>
    AllowOverwrite yes
    IdentLookups off
    ExtendedLog /var/log/proftpd/access.log WRITE,READ write
    ExtendedLog /var/log/proftpd/auth.log AUTH auth
</Global>

<IfModule mod_clamav.c> # Включаем проверку антивирусом ClamAV (clamd должен быть запущен)
    ClamAV on
    ClamLocalSocket /tmp/clamd
</IfModule>

<Limit LOGIN> #разрешаем анонимный вход на сервер
    AllowAll
</Limit>

<Anonymous /usr/ftp> #Делаем анонимный вход корневая папка /usr/ftp
    User ftp
    Group ftp
    UserAlias anonymous ftp
    MaxClients 10 "Sorry, but max %m fuckin's users - try again later" #максимальное количество пользователей на сервере и сообщение для пытающихся подключится в случае максимальной "населённости" сервера
    RequireValidShell no
    <Limit WRITE>
        DenyAll
    </Limit>

    <Limit CWD DIRS READ LIST> # разрешаем чтение корня фтп, запрещаем запись
        AllowAll
    </Limit>
    <Limit WRITE>
        DenyAll
    </Limit>

    <Directory /usr/ftp/upload/*> #Папка Upload и права на нее
        <Limit READ RETR GET WRITE STOR CWD MKD RMD DELE>
            AllowAll
        </Limit>
        <Limit READ>
            DenyAll
        </Limit>
    </Directory>

    <Directory /usr/ftp/download/*> # Папка Download и права на нее
        <Limit READ CWD RETR CWD>
            AllowAll
        </Limit>
        <Limit WRITE>
            DenyAll
        </Limit>
    </Directory>

</Anonymous>

На этом конфигурирование можно считать законченным... сохраняем изменения и выходим. Более детальную информацию о настройке можно узреть в man proftpd. Теперь мы должны заполнить наш ФТП необходимым содержимым и дать ему дорогу в жизнь командой:

/etc/init.d/proftpd start

#для других дистрибутивов место дислокации этого сценария может быть иным, например /etc/rc.d или /etc/system.d

Ну вот собственно и всё. ФТП настроен и готов к приёму гостей... Удачного полёта.

Автор: WindowsMustDie

twitter.com facebook.com vkontakte.ru odnoklassniki.ru mail.ru yandex.ru

При цитировании, копировании, клонировании материалов с сайта целиком или частично, ссылка на страницу, откуда был скопирован материал, обязательна! При нарушении данных условий прошу незамедлительно удалить со своих ресурсов скопированный материал. Администрация сайта.



Комментариев: 0

    Оставьте комментарий!

    Используйте нормальные имена

    Вы можете войти под своим логином или зарегистрироваться на сайте.

    (обязательно)