Настройка FTP: различия между версиями
Ilis (обсуждение | вклад) |
Asy (обсуждение | вклад) |
||
(не показано 18 промежуточных версий 8 участников) | |||
Строка 1: | Строка 1: | ||
{{Stub}} | {{Stub}} | ||
== Настройка 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]. | |||
=== Инструкция для быстрого старта === | |||
* Установить пакеты: | |||
* Установить пакеты: | |||
** {{pkg|vsftpd}} | ** {{pkg|vsftpd}} | ||
** {{pkg|anonftp}} | ** {{pkg|anonftp}} | ||
Строка 14: | Строка 12: | ||
<source lang="ini"> | <source lang="ini"> | ||
disable = no #включает сервис | disable = no #включает сервис | ||
</source> | </source> | ||
* Проверить глобальные настройки {{prg|xinetd}} в файле {{path|/etc/xinetd.conf}}, обратить внимание (возможно закомментировать) на строку | |||
only_from = 127.0.0.1 | |||
* Перезапустить сервис | * Перезапустить сервис | ||
<source lang="bash"> | <source lang="bash"> | ||
Строка 24: | Строка 23: | ||
chkconfig xinetd on | chkconfig xinetd on | ||
</source> | </source> | ||
* Проверить, что нужное приложение (в данном случае xinetd) слушает порт: | |||
ss -tlpn|grep "LISTEN.*:21" | |||
* Проверить в браузере: | * Проверить в браузере: | ||
::[ftp://localhost/ ftp://localhost/] | :: [ftp://localhost/ ftp://localhost/] | ||
Неидеальный совет: Чтобы локального пользователя с {{path|/dev/null}} в качестве shell пускало по ftp, нужно добавить {{term|/dev/null}} в | Неидеальный совет: Чтобы локального пользователя с {{path|/dev/null}} в качестве shell пускало по ftp, нужно добавить {{term|/dev/null}} в {{path|/etc/shells}}. | ||
Настройка межсетевого экрана для FTP, правила {{prg|iptables}}: | Настройка межсетевого экрана для FTP, правила {{prg|iptables}}: | ||
Строка 36: | Строка 37: | ||
Облегчающий жизнь модуль ядра (разрешает {{term|RELATED}}): | Облегчающий жизнь модуль ядра (разрешает {{term|RELATED}}): | ||
Прописывается в /etc/net/ifaces/default/fw/iptables/''modules'' | |||
<source lang="bash"> | <source lang="bash"> | ||
modprobe ip_conntrack_ftp | modprobe ip_conntrack_ftp | ||
</source> | </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> | |||
=== Ссылки === | === Ссылки === | ||
* смотрите документацию в пакете (/usr/share/doc/vsftpd...) | * смотрите документацию в пакете (/usr/share/doc/vsftpd...) | ||
* [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
Настройка 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"
- Проверить в браузере:
Неидеальный совет: Чтобы локального пользователя с /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"
Варианты причин:
- неправильно установлены права в каталогах.- Дайте права на выполнение каталогам внутри расшаренных ресурсов ftp
- Установленное ядро не поддерживает Seccomp -
Пропишите в /etc/vsftpd
seccomp_sandbox=NO
Дополнительная настройка
Запретить пользователю доступ по SSH
Требуется разрешить пользователю доступ по ftp, но запретить доступ по ssh
Добавить в файл /etc/shells, если отсутствует, строку
/sbin/nologin
Изменить в файле /etc/passwd в строке пользователя оболочку для входа на
/sbin/nologin
Ссылки
- смотрите документацию в пакете (/usr/share/doc/vsftpd...)
- http://www.opennet.ru/base/net/vsftpd_setup.txt.html
- http://www.linuxfocus.org/Russian/July2004/article341.shtml