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 / unix / 问题

All perguntas(unix)

Martin Hope
jsx97
Asked: 2024-11-30 04:10:04 +0800 CST

O .zshrc pode ser modificado automaticamente?

  • 6

Tenho um , criado cuidadosamente .zshrc, no qual não quero ter nada que eu não tenha adicionado manualmente. É possível que algum programa, instalador ou comando adicione algumas linhas lá automaticamente? (Isto é, bem no começo ou bem no final?)

Em outras palavras, entendo que isso echo foo > ~/.zshrcirá modificá-lo, mas existem outros cenários semelhantes?

zsh
  • 2 respostas
  • 19 Views
Martin Hope
A. Bear
Asked: 2024-11-29 20:34:53 +0800 CST

Meu sistema ficará mais rápido ou mais lento com esse esquema de espelhamento LVM?

  • 5

Geralmente inicializo meu sistema a partir de um único SSD NVMe M.2 de 250G (PCIe 3.0 x4). Também tenho um SSD SATA de 240G e um HDD SATA de 640G e 7200rpm que atualmente uso para backup ad hoc . Este último será substituído por um backup remoto adequado, então tenho essas unidades livres.

Estou pensando em criar um volume lógico de 240 G usando LVM em uma configuração RAID1 para ter dois espelhos (ou seja, três imagens no total) do meu sistema.

Quero saber se isso será mais lento ou mais rápido do que minha configuração atual. Meu objetivo principal para isso é redundância, mas prefiro não degradar o desempenho. Posso considerar deixar o HDD fora da mistura se for provável que seja um problema.

Não sei nada específico sobre o cache/buffering dos drives de cabeça. Mas tenho 16 GB de RAM e, se for importante, usarei ext4 por enquanto.

lvm
  • 1 respostas
  • 37 Views
Martin Hope
Sushihash
Asked: 2024-11-29 05:59:23 +0800 CST

Acesso entre interfaces

  • 6

Contexto

Na minha infraestrutura Debian Linux, gerencio diversas interfaces de rede com funções específicas.

Interface Papel Sub-rede Descrição
eth0 Conexão pública 192.0.2.0/24 Usado para acesso público externo.
wg0 WireGuard VPN 10.0.0.0/24 Permite a comunicação segura entre máquinas via VPN.
vmbr0 Ponte para Proxmox 172.16.0.0/16 Ponte para máquinas virtuais.
  • Regras de firewall : Nenhuma regra iptables/nftables é aplicada atualmente. Todas as chains têm uma política padrão definida como ACCEPT .
  • Configuração do kernel : o encaminhamento IPv4 está desabilitado ( net.ipv4.ip_forward = 0).

Meta

O objetivo é limitar estritamente as comunicações de rede na infraestrutura:

Quando um computador se conecta à VPN por meio da wg0interface, ele só deve conseguir se comunicar com uma máquina virtual específica localizada na vmbr0ponte.

O objetivo é garantir o isolamento completo entre as interfaces e restringir o tráfego a esse caso de uso específico.


Reproduzindo a configuração

Configuração do WireGuard (informações falsas)

Para replicar o ambiente, aqui está uma configuração básica do WireGuard para duas máquinas Linux:

Máquina 1: Servidor VPN (informações falsas)

Interface:wg0

  1. Geração de chaves (exemplo de chaves, geradas via wg genkeye wg pubkey):

    • Chave privada:9+9N5R5Dje2dmldDtrjQoBb3AFOWhOAyZ9mfWQKn7QY=
    • Chave pública:Ci4z9W+n8gfrFRRGZs3DNMHmKk1TFNG9QXGV7zg5OkE=
  2. Configuração do WireGuard : (informações falsas)

    Arquivo /etc/wireguard/wg0.conf:

    [Interface]
    PrivateKey = 9+9N5R5Dje2dmldDtrjQoBb3AFOWhOAyZ9mfWQKn7QY=
    Address = 10.0.0.1/24
    ListenPort = 51820
    
    [Peer]
    PublicKey = YdC5+zMdKj5cRW2WlAv7GDETx+gjZukOmeC+lkJZ8is=
    AllowedIPs = 10.0.0.2/32
    
  3. Comandos para aplicar :

    sudo wg-quick up wg0
    sudo systemctl enable wg-quick@wg0
    
Máquina 2: Cliente VPN (informações falsas)

Interface:wg0

  1. Geração de chaves :

    • Chave privada:mWjXaRlvJjThhf9ZZpaAWwdY0Puvy0k9fGy7prlzvV8=
    • Chave pública:YdC5+zMdKj5cRW2WlAv7GDETx+gjZukOmeC+lkJZ8is=
  2. Configuração do WireGuard :

    Arquivo /etc/wireguard/wg0.conf:

    [Interface]
    PrivateKey = mWjXaRlvJjThhf9ZZpaAWwdY0Puvy0k9fGy7prlzvV8=
    Address = 10.0.0.2/24
    
    [Peer]
    PublicKey = Ci4z9W+n8gfrFRRGZs3DNMHmKk1TFNG9QXGV7zg5OkE=
    Endpoint = <SERVER_IP>:51820
    AllowedIPs = 10.0.0.1/24, 172.16.0.0/16, 192.0.2.0/24
    PersistentKeepalive = 25
    
  3. Comandos para aplicar :

    sudo wg-quick up wg0
    sudo systemctl enable wg-quick@wg0
    

Essas configurações estabelecem uma conexão simples entre o servidor VPN ( 10.0.0.1) e o cliente ( 10.0.0.2). Essa configuração forma a base para testar o requisito descrito.

Ponte

sudo brctl addbr vmbr0
sudo ip addr add 172.16.0.1/16 dev vmbr0
sudo ip link set dev vmbr0 up

Problema

Quando um cliente se conecta à VPN por meio da interface wg0, os seguintes problemas são observados:

Acesso a todas as interfaces: apesar de diferentes sub-redes e o encaminhamento IPv4 estarem desabilitados, o cliente VPN pode executar ping com sucesso em todas as interfaces de rede, incluindo eth0 e vmbr0.

Visibilidade do pacote: Ao executar tcpdump em cada interface (eth0, vmbr0 e wg0), observa-se que os pacotes de ping atravessam apenas a interface wg0. No entanto, as respostas ainda são recebidas quando o cliente faz ping em outras interfaces.

Exposição do serviço: se um serviço estiver sendo executado em qualquer interface, como:

python3 -m http.server --bind 192.0.2.1

(vinculado ao endereço IP eth0 192.0.2.1/24), o cliente VPN tem acesso a este serviço.

Cenário de inatividade da interface: se uma interface (por exemplo, eth0) for desativada usando:

ip link set dev eth0 down

o cliente VPN ainda pode executar ping com sucesso no endereço IP associado à interface inativa e acessar o serviço em execução (por exemplo, o servidor HTTP). Esse comportamento persiste independentemente do estado operacional da interface.

Problema de VM restrita: Ao adicionar uma máquina virtual na ponte vmbr0, o cliente VPN não consegue fazer ping nela. (Normal, mas por que consigo fazer ping na ponte)

Pedido de Assistência

Dada a configuração acima e os problemas observados:

  • Por que o cliente VPN tem acesso a todas as interfaces (eth0, vmbr0) em vez de ser restringido pela sub-rede e pela opção de desabilitar o encaminhamento?
  • Como o cliente VPN ainda pode acessar serviços ou fazer ping em IPs em interfaces inativas?

Quaisquer ideias ou soluções seriam muito apreciadas!

linux
  • 1 respostas
  • 44 Views
Martin Hope
thiago
Asked: 2024-11-29 02:46:13 +0800 CST

sudoers para sudoedit sem senha, exceto para sudoers

  • 6

Quero configurar o sudoedit sem senha para editar arquivos, /etccom exceção dos próprios arquivos do sudoer.

Tentei usar o seguinte /etc/sudoers.d/sudoedit:

%sudo ALL=(root) NOPASSWD: sudoedit ^/etc/(?!sudo).*$

mas isso não parece funcionar, pois o sudo usa um mecanismo de regex antigo sem o recurso de lookahead negativo.

Existe outra maneira de conseguir isso? Talvez com a combinação de /etce a negação de !/etc/sudo?

sudo
  • 1 respostas
  • 34 Views
Martin Hope
QF0
Asked: 2024-11-29 00:35:07 +0800 CST

dd é a melhor maneira de gravar uma imagem em uma unidade?

  • 6

Estou usando este pipeline para gravar um arquivo de imagem para dirigir $drive:

wget -o logfile -O - https://route/to/image.gz | \
         gunzip -c | \
         dd of="$drive" bs=4M conv=fdatasync 2>/dev/null

logfileé criado para monitorar o progresso.

Tenho um mau pressentimento sobre isso e não consigo me convencer de que é infalível. A imagem em si é sempre um múltiplo de 4 MB, então isso não é um problema, mas ddé potencialmente problemático (veja esta resposta da U&L , por exemplo).

Estou sendo paranoico ou existe uma maneira melhor de fazer isso?

EDITAR

Seguindo os comentários (obrigado), eu fiz um benchmarking head -ce dd bs=1para escrever uma imagem em uma unidade. TL;DR: ddé basicamente inútil nesta aplicação. A imagem no servidor remoto compacta em gzip para cerca de 46M, então ddé usada com bs=1, então isso talvez seja um pouco injusto com dd. A imagem é recuperada com wget, gunzipada na hora e então gravada na unidade com head -cou dd bs=1:

Opção 1:

# time wget -o logfile -O - https://path/to/foo.img.gz | \
       gunzip -c | \
       dd of=/dev/sda bs=1 conv=fdatasync 2>/dev/null
    real    1m55.665s
    user    0m32.323s
    sys     2m20.841s

Opção 2:

# time wget -o logfile -O - https://path/to/foo.img.gz | \
       gunzip -c | \
       cat > /dev/sda 2>/dev/null
    real    0m7.419s
    user    0m0.646s
    sys     0m0.507s

Ambas as opções foram testadas obtendo-se o md5sumand sha256sumdos primeiros 48159047 bytes da unidade, e ambas forneceram a pré-compressão correta md5sum, sha256sumconforme encontrado no servidor:

# time head -c 48159047 /dev/sda | md5sum
b3df12b61df3121ad112f825cc6fe8b7  -

real    0m0.222s
user    0m0.075s
sys     0m0.049s

# time dd status=none if=/dev/sda bs=1 count=48159047 | md5sum
b3df12b61df3121ad112f825cc6fe8b7  -

real    1m31.627s
user    0m49.218s
sys     1m45.406s

Os sha256sumresultados foram praticamente os mesmos: cerca de 0,25 s de tempo real para head -c, e 1 m32 s para dd.

hard-disk
  • 1 respostas
  • 80 Views
Martin Hope
Raph_nds
Asked: 2024-11-28 23:01:56 +0800 CST

Montagem NFS Ubuntu 22.04 - Tempo limite de conexão

  • 6

Tenho dois sistemas rodando no Ubuntu 22.04. Quero montar um dos discos do servidor (PC1 - auerbach) no cliente (PC2 - hubel) usando NFS.

O /etc/exportsarquivo no PC1 se parece com o seguinte:

/media/auerbach-data    139.124.148.0/25(rw,no_subtree_check,sync,fsid=001)

Eu rodei sudo exportfs -avno PC1 que funciona. O /etc/fstabarquivo no PC2 parece com o seguinte:

auerbach:/media/auerbach-data      /mnt/auerbach-data    nfs     defaults,auto,rw        0       0

Entretanto, quando executo sudo mount /mnt/auerbach-data -vno PC2, recebo a mensagem de erro:

mount.nfs: timeout set for Thu Nov 28 10:44:02 2024
mount.nfs: trying text-based options 'vers=4.2,addr=139.124.148.27,clientaddr=139.124.148.5'
mount.nfs: mount(2): Connection timed out
mount.nfs: Connection timed out

O que é realmente estranho é que quando executo showmount -eno PC1, obtenho:

Export list for PC1:
/media/auerbach-data 139.124.148.0/25

Então parece que a exportação em si funciona. E quando eu executo showmount, eu obtenho:

Hosts on PC1:
PC2’s ip

O que parece indicar que PC1 vê PC2. Além disso, quando eu executo showmount -e auerbachem PC2, eu obtenho:

Export list for auerbach: 
/media/auerbach-data 139.124.148.0/25

Depois de um pouco de pesquisa para corrigir o problema, usei tcpdump -i eno145 host auerbache descobri que ao executar o mountcomando no PC2, o PC1 não recebeu nenhuma informação pela rede. Este não é o caso quando eu pingPC1 ou uso showmount. Alguns dos logs estão listados abaixo:

tcpdump: verbose output suppressed, use -v[v]... for full protocol decode
listening on eno145, link-type EN10MB (Ethernet), snapshot length 262144 bytes
10:52:29.203855 IP hubel.836 > auerbach.nfs: Flags [S], seq 3035191773, win 64240, options [mss 1460,sackOK,TS val 3
448551700 ecr 0,nop,wscale 7], length 0
10:52:30.244579 IP hubel.836 > auerbach.nfs: Flags [S], seq 3035191773, win 64240, options [mss 1460,sackOK,TS val 3
448552741 ecr 0,nop,wscale 7], length 0

Alguém sabe como eu poderia resolver esse problema? Agradeço antecipadamente!

Informações adicionais: Não há Firewall ativado auerbache a porta 2049 está aberta (verificado com telnet).

Quando eu uso sudo mount -t nfs auerbach:/media/auerbach-data /mnt/auerbach-data -v, eu obtenho:

mount.nfs: timeout set for Thu Nov 28 16:53:57 2024
mount.nfs: trying text-based options 'vers=4.2,addr=139.124.148.27,clientaddr=139.124.148.79'
mount
  • 1 respostas
  • 38 Views
Martin Hope
Matthias Ronge
Asked: 2024-11-28 21:08:03 +0800 CST

Partição raiz não é fstab, como isso é possível?

  • 6

Um sistema que não configurei, apenas mantive (Debian 10/Buster):

root@host:~# df -h
Filesystem         Size  Used Avail Use% Mounted on
/dev/p100p1502lp1  4.0T  3.2T  667G  83% /
none                24G     0   24G   0% /sys/fs/cgroup
none                24G     0   24G   0% /dev
tmpfs               24G     0   24G   0% /dev/shm
tmpfs               24G  2.5G   22G  11% /run
tmpfs              5.0M     0  5.0M   0% /run/lock
none                24G     0   24G   0% /run/shm

Mas:

root@host:~# cat /etc/fstab
proc  /proc       proc    defaults    0    0
none  /dev/pts    devpts  rw,gid=5,mode=620    0    0
none  /run/shm    tmpfs   defaults    0    0

Como pode haver uma partição raiz, mas nenhuma entrada para ela em /etc/fstab/?

hard-disk
  • 2 respostas
  • 104 Views
Martin Hope
Flimm
Asked: 2024-11-28 19:01:42 +0800 CST

Por que o grupo adm é chamado adm? O que adm significa?

  • 3

De acordo com o wiki do Debian :

adm: O grupo admé usado para tarefas de monitoramento do sistema. Os membros deste grupo podem ler muitos arquivos de log em /var/log, e podem usar xconsole. Historicamente, /var/logera /usr/adm(e mais tarde /var/adm), daí o nome do grupo.

Isso explica que o grupo admé nomeado após o comando legado adm. Mas qual é o nome desse comando? O que as letras ADM significam? "adm" é uma abreviação de alguma coisa?

history
  • 1 respostas
  • 29 Views
Martin Hope
Osvald Laurits
Asked: 2024-11-28 17:39:22 +0800 CST

Como são categorizados os locais na tela selecione sua localização na instalação do Debian?

  • 7

Tenho que selecionar um local para instalar o Debian. 18 locais podem ser escolhidos na primeira página da seleção. Outros estão disponíveis ao selecionar other. Qual lógica determina se um local está na primeira página da seleção ou categorizado como other?

debian
  • 1 respostas
  • 78 Views
Martin Hope
q.undertow
Asked: 2024-11-28 12:35:34 +0800 CST

Por que o bash startup é executado sob ssh não interativo

  • 11

Vejo uma diferença inexplicável no comportamento com ssh no Linux e FreeBSD, e é o comportamento do FreeBSD que eu esperaria da linguagem simples das manpages. Então, algo extra acontece no Linux, mas não sei o que é.

Eu uso o bash como meu shell de login normal em todos os sistemas, tanto Linux quanto BSD. Com uma configuração complexa de vários estágios envolvendo os arquivos de inicialização do bash, eu configurei minhas variáveis ​​de ambiente para todas as encarnações do bash que são shell de "login" ou "interativo", no sentido técnico descrito no início da página de manual do bash.

Agora, a diferença: quando eu faço ssh em um servidor FreeBSD com um comando , por exemplo ssh freebsd-host printenv, essas variáveis ​​não são definidas. O que, depois de pensar um pouco, é o que eu deveria esperar, já que o shell nesse caso não é nem login nem interativo. Mas, quando eu faço ssh da mesma forma em um host Linux , as variáveis ​​são de fato definidas -- um sinal claro de que o .bash_profileou o .bashrcarquivo foi grokked de alguma forma ou de outra, apesar do não status do shell.

Minha pergunta é, claro, por que e como o Linux pode se comportar dessa maneira? O que faz com que o bash startup seja executado nessas circunstâncias? Toda a configuração sshd é exatamente a mesma e próxima dos padrões upstream, incluindo PermitUserEnvironment=no. Todos os Linuxes são variantes do Debian, se isso importa.

Uma anedota bônus: Eu tropecei nisso quando li algumas páginas de manual ssh -t host man mane não notei nada incomum em um Linux remoto, mas em um FreeBSD remoto a página de manual ficou extremamente limitada — porque minha configuração onipresente MANWIDTH=100não estava lá.

bash
  • 1 respostas
  • 298 Views
Prev
Próximo

Sidebar

Stats

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

    Possível firmware ausente /lib/firmware/i915/* para o módulo i915

    • 3 respostas
  • Marko Smith

    Falha ao buscar o repositório de backports jessie

    • 4 respostas
  • Marko Smith

    Como exportar uma chave privada GPG e uma chave pública para um arquivo

    • 4 respostas
  • Marko Smith

    Como podemos executar um comando armazenado em uma variável?

    • 5 respostas
  • Marko Smith

    Como configurar o systemd-resolved e o systemd-networkd para usar o servidor DNS local para resolver domínios locais e o servidor DNS remoto para domínios remotos?

    • 3 respostas
  • Marko Smith

    apt-get update error no Kali Linux após a atualização do dist [duplicado]

    • 2 respostas
  • Marko Smith

    Como ver as últimas linhas x do log de serviço systemctl

    • 5 respostas
  • Marko Smith

    Nano - pule para o final do arquivo

    • 8 respostas
  • Marko Smith

    erro grub: você precisa carregar o kernel primeiro

    • 4 respostas
  • Marko Smith

    Como baixar o pacote não instalá-lo com o comando apt-get?

    • 7 respostas
  • Martin Hope
    user12345 Falha ao buscar o repositório de backports jessie 2019-03-27 04:39:28 +0800 CST
  • Martin Hope
    Carl Por que a maioria dos exemplos do systemd contém WantedBy=multi-user.target? 2019-03-15 11:49:25 +0800 CST
  • Martin Hope
    rocky Como exportar uma chave privada GPG e uma chave pública para um arquivo 2018-11-16 05:36:15 +0800 CST
  • Martin Hope
    Evan Carroll status systemctl mostra: "Estado: degradado" 2018-06-03 18:48:17 +0800 CST
  • Martin Hope
    Tim Como podemos executar um comando armazenado em uma variável? 2018-05-21 04:46:29 +0800 CST
  • Martin Hope
    Ankur S Por que /dev/null é um arquivo? Por que sua função não é implementada como um programa simples? 2018-04-17 07:28:04 +0800 CST
  • Martin Hope
    user3191334 Como ver as últimas linhas x do log de serviço systemctl 2018-02-07 00:14:16 +0800 CST
  • Martin Hope
    Marko Pacak Nano - pule para o final do arquivo 2018-02-01 01:53:03 +0800 CST
  • Martin Hope
    Kidburla Por que verdadeiro e falso são tão grandes? 2018-01-26 12:14:47 +0800 CST
  • Martin Hope
    Christos Baziotis Substitua a string em um arquivo de texto enorme (70 GB), uma linha 2017-12-30 06:58:33 +0800 CST

Hot tag

linux bash debian shell-script text-processing ubuntu centos shell awk ssh

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