Как отключить ftp сервер linux

Основные FTP команды в Linux

FTP (File Transfer Protocol — протокол передачи файлов) — это популярный сетевой протокол, который используется для копирования файлов с одного компьютера на другой в локальной сети, либо в сети Интернет. FTP является одним из старейших прикладных протоколов, появившимся задолго до HTTP, и даже до TCP/IP, в 1971 году.

Протокол FTP уязвим, то есть FTP не может зашифровать свой трафик, все передачи — открытый текст, поэтому имена пользователей, пароли, команды и данные могут быть прочитаны кем угодно, способным перехватить пакет по сети. Для безопасной передачи данных, используется протокол SFTP (Secure File Transfer Protocol). В отличие от стандартного FTP он шифрует и команды, и данные, защищая пароли и конфиденциальную информацию от открытой передачи через сеть. По функциональности SFTP похож на FTP, но так как он использует другой протокол, клиенты стандартного FTP не могут связаться с SFTP-сервером и наоборот. Далее рассмотрим основные команды для работы с FTP программой.

FTP соединение

FTP клиент входит в большинство дистрибутивов Linux. Начнем с запуска программы и ftp соединением и, конечно, рассмотрим основные команды для скачивания с фтп-сервера и загрузки на фтп, создание директорий, удаление файлов и т.п. В этой статье опишем лишь основные команды, а в конце статьи приведем хелп и мануал из консоли — Вы всегда можете узнать о назначении команды и ее синтаксисе, а также обо всех доступных командах на конкретном ftp-сервере.

Для начала фтп соединения достаточно ввести команду ftp например:

После нажатия клавиши enter вывод команды будет следующим:

Другой способ для соединения — это запуск ftp из консоли, а после этого соединение с ftp-сервером с помощью команды open :

Кроме того, возможно соединиться и по ip:

Или с таким обращением ftp user@ftp.site.com , то есть:

Далее необходимо ввести логин и пароль ftp-соединения.

После успешной авторизации будет сообщение такого вида:

Из сообщения видно, что для передачи файлов используется двоичный (бинарный) тип передачи. Двоичный режим передачи файлов — это передача файлов в том виде, в котором они хранятся на FTP сервере. Режим Ascii (текстовый) используется для передачи только текстовых файлов. Вы можете вводить команды ascii или binary для переключения между режимами передачи. Бинарный режим (binary) необходимо использовать для всех нетекстовых типов файлов — изображения, архивы, программы и т.д.

Команды для навигации

Итак, перейдем к командам для навигации и перехода по каталогам ftp-сервера:

pwd — команда покажет текущую директорию на ftp-сервере:

ls — команда покажет список файлов и каталогов в текущей директории:

cd – команда для перехода в нужную директорию:

Проверяем командой pwd :

mkdir — создание новой директории (каталога):

rmdir — удаление директории (каталога):

Удаление файлов на ftp сервере

delete — удаляет файл на удаленном ftp сервере:

Скачивание файлов с ftp

get — скачать файл на локальную машину. get fileName или get fileName newFileName

Скачиваем file.zip на локальную машину как file2.zip:

С помощью команды get с удаленного ftp сервера файлы копируются в текущую локальную директорию. Чтобы изменить текущую локальную директорию нужно использовать команду lcd :

lcd – изменить текущую директорию на локальной машине:

Чтобы скачать несколько файлов с удаленного ftp сервера на локальную машину можно использовать команду mget :

Скачивание каждого файла необходимо подтверждать (да / нет) y/n .

Еще один вариант скачивания mget :

Загрузка файлов на ftp сервер

put — команда для загрузки одного файла на ftp сервер:

Для загрузки нескольких файлов сразу можно использовать команду mput :

Загрузку каждого файла необходимо подтверждать y / n (да / нет).

Еще один вариант команды mput :

Если на фтп загружаются файлы большого размера, то неплохо было бы наблюдать за ходом загрузки. Для этого можно использоваться команды hash и tick .

hash — команда после которой ftp будет печатать символ «#» каждые 1024 байт данных:

tick — команда будет отображать счетчик байтов:

Вот и весь базовый набор команд для работы с ftp в консоле. Для просмотра списка доступных команл на данном FTP сервере можно использовать команду help :

Также, можно получить короткую справку по каждой команде help :

И в завершение, две команды, которые выше quit или bye для закрытия ftp-сессии и выхода:

Подробную информацию с описанием команд можно получить с помощью man ftp в командной строке:

Источник

Как отключить ftp сервер linux

Несмотря на прошедшие годы, использование File Transfer Protocol (FTP) является одним из самых популярных способов пересылки файлов с одной машины на другую через сеть. Клиенты и сервера написаны для каждой из популярных платформ присутствующих на рынке, делая таким образом FTP наиболее удобным способом пересылки файлов.

Существует много различных путей настройки вашего FTP сервера. Один из них приватный, только для пользователей системы, который является конфигурацией по умолчанию FTP сервера; приватный FTP сервер позволяет пользователям Linux системы соединиться с сервером по протоколу FTP и получить доступ к их файлам.

Другой тип ftp сервера — анонимный FTP. Такой сервер позволяет кому угодно соединяться с сервером и передавать файлы без получения учетной записи. Из за потенциального риска безопасности системы, должны быть приняты меры, чтобы позволить доступ только к определенным каталогам системы.

Конфигурация, которую мы охватываем здесь, предоставляет FTP полубезопасную область файловой системы (chroot гостевой FTP доступ). Она позволит пользователю получить доступ к каталогу FTP сервера, при этом он не сможет перейти на более высокий уровень. Это наиболее безопасная конфигурация для FTP сервера.

Эти инструкции предполагают.
Unix-совместимые команды.
Путь к исходным кодам «/var/tmp» (возможны другие варианты).
Инсталляция была проверена на Red Hat Linux 6.1 и 6.2.
Все шаги инсталляции осуществляются суперпользователем «root».
wu-ftpd версии 2.6.0

Пакеты.
Домашняя страница Wu-ftpd: http://www.wu-ftpd.org/
FTP сервер Wu-ftpd: 205.133.13.68
Вы должны скачать: wu-ftpd-2.6.0.tar.gz

[root@deep /]# cp wu-ftpd-version.tar.gz /var/tmp
[root@deep /]# cd /var/tmp
[root@deep tmp]# tar xzpf wu-ftpd-version.tar.gz

Компиляция и оптмизация.

Перейдите в новый каталог Wu-ftpd и введите следующие команды на вашем терминале:

Редактируйте файл ftpcount.c (vi +241 src/ftpcount.c) и измените строку:

#if defined (LINUX)
на:
#if defined (LINUX_BUT_NOT_REDHAT_6_0)

Редактируйте файл pathnames.h.in (vi +42 src/pathnames.h.in) и измените строку:

#define _PATH_EXECPATH «/bin/ftp-exec»
на:
#define _PATH_EXECPATH «/usr/bin/ftp-exec»

Мы изменили каталог «/bin/ftp-exec» на «/usr/bin/ftp-exec», для Red Hat Linux.

Читайте также:  Linux права доступа sql

Введите следующие команды на вашем терминале для конфигурирования Wu-ftpd:

CC=»egcs» \
CFLAGS=»-O9 -funroll-loops -ffast-math -malign-double -mcpu=pentiumpro -march=pentiumpro -fomit-frame-pointer -fno-exceptions» \
./configure \
—prefix=/usr \
—sysconfdir=/etc \
—localstatedir=/var \
—disable-dnsretry \
—enable-quota \
—enable-pam \
—disable-daemon \
—disable-newlines \
—disable-virtual \
—disable-plsm \
—disable-pasvip \
—disable-anonymous \
—enable-ls \
—enable-numericuid

Эти опции означают следующее:

  • Не повторять ошибочный DNS lookups для улучшения производительности.
  • Добавить поддержку квот для большей безопасности (только если ваша OS поддерживает это).
  • Добавить поддержку PAM для большей безопасности.
  • Не разрешать запускать, как автономный демон, позволять контролировать FTPD при помощи TCP-Wrappers.
  • Подавлять некоторые дополнительные пустые строки.
  • Не поддерживать виртуальные сервера.
  • Отключить блокирование PID ожидания сообщений (для загруженных серверов).
  • Не требовать идентичного IP для пассивного соединения.
  • Не разрешать анонимный ftp доступ для лучшей безопасности.
  • Использовать новую внутреннюю команду «ls» из Wu-ftpd вместо системной «ls» из Linux для большей безопасности.
  • Внутренняя «ls» выводит UID вместо имен пользователей для лучшей производительности.

Шаг 4

Сейчас, мы должны инсталлировать Wu-ftpd на Linux сервер:

[root@deep wu-ftpd-2.6.0]# make
[root@deep wu-ftpd-2.6.0]# make install
[root@deep wu-ftpd-2.6.0]# install -m 755 util/xferstats /usr/sbin/
[root@deep wu-ftpd-2.6.0]# touch /var/log/xferlog
[root@deep wu-ftpd-2.6.0]# chmod 600 /var/log/xferlog
[root@deep wu-ftpd-2.6.0]# cd /usr/sbin/
[root@deep sbin]# ln -sf in.ftpd /usr/sbin/wu.ftpd
[root@deep sbin]# ln -sf in.ftpd /usr/sbin/in.wuftpd
[root@deep sbin]# strip /usr/bin/ftpcount
[root@deep sbin]# strip /usr/bin/ftpwho
[root@deep sbin]# strip /usr/sbin/in.ftpd
[root@deep sbin]# strip /usr/sbin/ftpshut
[root@deep sbin]# strip /usr/sbin/ckconfig
[root@deep sbin]# strip /usr/sbin/ftprestart

Команды «make» и «make install» настроят программное обеспечение под вашу систему и проверят ее функциональность на наличие необходимых библиотек, скомпилируют все файлы с исходными кодами в исполняемые двоичные программы и проинсталлируют их вместе с сопутствующими файлами в необходимые места.

Команда «install -m» будет инсталлировать программу «xferstats», используемую для просмотра информации о переданных файлах. Команда «touch» создаст файл регистрации для «xferstats» в каталоге «/var/log». «chmod» изменит права доступа к файлу «xferlog» на чтение-запись только пользователю «root». Затем, мы создаем символическую ссылку для исполняемого файла «in.ftpd», и, в заключении, удаляем отладочную информацию из всех исполняемых файлов, относящихся к Wu-ftpd.

Очистка после работы.

[root@deep /]# cd /var/tmp
[root@deep tmp]# rm -rf wu-ftpd-version/ wu-ftpd-version.tar.gz

Команды «rm» будет удалять все файлы с исходными кодами, которые мы использовали при компиляции и инсталляции Wu-ftpd. Также будет удален сжатый архив Wu-ftpd из каталога «/var/tmp».

Настройка бюджета пользователя FTP без командного процессора (shell)

Чрезвычайно важно, чтобы ваши пользователи FTP не имели реального командного процессора. В этом случае, если они по каким-либо причинам смогут покинуть chroot окружение FTP, то не смогут выполнить никаких задач, так как не имеют командного процессора.

Первое, создайте нового пользователя, которому вы планируете разрешить подключаться к вашему FTP серверу. Это должна быть учетная запись независимая от регулярно используемых, в связи с особенностями работы «chroot» окружения. Chroot создаст пользователю ощущение, будто каталог в который его поместили находится на самом верху файловой системы.

Используйте следующие команды для создания пользователя в файле «/etc/passwd». Этот шаг должен выполняться для каждого пользователя, кому нужен доступ к FTP серверу.

[root@deep /]# mkdir /home/ftp
[root@deep /]# useradd -d /home/ftp/ftpadmin/ -s /dev/null ftpadmin > /dev/null 2>&1
[root@deep /]# passwd ftpadmin
Changing password for user ftpadmin
New UNIX password:
Retype new UNIX password:
passwd: all authentication tokens updated successfully

Команда «mkdir» создаст каталог «ftp» в «/home» для хранения всех домашних каталогов FTP пользователей. Команда «useradd» добавит нового пользователя с именем «ftpadmin» в вашей системе. В заключении, команда «passwd» установит пароль для него. После того, как каталог «/home/ftp/» создан, вам не нужно будет создавать его для каждого нового пользователя.

Редактируйте файл «/etc/shells» (vi /etc/shells) и добавьте в него несуществующий командный процессор, например «null». Этот ложный shell ограничит доступ FTP пользователям к системе.

[root@deep /]# vi /etc/shells
/bin/bash
/bin/sh
/bin/ash
/bin/bsh
/bin/tcsh
/bin/csh
/dev/null (это ваш несуществующий командный процессор)

ЗАМЕЧАНИЕ. В Red Hat Linux, специальное имя устройства (/dev/null) существует для подобных целей.

Сейчас, редактируйте ваш файл «/etc/passwd» и вручную добавьте подстроку «/./», разделяющую каталоги «/home/ftp» и «/ftpadmin», где «ftpadmin» должен автоматически изменить каталог. Этот шаг должен быть выполнен для каждого FTP пользователя, добавляемого в файл «passwd».

Редактируйте файл passwd (vi /etc/passwd) и добавьте/измените строку для пользователя «ftpadmin»:

Обратите внимание, что путь к домашнему каталогу пользователя «ftpadmin» немного нечеткий. Первая часть «/home/ftp/» показывает файловую систему, которая должна стать новый корневым каталогом. Разделяющая точка «.» говорит, что из текущего каталога необходимо автоматически переходить в «/ftpadmin/». Еще раз отметим, что часть «/dev/null» отключает вход в систему, как регулярного пользователя. С этим изменением, пользователь «ftpadmin» имеет ложный командный процессор вместо реального, тем самым имея ограничения в доступе к системе.

Установка пользовательского окружения chroot

Далее вы должны создать основу корневой файловой системы с достаточным количеством необходимых компонентов (исполняемые файлы, файлы парлей и т.д.), чтобы позволить Unix выполнить chroot, когда пользователь входит в систему. Заметим, что если вы использовали опцию «—enable-ls» во время компиляции, как мы предлагали выше, то каталоги «/home/ftp/bin» и «/home/ftp/lib» не нужны, так как Wu-ftpd будет использовать собственную функцию «ls». Мы остановимся на демонстрации старого метода, при котором люди копируют «/bin/ls» в chroot FTP каталог («/home/ftp/bin») и создают соответствующие библиотеки, связанные с «ls».

Необходимо выполнить следующие шаги, чтобы запустить Wu-ftpd в chroot окружении:

Создадим все необходимые каталоги chroot окружения:

[root@deep /]# mkdir /home/ftp/dev
[root@deep /]# mkdir /home/ftp/etc
[root@deep /]# mkdir /home/ftp/bin (требуется, если вы не использовали опцию «—enable-ls»)
[root@deep /]# mkdir /home/ftp/lib (требуется, если вы не использовали опцию «—enable-ls»)

Измените права доступа к новым каталогам на 0511 из соображений безопасности:

[root@deep /]# chmod 0511 /home/ftp/dev/
[root@deep /]# chmod 0511 /home/ftp/etc/
[root@deep /]# chmod 0511 /home/ftp/bin (требуется, если вы не использовали опцию «—enable-ls»)
[root@deep /]# chmod 0511 /home/ftp/lib (требуется, если вы не использовали опцию «—enable-ls»)

Команда «chmod» изменит права доступа к chroot каталогам «dev», «etc», «bin» и «lib» на чтение и исполнения для «root» и исполнение для группы и всех остальных пользователей.

Копируйте исполняемый файл «/bin/ls» в каталог «/home/ftp/bin» и изменим права доступа к нему на 0111. (Вы не хотите позволять пользователям модифицировать этот файл):

[root@deep /]# cp /bin/ls /home/ftp/bin (требуется, если вы не использовали опцию «—enable-ls»)
[root@deep /]# chmod 0111 /bin/ls /home/ftp/bin/ls (требуется, если вы не использовали опцию «—enable-ls»)

ЗАМЕЧАНИЕ. Этот шаг необходим только если вы не использовали при конфигурировании опцию «—enable-ls». Смотрите секцию «Компиляция и оптимизация» в этой главе.

Найдите разделяемые библиотеки от которых зависит программа «ls»:

[root@deep /]# ldd /bin/ls (требуется, если вы не использовали опцию «—enable- ls»)
libc.so.6 => /lib/libc.so.6 (0x00125000)
/lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x00110000)

Читайте также:  Wlan0 нет такого устройства kali linux

Копируйте их в новый каталог «lib», расположенный в «/home/ftp»:

[root@deep /]# cp /lib/libc.so.6 /home/ftp/lib (требуется, если вы не использовали опцию «—enable-ls»)
[root@deep /]# cp /lib/ld-linux.so.2 /home/ftp/lib/ (требуется, если вы не использовали опцию «—enable-ls»)

ЗАМЕЧНИЕ. Эти библиотеки нужны для работы команды «ls». Также, как и шаг 3, это необходимо сделать, если вы во время конфигурирования Wu-ftpd не указали опцию «—enable-ls» для использования внутренней команды «ls».

Создайте файл «/home/ftp/dev/null»:

[root@deep /]# mknod /home/ftp/dev/null c 1 3
[root@deep /]# chmod 666 /home/ftp/dev/null

Шаг 6

Копируйте файлы «group» и «passwd» в каталог «/home/ftp/etc». Они не должны быть такими же, как оригиналы. Мы удалим из них всех не FTP пользователей, исключая «root».

[root@deep /]# cp /etc/passwd /home/ftp/etc/
[root@deep /]# cp /etc/group /home/ftp/etc/

Редактируйте файл passwd (vi /home/ftp/etc/passwd) и удалите из него все элементы, кроме «root» и ваших FTP пользователей. Файл должен иметь следующий вид:

ЗАМЕЧАНИЕ. Мы отметим здесь две вещи: первое, домашний каталог всех пользователей был изменен (например, /home/ftp/./ftpadmin/ на /ftpadmin/), и второе, командный процессор для пользователя «root» был изменен на «/dev/null».

Редактируйте файл group (vi /home/ftp/etc/group) и удалите все элементы, исключая «root» и всех FTP пользователей. Файл «group» должен соответствовать вашему нормальному файлу групп:

Сейчас, мы должны иммунизировать файлы «passwd» и «group», находящиеся в chroot окружении.

Установим бит «постоянства» на файл «passwd»:

[root@deep /]# cd /home/ftp/etc/
[root@deep /]# chattr +i passwd

Установим бит «постоянства» на файл «group»:

[root@deep /]# cd /home/ftp/etc/
[root@deep /]# chattr +i group

Конфигурации.

Все программное обеспечение, описанное в книге, имеет определенный каталог и подкаталог в архиве «floppy.tgz», включающей все конфигурационные файлы для всех программ. Если вы скачаете этот файл, то вам не нужно будет вручную воспроизводить файлы из книги, чтобы создать свои файлы конфигурации. Скопируйте файлы связанные с Wu-ftpd из архива, измените их под свои требования и поместите в нужное место так, как это описано ниже. Файл с конфигурациями вы можете скачать с адреса: http://www.openna.com/books/floppy.tgz

Для запуска ftp сервера следующие файлы должны быть созданы или скопированы на ваш сервер.

Копируйте файлы ftpaccess в каталог «/etc/».
Копируйте файлы ftpusers в каталог «/etc/».
Копируйте файлы ftphosts в каталог «/etc/».
Копируйте файлы ftpgroups в каталог «/etc/».
Копируйте файлы ftpconversion в каталог «/etc/».
Копируйте ftpd в каталог «/etc/logrotate.d/».
Копируйте ftp в каталог «/etc/pam.d/».

Вы можете взять эти файлы из нашего архива floppy.tgz.

Конфигурация файла «/etc/ftpaccess»

«/etc/ftpaccess» — это основной конфигурационный файл, используемый для конфигурирования сервера Wu-ftpd. Этот файл первоначально предназначен для определения какие пользователи, сколько пользователей, могут получить доступ к вашему серверу, и прочих важных элементов настройки безопасности сервера.

Редактируйте файл ftpaccess (vi /etc/ftpaccess) и добавьте/измените в нем следующие строки:

Сейчас мы должны изменить права доступа на 600:

[root@deep /]# chmod 600 /etc/ftpaccess

Эти параметры конфигурационного файла говорят следующее:

class openna guest 208.164.186.*
Опция «class» определяет классы пользователей, которые имеют доступ к вашему FTP серверу. Вы можете определить столько классов, сколько хотите. В нашем случае, например, мы определяем класс с именем , и позволяем пользователю с учетными записями на ftp сервере доступ к их домашним каталогам через FTP, если они заходят с адреса 208.164.186.*. Важно заметить, что существует три различных типа пользователей: anonymous, guest, и real. Пользователи Anonymous — это любой пользователь сети, который подключается к серверу и пересылает файлы не имея учетной записи на нем. Пользователь Guest — это реальный пользователь системы для которых сессии настроены также, как и для анонимных пользователей FTP (это то, что мы определили в нашем примере), и пользователь Real должен иметь учетную запись и командный процессор (shell) (это может приводить к риску для безопасности) на сервере для доступа к нему.

limit openna 20 MoTuWeTh,Fr0000-1800 /home/ftp/.too_many.msg
Опция «limit» определяет число пользователей данного класса, которым разрешается подключаться к серверу, и разрешенное время суток. В нашем примере, к FTP серверу из класса может подключаться максимум 20 пользователей, в понедельник, вторник, среда, четверг целый день, а в пятницу с полуночи до 6:00 вечера . Также, если количество пользователей достигло предела (20), то вновь подключаемым пользователям будет выдаваться сообщение . Это очень полезный параметр для контроля за ресурсами сервера.

loginfails 3
Опция «loginfails» определяет число ошибочных попыток подключений к серверу, которое может осуществить пользователь до того, как будет отсоединен от сервера. В нашем примере мы отключаем пользователя от FTP сервера после трех попыток.

readme README* login
readme README* cwd=*

Опция «readme» определяет сообщение выдаваемое клиенту во время регистрации на сервере, или во время использования команды смены каталога, которая определяет файлы в текущем каталоге измененные в последнее время. В нашем примере, мы устанавливаем имя файла относительно каталога FTP, и условия вывода сообщения: при успешном входе в систему или входе в новый каталог .

message /home/ftp/.welcome.msg login
message .message cwd=*

Опция «message» определяет специальные сообщения, отображаемые клиентам, когда они либо вошли в систему, либо используют команду смены рабочего каталога. В нашем примере, мы показываем месторасположение и имя файлов выводимых файлов , и условия при которых они выводятся: при успешной регистрации в системе , или когда клиент входит в новый каталог . Для опций «readme» и «message», когда вы определяете путь для анонимных пользователей, вы должны использовать абсолютный путь относительно анонимного FTP каталога.

compress yes all
tar yes all
chmod yes guest
delete yes guest
overwrite yes guest
rename yes guest
Опции «compress», «tar», «chmod», «delete», «overwrite» и «rename» определяют права, которые вы хотите дать вашим пользователям на выполнение этих команд. В нашем примере, мы даем права группе на команды chmod, delete, overwrite и rename, и позволяем всем использовать команды compress и tar. Если вы не определите следующие директивы, они по умолчанию будут выставлены в «yes» для всех.

log commands real,guest
Опция «log commands» включает регистрацию команд пользователей из соображений безопасности. В нашем примере, мы регистрируем все индивидуальные команды пользователей real и guest . Результаты регистрации сохраняются в файле «/var/log/message».

log transfers real,guest inbound,outbound
Опция «log transfers» включает регистрацию всех FTP пересылок из соображения безопасности. В нашем примере, мы регистрируем все пересылки пользователей real и guest , inbound и outbound определяют направления пересылки, в нашем случае входящие и исходящие. Результаты сохраняются в файле «/var/log/xferlog».

guestgroup ftpadmin
guestgroup webmaster
Опция «guestgroup» определяет всех реальных пользователей относящихся к группе гостей, сессии которых настроены также, как и в анонимном FTP . Файл «/home/ftp/etc/group» имеет входы для каждой из этих групп, каждая из которых имеет только одного члена. Важно, что в конфигурационном файле в одной строке должна быть записана одна гостевая группа.

log security real,guest
Опция «log security» включает регистрацию нарушений правил безопасности для реальных, гостевых и/или анонимных FTP клиентов. В нашем примере, мы разрешаем регистрацию нарушений для пользователей использующих FTP сервер для доступа с реальных учетных записей и гостевых бюджетов .

Читайте также:  Картридж uniton premium tn 1075

guest-root /home/ftp ftpadmin webmaster
restricted-uid ftpadmin webmaster
restricted-gid ftpadmin webmaster
Эти опции, «guest-root», «restricted-uid», «restricted-gid», определяют и контролируют могут или нет пользователи guest получить доступ в области FTP сервера вне их домашних каталогов (это важная функция повышения безопасности). В нашем примере, мы определяем chroot() путь для пользователей в , и они не могут получить доступа к другим файлам, потому что ограничены своими домашними каталогами , . Несколько диапазонов UID может задаваться в этой строке. Если для пользователя выбран guest-root, то домашний каталог пользователя из файла » /etc/passwd» используется для определения начального каталога, и их домашний каталог в масштабе всей системы из файла «/etc/passwd» не используется.

greeting terse
Опция «greeting» определяет, как много системной информации будет выводится до того, как удаленный пользователь войдет в систему. Здесь вы можете использовать три значения: — используется по умолчанию, показывает имя хоста и версию демона,
— только имя хоста, — просто сообщает «FTP server ready».

keepalive yes
Опция «keepalive» определяет должна ли система сообщения keep alive на удаленный FTP сервер. Если установлена в «yes», то сервер получит необходимое предупреждение о разрыве соединения или падении удаленной машины.

Конфигурация файла «/etc/ftphosts»

Файл «/etc/ftphosts» используется для определения следующего: может ли пользователь входить в систему с определенной машины или ему будет запрещен доступ.

Создайте файл ftphosts (touch /etc/ftphosts) и добавьте, например, в него следующие строки:

В нашем примере, мы разрешаем пользователю соединяться с FTP сервером из явно заданного списка адресов , и запрещаем пользователю соединяться с сервера .

Измените права доступа на 600:

[root@deep /]# chmod 600 /etc/ftphosts

Конфигурация файла «/etc/ftpusers»

Файл «/etc/ftpusers» определяет пользователей, которым не разрешен доступ на FTP сервер.

Создайте файл ftpusers (touch /etc/ftpusers) и добавьте в него следующих пользователей:

root
bin
daemon
adm
lp
sync
shutdown
halt
mail
news
uucp
operator
games
nobody

Шаг 2

Изменим права доступа к этому файлу на 600:

[root@deep /]# chmod 600 /etc/ftpusers

Конфигурация файла «/etc/ftpconversions»

Файл «/etc/ftpconversions» содержит инструкции, которые разрешают вам по требованию сжимать файлы перед пересылкой.

Редактируйте файл ftpconversions (vi /etc/ftpconversions) и добавьте в него следующие строки:

Измените права доступа на 600:

[root@deep /]# chmod 600 /etc/ftpconversions

Конфигурация файла «/etc/pam.d/ftp»

Сконфигурируйте ваш файл «/etc/pam.d/ftp» для использования pam аутентификации.

Создайте файл ftp (touch /etc/pam.d/ftp) и добавьте в него следующие строки:

Конфигурация файла «/etc/logrotate.d/ftpd»

Настройте ваш файл «/etc/logrotate.d/ftpd» на автоматическую ротацию файлов регистраций каждую неделю.

Создайте файл ftpd (touch /etc/logrotate.d/ftpd) и добавьте в него следующие строки:

Настройка ftpd на использование tcp-wrappers из супер сервера inetd

Tcp-wrappers должен быть включен на запуск и остановку ftpd сервера. inetd читает настроечную информацию из своего конфигурационного файла «/etc/inetd.conf». Для каждого поля этого файла должно обязательно присутствовать его значение, поля разделяются пробелами или символами табуляции.

Редактируйте файл inetd.conf (vi /etc/inetd.conf) и добавьте или проверьте на наличие следующие строки:

Чтобы изменения вступили в силу, пошлите демону inetd сигнал SIGHUP, используя следующую команду:

[root@deep /]# killall -HUP inetd

Редактируйте файл hosts.allow (vi /etc/hosts.allow) и добавьте, например, следующую строку:

in.ftpd: 192.168.1.4 win.openna.com

Которая говорит, что клиенту с IP адресом «192.168.1.4» и именем хоста «win.openna.com» разрешен FTP доступ на сервер.

Административные утилиты FTP

Программа ftpwho выводит всех активных пользователей ftp, и их текущие процессы в системе. Выходные данные выдаются в формате напоминающем команду «/bin/ps».

Здесь вы видите, что к системе подключен один пользователь с именем «ftpadmin» и пришедший с win.openna.com. Всего к серверу может подключиться 20 пользователей.

Утилита ftpcount — это упрощенная версия ftpwho. Она показывает только количество пользователей подключенных к системе в данный момент и общее количество, которое может подключиться:

[root@deep /]# ftpcount
Service class openna — 1 users ( 20 maximum)

Организация защиты FTP

Важно удостовериться, что вы настроили файл «/etc/ftpusers». В нем определяются пользователи, которым не разрешено соединяться с вашим FTP сервером. В него должны быть включены, как минимум, следующие пользователи: root, bin, daemon, adm, lp, sync, shutdown, halt, mail, news, uucp, operator, games, nobody и ВСЕ другие определенные по умолчанию пользователи, доступные в вашем файле «/etc/passwd».

Для отключения анонимного FTP, удалите пользователя «ftp» из вашего файла паролей и проверьте, что пакет anonftp-version.i386.rpm не инсталлирован. Для удаления пользователя «ftp» выполните следующую команду:

[root@deep /]# userdel ftp

Для проверки, что RPM пакет анонимного FTP не инсталлирован у вас на системе выполните следующую команду:

[root@deep /]# rpm -q anonftp
package anonftp is not installed

Команда upload

По умолчанию, Wu-ftpd сервер разрешает upload всем пользователям. Параметр upload позволяет удаленным пользователям загружать и размещать файлы на FTP сервере. Для оптимальной безопасности, мы не хотим разрешать пользователям загружать файлы в подкаталоги «bin», «etc», «dev» и «lib» каталога «/home/ftp». В нашем файле «/etc/ftpaccess» мы уже сменили корневой каталог (chroot) пользователей на «/home/ftp», и поэтому они не имеют доступ к другим областям файловой системы.

Редактируйте файл ftpaccess (vi /etc/ftpaccess) и добавьте следующие строки, которые запретят upload в определенные области.

Вышеприведенные строки запрещают upload в подкаталоги «/», «/etc», «/dev», «/bin» и «/lib» chroot каталога «/home/ftp».

Специальный файл «.notar»

Хотите ли вы разрешать таррить каталоги или нет, вы должны сделать так, чтобы нельзя было выполнить команду tar в областях, где запрещен upload.

Чтобы сделать это, создайте специальный файл ‘.notar’ в каждом каталоге и каталоге FTP.

[root@deep /]# touch /home/ftp/.notar
[root@deep /]# touch /home/ftp/etc/.notar
[root@deep /]# touch /home/ftp/dev/.notar
[root@deep /]# touch /home/ftp/bin/.notar (требуется только если вы не использовали опцию «—enable-ls»)
[root@deep /]# touch /home/ftp/lib/.notar (требуется только если вы не использовали опцию «—enable-ls»)
[root@deep /]# chmod 0 /home/ftp/.notar
[root@deep /]# chmod 0 /home/ftp/etc/.notar
[root@deep /]# chmod 0 /home/ftp/dev/.notar
[root@deep /]# chmod 0 /home/ftp/bin/.notar (требуется только если вы не использовали опцию «—enable-ls»)
[root@deep /]# chmod 0 /home/ftp/lib/.notar (требуется только если вы не использовали опцию «—enable-ls»)

Файл нулевой длины «.notar» может привести в замешательство некоторые веб клиенты и FTP прокси, чтобы решить эту проблему, надо запретить пересылку этого файла.

Редактируйте файл ftpaccess (vi /etc/ftpaccess) и добавьте следующую строку, чтобы маркировать файл «.notar» как непересылаемый.

Параметр noretrieve сервера Wu-ftpd позволяет вам запретить пересылку выбранных каталогов или файлов. Хорошей идеей будет предотвращение передачи некоторых подкаталогов (bin, etc, dev, and lib) из каталога «/home/ftp» при помощи команды «noretrieve» в файле «/etc/ftpaccess» file. Редактируйте файл ftpaccess (vi /etc/ftpaccess) и добавьте следующие строки для предотвращения передачи ряда каталогов.

Источник

Поделиться с друзьями
КомпСовет
Adblock
detector