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

Lucio Crusca's questions

Martin Hope
Lucio Crusca
Asked: 2024-01-16 19:56:44 +0800 CST

Cliente que pode gerenciar usuários no Keycloak 23+

  • 5

Preciso autorizar meu aplicativo (denominado "Logic" de agora em diante) para gerenciar usuários de um domínio Keycloak. "Logic" já se autentica nesse domínio com um tipo de acesso de concessão de credenciais de cliente, portanto o código já está funcionando.

Agora, no console de administração do Keycloak, preciso adicionar a função correta ao meu cliente para que "Logic" seja autorizado a chamar qualquer endpoint de API que o Keycloak fornece para gerenciar os usuários do realm.

Na lista de clientes do realm há um cliente chamado realm-management, que o Keycloak fornece por padrão para cada realm. Esse cliente pode gerenciar todo o domínio, não apenas seus usuários, e possui uma lista de funções de cliente por esse motivo. manage-usersé uma das funções dessa lista e é a função que preciso atribuir ao meu outro cliente (que nomeei logicno Keycloak). Em outras palavras, meu aplicativo "Logic" usa o keycloak client-id logicpara se autenticar e preciso adicionar a manage-usersfunção ao logiccliente.

O problema é que nas minhas logicconfigurações de funções de cliente ( ), essas mesmas funções, listadas em realm-managementcliente, não estão listadas e a lista só tem uma_protectionfunção:

A lista só tem uma_protection

Se eu procurasse "gerenciar usuários" digitando-o na caixa de pesquisa, ele não apareceria. Enquanto isso, se eu clicar nessa função na lista de funções do realm-managementcliente, isso mostra que nenhum usuário tem essa função e me permite adicionar a função a users , mas não a clients , mesmo que essa função esteja realmente listada em um client ( realm-management) .

Criar uma nova função em meu logiccliente, com o mesmo nome de manage-users, é possível, mas não tenho certeza se esse é o caminho a seguir. Quero dizer, por que devo duplicar uma função existente? Cheira a errado.

Você pode me dizer a maneira correta de adicionar a manage-usersfunção a um cliente no Keycloak 23?

keycloak
  • 1 respostas
  • 237 Views
Martin Hope
Lucio Crusca
Asked: 2022-01-13 12:37:38 +0800 CST

Qual é a ordem normal das mensagens no dmesg quando um disco rígido USB está falhando?

  • 0

Eu tenho um disco rígido USB conectado a um servidor Debian GNU/Linux. Estou tentando formatá-lo (NTFS), com este comando:

# mkntfs -v /dev/sdd1

que leva algumas horas, porque verifica o disco também. Durante a verificação, dmesg -Tmostra o seguinte:

[Wed Jan 12 15:22:53 2022] sd 9:0:0:0: [sdd] Attached SCSI disk
[Wed Jan 12 18:03:26 2022] usb 1-4: USB disconnect, device number 5
[Wed Jan 12 18:03:26 2022] blk_update_request: I/O error, dev sdd, sector 621745808 op 0x1:(WRITE) flags 0x104000 phys_seg 240 prio class 0
[Wed Jan 12 18:03:26 2022] Buffer I/O error on dev sdd1, logical block 621743760, lost async page write
[Wed Jan 12 18:03:26 2022] Buffer I/O error on dev sdd1, logical block 621743761, lost async page write
   (...and so on for a few lines, then)
[Wed Jan 12 18:03:26 2022] blk_update_request: I/O error, dev sdd, sector 621746048 op 0x1:(WRITE) flags 0x104000 phys_seg 240 prio class 0
[Wed Jan 12 18:03:26 2022] blk_update_request: I/O error, dev sdd, sector 621746288 op 0x1:(WRITE) flags 0x100000 phys_seg 8 prio class 0
[Wed Jan 12 18:03:26 2022] blk_update_request: I/O error, dev sdd, sector 621746296 op 0x1:(WRITE) flags 0x800 phys_seg 16 prio class 0
   (...and so on for a few lines, then)
[Wed Jan 12 18:03:31 2022] buffer_io_error: 9015384 callbacks suppressed
   (...other errors...)

Olhando para a grande quantidade de mensagens de erro, eu diria que o HDD está quase morto, mas anexá-lo a um PC com Windows parece funcionar. Além disso, o primeiro erro ( usb 1-4: USB disconnect, device number 5) que vem dmesgantes dos outros erros, me faz suspeitar que o problema não é o HDD em si, mas outra coisa que faz com que o HDD se desconecte em primeiro lugar, e os erros subsequentes podem ser a consequência óbvia da desconexão .

No entanto, não sou muito experiente em dmesgsaída, então é muito possível que eu esteja lendo errado.

EDIT: conforme solicitado pelo NiKiZe, aqui está a saída de smartctl -a /dev/sdd:

# smartctl -a /dev/sdd
smartctl 6.6 2017-11-05 r4594 [x86_64-linux-5.10.0-3-amd64] (local build)
Copyright (C) 2002-17, Bruce Allen, Christian Franke, www.smartmontools.org

=== START OF INFORMATION SECTION ===
Model Family:     Western Digital Blue Mobile
Device Model:     WDC WD10SPCX-00KHST0
Serial Number:    WD-WXF1A95F0J3X
LU WWN Device Id: 5 0014ee 65b7e0332
Firmware Version: 01.01A01
User Capacity:    1.000.204.886.016 bytes [1,00 TB]
Sector Sizes:     512 bytes logical, 4096 bytes physical
Rotation Rate:    5400 rpm
Device is:        In smartctl database [for details use: -P show]
ATA Version is:   ACS-2 (minor revision not indicated)
SATA Version is:  SATA 3.0, 6.0 Gb/s (current: 1.5 Gb/s)
Local Time is:    Thu Jan 13 11:04:19 2022 CET
SMART support is: Available - device has SMART capability.
SMART support is: Enabled

=== START OF READ SMART DATA SECTION ===
SMART Status not supported: Incomplete response, ATA output registers missing
SMART overall-health self-assessment test result: PASSED
Warning: This result is based on an Attribute check.

General SMART Values:
Offline data collection status:  (0x00) Offline data collection activity
                    was never started.
                    Auto Offline Data Collection: Disabled.
Self-test execution status:      (   0) The previous self-test routine completed
                    without error or no self-test has ever 
                    been run.
Total time to complete Offline 
data collection:        (16080) seconds.
Offline data collection
capabilities:            (0x7b) SMART execute Offline immediate.
                    Auto Offline data collection on/off support.
                    Suspend Offline collection upon new
                    command.
                    Offline surface scan supported.
                    Self-test supported.
                    Conveyance Self-test supported.
                    Selective Self-test supported.
SMART capabilities:            (0x0003) Saves SMART data before entering
                    power-saving mode.
                    Supports SMART auto save timer.
Error logging capability:        (0x01) Error logging supported.
                    General Purpose Logging supported.
Short self-test routine 
recommended polling time:    (   2) minutes.
Extended self-test routine
recommended polling time:    ( 184) minutes.
Conveyance self-test routine
recommended polling time:    (   5) minutes.
SCT capabilities:          (0x7035) SCT Status supported.
                    SCT Feature Control supported.
                    SCT Data Table supported.

SMART Attributes Data Structure revision number: 16
Vendor Specific SMART Attributes with Thresholds:
ID# ATTRIBUTE_NAME          FLAG     VALUE WORST THRESH TYPE      UPDATED  WHEN_FAILED RAW_VALUE
  1 Raw_Read_Error_Rate     0x002f   200   200   051    Pre-fail  Always       -       0
  3 Spin_Up_Time            0x0027   190   184   021    Pre-fail  Always       -       1500
  4 Start_Stop_Count        0x0032   081   081   000    Old_age   Always       -       19048
  5 Reallocated_Sector_Ct   0x0033   200   200   140    Pre-fail  Always       -       0
  7 Seek_Error_Rate         0x002e   200   200   000    Old_age   Always       -       0
  9 Power_On_Hours          0x0032   073   073   000    Old_age   Always       -       20415
 10 Spin_Retry_Count        0x0032   100   100   000    Old_age   Always       -       0
 11 Calibration_Retry_Count 0x0032   100   100   000    Old_age   Always       -       0
 12 Power_Cycle_Count       0x0032   100   100   000    Old_age   Always       -       188
192 Power-Off_Retract_Count 0x0032   200   200   000    Old_age   Always       -       43
193 Load_Cycle_Count        0x0032   187   187   000    Old_age   Always       -       41054
194 Temperature_Celsius     0x0022   119   095   000    Old_age   Always       -       28
196 Reallocated_Event_Count 0x0032   200   200   000    Old_age   Always       -       0
197 Current_Pending_Sector  0x0032   200   200   000    Old_age   Always       -       0
198 Offline_Uncorrectable   0x0030   100   253   000    Old_age   Offline      -       0
199 UDMA_CRC_Error_Count    0x0032   200   200   000    Old_age   Always       -       0
200 Multi_Zone_Error_Rate   0x0008   100   253   000    Old_age   Offline      -       0

SMART Error Log Version: 1
No Errors Logged

SMART Self-test log structure revision number 1
No self-tests have been logged.  [To run self-tests, use: smartctl -t]

SMART Selective self-test log data structure revision number 1
 SPAN  MIN_LBA  MAX_LBA  CURRENT_TEST_STATUS
    1        0        0  Not_testing
    2        0        0  Not_testing
    3        0        0  Not_testing
    4        0        0  Not_testing
    5        0        0  Not_testing
Selective self-test flags (0x0):
  After scanning selected spans, do NOT read-scan remainder of disk.
If Selective self-test is pending on power-up, resume after 0 minute delay.

Supondo que este HDD esteja realmente falhando e que essas mensagens de erro dmesgestejam lá para setores defeituosos reais, por que dmesgmostra uma desconexão antes das mensagens de setores defeituosos e não depois?

drive-failure
  • 0 respostas
  • 260 Views
Martin Hope
Lucio Crusca
Asked: 2021-10-30 09:19:31 +0800 CST

mount.ecryptfs_private em .xsession iniciado por nodm/lightdm reclama com "mount: no such file or directory"

  • 0

Estou tentando descriptografar o Privatediretório dentro de um usuário $HOMEautomaticamente na inicialização do sistema. O sistema é um Debian GNU/Linux 10 (na verdade um Raspbian, mas presumo que não seja diferente para este fim) que usa NoDM para iniciar o Xorg.

EDIT 1: Já tentei instalar um Debian 11 limpo com Nodm em uma máquina virtual e enfrento exatamente o mesmo problema descrito aqui abaixo.

O Nodm registra automaticamente o usuário sem privilégios e executa o $HOME/.xsessionscript de inicialização.

Tenho o seguinte script, que está sendo chamado pelo .xsession:

#!/bin/bash -x
# Original by Michael Halcrow, IBM
# Extracted to a stand-alone script by Dustin Kirkland
# Edited on 2021-10-28 by Lucio Crusca

export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
PD="Private"    
WPF="$HOME/.ecryptfs/wrapped-passphrase"
MPSF="$HOME/.ecryptfs/$PD.sig"

if /sbin/mount.ecryptfs_private ; then
    exit 0
fi

if [ -f "$WPF" -a -f "$MPSF" ]; then
        if [ $(wc -l < "$MPSF") = "1" ]; then
            if printf "%s\0" "$LP" | ecryptfs-unwrap-passphrase "$WPF" - | ecryptfs-add-passphrase -; then
                echo Ok
            else
                echo incorrect LP
                exit 1
            fi
        else
            if printf "%s\0" "$LP" | ecryptfs-insert-wrapped-passphrase-into-keyring "$WPF" - ; then
                echo Ok
            else
                echo incorrect LP
                exit 1
            fi
        fi
    /sbin/mount.ecryptfs_private
else
    echo Setup error
    exit 1
fi
exit 0

É uma versão simplificada do /usr/bin/ecryptfs-mount-private. Ele executa apenas os mesmos comandos, mas espera que a variável de ambiente LP contenha a senha em vez de pedir a senha interativamente.

Salvei este script como $HOME/el-mount.sh. Quando meu sistema inicializa e o NoDM é iniciado, ele executa .xsession que por sua vez chama meu script, redirecionando stdoute stderrpara um arquivo de log para depuração. A coisa não funciona, na medida em que produz isso:

...
+ /sbin/mount.ecryptfs_private
mount: No such file or directory

No entanto, se eu me conectar ao sistema via sshe executar o mesmo el-mount.shscript, logado como o mesmo usuário configurado no NoDM, o script funciona perfeitamente. Apenas no caso de você se perguntar, a variável LP está definida corretamente em ambos os casos (já verificada no arquivo de log).

Eu já tentei mudar de NoDM para lightdm-autologin-greeter, mas obtive o mesmo resultado.

Como faço para mount.ecryptfs_privatetrabalhar quando chamado durante o login automático?

debian ecryptfs
  • 1 respostas
  • 138 Views
Martin Hope
Lucio Crusca
Asked: 2020-10-27 14:43:41 +0800 CST

Wireguard não concluindo o handshake

  • 8

Eu tenho dois sistemas Debian GNU/Linux (bullseye/sid), ambos rodando wireguard na porta 23456, ambos atrás do NAT. Ambos executam uma versão do kernel > 5.6 (mainlined wireguard).

O sistema A é o servidor e atualiza dinamicamente um "registro A" dedicado no servidor de nomes autoritativo para seu domínio da Internet, com o endereço IP público correto com o qual o roteador A voltado para a Internet (firewall ZyWALL USG 100) está atribuído. Ele faz isso uma vez a cada minuto, mas o endereço IP público realmente muda apenas na reinicialização do roteador/firewall, o que basicamente nunca acontece.

O sistema B está atrás do roteador VDSL B e atua como cliente wireguard, apontando para o "registro A" atualizado dinamicamente e a porta 33456. O roteador B é um roteador VDSL de nível de consumidor e permite tudo na direção de saída, apenas responde de entrada.

O roteador/firewall A (ZyWALL USG 100) está configurado para permitir pacotes UDP na porta 23456 através dele e os encaminha para o servidor A. Aqui está a tela de configuração relevante:

Configuração ZyWALL USG 100 wireguard-behind-NAT

Aqui está o arquivo de configuração do servidor A wireguard (as chaves neste trecho, apesar de válidas, não são as reais):

[Interface]
Address = 10.31.33.100/24, fc00:31:33::1/64
ListenPort = 23456
PrivateKey = iJE/5Qy4uO55uUQg8nnDKQ/dFT1MEq+tDfFXrGNj3GY=
# PreUp = iptables -t nat -A POSTROUTING -s 10.31.33.0/24  -o enp1s0 -j MASQUERADE; ip6tables -t nat -A POSTROUTING -s fc00:31:33::/64 -o enp1s0 -j MASQUERADE
# PostDown = iptables -t nat -D POSTROUTING -s 10.31.33.0/24  -o enp1s0 -j MASQUERADE; ip6tables -t nat -D POSTROUTING -s fc00:31:33::/64 -o enp1s0 -j MASQUERADE

# Simon
[Peer]
PublicKey = QnkTJ+Qd9G5EybA2lAx2rPNRkxiQl1W6hHeEFWgJ0zc=
AllowedIPs = 10.31.33.211/32, fc00:31:33::3/128

E aqui está a configuração do wireguard do cliente B (novamente, as chaves e o domínio não são os reais):

[Interface]
PrivateKey = YA9cRlF4DgfUojqz6pK89poB71UFoHPM6pdMQabWf1I=
Address = 10.31.33.211/32

[Peer]
PublicKey = p62kU3HoXLJACI4G+9jg0PyTeKAOFIIcY5eeNy31cVs=
AllowedIPs = 10.31.33.0/24, 172.31.33.0/24
Endpoint = wgsrv.example.com:33456
PersistentKeepalive = 25

Aqui está um diagrama sujo que descreve a situação:

Client B -> LAN B -> VDSL Router B (NAT) -> the internet -> ZyWALL (NAT) -> LAN A -> Server A

Iniciar o wireguard em ambos os sistemas não estabelece a conexão VPN. Ativando mensagens de depuração no cliente e adicionando uma regra de LOG no iptables, que registra OUTPUTos pacotes, recebo muitos destes:

[414414.454367] IN= OUT=wlp4s0 SRC=10.150.44.32 DST=1.2.3.4 LEN=176 TOS=0x08 PREC=0x80 TTL=64 ID=2797 PROTO=UDP SPT=36883 DPT=33456 LEN=156 
[414419.821744] wireguard: wg0-simon: Handshake for peer 3 (1.2.3.4:33456) did not complete after 5 seconds, retrying (try 2)
[414419.821786] wireguard: wg0-simon: Sending handshake initiation to peer 3 (1.2.3.4:33456)

Adicionei uma regra LOG iptables ao servidor, para diagnosticar problemas de configuração do roteador.

root@wgserver ~ # iptables -t nat -I INPUT 1 -p udp --dport 23456 -j LOG

Ele registra os pacotes wireguard recebidos do cliente (mas não posso dizer se eles são de alguma forma inválidos ou incompletos):

[ 1412.380826] IN=enp1s0 OUT= MAC=6c:62:6d:a6:5a:8e:d4:60:e3:e0:23:30:08:00 SRC=37.161.119.20 DST=10.150.44.188 LEN=176 TOS=0x08 PREC=0x00 TTL=48 ID=60479 PROTO=UDP SPT=8567 DPT=23456 LEN=156 
[ 1417.509702] IN=enp1s0 OUT= MAC=6c:62:6d:a6:5a:8e:d4:60:e3:e0:23:30:08:00 SRC=37.161.119.20 DST=10.150.44.188 LEN=176 TOS=0x08 PREC=0x00 TTL=48 ID=61002 PROTO=UDP SPT=8567 DPT=23456 LEN=156 

então estou inclinado a assumir que o roteador A (ZyWALL USG 100) foi configurado corretamente para permitir que os pacotes entrem na rede local do servidor. Para confirmar essa suposição, tentei até substituir o ZyWALL por outro roteador de nível de consumidor e mover o servidor por uma conexão de internet diferente, mas o problema ainda está lá, então tenho certeza que o problema não é o firewall, nem seu específico conexão de internet.

Aqui está a configuração da rede do servidor, caso seja importante:

auto lo
iface lo inet loopback

auto enp1s0
iface enp1s0 inet static
    address 10.150.44.188/24
    gateway 10.150.44.1

Além disso, outros túneis VPN wireguard funcionam corretamente usando o mesmo cliente, mesmo roteador VDSL (lado do cliente), mesma conexão com a Internet, configuração de servidor semelhante (chaves e domínios obviamente diferentes), configuração de firewall semelhante (lado do servidor, diferentes modelo de firewall).

firewall nat wireguard zyxel
  • 2 respostas
  • 48582 Views
Martin Hope
Lucio Crusca
Asked: 2020-07-22 03:05:30 +0800 CST

clonagem de disco NTFS

  • 0

Eu preciso clonar um disco de 2 TB com falha que contém uma partição NTFS, usando Debian GNU/Linux. O disco tem vários setores defeituosos não realocáveis, então eu sei que parte dos dados já está perdido; porém preciso clonar o disco para tentar recuperar o resto usando testdisk.

O comando que emiti para cloná-lo é:

dd if=/dev/sdc of=/dev/md2 bs=512 conv=noerror status=progress

e levou cerca de 2 dias para ser concluído, durante os quais encontrou setores defeituosos em cerca de 3 GB, 66 GB e 88 GB. O disco com falha é bastante antigo e não é o formato avançado, então eu sei que seus setores são de 512 bytes cada, com certeza.

O problema é que tentar testdisk /dev/sdclê o diretório (mas não consegue recuperar os arquivos, por causa de setores defeituosos), enquanto o tryng testdisk /dev/md2nem lista o conteúdo do diretório. O disco contém apenas a partição NTFS, que abrange todo o espaço disponível. Por que o clone não é igual ao original, pelo menos nos setores que não estão danificados? Estou clonando de uma maneira ruim e devo cloná-lo de outra maneira, por exemplo, comando ou opções diferentes?

linux clone ntfs forensics
  • 1 respostas
  • 256 Views
Martin Hope
Lucio Crusca
Asked: 2019-03-15 11:01:40 +0800 CST

WoL quebrado com kernel vanilla no Debian

  • 1

Estou no Debian Buster/Sid, mas eu mesmo gosto de compilar novos kernels vanilla, apenas para experimentá-los. No entanto, enfrento um problema recorrente: se eu usar um kernel empacotado Debian, Wake On Lan funciona corretamente e eu posso acordar meu pc enviando o pacote mágico para ele. Se eu usar um kernel de baunilha eu compilei, não.

Segue o procedimento que utilizo:

$ wget 'https://cdn.kernel.org/pub/linux/kernel/v5.x/linux-5.0.2.tar.xz'
$ tar xJf linux-5.0.2.tar.xz 
$ cd linux-5.0.2/
linux-5.0.2 $ cp /boot/config-4.19.0-2-amd64 .config
linux-5.0.2 $ make oldconfig

[Perguntas KCONFIG omitidas] Eu eventualmente adiciono algo, mas nunca removo nada

linux-5.0.2 $ CONCURRENCY_LEVEL=20 fakeroot make-kpkg --initrd binary-arch
[...]
linux-5.0.2 $ cd..
$ su -
# dpkg -i linux-image-*.deb linux-headers-*.deb
# reboot

[... o novo kernel inicializa...]

# init 0

Agora tento enviar o pacote WoL mágico de outro dispositivo em rede, mas meu PC não inicia. Se eu inicializá-lo com um kernel empacotado Debian (4.19.0-2 que corresponde ao upstream 4.19.16) e depois desligá-lo, o pacote WoL funcionará conforme o esperado e meu PC será inicializado.

Aqui está a saída de lsmod, porque me pediram:

$ lsmod 
Module                  Size  Used by
nft_chain_route_ipv4    16384  1
xt_CHECKSUM            16384  1
nft_chain_nat_ipv4     16384  4
ipt_MASQUERADE         20480  1
xt_conntrack           16384  1
ipt_REJECT             16384  1
nf_reject_ipv4         16384  1 ipt_REJECT
nft_counter            16384  34
xt_tcpudp              20480  2
nft_compat             20480  27
devlink                73728  0
nf_tables             147456  188 nft_chain_route_ipv4,nft_compat,nft_chain_nat_ipv4,nft_counter
nfnetlink              16384  2 nft_compat,nf_tables
tun                    57344  5
bridge                188416  0
stp                    16384  1 bridge
llc                    16384  2 bridge,stp
binfmt_misc            24576  1
nls_ascii              16384  1
nls_cp437              20480  1
vfat                   24576  1
fat                    81920  1 vfat
edac_mce_amd           28672  0
kvm_amd               102400  0
ccp                    94208  1 kvm_amd
rng_core               16384  1 ccp
snd_hda_codec_realtek   122880  1
snd_hda_codec_hdmi     61440  1
kvm                   733184  1 kvm_amd
snd_hda_codec_generic    90112  1 snd_hda_codec_realtek
ledtrig_audio          16384  2 snd_hda_codec_generic,snd_hda_codec_realtek
irqbypass              16384  1 kvm
crct10dif_pclmul       16384  1
snd_hda_intel          45056  6
amdgpu               3928064  17
crc32_pclmul           16384  0
ghash_clmulni_intel    16384  0
snd_hda_codec         155648  4 snd_hda_codec_generic,snd_hda_codec_hdmi,snd_hda_intel,snd_hda_codec_realtek
joydev                 28672  0
aesni_intel           372736  0
aes_x86_64             20480  1 aesni_intel
snd_hda_core           98304  5 snd_hda_codec_generic,snd_hda_codec_hdmi,snd_hda_intel,snd_hda_codec,snd_hda_codec_realtek
crypto_simd            16384  1 aesni_intel
chash                  16384  1 amdgpu
cryptd                 24576  3 crypto_simd,ghash_clmulni_intel,aesni_intel
eeepc_wmi              16384  0
asus_wmi               32768  1 eeepc_wmi
snd_hwdep              20480  1 snd_hda_codec
sparse_keymap          16384  1 asus_wmi
snd_pcm               118784  4 snd_hda_codec_hdmi,snd_hda_intel,snd_hda_codec,snd_hda_core
rfkill                 32768  2 asus_wmi
gpu_sched              36864  1 amdgpu
glue_helper            16384  1 aesni_intel
ttm                   114688  1 amdgpu
snd_timer              45056  1 snd_pcm
drm_kms_helper        204800  1 amdgpu
video                  49152  1 asus_wmi
pcc_cpufreq            20480  0
pcspkr                 16384  0
snd                    98304  20 snd_hda_codec_generic,snd_hda_codec_hdmi,snd_hwdep,snd_hda_intel,snd_hda_codec,snd_hda_codec_realtek,snd_timer,snd_pcm
drm                   487424  12 gpu_sched,drm_kms_helper,amdgpu,ttm
evdev                  24576  31
sg                     36864  0
soundcore              16384  1 snd
i2c_algo_bit           16384  1 amdgpu
sp5100_tco             20480  0
efi_pstore             16384  0
k10temp                16384  0
efivars                20480  1 efi_pstore
fam15h_power           16384  0
button                 16384  0
acpi_cpufreq           28672  0
wmi_bmof               16384  0
mxm_wmi                16384  0
iptable_nat            16384  0
nf_nat_ipv4            16384  3 ipt_MASQUERADE,nft_chain_nat_ipv4,iptable_nat
nf_nat                 36864  1 nf_nat_ipv4
nf_conntrack          159744  4 xt_conntrack,nf_nat,ipt_MASQUERADE,nf_nat_ipv4
nf_defrag_ipv6         24576  1 nf_conntrack
nf_defrag_ipv4         16384  1 nf_conntrack
ecryptfs              122880  0
parport_pc             32768  0
ppdev                  24576  0
nfsd                  425984  13
lp                     20480  0
auth_rpcgss            69632  1 nfsd
nfs_acl                16384  1 nfsd
lockd                 118784  1 nfsd
parport                61440  3 parport_pc,lp,ppdev
grace                  16384  2 nfsd,lockd
sunrpc                421888  18 nfsd,auth_rpcgss,lockd,nfs_acl
efivarfs               16384  1
ip_tables              28672  1 iptable_nat
x_tables               49152  7 xt_conntrack,nft_compat,xt_tcpudp,ipt_MASQUERADE,xt_CHECKSUM,ipt_REJECT,ip_tables
autofs4                49152  2
ext4                  733184  2
crc16                  16384  1 ext4
mbcache                16384  1 ext4
jbd2                  126976  1 ext4
fscrypto               36864  1 ext4
dm_mod                151552  3
hid_generic            16384  0
usbhid                 61440  0
hid                   147456  2 usbhid,hid_generic
raid10                 65536  1
sd_mod                 53248  13
raid456               176128  0
async_raid6_recov      24576  1 raid456
async_memcpy           20480  2 raid456,async_raid6_recov
async_pq               20480  2 raid456,async_raid6_recov
async_xor              20480  3 async_pq,raid456,async_raid6_recov
async_tx               20480  5 async_pq,async_memcpy,async_xor,raid456,async_raid6_recov
xor                    24576  1 async_xor
raid6_pq              122880  3 async_pq,raid456,async_raid6_recov
libcrc32c              16384  3 nf_conntrack,nf_nat,raid456
crc32c_generic         16384  0
raid1                  49152  1
raid0                  24576  1
multipath              20480  0
linear                 20480  0
md_mod                167936  8 raid1,raid10,raid0,linear,raid456,multipath
ohci_pci               20480  0
ahci                   40960  9
libahci                40960  1 ahci
xhci_pci               20480  0
ohci_hcd               57344  1 ohci_pci
ehci_pci               20480  0
libata                278528  2 libahci,ahci
crc32c_intel           24576  3
r8169                  90112  0
xhci_hcd              258048  1 xhci_pci
realtek                20480  1
ehci_hcd               94208  1 ehci_pci
libphy                 86016  2 r8169,realtek
i2c_piix4              28672  0
usbcore               286720  7 xhci_hcd,ohci_hcd,ehci_pci,usbhid,ehci_hcd,xhci_pci,ohci_pci
scsi_mod              241664  3 sd_mod,libata,sg
wmi                    36864  3 asus_wmi,wmi_bmof,mxm_wmi

E aqui estão as configurações dos módulos em /etc/modprobe.d/:

blacklist microcode
blacklist radeon
options md_mod start_ro=1
options cirrus modeset=1
options mgag200 modeset=1

o que estou perdendo?

debian
  • 1 respostas
  • 692 Views
Martin Hope
Lucio Crusca
Asked: 2018-07-21 14:06:27 +0800 CST

diretórios home do pam_mount sobre cifs, sssd e Bionic Beaver

  • 2

Configurei um cliente Ubuntu Bionic Beaver para autenticar em um Samba ADS (Zentyal), usando sssd . Este guia foi mais ou menos o suficiente para chegar lá. EDIT: veja minha resposta para obter uma citação do significado desse " mais ou menos ". EDIT2: o guia mencionado foi (re?) movido, mas não funcionou no Ubuntu 20.04 e mais recente de qualquer maneira.

Em seguida, configurei o pam_mount para que os diretórios pessoais sejam mantidos no servidor e meu cliente os monte para fazer login de usuários. Parece funcionar, com alguns problemas que aparecem apenas ao fazer login com uma conta do AD. Ao fazer login com uma conta local, tudo funciona como esperado (mas nenhum pam_mount está envolvido nesse caso).

As questões são:

  1. o layout do teclado é inglês mesmo que o sistema seja todo italiano e o método de entrada esteja configurado como italiano.
  2. Não consigo adicionar lançadores ao Ubuntu Dock (diz que foi adicionado, mas não aparece)
  3. (que parece ser 1+2) Não consigo adicionar novos idiomas, assim como não consigo adicionar lançadores ao Dock

Aqui está o meu /etc/security/pam_mount.conf.xml:

<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE pam_mount SYSTEM "pam_mount.conf.xml.dtd">
<pam_mount>
    <debug enable="0" />
    <volume user="*" fstype="cifs" server="zentyal" path="%(DOMAIN_USER)" mountpoint="/home/%(DOMAIN_USER)" options="sec=ntlmssp,nodev,nosuid,mfsymlinks,nobrl" />
    <mntoptions allow="nosuid,nodev,loop,encryption,fsck,nonempty,allow_root,allow_other" />
    <mntoptions require="nosuid,nodev" />
    <logout wait="0" hup="no" term="no" kill="no" />
    <mkmountpoint enable="1" remove="true" />
</pam_mount>

Alguma pista?

ubuntu
  • 3 respostas
  • 4253 Views
Martin Hope
Lucio Crusca
Asked: 2018-03-12 13:24:57 +0800 CST

Nginx como proxy reverso não está em cache

  • 2

Estou tentando configurar o Nginx como um proxy reverso de cache. O servidor de origem é o Apache e hospeda uma instância do WordPress, se isso for importante.

A funcionalidade de proxy reverso está funcionando conforme o esperado, mas o cache parece não funcionar. Se eu recebo o mesmo recurso estático duas vezes seguidas, recebo x-proxy-cache: MISSduas vezes.

assodigitale.it é o domínio, 138.201.87.123 o endereço IP do servidor de origem e 138.201.87.124 o endereço IP do proxy Nginx.

O servidor de origem parece responder permitindo que o proxy armazene em cache o recurso:

$ curl --connect-to ::138.201.87.123:443 --http2 -I https://assodigitale.it/wp-content/uploads/2018/03/aereo.jpg
HTTP/2 200 
date: Sun, 11 Mar 2018 20:59:39 GMT
server: Apache/2.4.25 (Debian)
content-length: 32989
strict-transport-security: max-age=31536000; includeSubdomains; preload
last-modified: Wed, 07 Mar 2018 09:34:41 GMT
etag: "80dd-566cf44ca2952"
accept-ranges: bytes
vary: Accept-Encoding
cache-control: max-age=1209600, public
x-content-type-options: nosniff
content-type: image/jpeg

A primeira solicitação ao servidor proxy resulta em um MISS, conforme esperado:

$ curl --connect-to ::138.201.87.124:443 --http2 -I https://assodigitale.it/wp-content/uploads/2018/03/aereo.jpg
HTTP/2 200 
server: nginx/1.13.9
date: Sun, 11 Mar 2018 21:04:00 GMT
content-type: image/jpeg
content-length: 32989
strict-transport-security: max-age=31536000; includeSubdomains; preload
last-modified: Wed, 07 Mar 2018 09:34:41 GMT
etag: "80dd-566cf44ca2952"
vary: Accept-Encoding
cache-control: max-age=1209600, public
x-content-type-options: nosniff
x-proxy-cache: MISS
strict-transport-security: max-age=4838400; includeSubDomains; preload
accept-ranges: bytes

A segunda solicitação ao proxy Nginx deve resultar em um HIT, mas resulta em outro MISS:

$ curl --connect-to ::138.201.87.124:443 --http2 -I https://assodigitale.it/wp-content/uploads/2018/03/aereo.jpg
HTTP/2 200 
server: nginx/1.13.9
date: Sun, 11 Mar 2018 21:05:52 GMT
content-type: image/jpeg
content-length: 32989
strict-transport-security: max-age=31536000; includeSubdomains; preload
last-modified: Wed, 07 Mar 2018 09:34:41 GMT
etag: "80dd-566cf44ca2952"
vary: Accept-Encoding
cache-control: max-age=1209600, public
x-content-type-options: nosniff
x-proxy-cache: MISS
strict-transport-security: max-age=4838400; includeSubDomains; preload
accept-ranges: bytes

Aqui está a parte relevante da minha configuração do nginx:

proxy_cache_path /srv/cache/nginx levels=1:2 keys_zone=revproxy:2000m inactive=2880m use_temp_path=off;
proxy_cache_key "$scheme$request_method$host$request_uri";
proxy_cache_methods GET HEAD;
proxy_cache_valid any 1m;
proxy_cache_valid 200 1440m;

server {
    listen 443 ssl http2;
    ssl on;
    server_name assodigitale.it;

    ssl_certificate /etc/letsencrypt/live/assodigitale.it/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/assodigitale.it/privkey.pem;

    ssl_session_timeout 1d;
    ssl_session_cache shared:SSL:50m;
    ssl_session_tickets off;

    ssl_protocols TLSv1.2;
    ssl_ciphers 'ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256';
    ssl_prefer_server_ciphers on;

    location / {
        proxy_cache revproxy;
        add_header X-Proxy-Cache $upstream_cache_status;
        add_header Strict-Transport-Security "max-age=4838400; includeSubDomains; preload";

        proxy_pass  https://138.201.87.123;
        proxy_cache_use_stale updating error timeout http_500 http_502 http_503 http_504;
        proxy_cache_bypass $http_x_forceflushcacheurl;
        proxy_cache_lock on;
        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_hide_header Upgrade;
        proxy_buffering off;
        proxy_connect_timeout       600;
        proxy_send_timeout          600;
        proxy_read_timeout          600;
        send_timeout                600;
        proxy_ignore_headers Set-Cookie;

        http2_push_preload on;
        client_max_body_size 64M;
    }
}

O /srv/cache/nginxdiretório tem 755 permissões e www-dataproprietário, e o Nginx é executado como www-data. Na verdade, o Nginx escreve suas pastas lá, a saber 0 1 2 3 4 5 6 7 8 9 a b c d e f, , mas o espaço total ocupado agora é de 344Kb, para um site bastante grande e que tem muito mais do que tráfego casual.

Tentar os mesmos curlcomandos acima, mas com páginas em vez de imagens, produz exatamente o mesmo resultado, é sempre uma FALTA.

Por que o Nginx está se recusando a armazenar recursos em cache?

nginx
  • 3 respostas
  • 4475 Views
Martin Hope
Lucio Crusca
Asked: 2018-01-27 05:10:24 +0800 CST

SOGo com Zentyal ADDC

  • 0

Acabei de atualizar uma instância do Zentyal de 4.1 para 5.0.1. Após a atualização, o SOGo não permite mais o login dos usuários. Os usuários podem acessar outros serviços do Zentyal, como compartilhamentos e logon de domínio, mas o SOGo recusa as mesmas credenciais.

Eu tentei copiar /etc/sogo/sogo.confda instalação antiga para a nova. Eu também tentei limpar os novos sogoe zentyal-sogopacotes e instalá-los novamente, mas isso levou a uma situação pior (sem conexão Mysql e todo o /etc/sogo/sogo.confcomentário).

No arquivo /var/log/sogo/sogo.log recebo:

Jan 31 09:40:41 sogod [13184]: <0x0x561c14f67ce0[LDAPSource]> <NSException: 0x561c155e19b0> NAME:LDAPException REASON:operation bind failed: Invalid credentials (0x31) INFO:{"error_code" = 49; login = "cn=direzione di agape,cn=users,dc=ufficio,dc=lan"; }
Jan 31 09:40:41 sogod [13184]: SOGoRootPage Login from '192.168.1.253' for user 'direzione' might not have worked - password policy: 65535  grace: -1  expire: -1  bound: 0
Jan 31 09:40:41 sogod [13184]: 192.168.1.253 "POST /SOGo/connect HTTP/1.1" 403 34/64 0.028 - - 0

Aqui está o que acredito ser a parte relevante do meu sogo.conf atual (o que funcionava na versão antiga):

/* LDAP authentication */
  SOGoUserSources = (
      {
          type = ldap;
          id = sambaLogin;
          displayName = "SambaLogin";
          canAuthenticate = YES;
          CNFieldName = cn;
          IDFieldName = cn;
          UIDFieldName = sAMAccountName;
          hostname = "ldap://127.0.0.1";
          baseDN = "DC=ufficio,DC=lan";
          bindDN = "CN=zentyal-mail-barth,CN=Users,DC=ufficio,DC=lan";
          bindPassword = "mWaByi97SfgLAWZQ49GS";
          bindFields = (sAMAccountName, mail);
          filter = "(mail='*')";
          MailFieldNames = (mail, otherMailbox);
      },
      {
          type = ldap;
          id = sambaShared;
          displayName = "Shared Addressbook";
          canAuthenticate = NO;
          isAddressBook = YES;
          CNFieldName = cn;
          IDFieldName = mail;
          UIDFieldName = mail;
          hostname = "ldap://127.0.0.1";
          baseDN = "DC=ufficio,DC=lan";
          bindDN = "CN=zentyal-mail-barth,CN=Users,DC=ufficio,DC=lan";
          bindPassword = "mWaByi97SfgLAWZQ49GS";
          filter = "((NOT isCriticalSystemObject='TRUE') AND     (mail=\'*\') AND (NOT objectClass=contact))";
          MailFieldNames = (mail, otherMailbox);
      },
      {
          type = ldap;
          id = sambaContacts;
          displayName = "Shared Contacts";
          canAuthenticate = NO;
          isAddressBook = YES;
          CNFieldName = cn;
          IDFieldName = mail;
          UIDFieldName = mail;
          hostname = "ldap://127.0.0.1";
          baseDN = "DC=ufficio,DC=lan";
          bindDN = "CN=zentyal-mail-barth,CN=Users,DC=ufficio,DC=lan";
          bindPassword = "mWaByi09SfgLAWZQ49GS";
          filter = "((((objectClass=person) AND (objectClass=contact)     AND ((uidNumber>=2000) OR (mail=\'*\'))) AND (NOT isCriticalSystemObject='TRUE') AND (NOT showInAdvancedViewOnly='TRUE') AND (NOT uid=Guest)) OR (((objectClass=group) AND (gidNumber>=2000)) AND (NOT isCriticalSystemObject='TRUE') AND (NOT showInAdvancedViewOnly='TRUE')))";
          mapping = {
              displayname = ("cn");
          };
          MailFieldNames = (mail, otherMailbox);
      }
  );

  /* Web Interface */
  SOGoPageTitle = "Zentyal Webmail";
  SOGoVacationEnabled = NO;
  SOGoForwardEnabled = YES;
  SOGoSieveScriptsEnabled = YES;

Você pode me ajudar a identificar o problema?

EDIT: Olhando aqui , se entendi o bug report corretamente, parece que preciso editar o meu sogo.confpor causa de uma mudança introduzida no SOGo algum tempo entre a versão 3.0.2 e a versão 3.2.4. Esse pode ser o culpado, porque o Zentyal 4.1 empacota o SOGo 2.3.2, enquanto o Zentyal 5 empacota o SOGo 3.2.10. No entanto, mesmo supondo que seja esse o problema, não entendo como devo editar meu sogo.conf...

EDIT 2: Encontrei este comando que poderia lançar alguma luz, se eu pudesse entender sua saída ... Suponho que mostra o que o SOGo entende lendo o arquivo de configuração, mas não sei o significado da maioria definições:

root@barth:~# sogo-tool dump-defaults all
{
    DAVParserDebugProp = NO;
    "GNUSTEP_LOCAL_ADMIN_APPS" = "/usr/local/lib/GNUstep/Applications";
    "GNUSTEP_LOCAL_ADMIN_TOOLS" = "/usr/local/sbin";
    "GNUSTEP_LOCAL_APPS" = "/usr/local/lib/GNUstep/Applications";
    "GNUSTEP_LOCAL_DOC" = "/usr/local/share/GNUstep/Documentation";
    "GNUSTEP_LOCAL_DOC_INFO" = "/usr/local/share/info";
    "GNUSTEP_LOCAL_DOC_MAN" = "/usr/local/share/man";
    "GNUSTEP_LOCAL_HEADERS" = "/usr/local/include/GNUstep";
    "GNUSTEP_LOCAL_LIBRARIES" = "/usr/local/lib";
    "GNUSTEP_LOCAL_LIBRARY" = "/usr/local/lib/GNUstep";
    "GNUSTEP_LOCAL_ROOT" = "/usr/Local";
    "GNUSTEP_LOCAL_TOOLS" = "/usr/local/bin";
    "GNUSTEP_LOCAL_USERS_DIR" = "/home";
    "GNUSTEP_LOCAL_WEB_APPS" = "/usr/local/lib/GNUstep/WebApplications";
    "GNUSTEP_MAKEFILES" = "/usr/share/GNUstep/Makefiles";
    "GNUSTEP_NETWORK_ADMIN_APPS" = "/usr/local/lib/GNUstep/Applications";
    "GNUSTEP_NETWORK_ADMIN_TOOLS" = "/usr/local/sbin";
    "GNUSTEP_NETWORK_APPS" = "/usr/local/lib/GNUstep/Applications";
    "GNUSTEP_NETWORK_DOC" = "/usr/local/share/GNUstep/Documentation";
    "GNUSTEP_NETWORK_DOC_INFO" = "/usr/local/share/info";
    "GNUSTEP_NETWORK_DOC_MAN" = "/usr/local/share/man";
    "GNUSTEP_NETWORK_HEADERS" = "/usr/local/include/GNUstep";
    "GNUSTEP_NETWORK_LIBRARIES" = "/usr/local/lib";
    "GNUSTEP_NETWORK_LIBRARY" = "/usr/local/lib/GNUstep";
    "GNUSTEP_NETWORK_ROOT" = "/usr/Network";
    "GNUSTEP_NETWORK_TOOLS" = "/usr/local/bin";
    "GNUSTEP_NETWORK_USERS_DIR" = "/home";
    "GNUSTEP_NETWORK_WEB_APPS" = "/usr/lib/GNUstep/WebApplications";
    "GNUSTEP_SYSTEM_ADMIN_APPS" = "/usr/lib/GNUstep/Applications";
    "GNUSTEP_SYSTEM_ADMIN_TOOLS" = "/usr/sbin";
    "GNUSTEP_SYSTEM_APPS" = "/usr/lib/GNUstep/Applications";
    "GNUSTEP_SYSTEM_DOC" = "/usr/share/GNUstep/Documentation";
    "GNUSTEP_SYSTEM_DOC_INFO" = "/usr/share/info";
    "GNUSTEP_SYSTEM_DOC_MAN" = "/usr/share/man";
    "GNUSTEP_SYSTEM_HEADERS" = "/usr/include/GNUstep";
    "GNUSTEP_SYSTEM_LIBRARIES" = "/usr/lib";
    "GNUSTEP_SYSTEM_LIBRARY" = "/usr/lib/GNUstep";
    "GNUSTEP_SYSTEM_ROOT" = "/usr/System";
    "GNUSTEP_SYSTEM_TOOLS" = "/usr/bin";
    "GNUSTEP_SYSTEM_USERS_DIR" = "/home";
    "GNUSTEP_SYSTEM_WEB_APPS" = "/usr/lib/GNUstep/WebApplications";
    "GNUSTEP_USER_CONFIG_FILE" = ".GNUstep.conf";
    "GNUSTEP_USER_DEFAULTS_DIR" = "GNUstep/Defaults";
    "GNUSTEP_USER_DIR" = GNUstep;
    "GNUSTEP_USER_DIR_ADMIN_APPS" = "GNUstep/Applications/Admin";
    "GNUSTEP_USER_DIR_ADMIN_TOOLS" = "GNUstep/Tools/Admin";
    "GNUSTEP_USER_DIR_APPS" = "GNUstep/Applications";
    "GNUSTEP_USER_DIR_DOC" = "GNUstep/Library/Documentation";
    "GNUSTEP_USER_DIR_DOC_INFO" = "GNUstep/Library/Documentation/info";
    "GNUSTEP_USER_DIR_DOC_MAN" = "GNUstep/Library/Documentation/man";
    "GNUSTEP_USER_DIR_HEADERS" = "GNUstep/Library/Headers";
    "GNUSTEP_USER_DIR_LIBRARIES" = "GNUstep/Library/Libraries";
    "GNUSTEP_USER_DIR_LIBRARY" = "GNUstep/Library";
    "GNUSTEP_USER_DIR_TOOLS" = "GNUstep/Tools";
    "GNUSTEP_USER_DIR_WEB_APPS" = "GNUstep/WebApplications";
    GSLocale = "it_CH.UTF-8";
    ImapDebugEnabled = YES;
    LDAPDebugEnabled = YES;
    MySQL4DebugEnabled = YES;
    NGImap4ConnectionGroupIdPrefix = "$";
    NGImap4ConnectionStringSeparator = "/";
    NGImap4DisableIMAP4Pooling = YES;
    NGLogDefaultAppenderClass = NGLogStderrAppender;
    NGLogDefaultLogEventFormatterClass = NGLogEventDetailedFormatter;
    NGLogDefaultLogLevel = INFO;
    "NGObjWeb_doc_" = "NSUserDefaults for NGObjWeb";
    NGUseUTF8AsURLEncoding = YES;
    NSAMPMDesignation = (
  "",
  ""
    );
    NSCurrencySymbol = "Fr.";
    NSDateFormatString = "%A %d %B %Y";
    NSDateTimeOrdering = DMYH;
    NSDecimalDigits = (
  0,
  1,
  2,
  3,
  4,
  5,
  6,
  7,
  8,
  9
    );
    NSDecimalSeparator = ".";
    NSEarlierTimeDesignations = (
  prima,
  passato,
  fa
    );
    NSFormalName = Italiano;
    NSHourNameDesignations = (
  (
      0,
      mezzanotte
  ),
  (
      12,
      mezzogiorno
  ),
  (
      10,
      mattina
  ),
  (
      14,
      pomeriggio
  ),
  (
      19,
      sera
  )
    );
    NSInternationalCurrencyString = "'";
    NSLanguageCode = ITA;
    NSLanguageName = SwitzerlandItalian;
    NSLanguages = (
  SwitzerlandItalian,
  Italian,
  English
    );
    NSLaterTimeDesignations = (
  dopo,
  prossimo
    );
    NSMonthNameArray = (
  gennaio,
  febbraio,
  marzo,
  aprile,
  maggio,
  giugno,
  luglio,
  agosto,
  settembre,
  ottobre,
  novembre,
  dicembre
    );
    NSNegativeCurrencyFormatString = "EUR-9,999.00";
    NSNextDayDesignations = (
  domani
    );
    NSNextNextDayDesignations = (
  "il giorno seguente"
    );
    NSParentContext = Default;
    NSPositiveCurrencyFormatString = "EUR9,999.00";
    NSPriorDayDesignations = (
  ieri
    );
    NSShortDateFormatString = "%d. %m. %y";
    NSShortMonthNameArray = (
  gen,
  feb,
  mar,
  apr,
  mag,
  giu,
  lug,
  ago,
  set,
  ott,
  nov,
  dic
    );
    NSShortTimeDateFormatString = "%d %b %Y %H:%M";
    NSShortWeekDayNameArray = (
  dom,
  lun,
  mar,
  mer,
  gio,
  ven,
  sab
    );
    NSThisDayDesignations = (
  oggi
    );
    NSThousandsSeparator = "'";
    NSTimeDateFormatString = "%a %d %b %Y %T %Z";
    NSTimeFormatString = "%T";
    NSWeekDayNameArray = (
  domenica,
  "luned\U00EC",
  "marted\U00EC",
  "mercoled\U00EC",
  "gioved\U00EC",
  "venerd\U00EC",
  sabato
    );
    NSYearMonthWeekDesignations = (
  anno,
  mese,
  settimana
    );
    OCSFolderInfoURL = "mysql://sogo:[email protected]:3306/sogo/sogo_folder_info";
    OCSSessionsFolderURL = "mysql://sogo:[email protected]:3306/sogo/sogo_sessions_folder";
    PGDebugEnabled = YES;
    SOGoACLsSendEMailNotifications = NO;
    SOGoAddressBookDAVAccessEnabled = YES;
    SOGoAlternateAvatar = none;
    SOGoAnimationMode = normal;
    SOGoAppointmentSendEMailNotifications = YES;
    SOGoCacheCleanupInterval = "300.0";
    SOGoCalendarCategories = (
  Customer,
  Calls,
  Favorites,
  Meeting,
  Ideas,
  Miscellaneous,
  Birthday,
  Anniversary,
  Vacation,
  Travel,
  Projects,
  Suppliers,
  Gifts,
  Clients,
  Issues,
  Business,
  Holidays,
  Personal,
  Status,
  Competition,
  "Follow up",
  "Public Holiday"
    );
    SOGoCalendarCategoriesColors = {
  Anniversary = "#CCCCCC";
  Birthday = "#CCCCCC";
  Business = "#CCCCCC";
  Calls = "#FFCC33";
  Clients = "#CCCCCC";
  Competition = "#CCCCCC";
  Customer = "#CCCCCC";
  Favorites = "#CCCCCC";
  "Follow up" = "#CCCCCC";
  Gifts = "#CCCCCC";
  Holidays = "#CCCCCC";
  Ideas = "#CCCCCC";
  Issues = "#CCCCCC";
  Meeting = "#CCCCCC";
  Miscellaneous = "#CCCCCC";
  Personal = "#CCCCCC";
  Projects = "#CCCCCC";
  "Public Holiday" = "#CCCCCC";
  Status = "#CCCCCC";
  Suppliers = "#CCCCCC";
  Travel = "#CCCCCC";
  Vacation = "#CCCCCC";
    };
    SOGoCalendarDAVAccessEnabled = YES;
    SOGoCalendarDefaultReminder = NONE;
    SOGoCalendarEventsDefaultClassification = PUBLIC;
    SOGoCalendarShouldDisplayWeekend = YES;
    SOGoCalendarTasksDefaultClassification = PUBLIC;
    SOGoDayEndTime = 18;
    SOGoDayStartTime = 8;
    SOGoDebugRequests = YES;
    SOGoDefaultCalendar = selected;
    SOGoDraftsFolderName = Drafts;
    SOGoEnableDomainBasedUID = NO;
    SOGoEncryptionKey = MySOGoEncryptionKey;
    SOGoExternalAvatarsEnabled = YES;
    SOGoFirstDayOfWeek = 0;
    SOGoFirstWeekOfYear = January1;
    SOGoForceExternalLoginWithEmail = YES;
    SOGoForwardEnabled = YES;
    SOGoFreeBusyDefaultInterval = (
  7,
  7
    );
    SOGoGravatarEnabled = NO;
    SOGoIMAPServer = "127.0.0.1:143";
    SOGoJunkFolderName = Junk;
    SOGoLDAPContactInfoAttribute = description;
    SOGoLDAPQueryLimit = 0;
    SOGoLDAPQueryTimeout = 0;
    SOGoLanguage = English;
    SOGoLoginModule = Mail;
    SOGoLongDateFormat = "%A, %B %d, %Y";
    SOGoMailAutoSave = 5;
    SOGoMailComposeFontSize = 0;
    SOGoMailComposeMessageType = html;
    SOGoMailCustomFromEnabled = YES;
    SOGoMailDisplayRemoteInlineImages = never;
    SOGoMailDomain = "ufficio.lan";
    SOGoMailLabelsColors = {
  "$label1" = (
      Important,
      "#FF0000"
  );
  "$label2" = (
      Work,
      "#FF9900"
  );
  "$label3" = (
      Personal,
      "#009900"
  );
  "$label4" = (
      "To Do",
      "#3333FF"
  );
  "$label5" = (
      Later,
      "#993399"
  );
    };
    SOGoMailListViewColumnsOrder = (
  Thread,
  Flagged,
  Attachment,
  Subject,
  From,
  Unread,
  Date,
  Priority,
  Size
    );
    SOGoMailMessageForwarding = inline;
    SOGoMailReplyPlacement = below;
    SOGoMailSignaturePlacement = below;
    SOGoMailSpoolPath = "/var/spool/sogo";
    SOGoMailingMechanism = smtp;
    SOGoMemcachedHost = localhost;
    SOGoPageTitle = "Zentyal Webmail";
    SOGoPasswordChangeEnabled = YES;
    SOGoProfileURL = "mysql://sogo:[email protected]:3306/sogo/sogo_user_profile";
    SOGoRefreshViewCheck = manually;
    SOGoRefreshViewIntervals = (
  1,
  2,
  5,
  10,
  20,
  30,
  60
    );
    SOGoSMTPServer = "127.0.0.1:25";
    SOGoSearchMinimumWordLength = 2;
    SOGoSelectedAddressBook = collected;
    SOGoSentFolderName = Sent;
    SOGoShortDateFormat = "%d-%b-%y";
    SOGoSieveFolderEncoding = "UTF-7";
    SOGoSieveScriptsEnabled = YES;
    SOGoSieveServer = "sieve://127.0.0.1:4190";
    SOGoSubscriptionFolderFormat = "%{FolderName} (%{UserName} <%{Email}>)";
    SOGoSupportedLanguages = (
  Arabic,
  Basque,
  BrazilianPortuguese,
  Catalan,
  ChineseChina,
  ChineseTaiwan,
  Croatian,
  Czech,
  Danish,
  Dutch,
  English,
  Finnish,
  French,
  German,
  Hebrew,
  Hungarian,
  Icelandic,
  Italian,
  Latvian,
  Lithuanian,
  Macedonian,
  NorwegianBokmal,
  NorwegianNynorsk,
  Polish,
  Portuguese,
  Russian,
  Serbian,
  Slovak,
  Slovenian,
  SpanishArgentina,
  SpanishSpain,
  Swedish,
  TurkishTurkey,
  Ukrainian,
  Welsh
    );
    SOGoTimeFormat = "%H:%M";
    SOGoTimeZone = "Europe/Rome";
    SOGoTrashFolderName = Trash;
    SOGoUIxDebugEnabled = YES;
    SOGoUserSources = (
  {
      CNFieldName = cn;
      IDFieldName = cn;
      MailFieldNames = (
    mail,
    otherMailbox
      );
      UIDFieldName = sAMAccountName;
      baseDN = "DC=ufficio,DC=lan";
      bindDN = "CN=zentyal-mail-barth,CN=Users,DC=ufficio,DC=lan";
      bindFields = (
    sAMAccountName,
    mail
      );
      bindPassword = mWaByi97SfgLAWZQ49GS;
      canAuthenticate = YES;
      displayName = SambaLogin;
      filter = "(mail='*')";
      hostname = "ldap://127.0.0.1";
      id = sambaLogin;
      type = ldap;
  },
  {
      CNFieldName = cn;
      IDFieldName = mail;
      MailFieldNames = (
    mail,
    otherMailbox
      );
      UIDFieldName = mail;
      baseDN = "DC=ufficio,DC=lan";
      bindDN = "CN=zentyal-mail-barth,CN=Users,DC=ufficio,DC=lan";
      bindPassword = mWaByi97SfgLAWZQ49GS;
      canAuthenticate = NO;
      displayName = "Shared Addressbook";
      filter = "((NOT isCriticalSystemObject='TRUE') AND (mail='*') AND (NOT objectClass=contact))";
      hostname = "ldap://127.0.0.1";
      id = sambaShared;
      isAddressBook = YES;
      type = ldap;
  },
  {
      CNFieldName = cn;
      IDFieldName = mail;
      MailFieldNames = (
    mail,
    otherMailbox
      );
      UIDFieldName = mail;
      baseDN = "DC=ufficio,DC=lan";
      bindDN = "CN=zentyal-mail-barth,CN=Users,DC=ufficio,DC=lan";
      bindPassword = mWaByi97SfgLAWZQ49GS;
      canAuthenticate = NO;
      displayName = "Shared Contacts";
      filter = "((((objectClass=person) AND (objectClass=contact) AND ((uidNumber>=2000) OR (mail='*'))) AND (NOT isCriticalSystemObject='TRUE') AND (NOT showInAdvancedViewOnly='TRUE') AND (NOT uid=Guest)) OR (((objectClass=group) AND (gidNumber>=2000)) AND (NOT isCriticalSystemObject='TRUE') AND (NOT showInAdvancedViewOnly='TRUE')))";
      hostname = "ldap://127.0.0.1";
      id = sambaContacts;
      isAddressBook = YES;
      mapping = {
    displayname = (
        cn
    );
      };
      type = ldap;
  }
    );
    SOGoVacationEnabled = NO;
    SOGoWebAccessEnabled = YES;
    SOGoXSRFValidationEnabled = NO;
    SOGoZipPath = "/usr/bin/zip";
    SoClassRegistryDebugEnabled = NO;
    SoDebugBaseURL = YES;
    SoDebugKeyLookup = NO;
    SoDebugProductLoading = NO;
    SoDebugProductRegistry = NO;
    SoDebugRequestClassification = NO;
    SoDebugTraversal = NO;
    SoDefaultWebDAVPropertyNames = (
  "{DAV:}creationdate",
  "{DAV:}getcontentlength",
  "{DAV:}getlastmodified",
  "{DAV:}getetag",
  "{DAV:}resourcetype",
  "{DAV:}getcontenttype",
  "{DAV:}displayname",
  "{DAV:}href",
  "{http://apache.org/dav/props/}executable"
    );
    SoLogSecurityDeclarations = NO;
    SoOFSDebugAuthLookup = NO;
    SoOFSDebugFactory = NO;
    SoOFSDebugNegotiate = NO;
    SoOFSDebugPlistObject = NO;
    SoOFSDebugRestore = NO;
    SoOFSResourceManagerDebugEnabled = NO;
    SoOFSWebMethodDebugEnabled = NO;
    SoObjCClassDebugEnabled = NO;
    SoObjectDAVDispatcherDebugEnabled = NO;
    SoObjectDataSourceDebugEnabled = NO;
    SoObjectMethodDispatcherDebugEnabled = NO;
    SoObjectRequestHandlerDebugEnabled = NO;
    SoObjectSOAPDispatcherDebugEnabled = NO;
    SoObjectXmlRpcDispatcherDebugEnabled = NO;
    SoPageInvocationDebugEnabled = NO;
    SoPreferredNamespacePrefixes = {
  "DAV:" = D;
  "http://apache.org/dav/props/" = ap;
  "http://schemas.microsoft.com/exchange/" = X;
  "http://schemas.microsoft.com/hotmail/" = hm;
  "http://schemas.microsoft.com/mapi/proptag/" = pt;
  "http://webdav.org/cadaver/custom-properties/" = cdv;
  "http://www.ietf.org/internet-drafts/draft-ietf-calsch-many-xcal-01.txt" = xcal;
  "http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul" = xul;
  "http://www.skyrix.com/od/binding" = var;
  "http://www.skyrix.com/od/constant" = const;
  "http://www.skyrix.com/od/javascript" = js;
  "http://www.w3.org/1999/02/22-rdf-syntax-ns#" = RDF;
  "http://www.w3.org/1999/XSL/Transform" = xsl;
  "http://www.w3.org/1999/xhtml" = html;
  "http://www.w3.org/1999/xlink" = xlink;
  "http://www.w3.org/TR/REC-html40" = html4;
  "http://www.wapforum.org/DTD/wml_1.2.xml" = wml;
  "urn:schemas:calendar:" = C;
  "urn:schemas:contacts:" = A;
    };
    SoProductResourceManagerDebugEnabled = NO;
    SoRedirectToDefaultMethods = YES;
    SoRendererDebugEnabled = NO;
    SoRequestDispatcherRules = (
  "context.soRequestType='WebDAV'  => renderer = 'SoWebDAVRenderer' ; high",
  "context.soRequestType='XML-RPC' => renderer = 'SoXmlRpcRenderer' ; high",
  "context.soRequestType='SOAP'    => renderer = 'SoSOAPRenderer' ;   high",
  "*true* => renderer = 'SoDefaultRenderer' ; fallback",
  "request.isSoSOAPRequest=YES   => dispatcher = 'SoObjectSOAPDispatcher'",
  "request.isSoWebDAVRequest=YES => dispatcher = 'SoObjectWebDAVDispatcher'",
  "request.isSoXmlRpcRequest=YES => dispatcher = 'SoObjectXmlRpcDispatcher'",
  "*true* => dispatcher = 'SoObjectMethodDispatcher'; fallback",
  "request.isSoSOAPRequest=YES   => requestType = 'SOAP'",
  "request.isSoWebDAVRequest=YES => requestType = 'WebDAV'",
  "request.isSoXmlRpcRequest=YES => requestType = 'XML-RPC'",
  "*true*                        => requestType = 'METHOD'; fallback",
  "request.isSoWebDAVRequest=YES => useAcquisition = NO",
  "headers.translate='f'         => useAcquisition = NO; high",
  "method='GET'                  => useAcquisition = YES; low",
  "method='HEAD'                 => useAcquisition = YES; low",
  "method='POST'                 => useAcquisition = YES; low",
  "*true*                        => useAcquisition = NO; fallback"
    );
    SoSecurityManagerDebugEnabled = NO;
    SoWebDAVDefaultAllowMethods = (
  GET,
  HEAD,
  POST,
  OPTIONS,
  MKCOL,
  MKCALENDAR,
  DELETE,
  PUT,
  LOCK,
  UNLOCK,
  COPY,
  MOVE,
  REPORT
    );
    SoWebDAVDetectionMethods = (
  OPTIONS,
  MKCOL,
  MKCALENDAR,
  PROPFIND,
  PROPPATCH,
  DELETE,
  PUT,
  LOCK,
  UNLOCK,
  COPY,
  MOVE,
  SEARCH,
  NOTIFY,
  POLL,
  SUBSCRIBE,
  UNSUBSCRIBE,
  BCOPY,
  BDELETE,
  BMOVE,
  BPROPFIND,
  BPROPPATCH
    );
    SoWebDAVDisableCrossHostMoveCheck = NO;
    SoWebDAVFormatOutput = NO;
    SxVMemLimit = 384;
    WOAdaptor = WOHttpAdaptor;
    WOAdaptorLogPath = "";
    WOAdditionalAdaptors = (
    );
    WOApplicationBaseURL = "/WebObjects";
    WOApplicationSuffix = ".woa";
    WOAutoOpenInBrowser = NO;
    WOCGIAdaptorURL = "http://localhost/cgi-bin/WebObjects";
    WOCachingEnabled = YES;
    WOComponentExtensions = (
  wo
    );
    WOComponentLoadWOOFiles = NO;
    WOComponentRequestHandlerKey = wo;
    WOCompoundElementPool = NO;
    WOContextClass = WOContext;
    WOCoreOnApplicationException = NO;
    WOCoreOnAwakeComponentInCtxDealloc = NO;
    WOCoreOnHTTPAdaptorException = NO;
    WOCoreOnRecursiveSubcomponents = NO;
    WOCoreOnXmlRpcFault = NO;
    WODebugActions = NO;
    WODebugComponentAwake = NO;
    WODebugComponentDefinition = NO;
    WODebugComponentLookup = NO;
    WODebugCursor = NO;
    WODebugHttpTransaction = NO;
    WODebugKeyPathAssociation = NO;
    WODebugResourceLookup = NO;
    WODebugStaticLinkProcessing = NO;
    WODebugTakeValues = NO;
    WODebugZipResponse = NO;
    WODebuggingEnabled = NO;
    WODefaultLanguages = (
    );
    WODefaultResourceManager = WOResourceManager;
    WODefaultSessionTimeOut = 3600;
    WODescriptiveElementIDs = NO;
    WODirectActionRequestHandlerKey = x;
    WODontZipResponse = YES;
    WOEnableComponentsWithoutClasses = NO;
    WOExpirationTimeInterval = 120;
    WOFormAlwaysPassDown = YES;
    WOFrameworksBaseURL = "/WebObjects/Frameworks";
    WOGenerateMissingResourceLinks = NO;
    WOHTTPAdaptorCapitalizeHeaders = YES;
    WOHttpAdaptorForkCount = 0;
    WOHttpAdaptorReceiveTimeout = 120;
    WOHttpAdaptorSendTimeout = 120;
    "WOHttpAdaptor_LogStream" = NO;
    WOHttpAllowHost = (
    );
    WOHttpTransactionLoggerConfig = {
  Appenders = (
      {
    Class = NGLogStdoutAppender;
    Formatter = {
        Class = NGLogEventDetailedFormatter;
    };
      }
  );
    };
    WOHttpTransactionUseSimpleParser = NO;
    WOIncludeCommentsInResponse = YES;
    WOIsRedirectionEnabled = NO;
    WOKeyPathAssociationsCacheSize = 200;
    WOListenQueueSize = 5;
    WOLogComponents = NO;
    WOLogDefaultsOnStartup = NO;
    WOLogFile = "/var/log/sogo/sogo.log";
    WOLogPageCache = NO;
    WOLogScriptDealloc = NO;
    WOLogScriptInit = NO;
    WOLogScriptKVC = NO;
    WOLogXmlRpcSelectorMapping = NO;
    WOMessageUseUTF8 = YES;
    WONoProxySuffixes = (
    );
    WONoSelectionString = WONoSelectionString;
    WOOutputValidationEnabled = NO;
    WOPageCacheSize = 30;
    WOPageRefreshOnBacktrack = YES;
    WOPageRequestHandlerDebugEnabled = NO;
    WOParsersUseUTF8 = YES;
    WOPermanentPageCacheSize = 30;
    WOPidFile = "/var/run/sogo/sogo.pid";
    WOPort = "127.0.0.1:20000";
    WOProfileApplication = NO;
    WOProfileComponents = NO;
    WOProfileDirectActionRequestHandler = NO;
    WOProfileElements = NO;
    WOProfileHttpAdaptor = NO;
    WOProfileLoading = NO;
    WOProfileResponse = NO;
    WOProjectSearchPath = (
    );
    WORedirectURISafetySuffix = "/view/view/view/view";
    WOResourceRequestHandlerKey = y;
    WOResourceURLAssociationDebugEnabled = NO;
    WORunMultithreaded = NO;
    WOSMTPHost = mail;
    WOSendMail = "/usr/lib/sendmail";
    WOSessionStore = WOServerSessionStore;
    WOSimpleHTTPParserDebugEnabled = NO;
    WOSimpleHTTPParserFileIOBoundary = 16384;
    WOSimpleHTTPParserHeavyDebugEnabled = NO;
    WOSimpleHTTPParserMaxUploadSizeInKB = 262144;
    WOStatsStylesheetName = "WOStats.xsl";
    WOSubmitButtonEnableValueSync = NO;
    WOUseGlobalCookiePath = YES;
    WOUseRelativeURLs = YES;
    WOValueAssociationsCacheSize = 200;
    WOWatchDogRequestTimeout = 10;
    WOWorkerThreadCount = 0;
    WOWorkersCount = 1;
    WOxAssociationClassMapping = {
  "OGo:bind" = WOKeyPathAssociation;
  "OGo:bool" = WOBoolAssociation;
  "OGo:label" = WOLabelAssociation;
  "OGo:path" = SoLookupAssociation;
  "OGo:script" = WOScriptAssociation;
  "OGo:url" = WOResourceURLAssociation;
  "OGo:value" = WOValueAssociation;
  "http://www.skyrix.com/od/binding" = WOKeyPathAssociation;
  "http://www.skyrix.com/od/constant" = WOValueAssociation;
  "http://www.skyrix.com/od/javascript" = WOScriptAssociation;
  "http://www.skyrix.com/od/so-lookup" = SoLookupAssociation;
    };
    WOxBuilderClasses = (
  WOxTalElemBuilder,
  WOxControlElemBuilder,
  WOxMiscElemBuilder,
  WOxHTMLElemBuilder,
  WOxXULElemBuilder,
  WExCalElemBuilder,
  WExDnDElemBuilder,
  WExExtElemBuilder,
  WOxExtElemBuilder,
  WOxComponentElemBuilder
    );
    WOxComponentElemBuilderDebugEnabled = NO;
    "WOxElemBuilder_LogAssociationCreation" = NO;
    "WOxElemBuilder_LogAssociationMapping" = NO;
    WOxFileExtensions = (
  wox,
  xtmpl,
  xhtml
    );
    WOxLogBuilderQueue = NO;
}

EDIT 3: I've tried purging SOGo and installing it again, then activating it again in the Zentyal control panel. This time Zentyal configured SOGo MySQL connection correctly, so that at least SOGo starts up, but the login problem is still there.

EDIT 4: I've added one more line from the logfile above, maybe it helps

authentication
  • 1 respostas
  • 1515 Views
Martin Hope
Lucio Crusca
Asked: 2017-04-10 03:46:40 +0800 CST

variável de ambiente do arquivo de configuração ssh?

  • 8

Preciso fazer login em vários servidores ssh remotos durante meu trabalho administrativo. Eu trabalho com três computadores diferentes do lado do cliente, todos eles são sistemas Debian GNU/Linux. Eu mantenho um diretório do espaço de trabalho onde coloco tudo o que preciso para fazer meu trabalho, e esse diretório contém, entre outras coisas, um bashrcarquivo e um ssh_configarquivo.

Eu sincronizo manualmente o conteúdo desse diretório com um script que usa rsyncde um computador cliente para os outros enquanto movo e começo a usar um cliente diferente.

O usuário local em cada um dos três clientes precisa de configuração mínima, de modo que, se eu precisar criar um novo usuário local ou reinstalar um cliente, tenho apenas que rsyncacessar o espaço de trabalho e adicionar uma referência ao meu custom workspace/bashrcno arquivo $HOME/.bashrc. Meu custom workspace/bashrccria vários aliases e fico com meu ambiente usual independente do cliente que estou usando.

Meu custom workspace/bashrccria aliases para se conectar a servidores remotos desta forma:

alias s1='ssh -F ~/workspace/etc/ssh_config server1.example.com'

e eu entro no server1 apenas digitando s1em um terminal de qualquer cliente, porque meu costume ssh_configdefine as opções de autenticação de chave pública necessárias, a porta correta server1 está escutando e o usuário correto.

Agora isso funciona como um encanto, desde que o sshcomando seja o que eu preciso. Infelizmente, assim que preciso de outro comando que por sua vez use ssh, as coisas ficam mais caóticas.

Por exemplo, se eu precisar de rsyncalguma coisa para um desses servidores, sou forçado a escrever todo o comando ssh:

rsync -Pavz --delete -e "ssh -F $HOME/workspace/etc/ssh_config" ...

scpCoisas semelhantes acontecem com outros comandos , como ssh-copy-ide outros.

gostaria de poder escrever

rsync -Pavz --delete -e "ssh" ...

em vez disso, e fazer com que o ssh pegue seu nome de arquivo de configuração de uma variável de ambiente, para que eu possa definir essa variável de ambiente em my bashrce cada sshinvocação funciona automaticamente.

Existe tal variável de ambiente ou existe uma solução diferente para o problema?

linux
  • 1 respostas
  • 9927 Views
Martin Hope
Lucio Crusca
Asked: 2017-01-09 08:35:20 +0800 CST

htaccess 301 redirecionamento do diretório para o arquivo

  • 1

Eu herdei um site (um fórum vbulletin ) e migrei de outra hospedagem para a minha, copiando tudo com o scpcomando. O diretório raiz tinha o seguinte.htaccess

RewriteOptions inherit

RewriteEngine on
RewriteCond %{HTTP_HOST} ^.*$
RewriteRule ^/?$ "http\:\/\/example\.com\/forums\/content\/" [R=301,L]

Não sei como isso deveria funcionar, mas funcionou, independentemente do fato de a /forums/content/pasta NÃO existir. No entanto, uma vez movido para minha hospedagem, ele parou de funcionar, gerando um erro 404. Como o /forums/content.phparquivo existe, editei .htaccessassim:

RewriteOptions inherit

RewriteEngine on
RewriteCond %{HTTP_HOST} ^.*$
RewriteRule ^/?$ "http\:\/\/example\.com\/forums\/content.php" [R=301,L]

Agora está funcionando, com uma falha: meu navegador (e todos os outros navegadores de usuário do fórum) está armazenando em cache o redirecionamento 301 anterior, para que eu possa acessar e usar o fórum somente se eu limpar o cache do navegador (uma vez) ou se inserir o content.phpURL à mão (sempre).

Eu tentei a solução alternativa para adicionar um redirecionamento de /forums/content/para /forums/content.php, adicionando um RewriteRulepara .htaccess:

RewriteOptions inherit

RewriteEngine on
RewriteCond %{HTTP_HOST} ^.*$
RewriteRule ^/forums/content/$ "http\:\/\/example\.com\/forums\/content.php" [R=301,L]
RewriteRule ^/?$ "http\:\/\/example\.com\/forums\/content.php" [R=301,L]

No entanto, parece que essa regra é ignorada, porque o navegador ainda recebe um erro 404 no /forums/content/diretório e não redireciona para content.php. O que estou fazendo errado?

rewrite .htaccess vbulletin
  • 1 respostas
  • 2386 Views
Martin Hope
Lucio Crusca
Asked: 2016-08-11 22:55:45 +0800 CST

o que está redirecionando para https?

  • 0

Estou tentando configurar o nginx como proxy reverso (cache) para um site que roda Apache + Wordpress e que está configurado para redirecionar todo o tráfego HTTP para HTTPS. Para tanto estou tentando desabilitar o redirecionamento HTTPS no Apache/Wordpress (servidor de origem).

Muito menos nginx , uma cópia de trabalho do servidor de origem (Apache) está em http://test.assodigitale.it:14580 e aqui está o que fiz até agora:

  1. Removido o "Redirect 301 https://..." do host virtual
  2. .htaccess removido
  3. Desativou todos os plugins WP
  4. Substituídas no banco de dados todas as https://test.assodigitaleocorrências por http://test.assodigitale, incluindo strings serializadas do Wordpress
  5. mod_http2 desabilitado
  6. Comentário fora Protocols h2 h2c http/1.1da configuração do apache
  7. Verificado que nenhuma configuração HSTS está em vigor

No entanto, tudo o que obtive é que o servidor responde apenas HTTP simples, mas o redirecionamento do navegador para HTTPS ainda está ocorrendo e causa o erro óbvio de SSL que você vê clicando no link acima .

Estou ignorando algo, mas não entendo o quê e não sei como rastrear a comunicação entre o navegador e o servidor para identificar a configuração culpada. Você pode ajudar, por favor?

EDITAR APÓS OS COMENTÁRIOS:

Estou usando o Apache porque preciso dele por motivos além do escopo desta pergunta. Eu sei que poderia fazer tudo apenas com o nginx, mas ignore o nginx enquanto considera o problema. Eu o incluí na minha pergunta apenas para fornecer um contexto, mas o problema existe independentemente do nginx. É o Apache ouvindo a porta 14580 e é o Apache ou outra coisa depois de redirecionar o navegador, não o nginx que fica antes do Apache e que, aliás, no momento nem está ouvindo a porta 80 (daí a conexão recusada ao conectar à porta 80 conforme relatado por madeddie ).

No entanto , madeddie relata também que o servidor redireciona seu navegador para a porta 80, enquanto no meu caso fui redirecionado para a porta 443, o que me faz pensar como é que o servidor está emitindo redirecionamentos diferentes para mim e para ele...

redirect https apache-2.4
  • 1 respostas
  • 111 Views
Martin Hope
Lucio Crusca
Asked: 2016-02-11 07:43:23 +0800 CST

Portal cativo e SSL

  • 0

Acho que perguntas semelhantes já foram feitas repetidamente , mas minha pergunta é um pouco diferente. Entendo que não posso redirecionar o tráfego HTTPS para a página inicial do Captive Portal sem causar erros de SSL no navegador. Eu entendo o porquê. Eu concordo, porque é assim que as coisas são e estou feliz que a SSL esteja conosco.

No entanto, posso dizer que existe uma solução um pouco melhor do que desistir disso, porque usei alguns dias atrás em uma escola. A princípio, não percebi que meu notebook (Debian 8) havia se conectado automaticamente à rede wi-fi aberta e digitei alguns termos de pesquisa na barra de endereços do Chrome. Meu mecanismo de pesquisa padrão é o Google, que atende apenas páginas HTTPS. A página onde eu esperava obter os resultados do Google mostrou um erro de conexão (inevitável), mas o Chrome abriu automaticamente uma nova guia mostrando a página inicial do Captive Portal, com o formulário de login.

Isso é o que eu gostaria de implementar usando qualquer distribuição Linux necessária e qualquer hardware, mas deixe de lado a distribuição e o hardware por enquanto e vamos nos ater ao princípio: como funciona esse truque da nova guia? Em que nível de protocolo ele é implementado? Como?

linux
  • 1 respostas
  • 1251 Views
Martin Hope
Lucio Crusca
Asked: 2015-11-20 00:15:26 +0800 CST

Como desabilitar dumps de núcleo no Debian 8

  • 4

Eu finjo que já tentei de tudo, mas meu Debian 8 continua criando dumps do núcleo quando algo trava. Está acontecendo cerca de uma ou duas vezes em um mês. É um servidor de produção para alguns sites, com Apache 2.4 empacotado, php5-fpm e mysql. Suspeito que seja php5-fpm travando porque recebo o arquivo de despejo na pasta DocumentRoot. O arquivo que recebo é chamado de "núcleo" e está em algum lugar na ordem de gigabytes de tamanho.

Aqui está o que eu já fiz para desabilitar os dumps de núcleo, sem sucesso:

ln -s /dev/null /etc/systemd/coredump.conf

e depois reiniciado. Sem dados.

echo '*               hard    core    0' >> /etc/security/limits.conf
echo "fs.suid_dumpable = 0" >> /etc/sysctl.conf
sysctl -p

e depois reiniciado. Ainda não há dados. NÃO defini kernel.suid_dumpable como 0, porque o encontrei mais tarde, mas quando o encontrei, também li que zero é o padrão. Essas configurações não devem fazer nenhuma diferença de qualquer maneira, porque php5-fpm não é setuid. O mesmo vale para Apache e mysql, apenas no caso de não ser o php5-fpm travando.

Por enquanto, existe um script que procura os dumps principais e os exclui. O Crontab faz o resto, mas não é a melhor solução.

Como desabilito globalmente e incondicionalmente os dumps de núcleo no Debian 8?

systemd
  • 2 respostas
  • 3440 Views
Martin Hope
Lucio Crusca
Asked: 2015-09-26 03:33:38 +0800 CST

VPN L2TP sem certificados entre Windows XP e ZyWALL USG 200

  • 1

Estou tentando configurar um firewall ZyWALL USG 200 para permitir que clientes remotos do Windows XP (endereço IP dinâmico) se conectem à rede do local de trabalho com uma VPN L2TP. Não quero usar certificados, um nome de usuário e senha comuns serão suficientes (e o gerenciamento de certificados seria demais).

Não sou especialista em L2TP, muito menos em IPsec, portanto, tenha paciência se eu fizer perguntas triviais ou cometer erros flagrantes.

Configurei o que acho que deveria ser uma VPN L2TP no USG200, porém recebo o seguinte erro em seu log quando tento conectar do cliente WinXP:

1 2015-09-25 11:03:33 info IKE Send:[NOTIFY:NO_PROPOSAL_CHOSEN] 192.168.0.1:500 84.223.99.164:500 IKE_LOG
2 2015-09-25 11:03:33 info IKE [SA] : No proposal chosen 192.168.0.1:500 84.223.99.164:500 IKE_LOG
3 2015-09-25 11:03:33 info IKE The cookie pair is : 0x214b5575aaa53052 / 0xa212f247eeebfb4b [count=2] 192.168.0.1:500 84.223.99.164:500 IKE_LOG
4 2015-09-25 11:03:33 info IKE Recv:[SA][VID][VID][VID][VID] 84.223.99.164:500 192.168.0.1:500 IKE_LOG
5 2015-09-25 11:03:33 info IKE The cookie pair is : 0xa212f247eeebfb4b / 0x214b5575aaa53052 84.223.99.164:500 192.168.0.1:500 IKE_LOG
6 2015-09-25 11:03:33 info IKE Recv Main Mode request from [84.223.99.164] 84.223.99.164:500 192.168.0.1:500 IKE_LOG
7 2015-09-25 11:03:33 info IKE The cookie pair is : 0x214b5575aaa53052 / 0x0000000000000000 84.223.99.164:500 192.168.0.1:500 IKE_LOG

(observe que o USG200 mostra as entradas de registro mais recentes primeiro). Em uma pesquisa no Google, descobri que o erro "Nenhuma proposta escolhida" pode ser causado por uma incompatibilidade entre o cliente e o servidor na configuração da proposta IKE Fase 1. A partir deste documento , presumo que a seguinte configuração do USG200 deva funcionar, mas não:

Configuração VPN USG200

Obviamente, configurei a conexão VPN e a VPN L2TP também, mas acho que essas configurações não são relevantes, pelo menos não por enquanto. Infelizmente, não sei dizer por que não está funcionando ou se é o firewall ou o cliente o culpado. Não consigo obter nenhum log relevante para diagnosticar o problema do Windows, então aqui está como configurei a conexão:

insira a descrição da imagem aqui

Você pode me ajudar a entender o que estou fazendo de errado?

windows-xp
  • 1 respostas
  • 1270 Views
Martin Hope
Lucio Crusca
Asked: 2015-02-26 06:19:41 +0800 CST

403 Erro proibido com fcgid e PHP

  • 1

Estou tentando configurar php e mod_spdy no Apache 2.4, Debian jessie, x64. Eu segui este guia e configurei o Apache seguindo este outro guia e instalei estes pacotes:

libapache2-mod-fcgid
php-cgi
php5-fpm

Agora tenho problemas com aplicativos php: quando tento abri-los, recebo um 403 Proibido. Aqui está o meu /etc/apache2/conf-enabled/fcgid.conf

<Location />
  AddHandler fcgid-script .php
  Options +ExecCGI
  FcgidWrapper /usr/bin/php-cgi .php
</Location>

E o erro que recebo em /var/log/apache2/error.log

AH01630: client denied by server configuration: /usr/lib/cgi-bin/php5

Eu tentei adicionar

Order allow,deny
Allow from all

no aplicativo PHP VirtualHost, mas o resultado é o mesmo. Por que estou recebendo o 403?

php-fpm
  • 2 respostas
  • 5665 Views
Martin Hope
Lucio Crusca
Asked: 2015-01-28 10:12:06 +0800 CST

LVM: removendo o volume físico

  • 1

Eu quero reparticionar meu disco. Minha tabela de partição atual é a seguinte:

Disk /dev/vda: 1 TiB, 1136018849792 bytes, 2218786816 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x9039e337

Device     Boot     Start       End   Sectors   Size Id Type
/dev/vda1  *         2048 224610303 224608256 107,1G 8e Linux LVM
/dev/vda2       224610304 226490367   1880064   918M 8e Linux LVM

Eu quero remover /dev/vda2 e estender /dev/vda1 para preencher todo o disco. Aqui está meu status atual de volumes físicos:

--- Physical volume ---
PV Name               /dev/vda1
VG Name               vg0
PV Size               107,10 GiB / not usable 4,00 MiB
Allocatable           yes (but full)
PE Size               4,00 MiB
Total PE              27417
Free PE               0
Allocated PE          27417
PV UUID               XKfnoJ-VBxR-reLg-eE5n-h2yM-W5wt-RTbEcK

--- Physical volume ---
PV Name               /dev/vda2
VG Name               vg0
PV Size               918,00 MiB / not usable 2,00 MiB
Allocatable           yes 
PE Size               4,00 MiB
Total PE              229
Free PE               229
Allocated PE          0
PV UUID               2xT1xt-wYCF-fDzm-f36Q-zeIc-xR0Y-Mf3sCo

Estou correto se disser que posso com segurança

vgreduce vg0 /dev/vda2

sem pvmove-ing /dev/vda2 antes, porque esse volume físico não está sendo usado?

linux
  • 2 respostas
  • 1905 Views
Martin Hope
Lucio Crusca
Asked: 2015-01-15 08:19:14 +0800 CST

LVM2: pvscan com offset?

  • 0

Depois de jogar com o mdadm um pouco demais , agora estou tentando recuperar meus volumes lvm2 que estavam no array RAID1 original. O pvscan não encontra nada, mas isso não é uma surpresa: como o mdadm não é capaz de reconstruir o array, o pvscan não tem /dev/md1 para examinar.

No entanto, eu sei (er ... eu espero) que meus volumes lvm2 ainda estão lá, acho que apenas derrubei os metadados do ataque.

Minha ideia é perder /dev/sdc2 em /dev/loop1 com um deslocamento usando um sysresccd ao vivo, para que eu pule os metadados RAID quebrados em /dev/sdc2 e alcance o próprio PV. Eu planejo algo como:

losetup -o xxxxxx /dev/loop1 /dev/sdc2
pvscan

Então o pvscan pode encontrar o volume em /dev/loop1. O problema é que não sei o offset (mas isso pode ser superado com estudo ou tentativa e erro) e, o mais importante, que o losetup não funciona com dispositivos físicos. Como posso criar um dispositivo que aponta para outro dispositivo com um deslocamento? Ou como posso fazer o pvscan procurar volumes físicos usando um deslocamento?

EDIT depois do comentário @lsd:

Quando tentei:

losetup -o 32256 /dev/loop1 /dev/sdc2 

Eu obtive:

losetup: /dev/sdc2: warning: file smaller than 512 bytes, the loop device maybe be useless or invisible for system tools. 

e presumi que o aviso estava me dizendo que algo estava errado, porque /dev/sdc2 é menor que 512 bytes apenas se você o considerar como um arquivo normal, mas se o losetup suportar dispositivos de bloco, ele deve saber seu tamanho real ... devo ignorar o aviso, no entanto?

linux
  • 1 respostas
  • 592 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