Реализация туннеля средствами dropbear
Господа, ситуация такая: Требуется сделать туннель между компьютером за NAT'ом и роутером.
Для доступа к radmin на удаленном компе. Т.е.
Роутер слушает входящие подключения
На удаленном ПК запускается plink (консольный putty), который коннектится к роутеру и делает туннель.
Реализация такова:
На роутере запущен dropbear (так:)
Code:
#тут вопрос, нужен ли флаг -a ?
dropbear -m -a -p 443
На компьютере запускается
Code:
plink -P 443 -v -ssh -l loginXXX -pw passwordXXX -T -N -noagent -R 172.20.1.1:8087:127.0.0.1:8088 hostanmeXXX.homedns.org
и при этом делает туннель. При обращении к роутеру по адресу 172.20.1.1 (внутренний) на порт 8087,
идет туннельный коннект к сервису на удаленном компьютере на порту 8088.
Для тестов запускаю NetCat для Windows:
Code:
nc -v -vv -p 8088 -L -s 127.0.0.1
Так вот проблема: если я использую логипасс админа-рута роутера, то все работает отлично. А вот создать пользователя не получается.
Code:
[XxX@router root]$ cat /etc/group
root:x:0:XxX
nobody:x:99:
port_tunnels:x:200:yyy1,yyy2,yyy3,yyy4,yyy5
[XxX@router root]$ cat /etc/passwd
XxX:hash1hash1hash1hash1:0:0:root:/usr/local/root:/bin/sh
nobody:x:99:99:nobody:/:/sbin/nologin
yyy1:hash2hash2hash2hash2:201:200:Remote Tunnel N1:/opt:/sbin/nologin
(ессно, файлы сохраняются при ребуте)
При коннекте пишет
Code:
plink -P 443 -v -ssh -l yyy1 -pw pass_yyy1 -T -N -noagent -R 172.20.1.1:80:127.0.0.1:8088 xxxhost.homedns.org
Looking up host "xxxhost.homedns.org"
Connecting to 111.111.111.111 port 443
Server version: SSH-2.0-dropbear_0.49
We claim version: SSH-2.0-PuTTY_Release_0.60
Using SSH protocol version 2
Using Diffie-Hellman with standard group "group1"
Doing Diffie-Hellman key exchange with hash SHA-1
Host key fingerprint is:
ssh-rsa 1040 b4:27:d7:ca:44:02:66:54:da:22:62:8f:aa:47:f6:9f
Initialised AES-256 CBC client->server encryption
Initialised HMAC-SHA1 client->server MAC algorithm
Initialised AES-256 CBC server->client encryption
Initialised HMAC-SHA1 server->client MAC algorithm
Using username "yyy1".
Sent password
Access denied
Access denied
Disconnected: Unable to authenticate
Подскажите, как быть? Хочется чтобы у юзера было как можно меньше прав.
UPD: Решено: нужно пользователю прописать шелл /bin/true (вместо /sbin/nologin), затем в /etc/shells добавить строки с шеллами, которые используются, не забыв про /bin/sh (если его не добавить, невозможно будет зайти под рутом Через ssh. Если все же сделали такую ошибку, зайдите через web-интерфейс и rm /etc/shells ). Теперь если пользователь зайдет с помощью вышеописаной команды проброса порта, все будет ОК, а если с помощью обычного консольного захода, то консоль закроется сразу после авторизации.
Как войти по SSH без пароля(используя ключ) от имени обычного пользователя?
Здравствуйте!
Существует задача, войти от имени обычного пользователя по SSH без пароля используя ключ. Как это сделать для входа под рутом, я уже разобрался. Теперь не могу разобратся как сделать то-же но для входа без пароля от имени обычного пользователя (который прописан в /etc/passwd)
Что имеем:
Сервер - это мой ASUS WL-500gPremium
Клиент - это мой домашний ПК
Сгенерированные мною ключи - id_dsa - для рута, id_dsa_maxim - для пользователя maxim. Я делал так:
На клиенте:
Quote:
maxim@localhost:~$ ssh-keygen -t dsa
<...>
maxim@localhost:~$ scp ~/.ssh/id_dsa_maxim.pub maxim@192.168.1.2:/opt/home/maxim
maxim@192.168.1.2's password:
id_dsa_maxim.pub 100% 605 0.6KB/s 00:00
maxim@localhost:~$
На сервере:
Quote:
maxim@OpenWrt:~$ mkdir .dropbear
maxim@OpenWrt:~$ cat id_dsa_maxim.pub >> .dropbear/authorized_keys
maxim@OpenWrt:~$ rm id_dsa_maxim.pub
maxim@OpenWrt:~$ chmod 0600 .dropbear/authorized_keys
maxim@OpenWrt:~$ ln -s .dropbear dropbear
maxim@OpenWrt:~$ ls -al
drwxr-xr-x 5 maxim maxim 4096 Jul 6 10:29 .
drwxr-xr-x 4 root root 4096 Jan 1 2000 ..
-rw-r--r-- 1 maxim maxim 16 Jul 6 10:23 .ash_history
drwxr-xr-x 2 maxim maxim 4096 Jul 6 10:28 .dropbear
drwxr-xr-x 7 maxim maxim 4096 Jan 1 2000 Archive
drwxr-xr-x 2 maxim maxim 4096 Jan 1 2000 Torrents
lrwxrwxrwx 1 maxim maxim 9 Jul 6 10:29 dropbear -> .dropbear
-rw-r--r-- 1 root root 61517918 Apr 17 11:13 linux-2.6.25.tar.gz
-rw-r--r-- 1 root root 381866 Jul 5 23:59 nixxx.zip
maxim@OpenWrt:~$ ls -l .dropbear
-rw------- 1 maxim maxim 605 Jul 6 10:28 authorized_keys
Проверяю на клиенте:
-----------------------------------------
Для входа под пользователем требует пароля:
Quote:
maxim@localhost:~$ ssh -i /home/maxim/.ssh/id_dsa_maxim maxim@192.168.1.2
maxim@192.168.1.2's password:
Permission denied, please try again.
maxim@192.168.1.2's password:
При этом для рута всё работает:
Quote:
maxim@localhost:~$ ssh -i /home/maxim/.ssh/id_dsa root@192.168.1.2
BusyBox v1.4.2 (2007-08-08 08:29:39 CDT) Built-in shell (ash)
Enter 'help' for a list of built-in commands.
root@OpenWrt:~# exit
Connection to 192.168.1.2 closed.
Но мне надо чтобы под обычным пользователем можно было входить без пароля. Как это сделать?
Какая связь между telnet и dropbear SSHD
Господа,
объясните тупому, какая связь между телнетом и dropbear.
Почему если в настройках рутера заглушить телнет, то dropbear не запускается?
Более того, заходим на рутер по ssh, смотрим активные процессы, видим telnetd. Киляем его, и наблюдаем немедленное умирание сессии ssh.
Т.е. я так понимаю, что sh, который запускает post-boot (равно как ивсе остальные скрипты из sbin) запускается из-под телнета, и убив родительский процесс, мы киляем все что под ним.
Но тогда получается, что в конфигурациях описанных во всех how-to, telnetd обязательно должен быть разрешен в настройках рутера. Это так?
Кроме того, мы имеем поенциальную дыру в рутере. Я прав?
Не запускается sftp-server
Проблема в следующем.
Установил ipkg install openssh-sftp-server
Установка прошла успешно, но при запуска sftp-server выдается ошибка-file not found, хотя файл лежит в opt/libexec
Перечитал весь форум, написано, что sftp-server должен запускать dropbear
Сам dropbear у меня запускается, но не запускает sftp-server
Чего не хватает для его запуска?
Помогите избавиться от ломальщиков ftp... (срочно)
Вот такие логи весь день:
Jan 31 15:36:05 vsftpd[5493]: CONNECT: Client "122.116.180.110"
Jan 31 15:36:06 vsftpd[5492]: [linux] FAIL LOGIN: Client "122.116.180.110"
Jan 31 15:36:07 vsftpd[5492]: [linux] FAIL LOGIN: Client "122.116.180.110"
Jan 31 15:36:09 vsftpd[5492]: [linux] FAIL LOGIN: Client "122.116.180.110"
Jan 31 15:36:11 vsftpd[5495]: CONNECT: Client "122.116.180.110"
Jan 31 15:36:12 vsftpd[5494]: [linux] FAIL LOGIN: Client "122.116.180.110"
Jan 31 15:36:14 vsftpd[5494]: [linux] FAIL LOGIN: Client "122.116.180.110"
Jan 31 15:36:16 vsftpd[5494]: [linux] FAIL LOGIN: Client "122.116.180.110"
Вопрос в том как на работающем роутере закрыть порт 21 на доступ извне. Останавливать и перегружать очень не хочется.
Прошивка Олега последняя.