Page 3 of 12 FirstFirst 12345 ... LastLast
Results 31 to 45 of 310

Thread: Безопасность SSH (dropbear)

Hybrid View

Previous Post Previous Post   Next Post Next Post
  1. #1
    Join Date
    Feb 2007
    Location
    Moscow, Russia
    Posts
    3,805
    Сделать доступным ssh из интернета ... + сделать ограничение на количество попыток коннекта
    http://wl500g.info/showpost.php?p=55173&postcount=8

  2. #2

    rsnapshot + crontab

    Никак не удается подружить cron с rsnapshot (а если быть точнее то с rsync).
    В наличии имеется настроенный rsnapshot. Соединение идет через ssh с публичным ключом.
    При запуске из командной строки:
    rsnapshot daily
    Все прекрасно работает, лог:
    Code:
    [18/May/2008:12:21:43] /opt/bin/rsnapshot daily: started
    [18/May/2008:12:21:43] echo 4953 > /var/run/rsnapshot.pid
    [18/May/2008:12:21:43] /opt/bin/cp -al /home/backup/daily.0 /home/backup/daily.1
    [18/May/2008:12:23:58] /opt/bin/rsync -a --delete --numeric-ids --relative --delete-excluded --rsh=/usr/bin/ssh -i /home/backup/keys/pub-key user@host.ru:/home /home/backup/daily.0/host.ru/
    [18/May/2008:12:29:38] touch /home/backup/daily.0/
    [18/May/2008:12:29:38] rm -f /var/run/rsnapshot.pid
    [18/May/2008:12:29:38] /opt/bin/rsnapshot daily: completed successfully
    Если тоже самое сделать из крона, то появляются непонятные ошибки.
    Мой crontab (admin переименован в root):
    Code:
    SHELL=/bin/sh
    PATH=/sbin:/bin:/usr/sbin:/usr/bin:/opt/sbin:/opt/bin
    MAILTO=""
    HOME=/
    # ---------- ---------- Default is Empty ---------- ---------- #
    48 12 * * * root rsnapshot daily
    Из системного лога видно, что крон запустил задачу. HDD шуршит пару минут, пока отрабатывает /opt/bin/cp, но как только дело доходит до rsync, последний отказывается работать.
    Вот лог rsnapshot:
    Code:
    [18/May/2008:12:48:05] /opt/bin/rsnapshot daily: started
    [18/May/2008:12:48:05] echo 4988 > /var/run/rsnapshot.pid
    [18/May/2008:12:48:05] mv /home/backup/daily.1/ /home/backup/daily.2/
    [18/May/2008:12:48:05] /opt/bin/cp -al /home/backup/daily.0 /home/backup/daily.1
    [18/May/2008:12:50:50] /opt/bin/rsync -a --delete --numeric-ids --relative --delete-excluded --log-file=/opt/var/log/rsync --rsh=/usr/bin/ssh -i /home/backup/keys/pub-key user@host.ru:/home /home/backup/daily.0/host.ru/
    [18/May/2008:12:50:52] /opt/bin/rsnapshot daily: ERROR: /opt/bin/rsync returned 12 while processing user@host.ru:/home/
    [18/May/2008:12:50:55] touch /home/backup/daily.0/
    [18/May/2008:12:50:55] rm -f /var/run/rsnapshot.pid
    [18/May/2008:12:50:55] /opt/bin/rsnapshot daily: ERROR: /opt/bin/rsnapshot daily: completed, but with some errors
    Лог rsync:
    Code:
    2008/05/18 12:50:52 [4993] rsync: connection unexpectedly closed (0 bytes received so far) [receiver]
    2008/05/18 12:50:52 [4993] rsync error: error in rsync protocol data stream (code 12) at io.c(635) [receiver=3.0.2]
    Проверял несколько раз. Из командной строки работает, через крон не хочет. Рыл много в сети, куча ссылок с подобными проблемами, но либо вразумительного решения нет, либо ошибки, которых в своем случае я не наблюдаю. Часто проблемы с кроном возникают из-за того что многие переменные окружения в crontab не работают, но вроде все пути указаны полностью.

    P.S. название хоста и пользователя изменены на user@host.ru
    Last edited by japplegame; 18-05-2008 at 10:25.

  3. #3
    После нескольких дней непрерывных боев с rsync, стоило только запостить проблему на форум, как неожиданно удалось найти грабли.

    Оказывается бузил не rsync, а ssh. Дело в том, что ssh перед соединением желает удостовериться можно ли вообще соединяться с указанным хостом. Я, зная об этой привычке ssh, заблаговременно поместил в файлик ~/.ssh/known_hosts (в моем случае ~ = /usr/local/root) соответствующую строку для нужного хоста. Поэтому из командной строки все прекрасно работало. А при запуске через крон, этот файл терялся, так как переменная HOME указывала совсем на другое место. Вылечилось изменением в crontab строки HOME=/ на HOME=/usr/local/root

  4. #4

    Реализация туннеля средствами 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 ). Теперь если пользователь зайдет с помощью вышеописаной команды проброса порта, все будет ОК, а если с помощью обычного консольного захода, то консоль закроется сразу после авторизации.
    Last edited by FilimoniC; 17-06-2008 at 07:34.
    Sorry for my bad English.
    Покупайте Отечественных Слонов!!!

  5. #5
    Нашел проблему:
    Code:
    Jun 16 14:22:55 dropbear[145]: user 'yyy1' has invalid shell, rejected
    Посоветуйте, что написать в качестве шелла? Пробовал /sbin/nologin, но такого файла нету и он матерится. Пробовал /bin/netstat и /bin/true, то же самое. с /bin/sh все хорошо, но мне нужно чтобы шелла у данного логина не было
    Last edited by FilimoniC; 16-06-2008 at 13:44.
    Sorry for my bad English.
    Покупайте Отечественных Слонов!!!

  6. #6
    Quote Originally Posted by FilimoniC View Post
    Нашел проблему:
    Code:
    Jun 16 14:22:55 dropbear[145]: user 'yyy1' has invalid shell, rejected
    Посоветуйте, что написать в качестве шелла? Пробовал /sbin/nologin, но такого файла нету и он матерится. Пробовал /bin/netstat и /bin/true, то же самое. с /bin/sh все хорошо, но мне нужно чтобы шелла у данного логина не было
    Попробуй /bin/true, только добавь его в /etc/shells

  7. #7
    Думаю надо написать /bin/false.

  8. #8
    Спасибо, только добил роутер :-)
    А потом нашел вот это: http://wl500g.info/showpost.php?p=80019&postcount=9 :_))
    6opoga, поправьте свой пост плиз, а то еще кто-нибудь споткнется :-)
    Last edited by FilimoniC; 16-06-2008 at 14:32.
    Sorry for my bad English.
    Покупайте Отечественных Слонов!!!

  9. #9

    sshfs или webdav+samba

    День добрый, уважаемые!

    Возник такой вопрос. Имею место на rsync.net, которое используется для бэкапов. Они его отдают по sftp/sshfs/webdavS.

    Возникла необходимость в домашней сетке за wl500gP v2 сделать доступ к этому аккаунту.

    Хотел бы примонитровать к раутеру через sshfs или webdavs удаленную ФС и раздать её с раутера через самбу.
    Возможно ли это? Как на раутере скажется копирование через эту связку больших файликов?

    Может быть какой-то метод лучше/хуже.
    Крайне благодарен за совет и помощь.

  10. #10
    Никто не сталкивался с похожим?
    FUSE, кажется, не работает...

  11. #11

    Post Как войти по SSH без пароля(используя ключ) от имени обычного пользователя?

    Здравствуйте!

    Существует задача, войти от имени обычного пользователя по SSH без пароля используя ключ. Как это сделать для входа под рутом, я уже разобрался. Теперь не могу разобратся как сделать то-же но для входа без пароля от имени обычного пользователя (который прописан в /etc/passwd)

    Что имеем:
    Сервер - это мой ASUS WL-500gPremium
    Клиент - это мой домашний ПК

    Сгенерированные мною ключи - id_dsa - для рута, id_dsa_maxim - для пользователя maxim. Я делал так:

    На клиенте:
    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:~$
    На сервере:
    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
    Проверяю на клиенте:
    -----------------------------------------
    Для входа под пользователем требует пароля:
    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:
    При этом для рута всё работает:
    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.
    Но мне надо чтобы под обычным пользователем можно было входить без пароля. Как это сделать?
    ASUS WL-500gPremium V1; Прошивка X-Wrt (openwrt-brcm-2.4-squashfs.trx); JID: anterior@im.flosoft.biz

  12. #12
    а... блин. Всё, разобрался. Нужно было каталог называть как ".ssh" на сервере а не ".dropbear"

    Теперь работает
    ASUS WL-500gPremium V1; Прошивка X-Wrt (openwrt-brcm-2.4-squashfs.trx); JID: anterior@im.flosoft.biz

  13. #13

    Unhappy

    Чтоб не плодить тем, спрошу здесь...

    Проблема в том, что сделав практически всё как описано выше, за исключением того, что генерился rsa-ключ, а не dsa и authorized_keys для пользователя admin (суперпользватель на роутере определен как root) лежит в /opt/home/admin/.ssh - я могу войти на сервер (читай ASUS WL-500gP) лишь по telnet. Ssh не принимает пароль и после трех попыток говорит "Permission denied".
    Пользователь admin заведен в /etc/passwd, пароль и права ему нарезаны, группа определена как root (0).

    Куда копать, друзья?

  14. #14

    Smile

    Во! И я разобрался... Вопрос снят. В файле /etc/passwd у юзверя admin в качестве shellа поставил bash. Вот он и ругался.
    Создал файл /etc/shells, занес туда две строки
    Code:
    /opt/bin/bash
    /bin/sh
    Файл /etc/shells внес в /usr/local/.files

    Все заработало.

  15. #15
    dropbear в WL500gpv2-1.9.2.7-d-r1222.trx

    авторизацию по ключу как ссхсервер умеет, как клиент (на внешний SSH сервер, или на самого же себя) - нет (по паролю все ОК).
    это баг\фича, или я не нашел куда ему клиентский ключ всунуть?
    с внешней SSH все ОК

Page 3 of 12 FirstFirst 12345 ... LastLast

Similar Threads

  1. Внимание! Безопасность Linux-based MIPSel роутеров!
    By ABATAPA in forum Russian Discussion - РУССКИЙ (RU)
    Replies: 129
    Last Post: 06-08-2019, 22:48

Tags for this Thread

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •