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
Bernd Storath
Asked: 2025-03-27 15:53:34 +0800 CST

Podman, WireGuard e nftables

  • 6

Estou executando o WireGuard em um contêiner Podman. Tenho uma configuração Hub and Spoke como esta

Client A <--> Hub <--> Client B
               |
               |
            Internet

Esta é minha configuração WireGuard no Hub atualmente

[Interface]
PrivateKey = ...
Address = 10.8.0.1/24, fdcc:ad94:bacf:61a4::cafe:1/112
ListenPort = 51820
MTU = 1420
PostUp = iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE; iptables -A INPUT -p udp -m udp --dport 51820 -j ACCEPT; iptables -A FORWARD -i wg0 -j ACCEPT; iptables -A FORWARD -o wg0 -j ACCEPT; ip6tables -t nat -A POSTROUTING -s fdcc:ad94:bacf:61a4::cafe:0/112 -o eth0 -j MASQUERADE; ip6tables -A INPUT -p udp -m udp --dport 51820 -j ACCEPT; ip6tables -A FORWARD -i wg0 -j ACCEPT; ip6tables -A FORWARD -o wg0 -j ACCEPT;
PostDown = iptables -t nat -D POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE; iptables -D INPUT -p udp -m udp --dport 51820 -j ACCEPT; iptables -D FORWARD -i wg0 -j ACCEPT; iptables -D FORWARD -o wg0 -j ACCEPT; ip6tables -t nat -D POSTROUTING -s fdcc:ad94:bacf:61a4::cafe:0/112 -o eth0 -j MASQUERADE; ip6tables -D INPUT -p udp -m udp --dport 51820 -j ACCEPT; ip6tables -D FORWARD -i wg0 -j ACCEPT; ip6tables -D FORWARD -o wg0 -j ACCEPT;

# Client A
[Peer]
PublicKey = hcU3LDJmlsInRSDFErt+Kp2CZBRzSggvmfOkSKcGx1A=
PresharedKey = ...
AllowedIPs = 10.8.0.2/32, fdcc:ad94:bacf:61a4::cafe:2/128

Mas como o Hub está executando o AlmaLinux 9.5 no OCI, tive que configurar o iptables para usar iptables-legacy.

Agora estou tentando migrar para nftables

Esta é a nova configuração

[Interface]
...
PostUp = nft add table inet wg_table; nft add chain inet wg_table postrouting { type nat hook postrouting priority 100 \; }; nft add rule inet wg_table postrouting ip saddr 10.8.0.0/24 oifname eth0 masquerade; nft add rule inet wg_table postrouting ip6 saddr fdcc:ad94:bacf:61a4::cafe:0/112 oifname eth0 masquerade; nft add chain inet wg_table input { type filter hook input priority 0 \; policy accept \; }; nft add rule inet wg_table input udp dport 51820 accept; nft add chain inet wg_table forward { type filter hook forward priority 0 \; policy accept \; }; nft add rule inet wg_table forward iifname "wg0" accept; nft add rule inet wg_table forward oifname "wg0" accept;
PostDown = nft delete table inet wg_table
...

Tentei ficar o mais próximo possível da regra original do iptables por enquanto.

Mas não funciona usando meu telefone, não consigo me conectar à internet com as novas regras. Mesmo usando iptables-nft, não funciona

iptables
  • 1 respostas
  • 98 Views
Martin Hope
Marcel Körbler
Asked: 2025-03-26 17:26:19 +0800 CST

Host de sessão da área de trabalho remota do Windows Server desconectando clientes

  • 6

Estamos usando o Windows Server 2022 como um host de sessão de área de trabalho remota, com conexões remotas baseadas em sessão e temos o problema de que as sessões remotas são desconectadas aleatoriamente para nossos clientes baseados em freerdp.

Ao explorar o protocolo do Windows, notamos uma mensagem de informação específica que parece estar relacionada ao nosso problema:

ID do evento: 39 Mensagem:Session "17" has been disconnected by session "0"

A primeira sessão é a sessão que derrubou a conexão, a segunda é sempre "0". Entendemos a sessão "0" como sendo a sessão root/windows. Mas a questão é, por que a sessão root mata nossa sessão cliente aleatoriamente?

O erro no lado do cliente se parece com:

[15:06:14:485] [469455:000729dc] [INFO][com.freerdp.core] - [rdp_print_errinfo]: ERRINFO_RPC_INITIATED_DISCONNECT (0x00000001):The disconnection was initiated by an administrative tool on the server in another session.

remote-desktop
  • 1 respostas
  • 137 Views
Martin Hope
Jerome WAGNER
Asked: 2025-03-26 00:15:22 +0800 CST

Manipulação de bots que escaneiam milhares de URLs em busca de configurações de segurança incorretas

  • 5

Gostaria de reduzir o tráfego e a largura de banda usados ​​por bots que enviam URLs GET para testar falhas de segurança "clássicas" em um site.

URLs como GET /.env GET /.git/config GET /phpinfo.php ..

quando olho meus logs, há milhares deles. Alguns dos bots mudam seus IPs regularmente, alguns deles continuam mudando suas strings User-Agent, ..

Então, eu estava pensando em uma lista codificada extraída dos meus logs e enviar a eles um 403 Forbidden ou algo assim, mas eu gostaria de torná-la rápida o suficiente para que o nginx ou o varnish pudessem lidar com esse filtro rápido o suficiente para que isso não afetasse seu desempenho.

Você já tentou lidar com esse fluxo constante de solicitações com essa lista? Existe algum truque especial, como uma árvore binária no Nginx ou Varnish, que pode ajudar a configurar uma lista enorme de caminhos para uma correspondência rápida?

nginx
  • 2 respostas
  • 74 Views
Martin Hope
Teemo22
Asked: 2025-03-25 05:10:59 +0800 CST

Destinatário de notificações de consentimento do administrador do aplicativo Entra id

  • 5

Segui este guia para evitar que usuários vinculem suas contas do 365 a aplicativos não autorizados.

Em seguida, configurei o fluxo de trabalho de consentimento do administrador para permitir que os administradores examinem essas solicitações.

A conta de administração não tem uma caixa de correio anexada. É possível enviar essas solicitações para uma conta de e-mail fora do locatário?

azure
  • 2 respostas
  • 43 Views
Martin Hope
natli
Asked: 2025-03-25 02:19:20 +0800 CST

O filtro fail2ban não está sendo acionado, mesmo que o regex corresponda

  • 5

Então, estou executando um servidor docker com um contêiner nginx fazendo proxy reverso de vários outros contêineres. No host, quero usar o fail2ban para banir IPs que tentam invadir sites do WordPress. Bem simples, mas preciso usar uma ação personalizada para que o banimento ocorra na cadeia DOCKER-USER, caso contrário, os encaminhamentos do docker (que também usam iptables) substituem os banimentos. Para conseguir isso, monto o diretório de logs do nginx do host para o contêiner para que o fail2ban possa observá-los do host.

Tudo parece estar funcionando perfeitamente, exceto pelo fato de que não está banindo nenhum IP. O regex corresponde corretamente nos testes, banir manualmente funciona perfeitamente, os logs do fail2ban não mostram nenhuma estranheza; estou perplexo.

Aqui está um trecho ofuscado/anonimizado do registro de acesso;

132.321.555.777 - - [24/Mar/2025:17:12:07 +0000] "POST //xmlrpc.php HTTP/1.1" 200 423 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.69 Safari/537.36"
132.321.555.777 - - [24/Mar/2025:17:12:07 +0000] "POST //xmlrpc.php HTTP/1.1" 200 423 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.69 Safari/537.36"
132.321.555.777 - - [24/Mar/2025:17:12:07 +0000] "POST //xmlrpc.php HTTP/1.1" 200 423 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.69 Safari/537.36"
132.321.555.777 - - [24/Mar/2025:17:12:08 +0000] "POST //xmlrpc.php HTTP/1.1" 200 423 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.69 Safari/537.36"
132.321.555.777 - - [24/Mar/2025:17:12:08 +0000] "POST //xmlrpc.php HTTP/1.1" 200 423 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.69 Safari/537.36"
84.29.333.555 - - [24/Mar/2025:17:12:08 +0000] "GET /wp-content/uploads/2024/06/xx-32x32.png HTTP/1.1" 200 926 "-" "NetworkingExtension/8620.2.4.10.8 Network/4277.82.1 iOS/18.3.2"
84.29.333.555 - - [24/Mar/2025:17:12:08 +0000] "GET /wp-content/uploads/2024/06/xx-180x180.png HTTP/1.1" 200 5567 "-" "NetworkingExtension/8620.2.4.10.8 Network/4277.82.1 iOS/18.3.2"
132.321.555.777 - - [24/Mar/2025:17:12:09 +0000] "POST //xmlrpc.php HTTP/1.1" 200 423 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.69 Safari/537.36"
132.321.555.777 - - [24/Mar/2025:17:12:09 +0000] "POST //xmlrpc.php HTTP/1.1" 200 423 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.69 Safari/537.36"
132.321.555.777 - - [24/Mar/2025:17:12:09 +0000] "POST //xmlrpc.php HTTP/1.1" 200 423 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.69 Safari/537.36"
132.321.555.777 - - [24/Mar/2025:17:12:10 +0000] "POST //xmlrpc.php HTTP/1.1" 200 423 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.69 Safari/537.36"
43.166.222.22 - - [24/Mar/2025:17:12:02 +0000] "GET / HTTP/1.1" 400 248 "-" "Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1"
84.29.123.32 - - [24/Mar/2025:17:12:08 +0000] "GET /wp-content/uploads/2023/01/xx-300x225.png HTTP/1.1" 200 115438 "-" "NetworkingExtension/8620.2.4.10.8 Network/4277.82.1 iOS/18.3.2"
84.29.123.32 - - [24/Mar/2025:17:12:08 +0000] "GET /wp-content/uploads/2024/06/xx-192x192.png HTTP/1.1" 200 5994 "-" "NetworkingExtension/8620.2.4.10.8 Network/4277.82.1 iOS/18.3.2"
84.29.123.32 - - [24/Mar/2025:17:12:09 +0000] "GET /wp-content/uploads/2024/06/xx-32x32.png HTTP/1.1" 200 926 "-" "NetworkingExtension/8620.2.4.10.8 Network/4277.82.1 iOS/18.3.2"

/etc/fail2ban/jail.local

[nginx-xmlrpc]
enabled  = true
filter   = nginx-xmlrpc
logpath  = /var/dockervolumes/nginx/logs/access.log
maxretry = 1
findtime = 5
bantime  = 3600
action   = iptables-docker

Configurei o maxretry e o findtime bem baixos para testes, mas isso não ajudou.

/etc/fail2ban/filter.d/nginx-xmlrpc.conf

[INCLUDES]

before = nginx-bad-request.conf

[Definition]
failregex = ^<HOST>.*] "POST (|.*)\/xmlrpc\.php.*
            ^<HOST>.*] "GET (|.*)\/xmlrpc\.php.*
            ^<HOST> .* "POST .*wp-login.php
ignoreregex = ^<HOST>.*] "POST (|.*)\/xmlrpc\.php\?for=jetpack.*

datepattern = ^[^\[]*\[({DATE})
              {^LN-BEG}

Como você pode ver, eu já tentei mexer no padrão de datas, mas isso não ajudou.

/etc/fail2ban/action.d/iptables-docker.conf

[Definition]
actionstart =
actionstop =
actioncheck = /usr/sbin/iptables -n -L DOCKER-USER | grep -q '[<ip>]'
actionban = /usr/sbin/iptables -I DOCKER-USER -s <ip> -j DROP
actionunban = /usr/sbin/iptables -D DOCKER-USER -s <ip> -j DROP

Testando o regex; fail2ban-regex /var/dockervolumes/nginx/logs/access.log /etc/fail2ban/filter.d/nginx-xmlrpc.conf

Running tests
=============

Use   failregex filter file : nginx-xmlrpc, basedir: /etc/fail2ban
Use      datepattern : ^[^\[]*\[({DATE})
{^LN-BEG} : Default Detectors
Use         log file : /var/dockervolumes/nginx/logs/access.log
Use         encoding : UTF-8


Results
=======

Failregex: 13345 total
|-  #) [# of hits] regular expression
|   1) [13299] ^<HOST>.*] "POST (|.*)\/xmlrpc\.php.*
|   2) [20] ^<HOST>.*] "GET (|.*)\/xmlrpc\.php.*
|   3) [26] ^<HOST> .* "POST .*wp-login.php
`-

Ignoreregex: 0 total

Date template hits:
|- [# of hits] date format
|  [26486] ^[^\[]*\[(Day(?P<_sep>[-/])MON(?P=_sep)ExYear[ :]?24hour:Minute:Second(?:\.Microseconds)?(?: Zone offset)?)
`-

Lines: 26486 lines, 0 ignored, 13345 matched, 13141 missed
[processed in 2.39 sec]

Testando o ban manualmente; fail2ban-client set nginx-xmlrpc banip 1.2.5.9

Produz log:

2025-03-24 19:09:35,909 fail2ban.actions        [828254]: NOTICE  [nginx-xmlrpc] Ban 1.2.5.9

E lista corretamente o ip bloqueado; iptables -L DOCKER-USER

Chain DOCKER-USER (1 references)
target     prot opt source               destination
DROP       all  --  1.2.5.9              anywhere
DROP       all  --  1.2.4.9              anywhere
DROP       all  --  1.2.3.9              anywhere
DROP       all  --  1.2.3.8              anywhere
DROP       all  --  1.2.3.7              anywhere
DROP       all  --  1.2.3.6              anywhere
DROP       all  --  1.2.3.5              anywhere
RETURN     all  --  anywhere             anywhere

O log também não mostra mais nenhuma estranheza; tail -f /var/log/fail2ban.log

2025-03-24 19:00:29,067 fail2ban.actions        [828254]: NOTICE  [nginx-xmlrpc] Restore Ban 1.2.3.5
2025-03-24 19:00:29,080 fail2ban.actions        [828254]: NOTICE  [nginx-xmlrpc] Restore Ban 1.2.3.6
2025-03-24 19:00:29,094 fail2ban.actions        [828254]: NOTICE  [nginx-xmlrpc] Restore Ban 1.2.3.7
2025-03-24 19:00:29,104 fail2ban.actions        [828254]: NOTICE  [nginx-xmlrpc] Restore Ban 1.2.3.8
2025-03-24 19:00:29,115 fail2ban.actions        [828254]: NOTICE  [nginx-xmlrpc] Restore Ban 1.2.3.9
2025-03-24 19:00:29,126 fail2ban.actions        [828254]: NOTICE  [nginx-xmlrpc] Restore Ban 1.2.4.9
2025-03-24 19:00:29,240 fail2ban.filtersystemd  [828254]: INFO    [nginx-xmlrpc] Jail is in operation now (process new journal entries)
2025-03-24 19:05:53,278 fail2ban.actions        [828254]: NOTICE  [nginx-xmlrpc] Unban 1.2.3.4
2025-03-24 19:09:33,024 fail2ban.actions        [828254]: WARNING [nginx-xmlrpc] 1.2.4.9 already banned
2025-03-24 19:09:35,909 fail2ban.actions        [828254]: NOTICE  [nginx-xmlrpc] Ban 1.2.5.9

ATUALIZAR:

~ status do cliente fail2ban nginx-xmlrpc

Status for the jail: nginx-xmlrpc
|- Filter
|  |- Currently failed: 0
|  |- Total failed:     0
|  `- Journal matches:  _SYSTEMD_UNIT=nginx.service + _COMM=nginx
`- Actions
   |- Currently banned: 0
   |- Total banned:     8
   `- Banned IP list:

Essas 8 proibições foram meus testes manuais.

~ iptables-salvar

*filter
:INPUT ACCEPT [0:0]
:FORWARD DROP [0:0]
:OUTPUT ACCEPT [0:0]
:DOCKER - [0:0]
:DOCKER-ISOLATION-STAGE-1 - [0:0]
:DOCKER-ISOLATION-STAGE-2 - [0:0]
:DOCKER-USER - [0:0]
-A FORWARD -j DOCKER-USER
-A FORWARD -j DOCKER-ISOLATION-STAGE-1
-A FORWARD -o docker0 -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -o docker0 -j DOCKER
-A FORWARD -i docker0 ! -o docker0 -j ACCEPT
-A FORWARD -i docker0 -o docker0 -j ACCEPT
-A FORWARD -o br-51ec37449070 -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -o br-51ec37449070 -j DOCKER
-A FORWARD -i br-51ec37449070 ! -o br-51ec37449070 -j ACCEPT
-A FORWARD -i br-51ec37449070 -o br-51ec37449070 -j ACCEPT
-A DOCKER -d 172.18.0.39/32 ! -i br-51ec37449070 -o br-51ec37449070 -p tcp -m tcp --dport 2020 -j ACCEPT
-A DOCKER -d 172.18.0.39/32 ! -i br-51ec37449070 -o br-51ec37449070 -p tcp -m tcp --dport 2019 -j ACCEPT
-A DOCKER -d 172.18.0.39/32 ! -i br-51ec37449070 -o br-51ec37449070 -p tcp -m tcp --dport 2018 -j ACCEPT
-A DOCKER -d 172.18.0.39/32 ! -i br-51ec37449070 -o br-51ec37449070 -p tcp -m tcp --dport 2017 -j ACCEPT
-A DOCKER -d 172.18.0.39/32 ! -i br-51ec37449070 -o br-51ec37449070 -p tcp -m tcp --dport 2016 -j ACCEPT
-A DOCKER -d 172.18.0.39/32 ! -i br-51ec37449070 -o br-51ec37449070 -p tcp -m tcp --dport 2015 -j ACCEPT
-A DOCKER -d 172.18.0.39/32 ! -i br-51ec37449070 -o br-51ec37449070 -p tcp -m tcp --dport 2014 -j ACCEPT
-A DOCKER -d 172.18.0.39/32 ! -i br-51ec37449070 -o br-51ec37449070 -p tcp -m tcp --dport 2013 -j ACCEPT
-A DOCKER -d 172.18.0.39/32 ! -i br-51ec37449070 -o br-51ec37449070 -p tcp -m tcp --dport 2012 -j ACCEPT
-A DOCKER -d 172.18.0.39/32 ! -i br-51ec37449070 -o br-51ec37449070 -p tcp -m tcp --dport 2011 -j ACCEPT
-A DOCKER -d 172.18.0.39/32 ! -i br-51ec37449070 -o br-51ec37449070 -p tcp -m tcp --dport 2010 -j ACCEPT
-A DOCKER -d 172.18.0.39/32 ! -i br-51ec37449070 -o br-51ec37449070 -p tcp -m tcp --dport 2009 -j ACCEPT
-A DOCKER -d 172.18.0.39/32 ! -i br-51ec37449070 -o br-51ec37449070 -p tcp -m tcp --dport 2008 -j ACCEPT
-A DOCKER -d 172.18.0.39/32 ! -i br-51ec37449070 -o br-51ec37449070 -p tcp -m tcp --dport 2007 -j ACCEPT
-A DOCKER -d 172.18.0.39/32 ! -i br-51ec37449070 -o br-51ec37449070 -p tcp -m tcp --dport 2006 -j ACCEPT
-A DOCKER -d 172.18.0.39/32 ! -i br-51ec37449070 -o br-51ec37449070 -p tcp -m tcp --dport 2005 -j ACCEPT
-A DOCKER -d 172.18.0.39/32 ! -i br-51ec37449070 -o br-51ec37449070 -p tcp -m tcp --dport 2004 -j ACCEPT
-A DOCKER -d 172.18.0.39/32 ! -i br-51ec37449070 -o br-51ec37449070 -p tcp -m tcp --dport 2003 -j ACCEPT
-A DOCKER -d 172.18.0.39/32 ! -i br-51ec37449070 -o br-51ec37449070 -p tcp -m tcp --dport 2002 -j ACCEPT
-A DOCKER -d 172.18.0.39/32 ! -i br-51ec37449070 -o br-51ec37449070 -p tcp -m tcp --dport 2001 -j ACCEPT
-A DOCKER -d 172.18.0.39/32 ! -i br-51ec37449070 -o br-51ec37449070 -p tcp -m tcp --dport 2000 -j ACCEPT
-A DOCKER -d 172.18.0.6/32 ! -i br-51ec37449070 -o br-51ec37449070 -p tcp -m tcp --dport 443 -j ACCEPT
-A DOCKER -d 172.18.0.6/32 ! -i br-51ec37449070 -o br-51ec37449070 -p tcp -m tcp --dport 80 -j ACCEPT
-A DOCKER-ISOLATION-STAGE-1 -i docker0 ! -o docker0 -j DOCKER-ISOLATION-STAGE-2
-A DOCKER-ISOLATION-STAGE-1 -i br-51ec37449070 ! -o br-51ec37449070 -j DOCKER-ISOLATION-STAGE-2
-A DOCKER-ISOLATION-STAGE-1 -j RETURN
-A DOCKER-ISOLATION-STAGE-2 -o docker0 -j DROP
-A DOCKER-ISOLATION-STAGE-2 -o br-51ec37449070 -j DROP
-A DOCKER-ISOLATION-STAGE-2 -j RETURN
-A DOCKER-USER -s 1.14.96.192/32 -j DROP
-A DOCKER-USER -s 18.219.14.219/32 -j DROP
-A DOCKER-USER -s 174.138.27.210/32 -j DROP
-A DOCKER-USER -s 128.199.244.121/32 -j DROP
-A DOCKER-USER -s 45.130.145.4/32 -j DROP
-A DOCKER-USER -s 128.199.244.121/32 -j DROP
-A DOCKER-USER -j RETURN
COMMIT
# Completed on Wed Mar 26 09:10:19 2025
# Generated by iptables-save v1.8.10 (nf_tables) on Wed Mar 26 09:10:19 2025
*nat
:PREROUTING ACCEPT [320032242:19224216945]
:INPUT ACCEPT [0:0]
:OUTPUT ACCEPT [396346224:30027564903]
:POSTROUTING ACCEPT [531692826:38140531338]
:DOCKER - [0:0]
-A PREROUTING -m addrtype --dst-type LOCAL -j DOCKER
-A OUTPUT ! -d 127.0.0.0/8 -m addrtype --dst-type LOCAL -j DOCKER
-A POSTROUTING -s 172.17.0.0/16 ! -o docker0 -j MASQUERADE
-A POSTROUTING -s 172.18.0.0/16 ! -o br-51ec37449070 -j MASQUERADE
-A POSTROUTING -s 172.18.0.39/32 -d 172.18.0.39/32 -p tcp -m tcp --dport 2020 -j MASQUERADE
-A POSTROUTING -s 172.18.0.39/32 -d 172.18.0.39/32 -p tcp -m tcp --dport 2019 -j MASQUERADE
-A POSTROUTING -s 172.18.0.39/32 -d 172.18.0.39/32 -p tcp -m tcp --dport 2018 -j MASQUERADE
-A POSTROUTING -s 172.18.0.39/32 -d 172.18.0.39/32 -p tcp -m tcp --dport 2017 -j MASQUERADE
-A POSTROUTING -s 172.18.0.39/32 -d 172.18.0.39/32 -p tcp -m tcp --dport 2016 -j MASQUERADE
-A POSTROUTING -s 172.18.0.39/32 -d 172.18.0.39/32 -p tcp -m tcp --dport 2015 -j MASQUERADE
-A POSTROUTING -s 172.18.0.39/32 -d 172.18.0.39/32 -p tcp -m tcp --dport 2014 -j MASQUERADE
-A POSTROUTING -s 172.18.0.39/32 -d 172.18.0.39/32 -p tcp -m tcp --dport 2013 -j MASQUERADE
-A POSTROUTING -s 172.18.0.39/32 -d 172.18.0.39/32 -p tcp -m tcp --dport 2012 -j MASQUERADE
-A POSTROUTING -s 172.18.0.39/32 -d 172.18.0.39/32 -p tcp -m tcp --dport 2011 -j MASQUERADE
-A POSTROUTING -s 172.18.0.39/32 -d 172.18.0.39/32 -p tcp -m tcp --dport 2010 -j MASQUERADE
-A POSTROUTING -s 172.18.0.39/32 -d 172.18.0.39/32 -p tcp -m tcp --dport 2009 -j MASQUERADE
-A POSTROUTING -s 172.18.0.39/32 -d 172.18.0.39/32 -p tcp -m tcp --dport 2008 -j MASQUERADE
-A POSTROUTING -s 172.18.0.39/32 -d 172.18.0.39/32 -p tcp -m tcp --dport 2007 -j MASQUERADE
-A POSTROUTING -s 172.18.0.39/32 -d 172.18.0.39/32 -p tcp -m tcp --dport 2006 -j MASQUERADE
-A POSTROUTING -s 172.18.0.39/32 -d 172.18.0.39/32 -p tcp -m tcp --dport 2005 -j MASQUERADE
-A POSTROUTING -s 172.18.0.39/32 -d 172.18.0.39/32 -p tcp -m tcp --dport 2004 -j MASQUERADE
-A POSTROUTING -s 172.18.0.39/32 -d 172.18.0.39/32 -p tcp -m tcp --dport 2003 -j MASQUERADE
-A POSTROUTING -s 172.18.0.39/32 -d 172.18.0.39/32 -p tcp -m tcp --dport 2002 -j MASQUERADE
-A POSTROUTING -s 172.18.0.39/32 -d 172.18.0.39/32 -p tcp -m tcp --dport 2001 -j MASQUERADE
-A POSTROUTING -s 172.18.0.39/32 -d 172.18.0.39/32 -p tcp -m tcp --dport 2000 -j MASQUERADE
-A POSTROUTING -s 172.18.0.6/32 -d 172.18.0.6/32 -p tcp -m tcp --dport 443 -j MASQUERADE
-A POSTROUTING -s 172.18.0.6/32 -d 172.18.0.6/32 -p tcp -m tcp --dport 80 -j MASQUERADE
-A DOCKER -i docker0 -j RETURN
-A DOCKER -i br-51ec37449070 -j RETURN
-A DOCKER ! -i br-51ec37449070 -p tcp -m tcp --dport 2020 -j DNAT --to-destination 172.18.0.39:2020
-A DOCKER ! -i br-51ec37449070 -p tcp -m tcp --dport 2019 -j DNAT --to-destination 172.18.0.39:2019
-A DOCKER ! -i br-51ec37449070 -p tcp -m tcp --dport 2018 -j DNAT --to-destination 172.18.0.39:2018
-A DOCKER ! -i br-51ec37449070 -p tcp -m tcp --dport 2017 -j DNAT --to-destination 172.18.0.39:2017
-A DOCKER ! -i br-51ec37449070 -p tcp -m tcp --dport 2016 -j DNAT --to-destination 172.18.0.39:2016
-A DOCKER ! -i br-51ec37449070 -p tcp -m tcp --dport 2015 -j DNAT --to-destination 172.18.0.39:2015
-A DOCKER ! -i br-51ec37449070 -p tcp -m tcp --dport 2014 -j DNAT --to-destination 172.18.0.39:2014
-A DOCKER ! -i br-51ec37449070 -p tcp -m tcp --dport 2013 -j DNAT --to-destination 172.18.0.39:2013
-A DOCKER ! -i br-51ec37449070 -p tcp -m tcp --dport 2012 -j DNAT --to-destination 172.18.0.39:2012
-A DOCKER ! -i br-51ec37449070 -p tcp -m tcp --dport 2011 -j DNAT --to-destination 172.18.0.39:2011
-A DOCKER ! -i br-51ec37449070 -p tcp -m tcp --dport 2010 -j DNAT --to-destination 172.18.0.39:2010
-A DOCKER ! -i br-51ec37449070 -p tcp -m tcp --dport 2009 -j DNAT --to-destination 172.18.0.39:2009
-A DOCKER ! -i br-51ec37449070 -p tcp -m tcp --dport 2008 -j DNAT --to-destination 172.18.0.39:2008
-A DOCKER ! -i br-51ec37449070 -p tcp -m tcp --dport 2007 -j DNAT --to-destination 172.18.0.39:2007
-A DOCKER ! -i br-51ec37449070 -p tcp -m tcp --dport 2006 -j DNAT --to-destination 172.18.0.39:2006
-A DOCKER ! -i br-51ec37449070 -p tcp -m tcp --dport 2005 -j DNAT --to-destination 172.18.0.39:2005
-A DOCKER ! -i br-51ec37449070 -p tcp -m tcp --dport 2004 -j DNAT --to-destination 172.18.0.39:2004
-A DOCKER ! -i br-51ec37449070 -p tcp -m tcp --dport 2003 -j DNAT --to-destination 172.18.0.39:2003
-A DOCKER ! -i br-51ec37449070 -p tcp -m tcp --dport 2002 -j DNAT --to-destination 172.18.0.39:2002
-A DOCKER ! -i br-51ec37449070 -p tcp -m tcp --dport 2001 -j DNAT --to-destination 172.18.0.39:2001
-A DOCKER ! -i br-51ec37449070 -p tcp -m tcp --dport 2000 -j DNAT --to-destination 172.18.0.39:2000
-A DOCKER ! -i br-51ec37449070 -p tcp -m tcp --dport 443 -j DNAT --to-destination 172.18.0.6:443
-A DOCKER ! -i br-51ec37449070 -p tcp -m tcp --dport 80 -j DNAT --to-destination 172.18.0.6:80
COMMIT
# Completed on Wed Mar 26 09:10:19 2025
nginx
  • 1 respostas
  • 80 Views
Martin Hope
Matteo Ragni
Asked: 2025-03-24 19:04:21 +0800 CST

RAID 5 no disco com falha de alteração LSI MegaRaid com ou sem hot swap

  • 5

Recebi um alerta SMART para 1 dos discos de um array RAID5, composto por 3 discos. Quero trocar o disco com defeito, se possível sem desligar o servidor. O erro relatado no alerta de e-mail é (algumas informações redigidas):

Esta mensagem foi gerada pelo daemon smartd em execução em:

nome do host: ********* Domínio DNS: *********

O seguinte aviso/erro foi registrado pelo daemon smartd:

Dispositivo: /dev/bus/0 [megaraid_disk_10], Falha SMART: FALHA IMINENTE DO CANAL DE DADOS FALHA GERAL DO DISCO RÍGIDO

Informações do dispositivo: [LENOVO ST2000NM003A LKB9], id lu: 0x5000*************, S/N: WJC0*************, 2,00 TB

Para detalhes, consulte o SYSLOG do host.

Você também pode usar o utilitário smartctl para investigação posterior. A mensagem original sobre esse problema foi enviada em Sat Mar 22 04:36:14 2025 CET Outra mensagem será enviada em 24 horas se o problema persistir.

O servidor está atualmente executando Proxmox (distribuição baseada em Debian) e os discos são gerenciados por um Lenovo RAID 730-8i 2GB Flash , que até onde eu posso entender é LSI / Broadcom e gerenciado em SO por meio de seus utilitários MegaCli64e StorCli64, eu instalei ambos. Com lspci | grep RAID:

58:00.0 RAID bus controller: LSI Logic / Symbios Logic MegaRAID SAS-3 3108 [Invader] (rev 02)
 

No controlador existem dois grupos de acionamento:

  • RAID1 para 2 discos SSD de aproximadamente 500 GB cada
  • RAID5 para 3 discos HDD de aprox. 2 TB cada. Este é o grupo em que um dos dispositivos está começando a dar avisos SMART. Encontrei um disco compatível com o mesmo número de peça para trocar o que tem avisos.

Tudo no RAID5 é feito backup, então não estou muito preocupado em perder dados, dá mais trabalho restaurar e, se possível, gostaria de evitar isso.

Usando o MegaCli64obtive a configuração para o RAID:

# ./MegaCli64 -LDInfo -LAll -aAll

[... omissis other disk group ...]

Virtual Drive: 1 (Target Id: 1)
Name                :hddstorage
RAID Level          : Primary-5, Secondary-0, RAID Level Qualifier-3
Size                : 3.635 TB
Sector Size         : 512
Is VD emulated      : No
Parity Size         : 1.817 TB
State               : Optimal
Strip Size          : 64 KB
Number Of Drives    : 3
Span Depth          : 1
Default Cache Policy: WriteBack, ReadAheadNone, Direct, No Write Cache if Bad BBU
Current Cache Policy: WriteBack, ReadAheadNone, Direct, No Write Cache if Bad BBU
Default Access Policy: Read/Write
Current Access Policy: Read/Write
Disk Cache Policy   : Disabled
Encryption Type     : None
PI type: No PI

Is VD Cached: No

e o estado atual da unidade defeituosa:

# ./MegaCli64  -PDList –aAll

[... omissis other disks ...]

Enclosure Device ID: 252
Slot Number: 4
Drive's position: DiskGroup: 1, Span: 0, Arm: 2
Enclosure position: N/A
Device Id: 10  # <---- ID for the SMART check
WWN: 5000C500CE7FB828
Sequence Number: 2
Media Error Count: 79
Other Error Count: 1
Predictive Failure Count: 2
Last Predictive Failure Event Seq Number: 46655
PD Type: SAS

Raw Size: 1.819 TB [0xe8e088b0 Sectors]
Non Coerced Size: 1.818 TB [0xe8d088b0 Sectors]
Coerced Size: 1.817 TB [0xe8b6d000 Sectors]
Sector Size:  512
Logical Sector Size:  512
Physical Sector Size:  512
Firmware state: Online, Spun Up
Commissioned Spare : No
Emergency Spare : No
Device Firmware Level: LKB9
Shield Counter: 0
Successful diagnostics completion on :  N/A
SAS Address(0): 0x5000c500ce7fb829
SAS Address(1): 0x0
Connected Port Number: 4(path0) 
Inquiry Data: LENOVO  ST2000NM003A    LKB9WJC06CK0LKB9LKB9LKB9
FDE Capable: Not Capable
FDE Enable: Disable
Secured: Unsecured
Locked: Unlocked
Needs EKM Attention: No
Foreign State: None 
Device Speed: 12.0Gb/s 
Link Speed: 12.0Gb/s 
Media Type: Hard Disk Device
Drive:  Not Certified
Drive Temperature :31C (87.80 F)
PI Eligibility:  No 
Drive is formatted for PI information:  No
PI: No PI
Port-0 :
Port status: Active
Port's Linkspeed: 12.0Gb/s 
Port-1 :
Port status: Active
Port's Linkspeed: 12.0Gb/s 
Drive has flagged a S.M.A.R.T alert : Yes  # <--- Faulty!

Então, olhando para o resultado SMART da unidade, o que eu obtenho:

smartctl -a -d megaraid,10  /dev/sda

smartctl 7.2 2020-12-30 r5155 [x86_64-linux-5.4.157-1-pve] (local build)
Copyright (C) 2002-20, Bruce Allen, Christian Franke, www.smartmontools.org

=== START OF INFORMATION SECTION ===
Vendor:               LENOVO
Product:              ST2000NM003A
Revision:             LKB9
Compliance:           SPC-5
User Capacity:        2.000.398.934.016 bytes [2,00 TB]
Logical block size:   512 bytes
LU is fully provisioned
Rotation Rate:        7200 rpm
Form Factor:          3.5 inches
Logical Unit id:      0x5000c500ce7fb82b
Serial number:        WJC06CK00000E024CJ6U
Device type:          disk
Transport protocol:   SAS (SPL-3)
Local Time is:        Mon Mar 24 11:01:20 2025 CET
SMART support is:     Available - device has SMART capability.
SMART support is:     Enabled
Temperature Warning:  Enabled

=== START OF READ SMART DATA SECTION ===
SMART Health Status: DATA CHANNEL IMPENDING FAILURE GENERAL HARD DRIVE FAILURE [asc=5d, ascq=30]

Grown defects during certification <not available>
Total blocks reassigned during format <not available>
Total new blocks reassigned = 29
Power on minutes since format <not available>
Current Drive Temperature:     32 C
Drive Trip Temperature:        65 C

Accumulated power on time, hours:minutes 39425:21
Manufactured in week 02 of year 2020
Specified cycle count over device lifetime:  50000
Accumulated start-stop cycles:  70
Specified load-unload count over device lifetime:  600000
Accumulated load-unload cycles:  2299
Elements in grown defect list: 29

Error counter log:
           Errors Corrected by           Total   Correction     Gigabytes    Total
               ECC          rereads/    errors   algorithm      processed    uncorrected
           fast | delayed   rewrites  corrected  invocations   [10^9 bytes]  errors
read:          0     1699         0      1699       2335     504611,864         386
write:         0        0         0         0          0      73712,791           0
verify:        0     1809         0      1809       2122     471546,642         237

Non-medium error count:       11

SMART Self-test log
Num  Test              Status                 segment  LifeTime  LBA_first_err [SK ASC ASQ]
     Description                              number   (hours)
# 1  Background long   Completed                   -       7                 - [-   -    -]
# 2  Background long   Aborted (by user command)   -       4                 - [-   -    -]
# 3  Background short  Completed                   -       4                 - [-   -    -]
# 4  Background long   Aborted (by user command)   -       4                 - [-   -    -]

Long (extended) Self-test duration: 13740 seconds [229,0 minutes]

Mais ou menos confirmando que algo no drive não está ok. Uma verificação nos outros discos ( smartctl -a -d megaraid,8 /dev/sdae smartctl -a -d megaraid,9 /dev/sda) relata boas leituras:

[... omissis ...]
=== START OF READ SMART DATA SECTION ===
SMART Health Status: OK
[... omissis ...]

O controlador ainda não colocou o disco offline, conforme confirmado por StorCli64:

# ./storcli64 /cALL show all

[... omissis ...]

Drive Groups = 2

TOPOLOGY :
========

-----------------------------------------------------------------------------
DG Arr Row EID:Slot DID Type  State BT       Size PDC  PI SED DS3  FSpace TR 
-----------------------------------------------------------------------------
 0 -   -   -        -   RAID1 Optl  N  446.102 GB dflt N  N   dflt N      N  
 0 0   -   -        -   RAID1 Optl  N  446.102 GB dflt N  N   dflt N      N  
 0 0   0   252:0    11  DRIVE Onln  N  446.102 GB dflt N  N   dflt -      N  
 0 0   1   252:1    12  DRIVE Onln  N  446.102 GB dflt N  N   dflt -      N  
 1 -   -   -        -   RAID5 Optl  N    3.636 TB dsbl N  N   dflt N      N  
 1 0   -   -        -   RAID5 Optl  N    3.636 TB dsbl N  N   dflt N      N  
 1 0   0   252:2    8   DRIVE Onln  N    1.818 TB dsbl N  N   dflt -      N  
 1 0   1   252:3    9   DRIVE Onln  N    1.818 TB dsbl N  N   dflt -      N  
 1 0   2   252:4    10  DRIVE Onln  N    1.818 TB dsbl N  N   dflt -      N   # <-- Used later for a storcli command
-----------------------------------------------------------------------------

[... omissis ...]

Physical Drives = 5

PD LIST :
=======

-----------------------------------------------------------------------------------------------------
EID:Slt DID State DG       Size Intf Med SED PI SeSz Model                                   Sp Type 
-----------------------------------------------------------------------------------------------------
252:0    11 Onln   0 446.102 GB SATA SSD N   N  512B MTFDDAK480TDS-1AW1ZA 02JG538D7A44703LEN U  -    
252:1    12 Onln   0 446.102 GB SATA SSD N   N  512B MTFDDAK480TDS-1AW1ZA 02JG538D7A44703LEN U  -    
252:2     8 Onln   1   1.818 TB SAS  HDD N   N  512B ST2000NM003A                            U  -    
252:3     9 Onln   1   1.818 TB SAS  HDD N   N  512B ST2000NM003A                            U  -    
252:4    10 Onln   1   1.818 TB SAS  HDD N   N  512B ST2000NM003A                            U  -     # <--- THIS LINE (State: Onln)
-----------------------------------------------------------------------------------------------------

[... omissis ...]

Encomendei um novo ST2000NM003Adisco (que é um Seagate EXOS 7E8 SAS 12Gbit/s) e estou preparando a atividade para troca de disco. Para a troca, ativei a localização de disco com o comando ./storcli64 /c0/e252/s4 start locate. Agora estou tentando entender qual é o procedimento correto para trocar o disco com defeito. Até onde eu posso entender, para um RAID5 realmente degradado , acho que devo:

  1. Coloque o disco original offline (o controlador não o colocou offline)
  2. Marcando o disco com falha como ausente
  3. Marcando o disco com falha como preparado para remoção
  4. Insira o novo disco
  5. Coloque o novo disco online
  6. Iniciar manualmente a construção do array
  7. Verificar status de reconstrução

Meu RAID não é relatado como degradado, mas talvez o mesmo procedimento possa ser aplicado. Em termos de comandos, é isso que eu acho que devo fazer com StorCli64:

  1. ./storcli64 /c0/e252/s4 set offline
  2. ./storcli64 /c0/e252/s4 set missing
  3. ./storcli64 /c0/e252/s4 set spindown
  4. Troque o disco pelo novo no mesmo local
  5. ./storcli64 /c0/e252/s4 set spinupe./storcli64 /c0/e252/s4 set online
  6. ./storcli64 /c0/e252/s4 insert dg=1 array=0 row=2. Isso também deve iniciar o processo de reconstrução automaticamente. Os parâmetros ( dgcomo grupo de dispositivos, array e linha) são retirados da saída StorClisobre a topologia.
  7. ./storcli64 /c0/e252/s4 show rebuild

Isso é mais ou menos o que tentei montar a partir do guia em PDF do meu controlador RAID, olhando para o capítulo que trata de StorCli(Capítulo 6). No entanto, não consigo confirmar se esse é o procedimento correto.

Alguém pode confirmar se esse é um procedimento correto?

hardware-raid
  • 1 respostas
  • 56 Views
Martin Hope
user1246820
Asked: 2025-03-24 18:59:41 +0800 CST

diretórios e arquivo ausentes [PolicyDirectory]\Microsoft\Windows NT\SecEdit\GptTmpl.inf no samba-dc

  • 5

Sou novo nisso e não sei mais onde pesquisar no Google sobre esse problema. Criei um ambiente de laboratório usando VMs e criei meu próprio samba-dc 4.22 autocompilado e limpo de acordo com os manuais no samba-wiki. Tudo parece estar funcionando (ou seja, DNS, gerenciamento de usuários e computadores, compartilhamentos, criação de políticas), exceto para aplicar políticas no cliente Win10 (e Win11 no futuro, Linux ainda não testado).

Eu instalei com sucesso o admx-templates de acordo com o manual no samba-wiki para UNIX e depois para Windows 10 (22H2) no diretório sysvol/Policies.

Mas embora o gpuupdate tenha sido concluído com sucesso, ele não tem efeito. Ao executar o 'Resultant Set of Policy', posso ver a captura de tela fornecida, que de acordo com o ID se refere à captura de tela da Default Domain Policy em erro/aviso

Mas quando eu verifico o sysvol-dir, a estrutura de pastas aparentemente não está completa. Portanto, a mensagem de erro dentro da captura de tela é um pouco enganosa, pois o acesso é "negado" já que as respectivas pastas e GptTmpl.inf não estão presentes para nenhuma das políticas criadas.

tree -d

├── PolicyDefinitions
│ ├── [abreviado - somente idiomas/localidades]
├── {199F4DF0-8969-4E75-861D-F9AB6C73770B}
│ ├── Máquina
│ └── Usuário
├── {31B2F340-016D-11D2-945F-00C04FB984F9}
│ ├── MÁQUINA
│ │ └── Scripts
│ └── USUÁRIO
└── {6AC1786C-016F-11D2-945F-00C04FB984F9}
├── MÁQUINA
└── USUÁRIO\

Não sei se isso tem correlação, mas toda vez que crio ou modifico um GP, o sysvolcheck me dá um erro que não consigo entender, mas o sysvolreset parece consertar isso - pelo menos de certa forma, então não estou mais recebendo erros.

samba-tool ntacl sysvolcheck -U administrator

ERRO(<class 'samba.provision.ProvisioningError'>): exceção não detectada - ProvisioningError: DB ACL no diretório GPO /usr/local/samba/var/locks/sysvol/ad-test.home/Policies/{199F4DF0-8969-4E75-861D-F9AB6C73770B} O:DAG:PAI:PAI(A;OICI;FA;;;DA)(A;OICI;FA;;;EA)(A;OICIIO;FA;;;CO)(A;OICI;FA;;;DA)( A;OICI;FA;;;SY)(A;OICI;0x1200a9;;;AU)(A;OICI;0x1200a9;;;ED)(A;OICI;0x1200a9;;;DU) não corresponde ao valor esperado O:DAG:DAD:PAR(A;OICI;FA;;;DA)(A;OICI;FA;;;EA)(A;OICIIO;FA;;;CO)(A;OICI;FA;;;DA)(A;OICI;FA;;;SY)(A;OICI;0x1200a9;;;AU)(A;OICI;0x1200 a9;;;ED)(A;OICI;0x1200a9;;;DU)(OA;OICI;;edacfd8f-ffb3-11d1-b41d-00 a0c968f939;;AU)(OA;OICI;;edacfd8f-ffb3-11d1-b41d-00a0c968f939;;DU) do
arquivo de objeto GPO "/usr/local/samba/lib64/python3.9/site-packages/samba/netcmd/ init .py", linha 356, em _run
return self.run(*args, **kwargs)
Arquivo "/usr/local/samba/lib64/python3.9/site-packages/samba/netcmd/ntacl.py", linha 484, em run
provision.checksysvolacl(samdb, netlogon, sysvol,
Arquivo "/usr/local/samba/lib64/python3.9/site-packages/samba/provision/ init .py", linha 1885, em checksysvolacl
check_gpos_acl(sysvol, dnsdomain, domainsid, domaindn, samdb, lp,
Arquivo "/usr/local/samba/lib64/python3.9/site-packages/samba/provision/ init .py", linha 1835, em check_gpos_acl
check_dir_acl(policy_path, dsacl2fsacl(acl, domainsid), lp,
Arquivo "/usr/local/samba/lib64/python3.9/site-packages/samba/provision/ init .py", linha 1778, em check_dir_acl
raise ProvisioningError('%s ACL no diretório GPO %s %s não corresponde ao valor esperado %s do objeto GPO' % (acl_type(direct_db_access), path, fsacl_sddl, acl))

active-directory
  • 1 respostas
  • 47 Views
Martin Hope
Clodoaldo
Asked: 2025-03-24 01:24:01 +0800 CST

Firewalld. Como preservar as regras atuais após a reinicialização

  • 5

Existem regras aplicadas ao firewalld por dois serviços, Fail2ban e Wireguard. Sempre que recarrego o serviço de firewall, as regras são perdidas. Como preservá-las entre as recarregamentos?

# firewall-cmd --get-all-rules --direct
ipv4 filter INPUT_direct 0 -p tcp -m multiport --dports ssh -m set --match-set f2b-sshd src -j REJECT --reject-with icmp-port-unreachable
ipv4 filter FORWARD 0 -i wg -o eth0 -j ACCEPT
ipv4 filter FORWARD 1 -i wg -o wg -j ACCEPT
ipv4 nat POSTROUTING 0 -o eth0 -j MASQUERADE

Rocky Linux 9

linux
  • 1 respostas
  • 65 Views
Martin Hope
Rekiel
Asked: 2025-03-22 23:10:50 +0800 CST

403 Proibido com Nginx Proxy Manager

  • 5

Estou encontrando um erro 403 Forbidden ao tentar acessar a página /admin do Vaultwarden, que é protegida pela autenticação básica HTTP via Nginx Proxy Manager.

Resumo do problema:

Ambiente: Raspberry Pi executando Docker com Vaultwarden, Portainer e Nginx Proxy Manager. Problema: Acessar a página /admin após inserir credenciais resulta em um erro 403 Forbidden.

Detalhes e configuração:

Nginx Configuration:

location /admin {
    auth_basic "Restricted Access";
    auth_basic_user_file /data/compose/1/data/.htpasswd;

    proxy_pass http://localhost:8080;
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Forwarded-Proto $scheme;
}

O que eu tentei:

Verifiquei se o arquivo .htpasswd está configurado corretamente e acessível pelo Nginx. Verifiquei as permissões do arquivo para garantir que estejam definidas corretamente. Revisei os logs de erro do Nginx, mas eles não fornecem informações específicas sobre a causa do erro 403. Confirmei que o Vaultwarden funciona bem sem a proteção por senha.

Quaisquer insights ou sugestões serão muito apreciados. Se mais informações forem necessárias, por favor, me avise!

Obrigado!

Tela: Configuração básica do host proxy Configuração SSL Configuração avançada e personalizada do Nginx Erro 403 Proibido

nginx
  • 1 respostas
  • 57 Views
Martin Hope
Franck Dernoncourt
Asked: 2025-03-22 07:11:33 +0800 CST

O limite de taxa (tokens por minuto) de uma instância do Azure OpenAI corresponde aos tokens de entrada, aos tokens de saída ou à soma de ambos?

  • 5

O limite de taxa (tokens por minuto) de uma instância do Azure OpenAI corresponde aos tokens de entrada, aos tokens de saída ou à soma de ambos?

insira a descrição da imagem aqui

azure
  • 1 respostas
  • 90 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