|
|
www.lissyara.su
—> статьи
—> FreeBSD
—> Мелочи
—> sftp+chroot
Использование sftp+chroot из openssh в качестве альтернативы ftp-серверу.
Автор: Storoge.
SFTP расшифровывается как SSH File Transfer Protocol — SSH-протокол для передачи файлов. Он предназначен для копирования и выполнения других операций с файлами поверх надёжного и безопасного соединения. Как правило, в качестве базового протокола, обеспечивающего соединение, и используется протокол SSH2, но это не обязательно.OpenSSH (открытый безопасный shell) — набор программ, предоставляющих шифрование сеансов связи по компьютерным сетям с использованием протокола SSH.
Он был создан под руководством Teo de Raadt (Тэо де Раадт) как открытая альтернатива проприетарного ПО от SSH Communications Security. В набор программ OpenSSH входит и sftp-сервер.Недавно в дерево исходных текстов OpenSSH принят код,позволяющий помещать отдельных пользователей в изолированное окружение(chroot).
Собственно, я сам для копирования данных на сервер пользуюсь sftp, меня это вполне устраивает.Возникла необходимость дать возможность нескольким пользователям заливать на сервер контент для своих сайтов.Ставить ради этого какой-нибудь PureFTPd я не хотел, но использование в чистом виде sftp мне не нравилось тем, что они могут залогиниться под ssh, а также тем, что в клиенте (например Filezilla) видна вся файловая система сервера.То есть я хотел, чтобы пользователи могли зайти только по sftp и видеть и изменять только свою папку.
# cd /usr/ports/
# make search name='openssh'
Port: openssh-portable-5.0.p1,1
Path: /usr/ports/security/openssh-portable
Info: The portable version of OpenBSD's OpenSSH
Maint: mnag@FreeBSD.org
B-deps:
R-deps:
WWW: http://www.openssh.org/portable.html
Port: security/openssh
Moved:
Date: 2008-03-02
Reason: Has expired: Outdate and has security issues
| Нашли то, что нам надо, идем туда, компилируем с такими опциями и устанавливаем.
# cd ./security/openssh-portable
# make install clean
[X] PAM Enable pam(3) support
[X] TCP_WRAPPERS Enable tcp_wrappers support
[X] LIBEDIT Enable readline support to sftp(1)
[X] KERBEROS Enable kerberos (autodetection)
[ ] SUID_SSH Enable suid SSH (Recommended off)
[ ] GSSAPI Enable GSSAPI support (req: KERBEROS)
[ ] KERB_GSSAPI Enable Kerberos/GSSAPI patch (req: GSSAPI)
[X] OPENSSH_CHROOT Enable CHROOT support
[ ] OPENSC Enable OpenSC smartcard support
[ ] OPENSCPINPATCH Enable OpenSC PIN patch
[ ] HPN Enable HPN-SSH patch
[ ] LPK Enable LDAP Public Key (LPK) patch
[ ] OVERWRITE_BASE OpenSSH overwrite base
| Не забудьте прописать в /etc/rc.conf
openssh_enable="YES"
#sshd_enable="YES"
| Далее редактируем файлы настроек
[color=red]# cd /usr/local/etc/ssh
# ls
moduli ssh_config-dist
ssh_host_dsa_key.pub ssh_host_key.pub
ssh_host_rsa_key.pub sshd_config-dist
ssh_config ssh_host_dsa_key
ssh_host_key ssh_host_rsa_key
sshd_config
| Открываем файл sshd_config и добавляем куда-нибудь в конец следующие строки.
AllowGroups wheel sftponly
# override default of no subsystems
Subsystem sftp /usr/local/libexec/sftp-server
Match group sftponly
ChrootDirectory %h
ForceCommand internal-sftp
AllowTcpForwarding no
X11Forwarding no
| Ну, в wheel вхожу я, ничем не ограниченный, а в группу sftponly входят наши пользователи.
Создадим будущему пользователю домашний каталог, куда он и будет кидать свои файлы
# mkdir /usr/local/www/example
| А внутри этого каталога еще один
# mkdir /usr/local/www/example/www
| Теперь надо правильно добавить пользователя через adduser. Надо включить его в группу sftponly, дать реальную оболочку(например sh),указать правильный домашний каталог(мы его уже создали), ну естественно, пароль.Вернемся к нашим баранам(т.е. домашним каталогам пользователей),зададим правильные права.
# chown -R root /usr/local/www/example
# chown -R our_user /usr/local/www/example/www
| Все, теперь перезапускаем openssh
#/usr/local/etc/rc.d/openssh restart
| И пробуем залогинится под нашим пользователем с какой-нибудь машины. Сам я пользуюсь Filezilla, честно говоря, другие клиенты не смотрел.Виден только домашний каталог, а записать пользователь может только в папку www, что и требовалось сделать.
Зайти под ssh этот пользователь не сможет.
Ссылки
1.http://www.openssh.com/-страница проекта OpenSSH
2.http://ru.wikipedia.org/wiki/OpenSSH - страница OpenSSH в Википедии
3.http://xgu.ru/wiki/Sftp -Информация о протоколе sftp
4.http://www.opennet.ru/opennews/art.shtml?num=14331 - Ссылка на новость о chroot в OpenSSH из Opennet
5.http://blogs.techrepublic.com.com/opensource/?p=229
6.http://www.debian-administration.org/articles/590
Ссылка на обсуждение: http://forum.lissyara.su/viewtopic.php?t=9445.
размещено: 2008-12-27,
последнее обновление: 2008-12-27,
автор: Storoge
|
|
|
|
2014-07-27, lissyara
gmirror
Удалённое создание софтверного зеркала средствами gmirror, на диске разбитом с использованием gpart. Использование меток дисков для монтирования разделов.
2013-08-20, zentarim
Scan+Print server FreeBSD 9
Настройка сервера печати и сервера сканирования под управлением операционной системы FreebSD 9 для МФУ Canon PIXMA MP540
2011-11-20, BlackCat
Разъём на WiFi-карту
Делаем съёмной несъёмную антену на WiFi-карте путём установки ВЧ-разъёма
2011-09-14, manefesto
Настройка git+gitosis
Настройка системы контроля версия исходного кода в связке git+gitosis+ssh
2011-08-14, zentarim
Wi-FI роутер + DHCP + DNS
Настройка Wi-Fi роутера на Freebsd 8 + DNS сервер + DHCP сервер: чтобы Wi-Fi клиенты были в одной подсети с проводными, проводные и беспроводные клиенты получали адреса автоматически по DHCP, кэширующ
2011-06-15, -ZG-
Охранная система на FreeBSD+LPT
В этой статье описана попытка реализации простой охранной системы на базе FreeBSD с подключением к ней охранных устройтсв на LPT порт и видеорегистрацией.
2011-03-13, terminus
ng_nat
Описание работы ng_nat, практическое использование, достоинства и недостатки в сравнении с ipfw nat
2011-02-20, Капитан
Nagios+Digitemp
Статья описывает создание системы оповещения о превышении температуры в специальных помещениях на основе Nagios с использованием программы Digitemp.
2011-02-17, Le1
Zyxel Configuration
Скрипт для массового изменения конфига свичей Zyxel. Берет из файла iplist список ip-шек, заходит последовательно на каждый и выполняет комманды из файла commands, записывая происходящее в лог файл.
2011-02-16, fox
hast carp zfs ucarp cluster
HAST (Highly Available Storage), CARP, UCARP, ZFS, Cluster настройка и одаптация плюс личные размышления…
2011-02-04, BlackCat
Восстановление ZFS
История о том, как был восстановлен развалившийся RAIDZ ZFS-пул (перешедший в FAULTED) с помощью скотча и подручных средств. Или о том, какие приключения ожидают тех, кто не делает резервных копий.
2011-02-03, Капитан
1-Wire
Статья описывает самостоятельное изготовление контроллера DS9097 для съёма показаний с датчиков температуры DS1820 с помощью программы Digitemp.
2011-01-28, Капитан
Температура в серверной
Статья описывает построение системы наблюдения за температурой в помещении серверной с использованием программы Digitemp и выводом графиков в MRTG
2011-01-21, m4rkell
Syslog server
Как то буквально на днях, у нас завалилось, что то в еве) или не в еве не суть. Суть в том, что когда захотели снять логи с хостов esx обнаружили, что хранят эти негодяи логии только за последнии сутк
|
Статистика сайта
|
Сейчас на сайте находится: 4 чел.
|
За последние 30 мин было: 16 человек
|
За сегодня было 587 показов, 77 уникальных IP
|
|
|
|
Этот информационный блок появился по той простой причине,
что многие считают нормальным, брать чужую информацию не уведомляя автора
(что не так страшно), и не оставляя линк на оригинал и автора — что более существенно.
Я не против распространения информации — только за. Только условие простое — извольте
подписывать автора, и оставлять линк на оригинальную страницу в виде прямой, активной, нескриптовой,
незакрытой от индексирования, и не запрещенной для следования роботов ссылки.
Если соизволите поставить автора в известность — то вообще почёт вам и уважение.
© lissyara 2006-10-24 08:47 MSK
|
|
|
Комментарии пользователей [11 шт.]