FilimoniC
16-06-2008, 12:30
Господа, ситуация такая: Требуется сделать туннель между компьютером за NAT'ом и роутером.
Для доступа к radmin на удаленном компе. Т.е.
Роутер слушает входящие подключения
На удаленном ПК запускается plink (консольный putty), который коннектится к роутеру и делает туннель.
Реализация такова:
На роутере запущен dropbear (так:)
#тут вопрос, нужен ли флаг -a ?
dropbear -m -a -p 443
На компьютере запускается
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:
nc -v -vv -p 8088 -L -s 127.0.0.1
Так вот проблема: если я использую логипасс админа-рута роутера, то все работает отлично. А вот создать пользователя не получается.
[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
(ессно, файлы сохраняются при ребуте)
При коннекте пишет
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 ). Теперь если пользователь зайдет с помощью вышеописаной команды проброса порта, все будет ОК, а если с помощью обычного консольного захода, то консоль закроется сразу после авторизации.
Для доступа к radmin на удаленном компе. Т.е.
Роутер слушает входящие подключения
На удаленном ПК запускается plink (консольный putty), который коннектится к роутеру и делает туннель.
Реализация такова:
На роутере запущен dropbear (так:)
#тут вопрос, нужен ли флаг -a ?
dropbear -m -a -p 443
На компьютере запускается
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:
nc -v -vv -p 8088 -L -s 127.0.0.1
Так вот проблема: если я использую логипасс админа-рута роутера, то все работает отлично. А вот создать пользователя не получается.
[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
(ессно, файлы сохраняются при ребуте)
При коннекте пишет
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 ). Теперь если пользователь зайдет с помощью вышеописаной команды проброса порта, все будет ОК, а если с помощью обычного консольного захода, то консоль закроется сразу после авторизации.