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

All perguntas(server)

Martin Hope
gclark18
Asked: 2025-02-11 17:14:31 +0800 CST

HashiCorp Vault - Superusuários

  • 6

Configurei o cofre HashiCorp em nosso ambiente com ldap/active directory e o mecanismo de segredos ssh, fornecendo aos usuários um certificado assinado para acessar servidores Linux.

Eu configurei alguns grupos de AD, por exemplo:

Acesso - SSH Admin Standard # Dá acesso a servidores Linux padrão via "ssh-admin-standard-policy" Acesso - Vault Admin # Administradores do Vault com acesso de superusuário via "superadmin"

política-padrão-ssh-admin

path "ssh/roles/*" {
  capabilities = ["read"]
}

path "sys/mounts*" {
  capabilities = ["read", "list"]
}

path "ssh/sign/ssh-admin-standard" {
  capabilities = ["create", "update"]
}

e superadministrador

path "*" {
  capabilities = ["create", "read", "update", "delete", "list", "sudo"]
}

Agora, quando faço login como um usuário que tem ambos os grupos do AD, recebo:

➜  ~ vault login -method=ldap username="clarg"
Password (will be hidden):
Success! You are now authenticated. The token information displayed below
is already stored in the token helper. You do NOT need to run "vault login"
again. Future Vault requests will automatically use this token.

Key                    Value
---                    -----
token                  
token_accessor         
token_duration         768h
token_renewable        true
token_policies         ["default" "ssh-admin-standard" "superadmin"]
identity_policies      []
policies               ["default" "ssh-admin-standard" "superadmin"]
token_meta_username    clarg

Mas quando tento fazer coisas de superadmin, recebo permissão negada. Quando pesquisei isso no Google, descobri que o Vault, a política mais restritiva vence, neste caso a política "ssh-admin-standard-policy" que restringe ssh/roles para somente leitura.

Minha pergunta é como devo gerenciar o acesso de superusuário? Por enquanto, estou usando a chave root enquanto a configuro, mas quero excluí-la.

vault
  • 1 respostas
  • 44 Views
Martin Hope
Tom Bennett
Asked: 2025-02-11 12:46:33 +0800 CST

Confuso sobre alocação de pseudo tty: ssh -t

  • 5

Estou confuso sobre o que ssh -tfaz e por que às vezes preciso da -topção. Meu entendimento é que se eu executar ssh -t program, o ssh é forçado a alocar um pseudo tty, com o qual ele passa a entrada do teclado para program's e passa a programsaída de 's para stdout.

Mas parece que estou errado. Por exemplo, os dois seguintes parecem funcionar de forma idêntica, pois posso operar interativamente com rclone usando qualquer um deles, embora o primeiro comando o force a alocar um pseudo tty e o segundo comando o force a não alocar um pseudo tty:

  1. ssh -t [email protected] rclone config
  2. ssh -T [email protected] rclone config

Então o que ssh -trealmente faz?

Atualizar:

Para esclarecer melhor essa questão, criei o seguinte script python chamado hello.py.

import sys, signal

def signal_handler(sig, frame):
    print('You pressed Ctrl+C!')
    sys.exit(0)

signal.signal(signal.SIGINT, signal_handler)

print(f"stdin is tty:{sys.stdin.isatty()}")
print(f"stdout is tty:{sys.stdout.isatty()}")

s = input("Enter what you want:")
print("Hello ", s)

Em uma máquina remota, se eu invocá-lo como , obtenho a seguinte saída:ssh -t [email protected] "python hello.py"

stdin is tty: true
stdout is tty: true
Enter what you want: cat
Hello cat

Se eu invocá-lo como , obtenho o seguinte:ssh -T [email protected] "python hello.py"

stdin is tty: false
stdout is tty: false
Enter what you want: cat
Hello cat

Em ambos os casos, consigo interagir com o programa digitando "cat" no teclado.

Uma diferença que observo é que quando pressiono CTRL-C, a -tversão captura SIGINT, mas a -Tversão não.

Estou curioso para saber por que ainda consigo interagir com ele mesmo que stdin/stdout não seja um tty. Além disso, isatty()é de fato uma função de biblioteca C padrão. O que um (pseudo) TTY realmente significa aqui?

ssh
  • 1 respostas
  • 36 Views
Martin Hope
UncleBob
Asked: 2025-02-11 00:30:44 +0800 CST

SEO, entrega de domínio de nível superior e cloudfront

  • 6

Temos um web-service, o(s) frontend(s) para o qual é dividido em vários aplicativos que são entregues por endpoints cloudfront. Atualmente, todos eles têm seus próprios subdomínios, como, por exemplo, service-a.mydomain.com, service-b.mydomain.com, etc.

No entanto, subdomínios quase não têm impacto em como o Google estabelece autoridade de domínio atualmente, e a autoridade de domínio se tornou o Santo Graal do SEO. Então, para fins de otimização de mecanismos de busca, queremos mover tudo para um caminho em um domínio de nível superior. Então, depois, deve ser meudominio.com/serviço-a, meudominio.com/serviço-b etc.

Obviamente, isso parece exigir um proxy, como um gateway de API ou algo assim, para rotear tudo. O problema com isso é... bem, se tudo passa pelo mesmo proxy, então as principais vantagens do cloudfront (ou qualquer outro CDN) praticamente vão por água abaixo. Claro que você pode executá-lo por trás do proxy, mas tudo o que você tem então é um cache. Adeus, edge locations. Nesse ponto, faria mais sentido ter o cache no próprio proxy, realmente.

Então, minha pergunta é: ainda há alguma maneira de usar os locais de borda do cloudfront se eu não puder dar a cada ponto final seu próprio subdomínio? Ou essa forma de design de domínio simplesmente requer abandonar as vantagens de uma CDN?

amazon-web-services
  • 1 respostas
  • 35 Views
Martin Hope
Igor-Potapov
Asked: 2025-02-10 20:59:06 +0800 CST

Problema Postfix / Dovecot: FAILED_PRECONDITION: erro de conexão (111): Conexão recusada

  • 5

No meu Raspberry Pi eu uso Postfix 3.7.11 e Dovecot 2.3.19.1 (9b53102964). Eu tenho um domínio válido mydomain.com . Eu emiti um certificado gratuito letsencrypt para seu subdomínio mail.mydomain.com e criei registros DNS no cloudfare. No meu roteador eu abri as portas 465 e 993 para os protocolos SMTP e IMAP. Para e-mail eu uso usuários do SO não virtuais

Verifiquei a porta telnet e o domínio e tudo parece bem. Também configurei o cliente thunderbird e consigo enviar e-mails com sucesso para qualquer serviço de e-mail e o e-mail vai para a pasta de renda (sem spam) porque adicionei registros SPF, DMARK e DKIM também.

Tenho problema apenas com o recebimento de e-mails de quaisquer serviços. Então o Gmail me dá um e-mail de feedback com texto:

O servidor do destinatário não aceitou nossas solicitações de conexão. Para obter mais informações, acesse https://support.google.com/mail/answer/7720 [mail.mydomain.com. [meu ip externo]: FAILED_PRECONDITION: erro de conexão (111): Conexão recusada]

Postei minha configuração sem comentários. Verifiquei se tudo parece bom. Mas algo deu errado. Obrigado.

/etc/postfix/main.cf

myorigin = /etc/mailname
smtpd_banner = $myhostname ESMTP $mail_name (Debian/GNU)
biff = no
append_dot_mydomain = no
readme_directory = no
compatibility_level = 3.6
smtpd_tls_cert_file = /etc/letsencrypt/live/mail.mydomain.com-0001/fullchain.pem
smtpd_tls_key_file = /etc/letsencrypt/live/mail.mydomain.com-0001/privkey.pem
smtpd_tls_security_level = encrypt
smtpd_tls_auth_only = yes
smtpd_tls_wrappermode = yes
smtpd_tls_loglevel = 1
smtpd_use_tls = yes
smtp_tls_CApath=/etc/ssl/certs
smtp_tls_security_level=may
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache
smtpd_sasl_type = dovecot
smtpd_sasl_path = private/auth
smtpd_sasl_auth_enable = yes
smtpd_relay_restrictions = permit_mynetworks permit_sasl_authenticated defer_unauth_destination
smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination
myhostname = mail.mydomain.com
mydomain = mydomain.com
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
myorigin = /etc/mailname
mydestination = mydomain.com, mail.mydomain.com, localhost.localdomain, localhost
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = all
inet_protocols = ipv4
home_mailbox = Maildir/
maillog_file = /var/log/mail.log
milter_default_action = accept
milter_protocol = 6
smtpd_milters = inet:localhost:8891
non_smtpd_milters = inet:localhost:8891

/etc/dovecot/dovecot.conf

!include_try /usr/share/dovecot/protocols.d/*.protocol
!include conf.d/*.conf
!include_try local.conf
log_path = /var/log/dovecot.log
auth_verbose = yes
protocols = imap lmtp

/etc/dovecot/conf.d/10-ssl.conf

ssl = required
ssl_cert = </etc/letsencrypt/live/mail.mydomain.com-0001/fullchain.pem
ssl_key = </etc/letsencrypt/live/mail.mydomain.com-0001/privkey.pem
ssl_ca = </etc/letsencrypt/live/mail.mydomain.com-0001/chain.pem
ssl_client_ca_dir = /etc/ssl/certs
ssl_dh = </usr/share/dovecot/dh.pem

/etc/dovecot/conf.d/10-auth.conf

disable_plaintext_auth = yes
auth_username_format = %n
auth_mechanisms = plain login
!include auth-system.conf.ext

/etc/dovecot/conf.d/10-master.conf

service imap-login {
inet_listener imaps {
    port = 993
    ssl = yes
}
}
service pop3-login {
inet_listener pop3s {
    port = 995
    ssl = yes
}
}
service submission-login {
inet_listener submission {
}
}
service lmtp {
unix_listener /var/spool/postfix/private/dovecot-lmtp {
    mode = 0600
    user = postfix
    group = postfix
}
}
service auth {
    unix_listener /var/spool/postfix/private/auth {
        mode = 0666
        user = postfix
        group = postfix
    }
}
postfix
  • 2 respostas
  • 60 Views
Martin Hope
Ben
Asked: 2025-02-08 00:48:42 +0800 CST

Dificuldade com registros DNS (especificamente relacionados ao envio de e-mail)

  • 7

Configurei um domínio para um amigo ( maple-tree.co.uk). Ele quer poder enviar e receber e-mails neste domínio, e parece estar funcionando, principalmente, mas não totalmente. Alguns servidores de e-mail (BTInternet em particular) não enviam e-mails para este domínio.

Acho que o problema provavelmente está relacionado aos registros DMARC e MX, que parece que estou tendo problemas para configurar. O domínio é hospedado com a GoDaddy, e dentro da ferramenta da GoDaddy ele mostra um registro DMARC como segue:

txt @   v=DMARC1; p=none;   1 Hour      

E um registro MX como segue:

mx  mail    mail.maple-tree.co.uk. (Priority: 0)    1 Hour      

Mas dentro do CPanel para o domínio, embora ele considere os registros SPF e DKIM corretos, ele alega que não há registro DMARC, e o dig / nslookup e várias ferramentas online não mostram o registro MX.

Alguém pode ajudar?

domain-name-system
  • 1 respostas
  • 131 Views
Martin Hope
starfry
Asked: 2025-02-07 22:27:51 +0800 CST

Mesclagem Keytab idempotente do MIT Kerberos

  • 5

Estou tentando escrever um script idempotente para Linux (MIT kerberos) que aplica um keytab dado por /etc/krb5.keytabmesclagem com seu conteúdo existente. No MacOS (que, acredito, usa Heimdal) é fácil:

ktutil copy /tmp/ktnew /etc/krb5.keytab

Se a(s) chave(s) /tmp/ktnewjá estiverem lá /etc/krb5.keytab, ela não será alterada (isso pode ser confirmado com hashes anteriores e posteriores).

A versão do MIT ktutilparece funcionar apenas interativamente e não tem um equivalente para copy. Usar rktand wktanexa (e, portanto, duplica) em vez de mesclar e, portanto, não é idempotente.

É possível fazer isso de forma idempotente (e não interativa) usando as ferramentas do MIT comumente encontradas em sistemas Linux?

kerberos
  • 1 respostas
  • 52 Views
Martin Hope
olivierg
Asked: 2025-02-07 22:04:53 +0800 CST

Apache Reverse Proxy: imprima o erro retornado pelo backend em vez de apenas "erro 500"

  • 6

Tenho um servidor apache atuando como proxy reverso para um webservice, com uma configuração parecida com esta:

<VirtualHost *:18010>

 SSLEngine on
 ProxyRequests off
 SSLProxyEngine on
 ProxyPass / https://backend.url:4445/
 ProxyPassReverse / https://backend.url:4445/
 SSLVerifyClient require
 SSLVerifyDepth 10
 SSLCACertificateFile ssl/cacerts.pem

</VirtualHost>

O que está funcionando bem. No entanto, quando os "clientes" executam consultas no WebService em execução por trás da URL, se o backend responde um erro, o proxy mostra apenas que houve um erro 500, como:

<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>500 Internal Server Error</title>
</head><body>
<h1>Internal Server Error</h1>
<p>The server encountered an internal error or
misconfiguration and was unable to complete
your request.</p>
<p>Please contact the server administrator at
 [email protected] to inform them of the time this error occurred,
 and the actions you performed just before this error.</p>
<p>More information about this error may be available
in the server error log.</p>
</body></html>

Enquanto que ao consultar o WebService "diretamente" (não via proxy) podemos ver o erro "real" retornado pelo servidor, como:

Error 500: javax.servlet.ServletException: org.codehaus.jackson.map.exc.UnrecognizedPropertyException: Unrecognized field &quot;test&quot; &#40;Class iseries.wsbeans.avews10.PrecheckInput&#41;, not marked
 at [Source: com.ibm.ws.webcontainer.srt.SRTInputStream@6bd1f156&#59; line: 1, column: 11] &#40;through reference chain: iseries.wsbeans.avews10.PrecheckPaymentInput[&quot;test&quot;]&#41;

Então minha pergunta é: existe uma opção para adicionar a configuração do Apache para que ele retorne o erro completo retornado pelo backend, em vez de apenas um erro 500?

obrigado novamente, cumprimentos,

apache-2.4
  • 1 respostas
  • 64 Views
Martin Hope
Frido Emans
Asked: 2025-02-07 21:35:24 +0800 CST

Como fazer backup de snapshots do Truenas Core (ZFS) para o S3

  • 6

Estou feliz por ter acabado de configurar uma tarefa de sincronização de nuvem no meu Truenas Core para S3. Tudo parece bem. No entanto, entendo que esta é apenas uma tarefa de cópia de arquivo/sincronização e não faz mais sentido usar os superpoderes do ZFS de snapshots para fazer backup? Para que eu possa restaurar todas as propriedades de nível de sistema dos arquivos, não apenas sua existência? E até mesmo reverter para pontos anteriores no tempo, se necessário!

Não sou especialista em ZFS e coisas do tipo, então estou com dificuldades para descobrir como fazer isso. Não consigo encontrar um diretório ou ponto de montagem onde os snapshots são armazenados. E consigo encontrar muito pouca informação sobre como fazer isso online. Alguém pode me dar algumas dicas sobre isso?

zfs
  • 1 respostas
  • 150 Views
Martin Hope
Apollo
Asked: 2025-02-07 17:14:49 +0800 CST

Como esperar por uma montagem NFS em um serviço systemd?

  • 7

Tenho um serviço que requer a montagem de uma montagem NFS, mas ele falha.

Criei um arquivo de montagem com escape systemd. O arquivo de montagem em si funciona, o ponto de montagem fica disponível após o start. Parece com isso:

[Unit]
After=network.target

[Mount]
Type=nfs
What=10.1.1.10:/opt/company/product-category/product-name/mnt
Where=/opt/company/product-category/product-name/mnt
Options=rw,user,exec

[Install]
WantedBy=multi-user.target

Eu adicionei RequiresMountFor=/opt/company/product-category/product-name/mnt.

Até onde eu sei, isso deve ser o suficiente para meu serviço esperar pelo compartilhamento NFS. Meu programa requer que o NFS esteja disponível, ele tenta ler um arquivo lá e falha se não estiver disponível. Então, não tenho certeza do que está errado aqui. Meu palpite é que o NFS é muito lento e o systemd acha que o NFS está disponível.

Funciona se eu adicionar ExecStartPre=/usr/bin/sleep 3ao meu serviço.

Você vê algum erro?

linux
  • 1 respostas
  • 186 Views
Martin Hope
PookyFan
Asked: 2025-02-07 07:51:33 +0800 CST

bind9 silenciosamente faz failover para servidores de nomes aleatórios após tempo limite de resolução

  • 5

Tenho o bind9 configurado no meu PC roteador. Ele serve como servidor DNS para todas as máquinas na minha rede doméstica. Ele está configurado para que ele só encaminhe solicitações DNS para o stubby (escutando localmente na porta 54321), que então envia essas solicitações DNS com segurança para algum servidor DNS global por TLS. Geralmente está funcionando bem, a menos que ocorra um timeout, como este (retirado de syslogs):

Feb 05 15:51:19 router named[512]: timed out resolving 'accounts.youtube.com/A/IN': 127.0.0.1#54321

Quando liguei tcpdump, descobri que essas solicitações com tempo limite esgotado estão sendo enviadas em texto simples na porta 53 para servidores de nomes aleatórios (?). Sem paciência para solucionar o problema, apenas bloqueei os pacotes de saída na porta 53, e agora alguns novos logs aparecem no syslog (com, obviamente, nenhuma outra solicitação visível no PCAPS de tcpdump) após os logs de tempo limite:

Feb 05 15:51:19 router named[512]: permission denied resolving 'accounts.youtube.com/A/IN': 192.5.6.30#53
Feb 05 15:51:19 router named[512]: permission denied resolving 'accounts.youtube.com/A/IN': 192.33.14.30#53
Feb 05 15:51:19 router named[512]: permission denied resolving 'accounts.youtube.com/A/IN': 192.26.92.30#53
Feb 05 15:51:19 router named[512]: permission denied resolving 'accounts.youtube.com/A/IN': 192.31.80.30#53
Feb 05 15:51:19 router named[512]: permission denied resolving 'accounts.youtube.com/A/IN': 192.35.51.30#53
Feb 05 15:51:19 router named[512]: permission denied resolving 'accounts.youtube.com/A/IN': 192.42.93.30#53
Feb 05 15:51:19 router named[512]: permission denied resolving 'accounts.youtube.com/A/IN': 192.54.112.30#53
Feb 05 15:51:19 router named[512]: permission denied resolving 'accounts.youtube.com/A/IN': 192.43.172.30#53
Feb 05 15:51:19 router named[512]: permission denied resolving 'accounts.youtube.com/A/IN': 192.48.79.30#53
Feb 05 15:51:19 router named[512]: permission denied resolving 'accounts.youtube.com/A/IN': 192.52.178.30#53
Feb 05 15:51:19 router named[512]: permission denied resolving 'accounts.youtube.com/A/IN': 192.41.162.30#53
Feb 05 15:51:19 router named[512]: permission denied resolving 'accounts.youtube.com/A/IN': 192.55.83.30#53
Feb 05 15:51:19 router named[512]: permission denied resolving 'accounts.youtube.com/A/IN': 192.12.94.30#53

O que está acontecendo? Por que o bind9 faz failover para todos esses servidores DNS, ignorando completamente o stubby que está configurado como único encaminhador? Este é meu named.conf.optionsarquivo:

options {
    directory "/var/cache/bind";

    forwarders {
            127.0.0.1 port 54321;
    };

    dnssec-validation yes;

    allow-recursion { localhost; localnets; 192.168.0.0/24; };

    listen-on { 127.0.0.1; 192.168.0.0; };
    listen-on-v6 { none; };
};

Tenho meu servidor DHCP configurado para que ele defina todas as interfaces de rede para todas as máquinas na rede (incluindo o roteador) para que elas usem apenas meu próprio servidor DNS em execução no PC do roteador, então acredito (e os logs parecem confirmar isso) que o bind9 em si decide tentar outros servidores DNS sem que eu o permita explicitamente. Três perguntas surgem:

  1. Por que ele faz isso?
  2. De onde vêm os servidores de nomes para fazer o failover?
  3. Como faço para desabilitar isso? Embora o bloqueio de tráfego de saída na porta 53 funcione, ainda tenho logs destruídos com suas tentativas de tentar outros servidores DNS para resolver solicitações com tempo limite esgotado, e não gosto disso.
domain-name-system
  • 1 respostas
  • 101 Views
Prev
Próximo

Sidebar

Stats

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

    Você pode passar usuário/passar para autenticação básica HTTP em parâmetros de URL?

    • 5 respostas
  • Marko Smith

    Ping uma porta específica

    • 18 respostas
  • Marko Smith

    Verifique se a porta está aberta ou fechada em um servidor Linux?

    • 7 respostas
  • Marko Smith

    Como automatizar o login SSH com senha?

    • 10 respostas
  • Marko Smith

    Como posso dizer ao Git para Windows onde encontrar minha chave RSA privada?

    • 30 respostas
  • Marko Smith

    Qual é o nome de usuário/senha de superusuário padrão para postgres após uma nova instalação?

    • 5 respostas
  • Marko Smith

    Qual porta o SFTP usa?

    • 6 respostas
  • Marko Smith

    Linha de comando para listar usuários em um grupo do Windows Active Directory?

    • 9 respostas
  • Marko Smith

    O que é um arquivo Pem e como ele difere de outros formatos de arquivo de chave gerada pelo OpenSSL?

    • 3 respostas
  • Marko Smith

    Como determinar se uma variável bash está vazia?

    • 15 respostas
  • Martin Hope
    Davie Ping uma porta específica 2009-10-09 01:57:50 +0800 CST
  • Martin Hope
    kernel O scp pode copiar diretórios recursivamente? 2011-04-29 20:24:45 +0800 CST
  • Martin Hope
    Robert ssh retorna "Proprietário incorreto ou permissões em ~/.ssh/config" 2011-03-30 10:15:48 +0800 CST
  • Martin Hope
    Eonil Como automatizar o login SSH com senha? 2011-03-02 03:07:12 +0800 CST
  • Martin Hope
    gunwin Como lidar com um servidor comprometido? 2011-01-03 13:31:27 +0800 CST
  • Martin Hope
    Tom Feiner Como posso classificar a saída du -h por tamanho 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich O que é um arquivo Pem e como ele difere de outros formatos de arquivo de chave gerada pelo OpenSSL? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent Como determinar se uma variável bash está vazia? 2009-05-13 09:54:48 +0800 CST

Hot tag

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 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