Такая проблема нужно пускать юзвера на сервер... по ssh ...
Но показывать внутренности сервера... ему просто никак не надо...
Пусть играеться в песочнице aka chroot...
Так вот как можно сделать так что бы по ssh его пускало на виртульную машину в песочнице (по другому порту так как на машине работает и еще одна версия ssh)... закомпилив ssh в песочницу... он просто отказывается работать...
Падает... с таким сообщением: Received signal 11. (no core)
Песочиница поднята в /opt/www, там есть папка /opt/www/ssh на нее есть линка ln -s /opt/www/ssh /ssh
компилю с такими параметрами:
./configure --enable-static --prefix=/ssh --exec-prefix=/ssh/ --without-ipv6 --enable-group-writeability --without-ssh-agent1-compat --without-internal-ssh1-compat --with-etcdir=/ssh/etc --with-piddir=/ssh/var --disable-X11-forwardingЧего ему или как еще мона пускать юзвера в песочницу?
Маны ссылки все приветсвуеться...!!!!
>Такая проблема нужно пускать юзвера на сервер... по ssh ...
>Но показывать внутренности сервера... ему просто никак не надо...
>Пусть играеться в песочнице aka chroot...
>Так вот как можно сделать так что бы по ssh его пускало
>на виртульную машину в песочнице (по другому порту так как на
>машине работает и еще одна версия ssh)... закомпилив ssh в песочницу...
>он просто отказывается работать...
>Падает... с таким сообщением: Received signal 11. (no core)
>Песочиница поднята в /opt/www, там есть папка /opt/www/ssh на нее есть
>линка ln -s /opt/www/ssh /ssh
>компилю с такими параметрами:
>./configure --enable-static --prefix=/ssh --exec-prefix=/ssh/ --without-ipv6 --enable-group-writeability --without-ssh-agent1-compat --without-internal-ssh1-compat --with-etcdir=/ssh/etc
> --with-piddir=/ssh/var --disable-X11-forwarding
>
>Чего ему или как еще мона пускать юзвера в песочницу?
>Маны ссылки все приветсвуеться...!!!!Я тоже занимался этим вопросом и ношол патч для ssh который даёт возможность сделать это посмотри в нэте есть также для FreeBSD
уже готовая версия ssh с chrot возможностью ssh2-3.2.9.1_3
идея в том что когда пользователь заходит по SSH то его домашний католог становится песочницей
>Такая проблема нужно пускать юзвера на сервер... по ssh ...
>Но показывать внутренности сервера... ему просто никак не надо...
>Пусть играеться в песочнице aka chroot...
>Так вот как можно сделать так что бы по ssh его пускало
>на виртульную машину в песочнице (по другому порту так как на
>машине работает и еще одна версия ssh)... закомпилив ssh в песочницу...
>он просто отказывается работать...
>Падает... с таким сообщением: Received signal 11. (no core)
>Песочиница поднята в /opt/www, там есть папка /opt/www/ssh на нее есть
>линка ln -s /opt/www/ssh /ssh
>компилю с такими параметрами:
>./configure --enable-static --prefix=/ssh --exec-prefix=/ssh/ --without-ipv6 --enable-group-writeability --without-ssh-agent1-compat --without-internal-ssh1-compat --with-etcdir=/ssh/etc
> --with-piddir=/ssh/var --disable-X11-forwarding
>
>Чего ему или как еще мона пускать юзвера в песочницу?
>Маны ссылки все приветсвуеться...!!!!http://linux.opennet.ru/prog/sml/93.shtml
http://debian.chains.ch/chroot/chroot.html
http://www.gelato.unsw.edu.au/IA64wiki/DeibanSSHChroot
http://olivier.sessink.nl/jailkit/howtos_ssh_only.html
все делается элементарно.. у меня допустим на серваке сделано так -
в /var/newroot
создай обычные директории как в корневом каталоге, те же самые
/bin
/dev
/etc
/home
/lib
/tmp
/usr
/varзапихни туда то что тебе нужно, с /dev чтобы не париться можно просто скопировать туда всё что есть в /dev в корневом каталоге, хотя это избыточно.. в /bin и так далее запихни просто те проги которые ты хочешь дать юзверю.. скопируй так же куда нибудь ssh
и стартуй его потом таким образом
/usr/sbin/chroot /var/newroot sshd
у меня так на 22м порту обычные юзвери которые пользуют cvs, а на 21м порту нормальный ssh для меня
Все вроде запускаеться...
скачал openssh ... закомпилил... все заработало.. почти с полпинка..
Но теперь вот трабла..
Один раз законнектившись сервер sshd отваливаеться...
Наверное нужно что нить аля inetd ? ... и как это мона поднять?
>Один раз законнектившись сервер sshd отваливаеться...
>Наверное нужно что нить аля inetd ? ... и как это монаа в обычном не chroot окружении он тоже отваливается?
inetd не надо, аболютно не надо.. sshd хорошо справляется и как standalone application..
Через google можно найти простой патч, который делает chroot для всех пользователей с путем к домашней директории /корень_песочницы/./путь_в_песочнице/
>Через google можно найти простой патч, который делает chroot для всех пользователей
>с путем к домашней директории /корень_песочницы/./путь_в_песочнице/Без всяких патчей
chsh -s /bin/chrsh usercat >> /bin/chrsh << EOF
#!/bin/sh
/usr/bin/sudo /usr/bin/chroot /home/$USER /bin/bash
EOF
Последнее решение... супер оригинальное... хех...давно так думал... но как то не получалось написать скрипт.. ;)
>/usr/bin/sudo /usr/bin/chroot /home/$USER /bin/bash
>EOFУгу, правда придется молиться чтобы в sudo не нашли очередную дыру. Чем хорош патч, это то что scp без дополнительных библиотек и программ в песочнице работает.
а как побороть сообщение
csh: Cannot open /etc/termcap.
csh: using dumb terminal settings.
?в chroot'овой директории он есть:
%ls -l /etc
total 192
-r--r--r-- 1 0 65534 194955 Aug 14 19:44 termcap
%
>а как побороть сообщение
>csh: Cannot open /etc/termcap.
>csh: using dumb terminal settings.
>?
>
>в chroot'овой директории он есть:
>%ls -l /etc
>total 192
>-r--r--r-- 1 0 65534 194955 Aug 14 19:44 termcap
>
>%# man csh
# man environ
# echo $TERM
# echo $TERMCAP[unix1]~ > echo $TERM $TERMCAP
xterm /etc/termcap
[unix1]~ >[unix1]~ > grep TERMCAP /etc/csh*
/etc/csh.login:setenv TERMCAP /etc/termcap
/etc/csh.login: setenv TERMCAP /etc/termcap
[unix1]~ >или в HOMEDIR:
# grep TERMCAP .cshrc
# grep TERMCAP .login
># man csh
># man environ
># echo $TERM
># echo $TERMCAP
>
>[unix1]~ > echo $TERM $TERMCAP
>xterm /etc/termcap
>[unix1]~ >
>
>[unix1]~ > grep TERMCAP /etc/csh*
>/etc/csh.login:setenv TERMCAP /etc/termcap
>/etc/csh.login: setenv TERMCAP /etc/termcap
>[unix1]~ >
>
>или в HOMEDIR:
>
># grep TERMCAP .cshrc
># grep TERMCAP .login
Thanx Lavr!
все оказалось как обычно на поверхности:aliot# cp /home/proff/csh.cshrc /home/sshtun/etc/
aliot# vi /home/sshtun/etc/csh.cshrc
aliot# grep TERMCAP /home/sshtun/etc/csh.cshrc
setenv TERMCAP /etc/termcap
aliot#
Нет всетаки придется... искать патчик... так как доступ придется давать с виндозной машины... из проги аля WinSCP ... а она когда цепляется... не обрабатывает эти скрипты...