AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / user-1780395

boernsen's questions

Martin Hope
boernsen
Asked: 2025-02-20 20:30:24 +0800 CST

Como montar um USB criptografado LUKS via GUI usando um arquivo de chave?

  • 7

Criptografei um USB externo com cryptsetup usando ambos, uma senha e um keyfile, no Kubuntu 24.04 e adicionei uma entrada correspondente ao crypttab, mas ao montar via GUI ainda me pedem uma senha. Como posso consertar isso?

A unidade foi criptografada usando os seguintes comandos:

# Preconditions:
# - USB is available as /dev/sda
# - Folder ~/.keyfiles exists
sudo cryptsetup luksFormat /dev/sda
sudo dd if=/dev/urandom of=~/.keyfiles/setup_32g.dat bs=512 count=294
sudo chmod 0400 ~/.keyfiles/setup_32g.dat
sudo chown root:root ~/.keyfiles/setup_32g.dat
sudo cryptsetup luksAddKey /dev/sda ~/.keyfiles/setup_32g.dat
sudo cryptsetup config /dev/sda --label sandisk_32g
sudo cryptsetup luksOpen /dev/sda sandisk_32g
sudo mkfs.ext4 /dev/mapper/sandisk_32g
sudo e2label /dev/mapper/sandisk_32g sandisk_32g
sudo mount /dev/mapper/sandisk_32g /media/$USER/sandisk_32g
sudo chmod 777 /media/$USER/sandisk_32g/.
sudo umount /media/$USER/sandisk_32g

Depois disso, tenho uma senha (keyslot 0) e um arquivo de chave ~/.keyfiles/setup_32g.dat(keyslot 1). luksDump mostra:

$ sudo cryptsetup luksDump /dev/sda
LUKS header information
Version:        2
Epoch:          5
Metadata area:  16384 [bytes]
Keyslots area:  16744448 [bytes]
UUID:           172ea93c-7383-44da-8255-ce7d46856dc8
Label:          sandisk_32g
Subsystem:      (no subsystem)
Flags:          (no flags)

Data segments:
  0: crypt
        offset: 16777216 [bytes]
        length: (whole device)
        cipher: aes-xts-plain64
        sector: 512 [bytes]

Keyslots:
  0: luks2
        Key:        512 bits
        Priority:   normal
        Cipher:     aes-xts-plain64
        Cipher key: 512 bits
        PBKDF:      argon2id
        Time cost:  6
        Memory:     1048576
        Threads:    4
        Salt:       d6 0f b7 bc 68 c5 fc 65 14 56 16 b7 3f e8 f2 f6 
                    91 eb d6 ff bf b8 6d eb de bb e9 59 2f 65 35 be 
        AF stripes: 4000
        AF hash:    sha256
        Area offset:32768 [bytes]
        Area length:258048 [bytes]
        Digest ID:  0
  1: luks2
        Key:        512 bits
        Priority:   normal
        Cipher:     aes-xts-plain64
        Cipher key: 512 bits
        PBKDF:      argon2id
        Time cost:  6
        Memory:     1048576
        Threads:    4
        Salt:       ea 01 89 dd 26 ea 45 3b c5 20 90 c9 01 d9 9d 65 
                    3e 56 df e4 28 b4 81 ce ea e0 6e ae f4 0b c1 50 
        AF stripes: 4000
        AF hash:    sha256
        Area offset:290816 [bytes]
        Area length:258048 [bytes]
        Digest ID:  0
Tokens:
Digests:
  0: pbkdf2
        Hash:       sha256
        Iterations: 260321
        Salt:       b9 cf bc 7b da 79 0d a3 5a d8 e2 ea 45 32 c1 7a 
                    75 18 a6 2e 66 28 7c 49 c3 10 99 e8 84 05 b2 2f 
        Digest:     b6 7b 7d 94 78 19 41 6c 2a 6c b4 9c e9 e5 47 26 
                    cb ee 19 1d 95 7c d2 d1 97 f6 1f 77 ae 63 38 59

O arquivo de chave tem as seguintes permissões:

-r--------  1 root root 150528 Dez 29 16:16 setup_32g.dat

Depois disso, adicionei a seguinte entrada no crypttab:

sandisk_32g  UUID=<removed>  /home/<myname>/.keyfiles/setup_32g.dat luks,noauto

Não adicionei nenhuma entrada relacionada no fstab até agora.

Posso executar sudo cryptdisks_start sandisk_32gsem nenhuma senha (já que tenho direitos sudo) e a unidade fica disponível no gerenciador de arquivos (KDE dolphin), então presumo que o arquivo de chave esteja sendo usado corretamente.

No entanto, quando tento acessar a unidade a partir do gerenciador de arquivos (KDE dolphin) ou do ícone "Discos e Dispositivos" na barra de tarefas diretamente (ou seja, sem chamar cryptdisks_startprimeiro), sou inesperadamente solicitado a fornecer uma senha. Se eu digitar a senha, ele abre corretamente.

Como posso fazer com que o processo de montagem da GUI use o arquivo-chave do crypttab em vez de solicitar a senha?


Tentativa: permissões do arquivo-chave

A princípio, suspeitei que faltavam permissões para o arquivo-chave, mas mesmo atribuindo 777 não mudou nada.

Tentativa: fstab

/dev/mapper/sandisk_32g /media/<myname>/sandisk_32g auto   noatime,users,nofail  0  0

ou

/dev/mapper/sandisk_32g  /media/<myname>/sandisk_32g  ext4  noatime,users,nofail,x-systemd.device-timeout=100ms,x-systemd.automount,x-systemd.idle-timeout=20min  0  0

Se eu adicionar uma das entradas acima ao fstab, o comportamento é inconsistente e irritante. Depois de conectar a unidade USB, ainda sou solicitado a digitar uma senha em cada primeira tentativa no gerenciador de arquivos KDE dolphin. Às vezes, quando cancelo o diálogo e acesso a unidade novamente, ela abre sem nenhum outro prompt (usando o arquivo de chave!). Às vezes, não funciona e o diálogo de senha continua aparecendo. Além disso, a opção "Montar e abrir" da barra de tarefas que aparece sempre pede a senha. Quando tento desmontar a unidade por meio do ícone da barra de tarefas "Discos e unidades", sou solicitado a digitar uma senha de administrador devido à falta de permissões para desmontar. Desmontar via KDE dolphin parece funcionar às vezes, mas continua aparecendo como montado na barra de tarefas, onde o botão "Remover com segurança" parece não responder mais, então nunca posso ter certeza se é seguro desconectar agora.

Tentativa: análise de log

PRECISO DE CONSELHOS AQUI !

Eu esperava encontrar algo relacionado ao uso de sudo journalctl --since "1min ago"or sudo dmesg, mas não encontrei.

Eu ficaria muito grato se alguém pudesse me indicar registros mais relevantes!

Solução alternativa

Curiosamente, sempre que eu digito a senha, não importa se eu usei a barra de tarefas ou o KDE dolphin, tudo funciona perfeitamente, incluindo permissões de desmontagem. Eu me pergunto por que há alguma diferença? Eu poderia ativar a carteira KDE, então selecionar "Lembrar senha" quando solicitado e pular toda a coisa do arquivo de chaves. Quando eu testei isso, ele continuou pedindo a senha. Eu também gostaria de evitar usar a carteira KDE e gerenciar todas as minhas senhas no Keepass.

mount
  • 1 respostas
  • 131 Views
Martin Hope
boernsen
Asked: 2024-04-06 16:43:58 +0800 CST

Como posso resolver o vazamento de DNS ao usar o systemd com DNSOverTLS

  • 6

Atualização 04/10/2024: Este não foi um vazamento real. Veja a resposta aceita de mpboden abaixo.

O problema:

Estou conectado a um wifi estrangeiro no Kubuntu Desktop 22.04 e quero configurar o DNS em todo o sistema para 9.9.9.9 (quad9) com DNSOverTLS. No entanto, em dnsleaktest.com ainda recebo um DNS diferente.

Testei com o Firefox com "DNS sobre HTTPS" definido como Desativado.

Em https://on.quad9.net recebo conforme o esperado :YES, You ARE using quad9

No dnsleaktest.com, porém, recebo o resultado não executado :

dnsleaktest. com

Aqui está o que eu fiz:

No NetworkManager para o wifi afetado, desabilitei o IPv6 e configurei o IPv4 como Automático (somente endereços) e coloquei uma lista vazia como servidor DNS. A configuração resultante no terminal é:

$ nmcli device
DEVICE        TYPE      STATE         CONNECTION
wlo1          wifi      connected     TP-LINK_58DE
p2p-dev-wlo1  wifi-p2p  disconnected  --
lo            loopback  unmanaged     --

$ nmcli device show wlo1
GENERAL.DEVICE:                         wlo1
GENERAL.TYPE:                           wifi
GENERAL.HWADDR:                         xx:xx:xx:xx:xx:xx
GENERAL.MTU:                            1500
GENERAL.STATE:                          100 (connected)
GENERAL.CONNECTION:                     TP-LINK_58DE
GENERAL.CON-PATH:                       /org/freedesktop/NetworkManager/ActiveConnection/1
IP4.ADDRESS[1]:                         192.168.0.112/24
IP4.GATEWAY:                            192.168.0.1
IP4.ROUTE[1]:                           dst = 192.168.0.0/24, nh = 0.0.0.0, mt = 600
IP4.ROUTE[2]:                           dst = 0.0.0.0/0, nh = 192.168.0.1, mt = 600
IP4.ROUTE[3]:                           dst = 169.254.0.0/16, nh = 0.0.0.0, mt = 1000
IP6.GATEWAY:                            --

Eu configurei /etc/systemd/resolved.conf como tal (apenas as últimas linhas são relevantes, mas para verificação de integridade/erro forneço o arquivo completo):

$ cat /etc/systemd/resolved.conf
#  This file is part of systemd.
#
#  systemd is free software; you can redistribute it and/or modify it under the
#  terms of the GNU Lesser General Public License as published by the Free
#  Software Foundation; either version 2.1 of the License, or (at your option)
#  any later version.
#
# Entries in this file show the compile time defaults. Local configuration
# should be created by either modifying this file, or by creating "drop-ins" in
# the resolved.conf.d/ subdirectory. The latter is generally recommended.
# Defaults can be restored by simply deleting this file and all drop-ins.
#
# Use 'systemd-analyze cat-config systemd/resolved.conf' to display the full config.
#
# See resolved.conf(5) for details.

[Resolve]
# Some examples of DNS servers which may be used for DNS= and FallbackDNS=:
# Cloudflare: 1.1.1.1#cloudflare-dns.com 1.0.0.1#cloudflare-dns.com 2606:4700:4700::1111#cloudflare-dns.com 2606:4700:4700::1001#cloudflare-dns.com
# Google:     8.8.8.8#dns.google 8.8.4.4#dns.google 2001:4860:4860::8888#dns.google 2001:4860:4860::8844#dns.google
# Quad9:      9.9.9.9#dns.quad9.net 149.112.112.112#dns.quad9.net 2620:fe::fe#dns.quad9.net 2620:fe::9#dns.quad9.net
#DNS=
#FallbackDNS=
#Domains=
#DNSSEC=no
#DNSOverTLS=no
#MulticastDNS=no
#LLMNR=no
#Cache=no-negative
#CacheFromLocalhost=no
#DNSStubListener=yes
#DNSStubListenerExtra=
#ReadEtcHosts=yes
#ResolveUnicastSingleLabel=no
DNS=9.9.9.9#dns.quad9.net
FallbackDNS=9.9.9.9#dns.quad9.net
Domains=~.
DNSSEC=yes
DNSOverTLS=yes

Depois de sudo systemctl restart systemd-resolvede sudo systemctl restart NetworkManager, esta é a configuração resultante (toda a saída é colada aqui):

$ resolvectl status
Global
           Protocols: -LLMNR -mDNS +DNSOverTLS DNSSEC=yes/supported
    resolv.conf mode: foreign
  Current DNS Server: 9.9.9.9#dns.quad9.net
         DNS Servers: 9.9.9.9#dns.quad9.net
Fallback DNS Servers: 9.9.9.9#dns.quad9.net
          DNS Domain: ~.

Link 2 (wlo1)
Current Scopes: none
     Protocols: -DefaultRoute +LLMNR -mDNS +DNSOverTLS DNSSEC=yes/supported

Em testes básicos parece funcionar:

$ resolvectl query archlinux.com
archlinux.com: 3.64.163.50                     -- link: wlo1

-- Information acquired via protocol DNS in 1.1292s.
-- Data is authenticated: no; Data was acquired via local or encrypted transport: yes
-- Data from: cache network

$ dig archlinux.com

; <<>> DiG 9.18.18-0ubuntu0.22.04.2-Ubuntu <<>> archlinux.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 60948
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1

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

;; ANSWER SECTION:
archlinux.com.          7200    IN      A       3.64.163.50

;; Query time: 331 msec
;; SERVER: 127.0.0.53#53(127.0.0.53) (UDP)
;; WHEN: Sat Apr 06 09:30:08 CEST 2024
;; MSG SIZE  rcvd: 58


$ ss -tuna | grep :853
tcp   TIME-WAIT 0      0           192.168.0.112:48420        9.9.9.9:853
tcp   ESTAB     0      0           192.168.0.112:49032        9.9.9.9:853

A questão restante é: Por que obtenho um DNS diferente em dnsleaktest.com?

Algumas coisas que tentei:

  • sudo resolvectl flush-caches
  • sudo resolvconf -u
  • Coloque 9.9.9.9 apenas na lista de servidores DNS IPv4 no NetworkManager
  • Coloque 127.0.0.53 apenas na lista de servidores DNS IPv4 no NetworkManager
  • Adicionado dns=noneàs seções [principais] de /etc/NetworkManager/NetworkManager.confe/etc/NetworkManager/conf.d/90-dns-none.conf
  • sudo systemctl restart systemd-resolved
  • sudo systemctl restart NetworkManager
  • reinício
  • Segui este guia que usa uma configuração mais simples: https://www.ubuntubuzz.com/2022/04/enable-browsing-with-dns-over-tls-dot-on-ubuntu-made-easy.html
  • Seguindo esta resposta: https://askubuntu.com/a/1069429/1780395 , ou seja
cd /etc/
mv resolv.conf resolv.conf-old
ln -s /run/systemd/resolve/resolv.conf /etc/resolv.conf
  • sudo dpkg-reconfigure resolvconf. Isto resulta em:

insira a descrição da imagem aqui

$ ls -la /etc/resolv.conf 
lrwxrwxrwx 1 root root 29 Apr  8 09:10 /etc/resolv.conf -> ../run/resolvconf/resolv.conf

$ cat /etc/resolv.conf 
# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
#     DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
# 127.0.0.53 is the systemd-resolved stub resolver.
# run "systemd-resolve --status" to see details about the actual nameservers.

nameserver 127.0.0.53

Nada ainda ajudou. Você pode me ajudar a resolver isso?

networking
  • 1 respostas
  • 103 Views

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    Existe um comando para listar todos os usuários? Também para adicionar, excluir, modificar usuários, no terminal?

    • 9 respostas
  • Marko Smith

    Como excluir um diretório não vazio no Terminal?

    • 4 respostas
  • Marko Smith

    Como descompactar um arquivo zip do Terminal?

    • 9 respostas
  • Marko Smith

    Como instalo um arquivo .deb por meio da linha de comando?

    • 11 respostas
  • Marko Smith

    Como instalo um arquivo .tar.gz (ou .tar.bz2)?

    • 14 respostas
  • Marko Smith

    Como listar todos os pacotes instalados

    • 24 respostas
  • Martin Hope
    Flimm Como posso usar o docker sem sudo? 2014-06-07 00:17:43 +0800 CST
  • Martin Hope
    led-Zepp Como faço para salvar a saída do terminal em um arquivo? 2014-02-15 11:49:07 +0800 CST
  • Martin Hope
    ubuntu-nerd Como descompactar um arquivo zip do Terminal? 2011-12-11 20:37:54 +0800 CST
  • Martin Hope
    TheXed Como instalo um arquivo .deb por meio da linha de comando? 2011-05-07 09:40:28 +0800 CST
  • Martin Hope
    Ivan Como listar todos os pacotes instalados 2010-12-17 18:08:49 +0800 CST
  • Martin Hope
    David Barry Como determino o tamanho total de um diretório (pasta) na linha de comando? 2010-08-06 10:20:23 +0800 CST
  • Martin Hope
    jfoucher "Os seguintes pacotes foram retidos:" Por que e como resolvo isso? 2010-08-01 13:59:22 +0800 CST
  • Martin Hope
    David Ashford Como os PPAs podem ser removidos? 2010-07-30 01:09:42 +0800 CST

Hot tag

10.10 10.04 gnome networking server command-line package-management software-recommendation sound xorg

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve