среда, 9 июля 2008 г.

SSH туннелинг и SleepShell


SSH туннелинг и SleepShell

Читал чуть раньше у mr-tacitus заметку про то, как сделать из SSH -SOCKS-сервер, т.е. создается зашифрованный туннель между клиентской машиной и сервером с поднятым на нем sshd демоном и по определенному порту трафик от клиента в мир идет не "на прямую", а через туннель. Например можно направить в туннель запросы браузера или ICQ клиента, таким образом зашифровать передачу личных данных.


В моем случае, мне понадобилось создать туннель для серфинга в интернете, доступ к шелу не нужен и для безопассности пользователь который создает туннель (т.е. подключается к ssh серверу), вместо обычного шела - получает "shell-пустышку". Мне посоветовали использовать для этих целей SleepShell.





SleepShell - это программка, которая после логина удаленного пользователя по SSH, вместо стандартного приглашения " $ " выводит каждые 10-ть секунд звездочки " * ". Это очень удобно, пользователь прошел авторизацию, но не может ввести ни одну команду. Кстати перед компилированием - можно исходник изменить и вместо звездочек выводить например сколько прошло времени после логина этого пользователя.


Для того, чтобы создать туннель, в конфиге sshd нужно разрешить опцию TcpForwarding

#ee /etc/ssh/sshd_config

AllowTcpForwarding yes

#/etc/rc.d/sshd restart
Если создавать соединение с ssh сервером через putty нужно указать адрес и порт сервера



Далее Connection-->SHH-->Tunnels добавить произвольный порт, на этот порт будет настраиваться браузер.



Теперь нужно настроить браузер



Если вы все сделали правильно, то ваш браузер будет работать через ssh proxy. Для проверки можно зайти на 2ip.ru или whatismyip.com и увидеть там IP адрес ssh сервера.

========
Теперь немного про SleepShell.

На сайте все очнь доступно описанно, так что я немного повторюсь.
1. Для начала, нужнно скачать програмку http://www.mariovaldez.net/software/sleepshell/
из консоли я зашел на сайт и cкачал архив консольным браузером lynx (/usr/ports/japanese/lynx)

2. Архив нужно распоковать
#tar -xf sleepshell_0.0.2.tar.gz


3. Зайти в распакованный каталог и скомпилировать программу
#cd sleepshell
#make


4. Для проверки на работоспособность, можно запустить свежеоткомпилированную прогу

#./sleepshell


5. Теперь свежескомпилированную прогу нужно скопировать в /usr/local/bin/
#cp sleepshell /usr/local/bin/sleepshell


6. Так же я добавил /usr/local/bin/sleepshell в /etc/shells

7. Теперь все!!! Можно создавать нового юзера (#adduser) и на вопрос какой шел использовать будет юзер, написать sleepshell.


2 комментария:

  1. может я чет не догоняю, а DNS откуда брать ?

    ОтветитьУдалить
  2. DNS трогать не надо, ты подмапил удаленный порт на свой localhost и настраиваешь свой браузер/качалку/аську на этот порт, все запросы от "этих" программ будут идти через туннель на удаленный сервер и дальше в мир, запросы от программ будут исходить от удаленного сервера, а не от тебя!

    А настройки днс остаются такими же, ты их не трогаешь :)

    ОтветитьУдалить