Не могу запустить весь траффик через ssh соединение с помощью утилиты sshuttle.

Автор Paul18, 29 января 2024, 13:14:35

« назад - далее »

0 Пользователи и 2 гостей просматривают эту тему.

Paul18

Не могу запустить весь траффик через ssh соединение с помощью утилиты
sshuttle. Все делаю по мануалу https://sshuttle.readthedocs.io/en/stable/ У меня дебиан_12 . По ssh с серваком соединяюсь -без проблем. Пробовал увеличить время ожидания ответа сервера -ни чего не помогает, однако обычное соединение по ССШ не рвется те -не в этом дело. Что то мне кажется, что дело в ДНС .
Содержание файла
Цитировать/etc/resolv.conf
Цитировать
Цитироватьnameserver 192.168.0.1
ЦитироватьОднако я не понимаю с какими настройками попробовать запустить
Запускаю по команде
Цитироватьsshuttle -v -r my@server 0/0
или по этой команде
Цитироватьsshuttle --dns my@server -v -r  0/0
ЦитироватьВывод одинаковый
ЦитироватьStarting sshuttle proxy (version 1.1.1).
c : Starting firewall manager with command: ['/usr/bin/sudo', '-p', '[local sudo] Password: ', '/usr/bin/env', 'PYTHONPATH=/usr/lib/python3/dist-packages', '/usr/bin/python3', '/usr/bin/sshuttle', '-v', '--method', 'auto', '--firewall']
[local sudo] Password:
fw: Starting firewall with Python version 3.11.2
fw: ready method name nat.
c : IPv6 enabled: Using default IPv6 listen address ::1
c : Method: nat
c : IPv4: on
c : IPv6: on
c : UDP : off (not available with nat method)
c : DNS : off (available)
c : User: off (available)
c : Subnets to forward through remote host (type, IP, cidr mask width, startPort, endPort):
c :   (<AddressFamily.AF_INET: 2>, '0.0.0.0', 0, 0, 0)
c : Subnets to exclude from forwarding:
c :   (<AddressFamily.AF_INET: 2>, '127.0.0.1', 32, 0, 0)
c :   (<AddressFamily.AF_INET6: 10>, '::1', 128, 0, 0)
c : TCP redirector listening on ('::1', 12300, 0, 0).
c : TCP redirector listening on ('127.0.0.1', 12300).
c : Starting client with Python version 3.11.2
c : Connecting to server...
 s: Running server on remote host with /usr/bin/python3 (version 3.9.2)
                                                                        s: latency control setting = True
 s: auto-nets:False
c : Connected to server.
fw: setting up.
fw: ip6tables -w -t nat -N sshuttle-12300
fw: ip6tables -w -t nat -F sshuttle-12300
fw: ip6tables -w -t nat -I OUTPUT 1 -j sshuttle-12300
fw: ip6tables -w -t nat -I PREROUTING 1 -j sshuttle-12300
fw: ip6tables -w -t nat -A sshuttle-12300 -j RETURN -m addrtype --dst-type LOCAL
fw: ip6tables -w -t nat -A sshuttle-12300 -j RETURN --dest ::1/128 -p tcp
fw: iptables -w -t nat -N sshuttle-12300
fw: iptables -w -t nat -F sshuttle-12300
fw: iptables -w -t nat -I OUTPUT 1 -j sshuttle-12300
fw: iptables -w -t nat -I PREROUTING 1 -j sshuttle-12300
fw: iptables -w -t nat -A sshuttle-12300 -j RETURN -m addrtype --dst-type LOCAL
fw: iptables -w -t nat -A sshuttle-12300 -j RETURN --dest 127.0.0.1/32 -p tcp
fw: iptables -w -t nat -A sshuttle-12300 -j REDIRECT --dest 0.0.0.0/0 -p tcp --to-ports 12300
client_loop: send disconnect: Broken pipe
fw: undoing changes.
fw: ip6tables -w -t nat -D OUTPUT -j sshuttle-12300
fw: ip6tables -w -t nat -D PREROUTING -j sshuttle-12300
fw: ip6tables -w -t nat -F sshuttle-12300
fw: ip6tables -w -t nat -X sshuttle-12300
fw: iptables -w -t nat -D OUTPUT -j sshuttle-12300
fw: iptables -w -t nat -D PREROUTING -j sshuttle-12300
fw: iptables -w -t nat -F sshuttle-12300
fw: iptables -w -t nat -X sshuttle-12300
c : fatal: ssh connection to server (pid 10291) exited with returncode 255


Paul18

где не включен и зачем его включать? Не понял, что вы пишете. Можно чуть подробнее ?

Мои сетевые подключения используют следующие ДНС-серверы
ЦитироватьIP4.DNS[1]:                             192.168.0.1
Моя система может связаться с DNS-сервером и разрешает имена
ЦитироватьServer:      1.1.1.1
Address:   1.1.1.1#53

Non-authoritative answer:
Name:   google.com
Address: 142.250.75.14
Name:   google.com
Address: 2a00:1450:401b:800::200e

результат команды dig google.com также показывает успешный DNS-запрос
; <<>> DiG 9.18.19-1~deb12u1-Debian <<>> google.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 17093
;; flags: qr rd ra; QUERY: 1, ANSWER: 6, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;google.com. IN A

;; ANSWER SECTION:
google.com. 278 IN A 64.233.164.139
google.com. 278 IN A 64.233.164.138
google.com. 278 IN A 64.233.164.102
google.com. 278 IN A 64.233.164.100
google.com. 278 IN A 64.233.164.113
google.com. 278 IN A 64.233.164.101

;; Query time: 0 msec
;; SERVER: 192.168.0.1#53(192.168.0.1) (UDP)
;; WHEN: Mon Jan 29 17:57:57 MSK 2024
;; MSG SIZE  rcvd: 135



Paul18

Я же писал выше об этом выше. Все описанное в этой статье уже давно перепробовал. Ничего не помогло.( Тем не менее попробую еще разок с самого начала. Отпишусь...

dzhoser

У вас при получении к серверу
c : fatal: ssh connection to server (pid 10291) exited with returncode 255То есть ошибка 255. Это значит у вас проблема с ключами, правами доступа к файлам или паролями.
Ubuntu->Linux mint->Astra Linux SE->Debian 12
Для новичков

Paul18

При соединении по ssh ни каких ошибок не возникает. Соединение устанавливается и не падает. Вот вывод команды

ssh -v my@server
OpenSSH_9.2p1 Debian-2+deb12u2, OpenSSL 3.0.11 19 Sep 2023
debug1: Reading configuration data /home/paul/.ssh/config
debug1: /home/paul/.ssh/config line 1: Applying options for *
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 19: include /etc/ssh/ssh_config.d/*.conf matched no files
debug1: /etc/ssh/ssh_config line 21: Applying options for *
debug1: Connecting to my_server [my_server] port 22.
debug1: Connection established.
debug1: identity file /home/paul/.ssh/id_rsa type 0
debug1: identity file /home/paul/.ssh/id_rsa-cert type -1
debug1: identity file /home/paul/.ssh/id_ecdsa type -1
debug1: identity file /home/paul/.ssh/id_ecdsa-cert type -1
debug1: identity file /home/paul/.ssh/id_ecdsa_sk type -1
debug1: identity file /home/paul/.ssh/id_ecdsa_sk-cert type -1
debug1: identity file /home/paul/.ssh/id_ed25519 type -1
debug1: identity file /home/paul/.ssh/id_ed25519-cert type -1
debug1: identity file /home/paul/.ssh/id_ed25519_sk type -1
debug1: identity file /home/paul/.ssh/id_ed25519_sk-cert type -1
debug1: identity file /home/paul/.ssh/id_xmss type -1
debug1: identity file /home/paul/.ssh/id_xmss-cert type -1
debug1: identity file /home/paul/.ssh/id_dsa type -1
debug1: identity file /home/paul/.ssh/id_dsa-cert type -1
debug1: Local version string SSH-2.0-OpenSSH_9.2p1 Debian-2+deb12u2
debug1: Remote protocol version 2.0, remote software version OpenSSH_8.4p1 Debian-5+deb11u1
debug1: compat_banner: match: OpenSSH_8.4p1 Debian-5+deb11u1 pat OpenSSH* compat 0x04000000
debug1: Authenticating to my_server:22 as 'p2pool'
debug1: load_hostkeys: fopen /home/paul/.ssh/known_hosts2: No such file or directory
debug1: load_hostkeys: fopen /etc/ssh/ssh_known_hosts: No such file or directory
debug1: load_hostkeys: fopen /etc/ssh/ssh_known_hosts2: No such file or directory
debug1: SSH2_MSG_KEXINIT sent
debug1: SSH2_MSG_KEXINIT received
debug1: kex: algorithm: curve25519-sha256
debug1: kex: host key algorithm: ssh-ed25519
debug1: kex: server->client cipher: chacha20-poly1305@openssh.com MAC: <implicit> compression: none
debug1: kex: client->server cipher: chacha20-poly1305@openssh.com MAC: <implicit> compression: none
debug1: expecting SSH2_MSG_KEX_ECDH_REPLY
debug1: SSH2_MSG_KEX_ECDH_REPLY received
debug1: Server host key: ssh-ed25519 SHA256:l8NOy3/MjmxCnTsw9l4l9+5slGxgnBTEv64j7TdrQm4
debug1: load_hostkeys: fopen /home/paul/.ssh/known_hosts2: No such file or directory
debug1: load_hostkeys: fopen /etc/ssh/ssh_known_hosts: No such file or directory
debug1: load_hostkeys: fopen /etc/ssh/ssh_known_hosts2: No such file or directory
debug1: Host 'my_server' is known and matches the ED25519 host key.
debug1: Found key in /home/paul/.ssh/known_hosts:1
debug1: rekey out after 134217728 blocks
debug1: SSH2_MSG_NEWKEYS sent
debug1: expecting SSH2_MSG_NEWKEYS
debug1: SSH2_MSG_NEWKEYS received
debug1: rekey in after 134217728 blocks
debug1: get_agent_identities: bound agent to hostkey
debug1: get_agent_identities: ssh_fetch_identitylist: agent contains no identities
debug1: Will attempt key: /home/paul/.ssh/id_rsa RSA SHA256:aVGrmTsWgSr+SJEVd0c4XRwAjF/Tf6t9iUQ2KcC70gw
debug1: Will attempt key: /home/paul/.ssh/id_ecdsa
debug1: Will attempt key: /home/paul/.ssh/id_ecdsa_sk
debug1: Will attempt key: /home/paul/.ssh/id_ed25519
debug1: Will attempt key: /home/paul/.ssh/id_ed25519_sk
debug1: Will attempt key: /home/paul/.ssh/id_xmss
debug1: Will attempt key: /home/paul/.ssh/id_dsa
debug1: SSH2_MSG_EXT_INFO received
debug1: kex_input_ext_info: server-sig-algs=<ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com,webauthn-sk-ecdsa-sha2-nistp256@openssh.com>
debug1: SSH2_MSG_SERVICE_ACCEPT received
debug1: Authentications that can continue: publickey
debug1: Next authentication method: publickey
debug1: Offering public key: /home/paul/.ssh/id_rsa RSA SHA256:aVGrmTsWgSr+SJEVd0c4XRwAjF/Tf6t9iUQ2KcC70gw
debug1: Server accepts key: /home/paul/.ssh/id_rsa RSA SHA256:aVGrmTsWgSr+SJEVd0c4XRwAjF/Tf6t9iUQ2KcC70gw
Authenticated to my_server ([my_server]:22) using "publickey".
debug1: channel 0: new session [client-session] (inactive timeout: 0)
debug1: Requesting no-more-sessions@openssh.com
debug1: Entering interactive session.
debug1: pledge: filesystem
debug1: client_input_global_request: rtype hostkeys-00@openssh.com want_reply 0
debug1: client_input_hostkeys: searching /home/paul/.ssh/known_hosts for my_server / (none)
debug1: client_input_hostkeys: searching /home/paul/.ssh/known_hosts2 for my_server / (none)
debug1: client_input_hostkeys: hostkeys file /home/paul/.ssh/known_hosts2 does not exist
debug1: client_input_hostkeys: host key found matching a different name/address, skipping UserKnownHostsFile update
debug1: Remote: /home/p2pool/.ssh/authorized_keys:3: key options: agent-forwarding port-forwarding pty user-rc x11-forwarding
debug1: Remote: /home/p2pool/.ssh/authorized_keys:3: key options: agent-forwarding port-forwarding pty user-rc x11-forwarding
debug1: Sending environment.
debug1: channel 0: setting env LANG = "ru_RU.UTF-8"
debug1: pledge: fork
debug1: client_input_channel_req: channel 0 rtype exit-status reply 0
debug1: client_input_channel_req: channel 0 rtype eow@openssh.com reply 0
debug1: channel 0: free: client-session, nchannels 1
Connection to my_server closed.
Transferred: sent 3832, received 4900 bytes, in 7.7 seconds
Bytes per second: sent 497.0, received 635.5
debug1: Exit status 0

30 января 2024, 11:42:14
Брандмауэром ни у себя ни на сервере я не пользуюсь.

ogost

Цитата: Paul18 от 29 января 2024, 13:14:35Что то мне кажется, что дело в ДНС .
Вряд ли. По логу видно, что соединение вроде как устанавливается, а из-за ДНС оно отваливаться не должно.
Сервер и клиент оба Дебиана?

30 января 2024, 12:22:05
При всём при этом вот эта команда у меня валится с ошибкой доступа:
sshuttle --dns 10.0.2.1 -v -r 0/0
а эта норм работает
sshuttle -N 0.0.0.0/0 -r 10.0.2.1 -v --dns

dzhoser

client_loop: send disconnect: Broken pipeЧтобы решить эту проблему, вам необходимо увеличить время ожидания SSH-соединения на клиенте. Для этого измените файл конфигурации SSH по умолчанию, который обычно находится в /etc/ssh/sshd_config .

sudo nano /etc/ssh/sshd_configОбязательно найдите эти два параметра: ClientAliveInterval и ClientAliveCountMax . Давайте проверим, что они делают.

ClientAliveInterval — это период бездействия, после которого SSH-сервер отправляет активное сообщение удаленному клиенту, подключенному к нему.
ClientAliveCountMax — это количество попыток, которые сервер предпримет для отправки активного сообщения с сервера клиенту.
Мы установим два значения следующим образом:

ClientAliveInterval 300
ClientAliveCountMax 3
Настройка интервала тайм-аута SSH
Настройка интервала тайм-аута SSH
Это означает, что после первых 300 секунд (5 минут) бездействия клиента сервер отправит клиенту активное сообщение, чтобы сохранить активный сеанс SSH.

Если в течение следующих 300 секунд (на отметке 600 секунд) от клиента не будет получено никаких данных или ответа, сервер снова отправит еще одно активное сообщение. Наконец, после 900 секунд бездействия клиента соединение SSH будет прервано или разорвано.

Обязательно сохраните изменения, внесенные в файл, а затем выйдите. Затем перезапустите демон SSH.

sudo systemctl перезапустить sshd
Ubuntu->Linux mint->Astra Linux SE->Debian 12
Для новичков

Paul18

да, все на дебиан. Я исправил на сервере на

ClientAliveInterval 300
ClientAliveCountMax 3

и ничего не помогает.
Давайте так.... вот Вам

vlad@146.59.10.99
пароль 777666

Как написано в мануале к sshuttle достаточно иметь доступ к серверу без root прав. Вот и попробуйте сами...
если что -пишите что на что изменить на серваке.
Щас там стоит , то что описал выше.