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

TCB13's questions

Martin Hope
TCB13
Asked: 2024-02-25 01:03:21 +0800 CST

Várias VLANs na mesma porta: uso de largura de banda

  • 4

Me deparei com uma rede parecida com a seguinte:

insira a descrição da imagem aqui

Para que o servidor acesse a Internet pública e a rede interna (mas sem depender do roteador interno), uma porta do roteador é conectada novamente ao switch e marcada com outra VLAN que é passada junto com a VLAN pública para o servidor.

Considere que há um uso constante de largura de banda de cerca de 500 Mbps na rede interna. Esse tráfego é constantemente injetado de volta na porta 4 marcada como VLAN 200? Limita a largura de banda disponível para a VLAN 101 só porque algumas máquinas estão transferindo dados na rede interna? Se sim, isso também acontece se o servidor nem tiver uma interface configurada para marcação de VLAN nessa tag?

O switch é um TL-SG108E barato configurado conforme mostrado na imagem. O roteador é um GL-MT6000 executando OpenWrt que conecta todas as portas LAN em uma única br-laninterface

Obrigado.

vlan
  • 1 respostas
  • 60 Views
Martin Hope
TCB13
Asked: 2023-09-29 20:06:25 +0800 CST

nftables: NAT hairpin / loopback com IP dinâmico

  • 5

Eu tenho um servidor Debian 12 (IP público 85.xxx.xxx.xxxem enp6s0) executando vários contêineres LXC em uma ponte de rede cbr0.

Como o IP público é dinâmico, tive que configurar forward+ preroutingregras dnatpara que as solicitações recebidas chegassem aos contêineres. Por exemplo. a porta 80/443 é atribuída ao contêiner 10.10.0.1. Aqui estão minhas nftablesregras:

flush ruleset

table inet filter {
  chain input {
    type filter hook input priority 0; policy drop;

    ct state {established, related} accept
    iifname lo accept
    iifname cbr0 accept
    ip protocol icmp accept
    ip6 nexthdr icmpv6 accept
  }
  chain forward {
    type filter hook forward priority 0; policy accept;
  }
  chain output {
    type filter hook output priority 0;
  }
}

table ip filter {
  chain forward {
    type filter hook forward priority 0; policy drop;

    oifname enp6s0 iifname cbr0 accept
    iifname enp6s0 oifname cbr0 ct state related, established accept
    # Webproxy
    iifname enp6s0 oifname cbr0 tcp dport 80 accept
    iifname enp6s0 oifname cbr0 udp dport 80 accept
    iifname enp6s0 oifname cbr0 tcp dport 443 accept
    iifname enp6s0 oifname cbr0 udp dport 443 accept
  }
}

table ip nat {

  chain postrouting {
    type nat hook postrouting priority 100; policy accept;
  }

  chain prerouting {
    type nat hook prerouting priority -100; policy accept;
    # Webproxy
    iifname enp6s0 tcp dport 80 dnat to 10.10.0.1:80
    iifname enp6s0 udp dport 80 dnat to 10.10.0.1:80
    iifname enp6s0 tcp dport 443 dnat to 10.10.0.1:443
    iifname enp6s0 udp dport 443 dnat to 10.10.0.1:443
  }

}

Agora o problema é: NAT hairpin. Tenho vários contêineres hospedando sites e às vezes acontece que alguns deles precisam se comunicar com outros contêineres usando nomes de domínio. Quando eles executam uma consulta DNS para esses domínios, eles obtêm o IP do host e a comunicação falha:

grampo de cabelo NAT

Como posso corrigir esta situação sem recorrer a hacks de DNS ? Existe uma maneira de configurar nftableso encaminhamento de solicitação internamente enquanto se tem um IP dinâmico? Como o iifnameacima brinca com isso?

Obrigado.

nat
  • 2 respostas
  • 120 Views
Martin Hope
TCB13
Asked: 2023-09-05 23:15:50 +0800 CST

Debian 12 + LXD/LXC security.idmap.isolated falha

  • 6

O Debian 12.1 (6.1.0-11-amd64) executando LXD/LXC e em uma configuração de contêiner sem privilégios security.idmap.isolated=trueparece não conseguir atualizar o proprietário/grupo dos arquivos do contêiner.

Aqui está um exemplo:

# lxc launch images:debian/12 debian
(...)

# lxc config get debian volatile.idmap.base
296608

# lxc stop debian
Error: The instance is already stopped

# lxc config set debian security.idmap.isolated true

# lxc config get debian security.idmap.isolated
true

# lxc start debian

Agora, se eu listar os arquivos no volume do contêiner, todos eles pertencem ao root usuário host:

# ls -la /mnt/NVME1/lxd/containers/debian/rootfs/
total 24
drwxr-xr-x 1 root   root  154 Sep  5 06:28 .
d--x------ 1 296608 root   78 Sep  5 15:59 ..
lrwxrwxrwx 1 root   root    7 Sep  5 06:25 bin -> usr/bin
drwxr-xr-x 1 root   root    0 Jul 14 17:00 boot
drwxr-xr-x 1 root   root    0 Sep  5 06:28 dev
drwxr-xr-x 1 root   root 1570 Sep  5 06:28 etc

Tentei várias versões do LXD/LXC. Isso acontece tanto com 5.0.2 aptquanto com 4.0 e 5.17 (mais recente) de snap.

Curiosamente, tenho outro Debian 10 (4.19.0-25-amd64) em execução e um LXD 4 mais antigo a partir de snapentão, as coisas funcionam conforme o esperado:

# ls -la /mnt/NVME1/lxd/containers/debian/rootfs/
total 0
drwxr-xr-x 1 1065536 1065536  138 Oct 29  2020 .
d--x------ 1 1065536 root      78 Oct 14  2020 ..
drwxr-xr-x 1 1065536 1065536 1328 Jul 24 19:07 bin
drwxr-xr-x 1 1065536 1065536    0 Sep 19  2020 boot
drwxr-xr-x 1 1065536 1065536    0 Oct 14  2020 dev
drwxr-xr-x 1 1065536 1065536 1716 Jul 24 19:08 etc

Como você pode ver neste sistema todos os arquivos são de propriedade de 1065536:1065536.


Atualizar:

Tentei investigar os mapas em lxc config show debianambas as máquinas e vi isto:

Máquina rodando Debian 10:

security.idmap.isolated: "true"
(...)
volatile.idmap.base: "1065536"
volatile.idmap.current: '[{"Isuid":true,"Isgid":false,"Hostid":1065536,"Nsid":0,"Maprange":65536},{"Isuid":false,"Isgid":true,"Hostid":1065536,"Nsid":0,"Maprange":65536}]'
volatile.idmap.next: '[{"Isuid":true,"Isgid":false,"Hostid":1065536,"Nsid":0,"Maprange":65536},{"Isuid":false,"Isgid":true,"Hostid":1065536,"Nsid":0,"Maprange":65536}]'
volatile.last_state.idmap: '[{"Isuid":true,"Isgid":false,"Hostid":1065536,"Nsid":0,"Maprange":65536},{"Isuid":false,"Isgid":true,"Hostid":1065536,"Nsid":0,"Maprange":65536}]'

Máquina rodando Debian 12:

security.idmap.isolated: "true"
(...)
volatile.idmap.base: "231072"
volatile.idmap.current: '[{"Isuid":true,"Isgid":false,"Hostid":231072,"Nsid":0,"Maprange":65536},{"Isuid":false,"Isgid":true,"Hostid":231072,"Nsid":0,"Maprange":65536}]'
volatile.idmap.next: '[{"Isuid":true,"Isgid":false,"Hostid":231072,"Nsid":0,"Maprange":65536},{"Isuid":false,"Isgid":true,"Hostid":231072,"Nsid":0,"Maprange":65536}]'
volatile.last_state.idmap: '[]'

Atualizar:

Também tentei uma nova instalação do Debian 11 (5.10.0-25-amd64) e funcionou conforme o esperado :

root@vm-debian-11-cli:~# ls -la /mnt/NVME1/lxd/containers/debian/rootfs/
total 24
drwxr-xr-x 1 1065536 1065536  154 Sep  6 06:28 .
d--x------ 1 1065536 root      78 Sep  6 15:31 ..
lrwxrwxrwx 1 1065536 1065536    7 Sep  6 06:25 bin -> usr/bin
drwxr-xr-x 1 1065536 1065536    0 Jul 14 17:00 boot
drwxr-xr-x 1 1065536 1065536    0 Sep  6 06:28 dev
drwxr-xr-x 1 1065536 1065536 1570 Sep  6 06:28 etc

Por que não povoou volatile.last_state.idmap: '[]'? Tal como acontece com o Debian 10 e 11, aparentemente isso pode estar relacionado ao novo kernel e/ou sua configuração.

Como posso consertar isso? Obrigado.

containers
  • 1 respostas
  • 104 Views
Martin Hope
TCB13
Asked: 2022-02-21 03:52:11 +0800 CST

Networkctl: Link IP VLAN Manual

  • 0

Eu tenho uma interface de rede eth0que carrega minha rede principal como tráfego não marcado e uma rede de "gerenciamento" com tráfego marcado com o id 18. É assim que está configurado:

10-eth0.network:

[Match]
Name=eth0

[Link]
RequiredForOnline=yes

[Network]
DHCP=v4
VLAN=vlan18

vlan18.netdev:

[NetDev]
Name=vlan18
Kind=vlan

[VLAN]
Id=18

vlan18.network:

[Match]
Name=vlan18

[Network]
Address=10.10.1.1/24

Na inicialização o servidor vai começar a eth0pegar um IP via DHCP e também criar vlan18@eth0para a rede "gerenciamento" com o IP estático 10.10.1.1e tudo funciona.

Como posso dizer ao networkctl para criar a vlan18@eth0interface, mas sem ativá-lo na inicialização? A ideia é ter um monte de scripts que vão fazer ip link set vlan18 up/ ip link set vlan18 downacessar aquela rede quando necessário.

Obrigada.

ip systemd systemd-networkd
  • 1 respostas
  • 153 Views
Martin Hope
TCB13
Asked: 2020-11-04 12:42:36 +0800 CST

iptables: containers NAT e IP externo

  • 1

Eu tenho um servidor Debian 10 (IP público 85.xxx.xxx.xxx em enp6s0) executando vários contêineres LXC em uma ponte de redecbr0 . Eu tenho as seguintes regras do iptables em vigor para que os contêineres possam se comunicar com o mundo exterior:

iptables -A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -i cbr0 -j ACCEPT
iptables -A FORWARD -i cbr0 -o enp6s0 -j ACCEPT
iptables -A FORWARD -i enp6s0 -o cbr0 -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -t nat -A POSTROUTING -o enp6s0 -j MASQUERADE

Eu criei um contêiner (10.0.0.1) que tem nginx e redirecione o tráfego http de entrada para esse contêiner:

iptables -t nat -A PREROUTING -i enp6s0 -p tcp --dport 80 -j DNAT --to-destination 10.0.0.1:80
iptables -A FORWARD -i enp6s0 -o cbr0 -p tcp --dport 80 -j ACCEPT

Tudo funciona como esperado, consigo navegar no site no container etc.

Agora eu criei um segundo contêiner (10.0.0.2) que precisa buscar alguns dados do contêiner nginx. Se eu usar o IP interno 10.0.0.1 para a comunicação, meu segundo container é capaz de wget pages. No entanto, se eu tentar usar o IP externo do servidor :

root@second-container:~# nc example.com 80
example.com [85.xxx.xxx.xxx] 80 (http) : Connection refused

Minha solução atual é adicionar manualmente entradas em /etc/hostspara todos os domínios hospedados pelo nginx para que eles resolvam para 10.0.0.1 em vez de seu IP público.

Quais regras eu preciso para permitir também a comunicação usando o IP do servidor externo?

Obrigada.


Aqui está um diagrama adicional do problema: insira a descrição da imagem aqui

debian nat iptables containers
  • 2 respostas
  • 337 Views
Martin Hope
TCB13
Asked: 2020-11-03 03:12:33 +0800 CST

Pure-FTPd: falha aleatoriamente com iptables restritos INPUT

  • 0

Instalei o Pure-FTPd em uma máquina Debian 10 que roda iptablescom a política padrão DROPpara a INPUTcadeia. A OUTPUTcadeia é definida como ACCEPT.

Problema: se tento conectar um cliente FTP, só funciona às vezes . Parece ser capaz de listar pastas aleatoriamente ou falhar. Normalmente, tentar novamente uma nova conexão funcionará.

Meu Pure-FTPd está configurado com estas portas :

$ cat /etc/pure-ftpd/conf/Bind
85.xxx.xxx.xxx,57419

$ cat /etc/pure-ftpd/pure-ftpd.conf | grep Port
# Port range for passive connections - keep it as broad as possible.
PassivePortRange             30000 50000

Para abrir as portas no firewall eu usei:

iptables -A INPUT -p tcp --dport 57419 -j ACCEPT
iptables -A INPUT -p tcp --dport 30000:50000 -j ACCEPT

Logs no servidor:

pure-ftpd]: ([email protected]) [INFO] New connection from 176.x.x.x
pure-ftpd]: ([email protected]) [INFO] TLS: Enabled TLSv1.2 with ECDHE-RSA-AES256-GCM-SHA384, 256 secret bits cipher
pure-ftpd]: ([email protected]) [INFO] testuser is now logged in
// no more output until the client retries a new connection

Agora o cliente FTP dirá que está listando por um tempo e depois: insira a descrição da imagem aqui

Agora, se eu definir a cadeia iptables para tudo funcionar bemINPUTACCEPT , então parece que ainda há alguma porta bloqueada que o Pure-FTPd tenta usar aleatoriamente, como posso depurar isso / corrigi-lo?

Obrigada.

iptables pureftpd
  • 1 respostas
  • 93 Views
Martin Hope
TCB13
Asked: 2020-10-11 04:45:07 +0800 CST

LXD/LXC: Diferença entre dispositivo de disco e lxc.mount.entry

  • 1

Estou usando o seguinte para compartilhar uma pasta do meu host LCX em um contêiner:

lxc config device add containerxyz directoryname disk source=/storage/containerxyz path=/mnt/storage/

Isso funciona perfeitamente bem, eu posso fazer com que o contêiner leia e grave arquivos no /storage/containerxyzcaminho no host, no entanto , vejo online algumas pessoas sugerindo fazer isso:

lxc.mount.entry = /storage/containerxyz /var/lib/lxc/containerxyz/rootfs/mnt/storage/ none bind 0 0

Qual é a diferença prática entre essas duas maneiras de ter o diretório de host disponível para o contêiner e as desvantagens de cada uma?

mount lxc
  • 1 respostas
  • 1126 Views
Martin Hope
TCB13
Asked: 2018-02-12 14:06:27 +0800 CST

Postfix: smtpd_*_restrictions terminando em rejeitar

  • 0

Eu tenho um servidor Postfix rodando para meu próprio e-mail e tudo funciona bem. Enquanto eu estava atualizando a máquina e decidi revisar as configurações de segurança / ler e implementar algumas práticas recomendadas on-line e a maioria dos tutoriais on-line me diz para definir smtpd_client_restrictionsde main.cfforma semelhante a esta:

smtpd_client_restrictions = 
    permit_mynetworks,
    permit_sasl_authenticated,
    reject_invalid_hostname,
    reject_unknown_client_hostname,
    reject_rbl_client zen.spamhaus.org,
    reject_rbl_client bl.spamcop.net,
    reject_rbl_client cbl.abuseat.org

E, ao mesmo tempo, também vejo pessoas configurando o submissionserviço master.cfcomo:

submission inet  n       -       y       -       -       smtpd
 (...)
 -o smtpd_client_restrictions=reject_non_fqdn_recipient,reject_unknown_recipient_domain,permit_mynetworks,permit_sasl_authenticated,reject

Minha pergunta : Por que o smtpd_client_restrictionsunder submissiontermina com rejecte main.cfninguém recomenda terminar a lista com reject? Eles não são a mesma coisa de acordo com os documentos:

-o name=value (forma abreviada) Substitui o parâmetro de configuração main.cf nomeado. O valor do parâmetro pode se referir a outros parâmetros como $name etc., assim como em main.cf. Veja postconf(5) para sintaxe. http://www.postfix.org/master.5.html

Também,

As restrições são aplicadas na ordem especificada; a primeira restrição que combina ganha. http://www.postfix.org/postconf.5.html#smtpd_client_restrictions

Se a regra "a primeira restrição que corresponder vence" realmente se aplicar, não será possível terminar com rejecto envio de e-mail?

Obrigada.

postfix
  • 1 respostas
  • 445 Views
Martin Hope
TCB13
Asked: 2017-09-20 14:29:12 +0800 CST

Debian 9.1: Não é possível desabilitar a configuração automática do IPv6

  • 2

Atualizei uma máquina para o Debian 9.1 e tudo parece estar bem, porém não consigo desabilitar o autoconfig do IPv6.

Background : Eu só quero usar alguns endereços IPv6 específicos na máquina que estou definindo em /etc/systemd/network/10-static-eth0.network:

[Match]
Name=eth0

[Network]
Address=2a04:52c0:xxx:xxx::xxx/48
Address=2a04:52c0:xxx:xxx::xxx/48
Address=2a04:52c0:xxx:xxx::xx/48
Gateway=2a04:52c0:xxx::1

Address=5.2.xxx.xxx/25
Address=5.2.xxx.xxx/25
Address=5.2.xxx.xxx/25
Gateway=5.2.xxx.xxx

Para desabilitar a configuração automática do IPv6, adicionei o seguinte no final de /etc/sysctl.conf:

net.ipv6.conf.default.autoconf=0
net.ipv6.conf.all.autoconf=0
net.ipv6.conf.eth0.autoconf=0

net.ipv6.conf.default.accept_ra=0
net.ipv6.conf.all.accept_ra=0
net.ipv6.conf.eth0.accept_ra=0

net.ipv6.conf.default.accept_dad=0
net.ipv6.conf.all.accept_dad=0
net.ipv6.conf.eth0.accept_dad=0

Após a reinicialização, não há endereço IPv6 dinâmico / autoconfig, mas depois de um tempo ele aparece em ip addr show:

inet6 2a04:52c0:xxxx:xxxx:xxxx:xxx:xxxx:1e3d/64 scope global mngtmpaddr noprefixroute dynamic 
   valid_lft 2590732sec preferred_lft 603532sec

Como posso evitar esse endereço IPv6 de configuração automática e garantir que apenas os endereços estáticos funcionem?

Obrigada.

debian
  • 1 respostas
  • 2767 Views
Martin Hope
TCB13
Asked: 2016-07-26 06:06:33 +0800 CST

Aplicativo interativo: certifique-se de que determinada saída seja encontrada a cada 30 minutos

  • 1

Portanto, devido a algumas escolhas de design muito ruins, estou preso a um aplicativo de console interativo complexo e insubstituível em execução para sempre em uma máquina Debian.

Este aplicativo executa algumas tarefas, repetidamente, e retorna a stdoutresultados como:

InvetoryOpt: Finished
PBridged: Finished
FLoot: ERROR

Preciso ter certeza de que a cada x minutos recebo a string InvetoryOpt: Finishedna saída do programa. Caso contrário, preciso matá-lo, executar outro script, iniciar o programa novamente e verificar.

Como posso fazer isso? Eu estava pensando expect, mas não tenho muita experiência com e não tenho certeza se sou capaz de verificar se a saída corresponde à string a cada x minutos.

Notas:

  • O programa também gera muitos outros tipos de lixo com os quais não me importo;
  • O programa pode produzir a mesma string InvetoryOpt: Finishedvárias vezes em 30 minutos ou simplesmente não produzir nada. Portanto, seguir o final de um arquivo não funcionará porque corresponderia à última saída dessa string.

Obrigada.

bash command-line-interface
  • 1 respostas
  • 34 Views
Martin Hope
TCB13
Asked: 2016-04-10 06:30:28 +0800 CST

doveadm: Excluir mensagens anteriores à data

  • 14

Eu tenho uma situação em que alguns usuários mantêm mensagens muito antigas (+5 anos) em suas caixas de correio que são apenas uma perda de espaço e, por motivos de segurança, também devem ser excluídas.

Eu descobri que poderia usar doveadmpara isso, porém executando algo como:

doveadm expunge -u [email protected] mailbox INBOX savedbefore 1-Jan-2011

Não tem nenhum efeito. Pelo que entendi, os clientes de e-mail marcam o e-mail para exclusão antes de expungeserem executados no servidor para removê-los.

Como posso marcá-los para exclusão usando doveadme, em seguida, executar o doveadmcomando antes ou excluí-los direta e completamente?

maintenance dovecot
  • 1 respostas
  • 28443 Views
Martin Hope
TCB13
Asked: 2016-04-02 17:54:20 +0800 CST

Postfix: SMTP Relay baseado no alias (do endereço)

  • 2

Recentemente, notei que, quando adiciono um alias a uma conta do Gmail, eles me solicitam um servidor SMTP remoto, nome de usuário e senha. Então, sempre que tento enviar um e-mail usando esse alias, ele é retransmitido pelo Gmail para o servidor SMTP fornecido.

Existe uma maneira de realizar essa configuração em uma instalação do Postfix?

Para esclarecer, no meu servidor existe um usuário virtual [email protected](com os aliases: [email protected]e [email protected]) se ele enviar um e-mail:

  • Com fromendereço [email protected]=> o servidor fará a entrega padrão;
  • Com um fromendereço de [email protected]=> servidor irá retransmitir e-mail usando smtp.xpto.com(com credenciais adequadas);
  • Com um fromendereço de [email protected]=> servidor irá retransmitir e-mail usando smtp.corpx.com(com credenciais adequadas);

Idealmente, seria bom se eu pudesse ter uma tabela MySQL com as listas externas (para cada usuário virtual) contendo o domínio do servidor SMTP externo, porta, nome de usuário e senha. => Dessa forma, eu poderia configurar uma pequena interface web para que meus usuários pudessem fazer suas próprias análises externas...

Obrigada.

email
  • 1 respostas
  • 2326 Views
Martin Hope
TCB13
Asked: 2015-11-23 07:07:49 +0800 CST

Postfix Server para envio em massa em vários domínios

  • 0

No momento, estou configurando um servidor de correio para envio em massa para uma organização sem fins lucrativos. Decidi usar o Postfix, pois já tinha alguma experiência com a configuração. No entanto, minha experiência foi para ambientes de vários domínios apoiados por um banco de dados MySQL, não uma solução de mala direta em massa.

O que estou tentando realizar precisa atender ao seguinte:

  1. Servidor SMTP que permite enviar e-mails a partir de qualquer endereço de e-mail/domínio que escolher;
  2. Permita o envio de e-mails apenas com esses domínios do próprio servidor, para evitar que isso funcione como open-relay e tenha problemas com spam;
  3. Ainda possuo um virtual_aliases, mailbox-domains, mailbox-mapsconfiguração baseada em um banco de dados MySQL para que eu possa criar e-mails internos @massmail.examplepara usar como caminho de devolução/retorno de e-mail para rastrear erros;

Minha configuração atual é um ambiente de vários domínios, posso adicionar domínios e usuários ao banco de dados MySQL [email protected], conectar-me ao SMTP, enviar e-mail e receber por IMAP. Tudo funciona bem.

No entanto, como devo implementar a parte: "enviar e-mails de qualquer endereço de e-mail/domínio que escolherem"?

Para enviar e-mails de [email protected], devo:

  1. Adicione o domínio non-profit.comna virtual_domainstabela e crie o usuário [email protected]no virtual_users, faça o login com esse endereço e envie os e-mails?
  2. Faça login com o e-mail de rejeição interno [email protected], use-o para enviar e-mail, mas altere o FROMcabeçalho para [email protected]?

Quais são as opções corretas em termos de conformidade de envio em massa de detecção de SPAM? Algum dos itens acima ou algo mais? Como plataformas como o mail chimp lidam com isso?

Eu tentei a opção (2) e o gmail, por exemplo, diz algo assim: insira a descrição da imagem aqui

email
  • 1 respostas
  • 1446 Views
Martin Hope
TCB13
Asked: 2015-10-18 04:31:31 +0800 CST

Lighttpd: redirecionar domínio, mas não subdomínio

  • 1

No passado, eu tinha a seguinte configuração no Lighted que me permitia redirecionar alguns domínios secundários que possuo para meu domínio principal.

$HTTP["host"] =~ "superdomain\.net|superdomain\.eu" {
    url.redirect = ( "^/(.*)" => "http://mything.com/" )
}

Isso funciona bem. Se alguém tentar acessar superdomain.net, ele será redirecionado para http://mything.comtambém manter a consulta de URL completa.

No entanto, hoje eu estava tentando configurar o subdomínio webmail.superdomain.nete as correspondências iluminadas webmail.superdomain.netna regra anterior e redirecionar o usuário para http://mything.com.

A configuração do subdomínio foi:

$HTTP["host"] == "webmail.superdomain.net" {
    var.domain = "webmail.superdomain.net"
    include "/var/webconfig/config/template/domain-generic.conf"
}

Eu coloco essa regra antes da outra, mas ainda sem sorte. Existe uma maneira de alterar a primeira regra para corresponder apenas a um domínio e não a subdomínios?

Obrigada.

redirect
  • 1 respostas
  • 430 Views
Martin Hope
TCB13
Asked: 2015-05-30 11:24:34 +0800 CST

Debian 8 + PHP: /tmp/ Permissão negada

  • 0

Eu tinha um site funcionando bem no Debian 7 + PHP 5.6 e recentemente decidi atualizar minha instalação do Debian para o Debian 8. Tudo correu bem, exceto por uma pequena coisa.

Ao executar o mesmo código, parece que o PHP não consegue escrever nada em /tmp/, agora recebo mensagens como:

errno: 2,
errstr: "ZipArchive::extractTo(): Permission denied",
errcontext: {
    Filepath: "/tmp/phpVTUxDh",
    Options: null,
    Zip: {
       status: 0,
       statusSys: 0,
       numFiles: 12,
       filename: "/tmp/phpVTUxDh",
       comment: ""
    },
Status: true

Aparentemente, o método extractTo()está tendo dificuldades para gravar \tmp. Há alguma alteração específica no sistema que possa estar causando isso? E o novo systemd PrivateTmp?

Eu tentei adicionar PrivateTmp=falseaos arquivos:

/etc/systemd/system/multi-user.target.wants/lighttpd.service
/etc/systemd/system/multi-user.target.wants/php5-fpm.service

No entanto, não parece fazer nenhuma diferença lá.

De qualquer forma, algum motivo específico pelo qual \tmpagora está sempre vazio? Além disso, onde está o novo local do tmp?

Obrigada.

debian
  • 1 respostas
  • 1049 Views
Martin Hope
TCB13
Asked: 2015-05-23 05:50:20 +0800 CST

IPv6: Sem NAT / Endereçamento local + ISP offline

  • 3

Tenho lido alguns artigos sobre IPv6 e atualmente estou brincando com alguns endereços em um VPS.

Recentemente, eu estava pensando em uma rede IPv4 típica de casa/escritório. Estamos acostumados a ter um servidor DHCP local rodando dando IPs privados, RFC1918para nossas máquinas e então usar NAT para traduzir o tráfego entre um IP público fornecido pelo ISP e nossa rede interna.

Entendo que a tradução NAT foi apenas uma medida para lidar com o fim do IPv4 e, como temos muito espaço de endereçamento IPv6 disponível, podemos simplesmente dar a cada computador do mundo um IPv6 exclusivo e não se preocupar com isso - a segurança da rede ainda podem ser endereçados por firewalls de uma maneira que não bloqueie totalmente o NAT.

No entanto... Se cada host tiver um IPv6 público, o que acontecerá com minha rede se o ISP morrer / mudar / a rede externa cair por algum motivo? Como posso garantir a comunicação local? Como posso evitar ter que reconfigurar muitos softwares em caso de mudança de ISP (já que o prefixo IPv6 vai mudar)?

Qual seria a maneira correta de abordar essas preocupações? Posso intercalar fazer uso de uma máquina sempre com o mesmo IP? Mesmo que esse IP seja público? Ouvi falar de um espaço IP privado no IPv6, isso funciona da mesma forma que o IPv4 ou "acrescenta" ao meu prefixo IPS? Afinal, como as máquinas obtêm seus IPs? Eles devem configurá-los como estáticos?

Obrigada.

ipv6
  • 1 respostas
  • 429 Views
Martin Hope
TCB13
Asked: 2015-05-21 11:09:27 +0800 CST

Bind9: Master->Slave Notifica IPv6 com fallback para IPv4

  • 1

Eu tenho um pequeno esquema de DNS Master->Slave configurado entre duas máquinas rodando Debian 8 + Bind9 em pilha IP dupla.

O mestre e o escravo possuem um IPv4 e um IPv6 usados ​​pelo bind, conforme os parâmetros de configuração listen-on listen-on-v6 transfer-source transfer-source-v6 notify-source notify-source-v6 query-source address query-source-v6 address.

Atualmente, meu mestre está configurado para notificar o escravo como:

notify yes;
also-notify { xxxx:xxxx:xxxx:xxxx::xxx5; x.x.x.5; };

Como meu escravo tem em uma configuração de zona algo como:

zone "example.dev" {
    type slave;
    masters { xxxx:xxxx:xxxx:xxxx::xxx2; x.x.x.2; };
    file "...";
};

Esta configuração funciona bem, no entanto, ao inspecionar os arquivos de log (e como eu esperava), o mestre está notificando o escravo duas vezes em cada mudança de zona:

May 20 20:57:53 salvedns named[8568]: zone example.dev/IN: notify from x.x.x.2#52041: zone is up to date
May 20 20:57:53 salvedns named[8568]: zone example.dev/IN: notify from xxxx:xxxx:xxxx:xxxx::xxx2#51347: zone is up to date

Uma vez, em IPv4 e outra em IPv6.

Existe uma maneira de dizer ao servidor de ligação que xxxx:xxxx:xxxx:xxxx::xxx5 x.x.x.5são de fato endereços para o mesmo servidor DNS e tentar notificá-lo primeiro pelo IPv6 e, se falhar, tente novamente pelo IPv4? Além disso, como fazer a mesma coisa na mastersdeclaração de salve?

Obrigada.

bind
  • 1 respostas
  • 1933 Views
Martin Hope
TCB13
Asked: 2015-05-20 12:41:53 +0800 CST

OpenVPN: o redirecionamento de tráfego não está funcionando

  • 1

tl;dr (após horas de depuração com @krisFR): Pelo menos no Debian 8, nunca use interfaces virtuais (eth0:1) para OpenVPN, em vez disso, aplique os novos iproute2métodos debian (abordagem manual) descritos aqui: https://wiki. debian.org/NetworkConfiguration#iproute2_method . Ele irá direcionar o tráfego muito bem.


Eu estava tentando configurar o OpenVPN em uma máquina onde todo o tráfego do cliente deveria ser enviado pelo túnel, então isso faz parte da configuração do meu servidor:

local x.x.x.243
port 443
proto udp
dev tun
server 172.31.1.0 255.255.255.0 
push "redirect-gateway def1 bypass-dhcp"

E a configuração do meu cliente:

pull
resolv-retry infinite
mute-replay-warnings 
redirect-gateway def1
script-security 1

O cliente pode se conectar à VPN e pode executar ping no host da VPN em 172.31.1.1, no entanto, se eu tentar fazer ping em google.com por domínio ou IP, recebo uma Request timeout for icmp_seq 0mensagem...

O que pode estar causando isso? Observação lateral, desinstalei qualquer firewall e atualmente estou configurando o IPTables para:

iptables -A INPUT -i eth0:1 -m state --state NEW -p udp --dport 443 -j ACCEPT
iptables -A INPUT -i tun+ -j ACCEPT
iptables -A FORWARD -i tun+ -j ACCEPT
iptables -A FORWARD -i tun+ -o eth0:1 -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A FORWARD -i eth0:1 -o tun+ -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -t nat -A POSTROUTING -s 172.31.1.0/24 -o eth0:1 -j MASQUERADE
iptables -A OUTPUT -o tun+ -j ACCEPT

Obrigada.


Então tentei fazer ping no cliente 213.30.5.46(um dos IPs do Google) e não funcionou, porém obtive este resultado:

Escutando no IP VPN de saída (eth0:1):tcpdump -i eth0 -t host x.x.x.243

IP [CLIENT_IP x..].51060 > vpn.exampledomain.com.https: UDP, length 113
IP [CLIENT_IP x..].51060 > vpn.exampledomain.com.https: UDP, length 145
IP vpn.exampledomain.com.https > [CLIENT_IP x..].51060: UDP, length 81
IP [CLIENT_IP x..].51060 > vpn.exampledomain.com.https: UDP, length 145
IP [CLIENT_IP x..].51060 > vpn.exampledomain.com.https: UDP, length 145
IP [CLIENT_IP x..].51060 > vpn.exampledomain.com.https: UDP, length 145

Ao mesmo tempo, ouvindo no tun0, recebi isto:tcpdump -i tun0

23:40:39.864798 IP 172.31.1.10 > cache.google.com: ICMP echo request, id 17942, seq 0, length 64
23:40:40.925951 IP 172.31.1.10 > cache.google.com: ICMP echo request, id 17942, seq 256, length 64
23:40:41.886679 IP 172.31.1.10 > cache.google.com: ICMP echo request, id 17942, seq 512, length 64
23:40:42.906125 IP 172.31.1.10 > cache.google.com: ICMP echo request, id 17942, seq 768, length 64

Aqui está a saída de iptables -L -n -v:

Chain INPUT (policy ACCEPT 34772 packets, 2265K bytes)
 pkts bytes target     prot opt in     out     source               destination         
    0     0 ACCEPT     udp  --  eth0:1 *       0.0.0.0/0            0.0.0.0/0            state NEW udp dpt:443
   13  1092 ACCEPT     all  --  tun+   *       0.0.0.0/0            0.0.0.0/0           

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         
 1437 96985 ACCEPT     all  --  tun+   *       0.0.0.0/0            0.0.0.0/0           
    0     0 ACCEPT     all  --  tun+   eth0:1  0.0.0.0/0            0.0.0.0/0            state RELATED,ESTABLISHED
    0     0 ACCEPT     all  --  eth0:1 tun+    0.0.0.0/0            0.0.0.0/0            state RELATED,ESTABLISHED

Chain OUTPUT (policy ACCEPT 32574 packets, 7919K bytes)
 pkts bytes target     prot opt in     out     source               destination         
   13  1092 ACCEPT     all  --  *      tun+    0.0.0.0/0            0.0.0.0/0           

Nota: /proc/sys/net/ipv4/ip_forward está definido como 1.


Direcionado tcpdump -i eth0:1 -t host 213.30.5.46durante o ping do destino:

tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0:1, link-type EN10MB (Ethernet), capture size 262144 bytes
IP 172.31.1.10 > cache.google.com: ICMP echo request, id 16920, seq 0, length 64
IP 172.31.1.10 > cache.google.com: ICMP echo request, id 16920, seq 256, length 64
IP 172.31.1.10 > cache.google.com: ICMP echo request, id 16920, seq 512, length 64
IP 172.31.1.10 > cache.google.com: ICMP echo request, id 16920, seq 768, length 64

Nada aparece no cliente, o ping eventualmente expira.


O endereço IP usado pelo OpenVPN local x.x.x.243é configurado da \etc\network\interfacesseguinte eth0:1forma eth0:

 auto eth0:1
  iface eth0:1 inet static
   address x.x.x.243
   gateway x.x.x.129
   netmask 255.255.255.128
   dns-nameservers x.x.x.4 x.x.x.104
openvpn
  • 1 respostas
  • 612 Views
Martin Hope
TCB13
Asked: 2015-05-19 16:41:53 +0800 CST

BIND9: Enviar Notificações em Endereço IP Específico

  • 2

Eu tenho tentado implementar uma configuração de ligação mestre->escravo entre duas máquinas, mas tenho um problema em relação ao endereço IP BIND usado no mestre para notificar minha máquina escrava.

Aqui está a minha configuração:

Master: master.site.com - 10.0.0.2
Slave: slave.site.com - 10.0.0.10

O Mestre possui uma zona autoritativa site.come está configurado para notificar todos os escravos quando a zona for alterada. A zona está funcionando corretamente. Ele responde bem às perguntas edig @10.0.0.2 -t SOA site.com

Então, no master eu tenho isso named.conf.options:

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

    dnssec-validation auto;
    auth-nxdomain no;

    listen-on { 10.0.0.2; };
    listen-on-v6 { any; };
    allow-query     { any; };
    recursion yes;
    allow-recursion { localhost; };
    allow-notify { localhost; };
    allow-transfer { localhost; 10.0.0.10; };
    version none;

    notify yes;
    also-notify { 10.0.0.10; };

};

No escravo:

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

    dnssec-validation auto;
    auth-nxdomain no;

    listen-on { 10.0.0.10; };
    listen-on-v6 { any; };
    allow-query     { any; };
    recursion yes;
    allow-recursion { localhost; };
    allow-notify { localhost; 10.0.0.2; };
    allow-transfer { localhost; 10.0.0.2; };
    version none;
};

Para começar, as notificações parecem não funcionar, usando tcpdumpna máquina escrava recebi esta mensagem:

02:32:50.269377 IP 10.0.0.1.15271 > 10.0.0.10.53: 64103 notify [b2&3=0x2400] [1a] SOA? site.com. (85)
02:32:50.269662 IP 10.0.0.10.53 > 10.0.0.1.15271: 64103 notify Refused- 0/0/0 (27)

Como você pode ver, embora o mestre esteja configurado para ouvir 10.0.0.2ao enviar notificações, ele as envia usando seu endereço IP principal 10.0.0.1e, logicamente, meu escravo recusou a notificação ...

Por que o mestre não está enviando as notificações 10.0.0.2? Existe alguma configuração onde eu posso forçar isso? A máquina possui 3 IP's, um para o site, outro para e-mail e outro para DNS... Preciso fazer com que seja usado APENAS10.0.0.2 para DNS, mas aparentemente listen-onnão funciona com tráfego de saída...

Como posso consertar isso?

domain-name-system
  • 1 respostas
  • 2719 Views
Martin Hope
TCB13
Asked: 2015-03-02 13:37:10 +0800 CST

bind9 + lighttpd: Aceite todas as solicitações vindas de certos servidores de nomes e responda com página estática

  • 1

Então, eu tenho esta situação:

Um servidor (no CentOS) com muitos domínios com cerca de 2 TB de dados, e estou migrando tudo para outra máquina com E/S mais rápida. Os detalhes da migração/software não são importantes aqui.

Devido a alguns motivos internos, vou criar uma imagem de todo o sistema e implantá-lo na nova máquina e, em seguida, fazer os ajustes adequados. Para isso terá que desligar a máquina e esperar uma ou duas horas para que a imagem seja transferida.

Minha pergunta é: qual é a melhor maneira de exibir uma página da Web estática informando que o site não está disponível para manutenção no momento? Sem alterar os servidores de nomes para todos os domínios e enquanto o servidor real está offline?

Todos os domínios nesse servidor estão atualmente apontados para servidores de nomes ns1.example.come ns2.example.com.

Minha ideia era mudar ns2.example.como IP do servidor real para o pequeno VPS esperando que todos que navegassem em um domínio apontado para lá acabassem no pequeno VPS exibindo uma página estática dizendo que o site estava indisponível para manutenção no momento.

Se eu estiver correto, como posso configurar o bing9 e um servidor web como o lighttpd para responder às consultas de DNS recebidas ns2.example.comcom seu próprio IP e, em seguida, o lighttpd mostrar uma página estática para qualquer domínio? como um curinga...

Obrigada.

bind
  • 1 respostas
  • 100 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