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-473183

lonix's questions

Martin Hope
lonix
Asked: 2023-08-07 12:12:52 +0800 CST

Firewalld falha em servidor Debian 12 completamente novo

  • 5

Meu Debian 12 Bookworm VPS estava executando o firewalld 1.3.0-1 sem problemas. Devido a problemas não relacionados, tive que reconstruir o servidor e agora o firewalld falha.

Eu uso ansible, então a configuração deve ser idêntica a antes. Talvez algumas dependências do apt tenham mudado nesse ínterim.

Para solucionar problemas com mais facilidade, aqui está uma reprodução:

  • Criei um novo VPS com minha empresa de hospedagem; debian 12
  • entrei como root
  • $ apt install firewalld --yes
  • $ systemctl status firewalld.service
ERROR: 'python-nftables' failed: internal:0:0-0: Error: No such file or directory; did you mean chain ‘nat_PREROUTING’ in table inet ‘firewalld’?
Error: Could not process rule: No such file or directory
Error: No such file or directory; did you mean chain ‘nat_POSTROUTING’ in table inet ‘firewalld’?
Error: Could not process rule: No such file or directory
...etc.

Minha intenção é usar iptables ao invés de nftables (uma limitação do docker), então:

  • editei /etc/firewalld/firewalld.confige troquei FirewallBackend=nftablesporFirewallBackend=iptables
  • $ systemctl restart firewalld.service
  • $ systemctl status firewalld.service
ERROR: '/usr/sbin/iptables-restore -w -n' failed: iptables-restore v1.8.9 (nf_tables): 
CHAIN_ADD failed (No such file or directory): chain PREROUTING
RULE_APPEND failed (No such file or directory): rule in chain PREROUTING
RULE_APPEND failed (No such file or directory): rule in chain PREROUTING
CHAIN_ADD failed (No such file or directory): chain POSTROUTING
RULE_APPEND failed (No such file or directory): rule in chain POSTROUTING
RULE_APPEND failed (No such file or directory): rule in chain POSTROUTING
CHAIN_ADD failed (No such file or directory): chain OUTPUT
RULE_APPEND failed (No such file or directory): rule in chain OUTPUT
RULE_APPEND failed (No such file or directory): rule in chain OUTPUT
...etc.

Não entendo como estava funcionando antes. E como você pode ver este é um servidor completamente novo , sem nada instalado e nada mais configurado. Eu esperava que funcionasse "fora da caixa".

O que eu fiz de errado?

(Também postado no repositório .)

debian
  • 1 respostas
  • 54 Views
Martin Hope
lonix
Asked: 2023-06-03 08:56:46 +0800 CST

O endereço de e-mail de registro letsencrypt está armazenado no certificado

  • 5

Estou usando letsencrypt de duas formas: uma docker stack usando certbot, e outra usando traefik (que faz o gerenciamento de certificados automaticamente, usando lego). Em ambos os casos, há uma configuração para o endereço de e-mail de registro.

Esse endereço de e-mail está armazenado no certificado ou em outro lugar? E alguém (além de letsencypt) pode descobrir esse endereço de e-mail?

ssl-certificate
  • 2 respostas
  • 45 Views
Martin Hope
lonix
Asked: 2023-05-27 22:12:44 +0800 CST

Traefik como proxy reverso com certbot / lego

  • 5

Ao configurar um servidor, eu uso um proxy reverso e uma ferramenta acme para suporte a dns01 (eu uso nginx + certbot ou nginx + lego). Eu quero começar a usar o traefik.

Não entendo como o traefik interage com o certbot (ou lego, etc.) e não consigo encontrar exemplos relevantes. Encontrei muitos exemplos para obter certificados usando o próprio traefik.

O certbot/lego não é necessário em uma configuração traefik? Ele pode fazer tudo o que o certbot pode fazer?

nginx
  • 1 respostas
  • 61 Views
Martin Hope
lonix
Asked: 2023-05-24 08:10:26 +0800 CST

Qual é a cadeia INPUT_direct no firewalld?

  • 6

Em muitos exemplos de configuração de firewalld, vejo menção à INPUTcadeia iptables normal, bem como uma chamada INPUT_direct.

por exemplo

$ sudo firewall-cmd --direct --add-rule ipv4 filter INPUT_direct 0 \
  # etc...

$ sudo firewall-cmd --direct --add-rule ipv4 filter INPUT_direct 1 \
  # etc...

Qual é o significado de INPUT_direct? Devo usá-lo em vez de INPUT?

E qual é a diferença entre INPUT_direct 0, INPUT_direct 1, etc.?

linux
  • 1 respostas
  • 38 Views
Martin Hope
lonix
Asked: 2023-05-23 11:03:34 +0800 CST

Registro de regras de iptables "diretas" com firewalld

  • 5

Estou usando o firewalld com o back-end do iptables. Eu adicionei regras "diretas" para limitação de conexão ssh:

sudo firewall-cmd --add-port=22/tcp

sudo firewall-cmd --direct --add-rule ipv4 filter INPUT_direct 0 \
  -p tcp --dport 22 \
  -m state --state NEW \
  -m recent --name ssh --set \
  -m comment --comment "limit ssh connections per ip"

sudo firewall-cmd --direct --add-rule ipv4 filter INPUT_direct 1 \
  -p tcp --dport 22 \
  -m state --state NEW \
  -m recent --name ssh --update --seconds 61 --hitcount 4 --rttl \
  -j REJECT --reject-with tcp-reset \
  -m comment --comment "limit ssh connections per ip"

# ...similarly for ipv6

Também quero registrar rejeições e descartes, então corri

$ sudo firewall-cmd --set-log-denied all

Isso funciona principalmente - quando eu verifico, sudo journalctl --since today --identifier kernelvejo essas conexões ... mas não aquelas rejeitadas por minhas regras diretas.

No repositório, isso foi confirmado como comportamento esperado e devo adicionar mais regras diretas para registrar minhas regras diretas:

Você deve usar a extensão de log iptables, por exemplo -j LOG. ... Infelizmente, você precisará de duas regras diretas, pois o iptables não suporta -j LOG -j ACCEPT.

Como faço isso?

linux
  • 1 respostas
  • 25 Views
Martin Hope
lonix
Asked: 2023-05-22 09:13:49 +0800 CST

Testando regras de limitação de taxa no firewalld

  • 6

Desejo limitar a taxa de conexões ssh por IP para um servidor executando firewalld.

Suponha que meu sshd escute na porta 2222 e eu queira limitar as conexões ssh por IP a 3 por minuto. Tentei:

sudo firewall-cmd --add-rich-rule \
  'rule port port="2222" protocol="tcp" accept limit value="3/m"'

Então, em outra máquina, executei:

ssh myserver echo hello; \
ssh myserver echo hello; \
ssh myserver echo hello; \
ssh myserver echo hello; \  # should fail, but actually logs in
ssh myserver echo hello     # should fail, but actually logs in
...

Ele faz login todas as vezes. Não há limite de taxa.

Onde está o meu erro?

linux
  • 1 respostas
  • 51 Views
Martin Hope
lonix
Asked: 2023-05-16 11:36:07 +0800 CST

Desativando autenticação de senha

  • 5

Suponha que eu queira permitir apenas a autenticação SSH e desabilitar a autenticação por senha.

Em /etc/ssh/sshd_configEu normalmente fiz isso:

PasswordAuthentication no

Mas em algumas respostas as pessoas recomendam isso:

PasswordAuthentication no
ChallengeResponseAuthentication no
UsePAM no

Como eles diferem? Qual é a maneira correta de desativar a autenticação de senha?

linux
  • 1 respostas
  • 23 Views
Martin Hope
lonix
Asked: 2020-05-13 06:03:11 +0800 CST

Migrando o arquivo de zona do registrador para o provedor de DNS

  • 0

Eu possuo um domínio, gerenciado pelo meu "registrador" . Eu também tenho um VPS, gerenciado pelo meu "hoster" (por exemplo, DigitalOcean, etc.)

Eu quero usar os serviços DNS do hoster, então:

  • Devo alterar os registros NS (no arquivo de zona do registrador) daqueles do registrador para os do hoster
  • Meu arquivo de zona contém muitos outros registros (A, MX, TXT, etc.), então presumo que devo recriá-los no arquivo de zona do hoster

Devo remover esses registros do arquivo de zona do registrador? O que acontecerá se eu deixá-los?

domain-name-system nameserver dns-zone
  • 1 respostas
  • 34 Views
Martin Hope
lonix
Asked: 2020-04-13 04:19:44 +0800 CST

Logrotate os logs do contêiner docker quando o usuário não existe no host

  • 1

Montei os logs dos meus contêineres no host (por exemplo /var/log/container1, , etc). Agora eu quero usar o arquivo logrotate.

Mas suponha que eu precise fazer isso:

create 660 mysql mysql

Não há mysqlusuário/grupo no host, então logrotate falha com:

usuário desconhecido 'mysql'

Então eu tentei:

create 660 999 999   # 999 is mysql user's uid/gid within container

Mas então eu recebo:

usuário desconhecido '999'

Então eu tentei:

create 660 999 999
su 999 999

Mas isso dá o mesmo erro.

Como posso fazer isso, sem criar um usuário fictício no host?

(BTW, antes que você me diga para confiar na própria rotação de log do docker ... este é apenas um exemplo. Eu uso vários contêineres que não registram em stdout/stderr, então preciso fazer a rotação de log sozinho.)

linux logging docker logrotate log-rotation
  • 1 respostas
  • 332 Views
Martin Hope
lonix
Asked: 2020-04-04 00:02:56 +0800 CST

Confiar na chave gpg via script

  • 3

Ao realizar uma implantação de servidor automatizada, posso fazer upload e importar chaves gpg por meio de script. Mas não posso confiar em chaves.

eu tentei

gpg --batch --yes --edit-key keyname trust 5

e

echo 5 | gpg --batch --yes --edit-key keyname trust -

No modo não-lote, ele sempre para para solicitar entrada. No modo de lote ignora a entrada.

Qual é a sintaxe correta?

linux bash automation gpg
  • 2 respostas
  • 1027 Views
Martin Hope
lonix
Asked: 2020-04-01 03:00:57 +0800 CST

Impedir que vários cron jobs sejam executados simultaneamente [duplicado]

  • 1
Essa pergunta já tem respostas aqui :
Impedir a execução de tarefas cron duplicadas (11 respostas)
Fechado há 2 anos .

Meu servidor executa vários cron jobs à meia-noite. Cada trabalho cria um backup de algo, criando um tarball e compactando-o com xz.

Como xzé um porco de CPU e memória, adicionei um atraso aleatório a cada trabalho, para que eles "não deveriam" se sobrepor. Mas de vez em quando isso acontece e carrega muito o servidor.

Suposições:

  • Com base no meu tráfego, meia-noite é o melhor horário para fazer backups - mas ainda há tráfego (e é por isso que quero evitar carga excessiva)
  • Cada aplicativo voltado para o público está associado a seu próprio trabalho de backup e eles são desacoplados (eles não se conhecem) - portanto, não posso mesclar os trabalhos cron de backup em um único trabalho, pois preciso dessa granularidade
  • Não consigo codificar a hora de início de cada um, pois isso aumentaria a manutenção - para adicionar um aplicativo ao servidor (via ansible), basta implantá-lo e soltar um trabalho cron de backup (agendado para meia-noite) em /etc/cron.d/, e o random atraso antes do início do trabalho geralmente é bom o suficiente
  • Eu estrangulo os trabalhos um pouco via tar ... | pv --rate-limit ... | xz ...- mas, embora isso reduza a carga por trabalho, também diminui a velocidade de todos os trabalhos e, portanto, aumenta a probabilidade de vários trabalhos serem executados simultaneamente (que, quando somados, podem consumir 100% da CPU)

Uma solução possível é que cada trabalho crie um arquivo temporário que sinalize que está ocupado e, em seguida, exclua-o. O problema é que se um trabalho detecta esse arquivo, o que ele faz? Dorme? Por quanto tempo? Eu poderia fazê-lo dormir por um período aleatório usando at, mas se algo der errado com meus scripts de backup, eu poderia ter uma enorme fila de trabalhos competindo entre si. Mais uma dor de cabeça de manutenção.

Então, como se costuma resolver esse problema? Basicamente, uma maneira simples de agendar cron jobs relacionados, sem deixá-los atrapalhar uns aos outros e sem a necessidade de ajustar os horários de início.

linux cron scheduling
  • 3 respostas
  • 2732 Views
Martin Hope
lonix
Asked: 2020-03-13 10:41:36 +0800 CST

solicitação nginx que corresponde a vários blocos de servidor

  • 0

Suponha que vários blocos de servidor nginx correspondam a uma solicitação https://www.example.com/bar:

server {
  listen      443;
  server_name www.example.com;
  location    /foo { }
}

server {
  listen      443;
  server_name www.example.com;
  location    /bar { }
}

Portanto /bar, corresponde ao primeiro bloco do servidor (mesmo sem default_server, pois é listado primeiro). Mas não corresponderá a um local.

Posso forçá-lo a "cair" de alguma forma para o próximo bloco de servidor correspondente, que tem um local correspondente?

Li os documentos de processamento de solicitações, mas não entendo o que acontece neste caso.

nginx
  • 1 respostas
  • 130 Views
Martin Hope
lonix
Asked: 2019-11-13 05:06:39 +0800 CST

Servir arquivo de verificação de domínio do Google via nginx

  • 0

Para realizar a verificação de domínio para o google, devo veicular um arquivo na raiz do meu domínio. O nome do arquivo é normalmente googleXXXXXXXXXXXXX.html(esses Xs são uma substring hexadecimal).

Então eu copiei para a raiz do meu site ( /var/www/html/), e editei a configuração do nginx assim:

location ~* /google.+\.html$ {
  alias /var/www/html/$1;
}    

Embora eu obtenha um 404. Eu não codifiquei o nome do arquivo, mas ele falha mesmo se eu fizer.


Por favor, note que eu conheço este truque amplamente utilizado :

location = /googleXXXXX.html {
  rewrite ^/(.*) $1;
  return 200 "google-site-verification: $uri";
}

Mas não quero fazer isso porque não é à prova de futuro - quero servir o arquivo como está .

nginx
  • 1 respostas
  • 498 Views
Martin Hope
lonix
Asked: 2019-10-25 05:56:07 +0800 CST

Proxy para portainer via nginx

  • 1

Eu uso o nginx para reverter o proxy para vários aplicativos dockerizados, que funcionam. Mas não consigo fazer o portainer funcionar.

Minha configuração do nginx inclui:

location ^~ /apps/portainer {
  proxy_http_version 1.1;
  proxy_set_header   Connection "";
  set                $upstream portainer:9000;
  proxy_pass         http://$upstream;
}

A página não carrega corretamente (css e js não carregam). O log de erros do nginx:

[erro] open() "/var/www/html/apps/main.11b0c8b84d24581.js" falhou (2: nenhum arquivo ou diretório), solicitação: "GET /apps/main.11b0c8b84d24581.js HTTP/2.0"

Não entendo por que o nginx está tentando servir arquivos estáticos - tudo deve ser proxy para o portainer. (E o caminho está errado, embora irrelevante).


Existe uma correção regular para isso, que não envolve regex? BTW, a resposta dada abaixo por @EchoMike444 é excelente se você não se importa em usar regex em um bloco de localização.

nginx
  • 1 respostas
  • 4395 Views
Martin Hope
lonix
Asked: 2019-10-21 01:50:45 +0800 CST

nginx como proxy reverso para vários aplicativos

  • 1

Eu quero usar o nginx como um proxy reverso para vários aplicativos (no docker). Eles existem em diretórios separados no contêiner nginx: /var/www/app1, /var/www/app2, etc.

Meu default.conf:

resolver 127.0.0.11 valid=15s;

server {
  listen 80;
  server_name www.example.com example.com;
  set $upstream phpmyadmin:9000;

  location ^~ /phpmyadmin {
   #alias /var/www/html/;                 # <----- this works
    alias /var/www/phpmyadmin/;
    index index.php;
    location ~ \.php$ {
      try_files     $uri = 404;
      fastcgi_pass  $upstream;
      include       fastcgi_params;
      fastcgi_param SCRIPT_FILENAME $request_filename;
    }
  }

}

Se eu montar o aplicativo docker (phpmyadmin) /var/www/html/, a configuração nginx acima funcionará.

Mas o que eu realmente quero é montá-lo em /var/www/phpmyadmin/. Quando faço isso, recebo erros:

FastCGI enviado em stderr: "Script primário desconhecido" ao ler o cabeçalho de resposta do upstream

nginx
  • 1 respostas
  • 239 Views
Martin Hope
lonix
Asked: 2019-10-19 01:14:38 +0800 CST

Qual caminho devo montar para wordpress no docker

  • 0

Sou novo no wordpress. Estou tentando executá-lo em uma pilha docker.

Eu quero montar um volume nomeado assim

-v wordpress_data:FOO

Mas não tenho certeza do que usar FOO, pois não entendo como o wordpress armazena seus dados.

Qual é a diferença entre /var/www/html/e /var/www/html/wp-content/?

docker
  • 1 respostas
  • 218 Views
Martin Hope
lonix
Asked: 2019-10-12 01:50:10 +0800 CST

Por que domínios hardcode na configuração do nginx?

  • 2

Eu continuo lendo que nos arquivos de configuração do nginx, devemos codificar nomes de host em vez de usar variáveis.

Por exemplo:

server_name www.example.com example.com;
return 301 https://www.example.com$request_uri;

ao invés de

server_name www.example.com example.com;
return 301 https://$host$request_uri;

Acho surpreendente que o nginx não armazene em cache a configuração estática ao iniciar.

Existe documentação oficial sobre isso em algum lugar, ou é apenas anedótico?

nginx
  • 1 respostas
  • 257 Views
Martin Hope
lonix
Asked: 2019-10-12 01:22:15 +0800 CST

configuração nginx ssl para cert.pem e chain.pem

  • 1

Os documentos do certbot dizem isso para cert.peme chain.pem:

Se você fornecer um desses arquivos ao seu servidor web, você deve fornecer ambos, ou alguns navegadores mostrarão erros “Esta conexão não é confiável” para o seu site, algumas vezes.

Esta é a configuração típica do nginx:

ssl_certificate         /etc/letsencrypt/live/example.com/fullchain.pem;
ssl_certificate_key     /etc/letsencrypt/live/example.com/privkey.pem;
ssl_trusted_certificate /etc/letsencrypt/live/example.com/chain.pem;

???                     /etc/letsencrypt/live/example.com/cert.pem;

Onde coloco cert.pem?

nginx
  • 1 respostas
  • 1085 Views
Martin Hope
lonix
Asked: 2019-10-11 11:02:02 +0800 CST

Onde definir a configuração SSL para vários blocos de servidor nginx

  • 0

Eu quero redirecionar http para https e nu para www.

Então minha configuração:

# http naked -> https www
# http www -> https www
server {
  listen 80;
  server_name example.com www.example.com;
  return 301 https://www.example.com$request-uri;
}


# https naked -> https www
server {
  listen 443 ssl http2;
  server_name example.com;
  #ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem     # <--- ??
  #ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem   # <--- ??
  return 301 https://www.$host$request-uri;
}


# https www
server {
  listen 443 ssl http2;
  server_name www.example.com;
  ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem
  ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem
}

Preciso repetir o material SSL mostrado como ??no bloco do meio?

nginx
  • 1 respostas
  • 54 Views
Martin Hope
lonix
Asked: 2019-10-10 23:46:59 +0800 CST

Redirecionar http para https com nginx

  • 1

Eu vi duas maneiras pelas quais o nginx é usado para redirecionar http para https:

server {
  listen 80;
  listen [::]:80;
  server_name example.com www.example.com
  location / {
    return 301 https://$host$request_uri;
  }
}

e

server {
  listen 80;
  listen [::]:80;
  server_name example.com www.example.com
  return 301 https://$host$request_uri;
}

Qual é a diferença entre estes? Existe uma razão para usar um ou outro?

nginx
  • 1 respostas
  • 55 Views

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