Настройка FTP: различия между версиями

Материал из ALT Linux Wiki
(Import from freesource.info)
 
 
(не показано 25 промежуточных версий 10 участников)
Строка 1: Строка 1:
{{MovedFromFreesourceInfo|AltLinux/Aeieoiaioaoeeyu/IanyoрieeaFTP}}
{{Stub}}
== Настройка FTP ==


=== Настройка  FTP ===
В качестве безопасного, быстрого и надёжного FTP-сервера рекомендуется использовать {{prg|vsftpd}}. Обзор этого FTP-сервера можно почитать [http://docs.altlinux.org/ru-RU/archive/2.4/html-single/master/alt-docs-master/ch06s12.html в документации ALT Linux 2.4 Master].


В качестве безопасного, быстрого и надёжного FTP-сервера рекомендуется использовать vsftpd. Обзор этого FTP-сервера можно почитать в ALTM24Doc:ch06s12.html.
=== Инструкция для быстрого старта ===
Инструкция для быстрого старта:


# Устанавливаем  пакеты:  
* Установить пакеты:
** vsftpd
** {{pkg|vsftpd}}
** anonftp
** {{pkg|anonftp}}
# Делаем изменения в файле /etc/xinetd.d/vsftpd
* Сделать изменения в файле {{path|/etc/xinetd.d/vsftpd}}
::<pre>disable = no   #включает сервис
<source lang="ini">
only_from = 0.0.0.0  #разрешает доступ со всех адресов</pre>
disable   = no     #включает сервис
# Перезапускаем сервис
</source>
::<pre># service xinetd restart</pre>
* Проверить глобальные настройки {{prg|xinetd}} в файле {{path|/etc/xinetd.conf}}, обратить внимание (возможно закомментировать) на строку
# Устанавливаем запуск сервиса xinetd при загрузке системы
only_from = 127.0.0.1
:: <pre># chkconfig xinetd on</pre>  
* Перезапустить сервис
# Всё готово, проверяем в браузере:
<source lang="bash">
::[ftp://localhost ftp://localhost]
service xinetd restart
</source>
* Установить запуск сервиса {{prg|xinetd}} при загрузке системы
<source lang="bash">
chkconfig xinetd on
</source>
* Проверить, что нужное приложение (в данном случае xinetd) слушает порт:
ss -tlpn|grep "LISTEN.*:21"
* Проверить в браузере:
:: [ftp://localhost/ ftp://localhost/]


Неидеальный совет: Чтобы локального пользователя с /dev/null в качестве shell пускало по ftp, нужно добавить /dev/null в /etc/shells.
Неидеальный совет: Чтобы локального пользователя с {{path|/dev/null}} в качестве shell пускало по ftp, нужно добавить {{term|/dev/null}} в {{path|/etc/shells}}.


Настройка межсетевого экрана для FTP, правила iptables:
Настройка межсетевого экрана для FTP, правила {{prg|iptables}}:
:: <pre>$IPTABLES -A INPUT -p tcp --dport 20 -j ACCEPT
<source lang="bash">
$IPTABLES -A INPUT --match state --state RELATED,ESTABLISHED -j ACCEPT</pre>
$IPTABLES -A INPUT -p tcp --dport 21 -j ACCEPT
$IPTABLES -A INPUT --match state --state RELATED,ESTABLISHED -j ACCEPT
</source>


Облегчающий жизнь модуль ядра (разрешает RELATED):
Облегчающий жизнь модуль ядра (разрешает {{term|RELATED}}):
:: <pre>modprobe ip_conntrack_ftp</pre>
Прописывается в /etc/net/ifaces/default/fw/iptables/''modules''
<source lang="bash">
modprobe ip_conntrack_ftp
</source>
 
=== Известные проблемы ===
==== Проблемы при переходе по символическим ссылкам ====
Проблемы при переходе по '''''Символическим ссылкам''''' с выводом ошибки «550 Failed to change directory.»<br>
1. Суть. Вам нужно временно разместить на FTP большого размера какую-нибудь информацию. Скинуть прямо в папку невозможно, мало места.<br>
2. Решение. Воспользуйтесь командой '''mount''' с параметром '''--bind'''.<br>
3. Пример.
<source lang="bash">
mount --bind /fileserver/iz_torr/Fiziognomika /var/srv/public/Fiziognomika
размонтировать:
umount /var/srv/public/Fiziognomika
</source>
4. Примечание. Если на долго нужно - тогда прописываем в "fstab".
<source lang="bash">
/var/lib/mysql/db/ /var/ftp/db/ none defaults,bind 0 0
</source>
 
==== Не пускает внутрь каталогов ====
а также ошибка "500 OOPS: prctl PR_SET_SECCOMP failed"
 
Варианты причин:
# неправильно установлены права в каталогах.- Дайте права на выполнение каталогам внутри расшаренных ресурсов ftp
# Установленное ядро не поддерживает [https://ru.wikipedia.org/wiki/Seccomp Seccomp] -
Пропишите в /etc/vsftpd
<source lang="text">
seccomp_sandbox=NO
</source>
 
=== Дополнительная настройка ===
==== Запретить пользователю доступ по SSH ====
Требуется разрешить пользователю доступ по ftp, но запретить доступ по ssh
 
Добавить в файл {{path|/etc/shells}}, если отсутствует, строку
<source lang="text">
/sbin/nologin
</source>
 
Изменить в файле {{path|/etc/passwd}} в строке пользователя оболочку для входа на
<pre>/sbin/nologin</pre>


=== Ссылки ===
=== Ссылки ===
* [http://gentoo-wiki.com/HOWTO_vsftpd http://gentoo-wiki.com/HOWTO_vsftpd]
* смотрите документацию в пакете (/usr/share/doc/vsftpd...)
* смотрите документацию в пакете (/usr/share/doc/vsftpd...)
* [http://www.linuxcenter.ru/lib/articles/soft/vsftpd_setup.phtml http://www.linuxcenter.ru/lib/articles/soft/vsftpd_setup.phtml]
* [http://www.opennet.ru/base/net/vsftpd_setup.txt.html http://www.opennet.ru/base/net/vsftpd_setup.txt.html]
* [http://www.opennet.ru/base/net/vsftpd_setup.txt.html http://www.opennet.ru/base/net/vsftpd_setup.txt.html]
* [http://www.linuxfocus.org/Russian/July2004/article341.shtml http://www.linuxfocus.org/Russian/July2004/article341.shtml]
* [http://www.linuxfocus.org/Russian/July2004/article341.shtml http://www.linuxfocus.org/Russian/July2004/article341.shtml]
{{Category navigation|title=Системному администратору|category=Admin|sortkey={{SUBPAGENAME}}}}

Текущая версия от 12:22, 8 ноября 2022

Stub.png
Данная страница находится в разработке.
Эта страница ещё не закончена. Информация, представленная здесь, может оказаться неполной или неверной.

Настройка FTP

В качестве безопасного, быстрого и надёжного FTP-сервера рекомендуется использовать vsftpd. Обзор этого FTP-сервера можно почитать в документации ALT Linux 2.4 Master.

Инструкция для быстрого старта

  • Установить пакеты:
    • vsftpd
    • anonftp
  • Сделать изменения в файле /etc/xinetd.d/vsftpd
disable   = no      #включает сервис
  • Проверить глобальные настройки xinetd в файле /etc/xinetd.conf, обратить внимание (возможно закомментировать) на строку
only_from = 127.0.0.1
  • Перезапустить сервис
service xinetd restart
  • Установить запуск сервиса xinetd при загрузке системы
chkconfig xinetd on
  • Проверить, что нужное приложение (в данном случае xinetd) слушает порт:
ss -tlpn|grep "LISTEN.*:21"
  • Проверить в браузере:
ftp://localhost/

Неидеальный совет: Чтобы локального пользователя с /dev/null в качестве shell пускало по ftp, нужно добавить /dev/null в /etc/shells.

Настройка межсетевого экрана для FTP, правила iptables:

$IPTABLES -A INPUT -p tcp --dport 21 -j ACCEPT
$IPTABLES -A INPUT --match state --state RELATED,ESTABLISHED -j ACCEPT

Облегчающий жизнь модуль ядра (разрешает RELATED): Прописывается в /etc/net/ifaces/default/fw/iptables/modules

modprobe ip_conntrack_ftp

Известные проблемы

Проблемы при переходе по символическим ссылкам

Проблемы при переходе по Символическим ссылкам с выводом ошибки «550 Failed to change directory.»
1. Суть. Вам нужно временно разместить на FTP большого размера какую-нибудь информацию. Скинуть прямо в папку невозможно, мало места.
2. Решение. Воспользуйтесь командой mount с параметром --bind.
3. Пример.

mount --bind /fileserver/iz_torr/Fiziognomika /var/srv/public/Fiziognomika
размонтировать:
umount /var/srv/public/Fiziognomika

4. Примечание. Если на долго нужно - тогда прописываем в "fstab".

/var/lib/mysql/db/ /var/ftp/db/ none defaults,bind 0 0

Не пускает внутрь каталогов

а также ошибка "500 OOPS: prctl PR_SET_SECCOMP failed"

Варианты причин:

  1. неправильно установлены права в каталогах.- Дайте права на выполнение каталогам внутри расшаренных ресурсов ftp
  2. Установленное ядро не поддерживает Seccomp -
Пропишите в /etc/vsftpd
seccomp_sandbox=NO

Дополнительная настройка

Запретить пользователю доступ по SSH

Требуется разрешить пользователю доступ по ftp, но запретить доступ по ssh

Добавить в файл /etc/shells, если отсутствует, строку

/sbin/nologin

Изменить в файле /etc/passwd в строке пользователя оболочку для входа на

/sbin/nologin

Ссылки