Como posso usar o Parallels Virtuozzo utilitário de firewall ( chamado realmente psa-firewall
sob o capô, aparentemente,psa-firewall
parece ser uma interface Plesk separado - de qualquer forma, é basicamente uma interface de usuário para gerenciamento de iptables limitada) para VPSs para configurar uma regra simples que nega o acesso a uma porta para todas as conexões diferentes de determinados endereços IP?
Eu tive a idéia de que regras de firewall VZ - como as regras iptables que (acredito) são traduzidas - foram executadas em ordem, de cima para baixo, e que eu poderia bloquear todos os endereços IP especificados acessando minha porta (neste caso , SSH na porta 22) por ter regras de permissão limitadas na lista, pelo endereço IP xx.xx.xx.xx e pela porta 22, depois por uma regra Rejeitar no final para qualquer endereço IP e porta 22.
A ideia era que, para solicitações dos endereços IP nomeados, a regra Permitir seria atingida, portanto, a regra de rejeição nunca seria alcançada. Para todo o resto, a regra Permitir seria ignorada e a regra de rejeição abaixo dela seria atingida.
Mas não funcionou assim . No início, funcionou exatamente como planejado, mas ~ 20 minutos depois eu estava me vendo excluído do SSH e a única maneira de poder voltar era excluir a regra Rejeitar e adicionar uma regra (Permitir tudo à porta 22) (redundante) para o topo da lista.
Com mais testes, parece que a ordem das regras na interface do usuário do Firewall VZ não determina a ordem na configuração resultante. Por exemplo, estou descobrindo que ter uma regra Permitir Todos aos 22 no topo da lista e Rejeitar Tudo a 22 na parte inferior parece bloquear todas as conexões, assim como acontece exatamente o mesmo com a ordem invertida.
Eu tinha uma teoria de que o utilitário anexa regras recém-ativadas à lista, mas parece que ter uma regra de rejeitar tudo sempre supera qualquer regra de aceitação, independentemente da posição da lista ou da ordem em que são adicionadas.
Não consigo descobrir o padrão e não consigo encontrar recursos relevantes nesse utilitário que o expliquem. Eu também não consigo encontrar outras abordagens.
O motivo pelo qual estou usando o utilitário de firewall VZ, em vez de usar apenas o iptables diretamente , é que eu quero que os administradores possam atualizar as regras e adicionar endereços IP na lista de permissões sem o risco de que permaneçam bloqueados permanentemente. É útil poder administrar o acesso SSH usando uma ferramenta que não depende de si mesmo e requer acesso SSH.
ps É muito difícil encontrar informações de qualidade sobre o utilitário de firewall VZ. Em todos os lugares que eu olho, me leva a recursos de estilo lamentavelmente incompletos, ou a informações sobre a configuração direta do iptables. Não consigo encontrar nada sobre como as configurações da interface do usuário são interpretadas nos bastidores ou como elas se relacionam com as configurações existentes do iptables. Quaisquer indicações gerais sobre informações detalhadas de qualidade sobre o que está acontecendo nos bastidores do utilitário de firewall VZ também serão apreciadas.
Respostas:
Esta é simplesmente a minha melhor teoria longe de testar. Parece que:
Se isso for verdade, se alguém se encontrar na situação em que eu estava, você deve ser capaz de se comportar racionalmente novamente usando o VZ para reiniciar o serviço do iptables 'em' Serviços do sistema ' . Adicione uma regra de permissão temprorary ao topo da cadeia se ela disser que não é capaz de reiniciar o serviço.
( Desconfie de usar
iptables -F
para liberar as regras do iptables, pois isso libera tudo, incluindo as regras que concedem aos utilitários VZ acesso apropriado. A ferramenta de reinicialização do sistema atualiza o iptables com tudo, incluindo a configuração do VZ, configuração do host, regras configuradas no utilitário, e as regras personalizadas em/etc/firewall/include
.iptables -F
não. Se estiver configurado para rejeitar ou descartar por padrão, você pode se bloquear completamente)Edit: Isso claramente não é tudo que existe para ele ... De repente, o utilitário de firewall VZ começou a não ter nenhum efeito sobre as regras subjacentes do iptables , e usando
iptables -n -L INPUT|grep dpt:22
para listar todas as regras do iptables que especificam o port dport 22, vejo lotes de antigas regras de lixo eletrônico que foram removidas e que não são removidas na reinicialização, mesmo após a limpeza do iptables e a reinicialização do serviço. A leitura do http://www.webhostingtalk.com/showthread.php?t=1166215 sugere que o firewall VZ também tem um banco de dados de regras que podem ficar fora de sincronia com o código e a interface do usuário ... mas não oferece nenhuma pista sobre como para acessar este banco de dados.Edit 2: Parece que algo causou que o iptables e o firewall Virtuozzo iniciassem simplesmente a leitura do arquivo, em
/etc/sysconfig/iptables
vez de regenerá-lo corretamente. A solução que encontrei para isso foi essencialmente, renomear os arquivos/etc/sysconfig/iptables
e/etc/sysconfig/iptables.save
backups, usar o VZ Firewall Setup para redefinir os firewalls completamente, o que geravaiptables
arquivos vazios , depois reiniciei o serviço iptables - depois de fazer tudo isso, configurações no firewall VZ utilidade começou a ter seus efeitos previstos.Curiosamente, depois de fazer o acima, as cadeias de iptables têm nomes como VZ_INPUT ao invés de INPUT, então listar as regras do iptables para uma porta, eu preciso usar
iptables -n -L|grep dpt:22
ou aoiptables -n -L VZ_INPUT|grep dpt:22
invés deiptables -n -L INPUT|grep dpt:22
. Ímpar.Espero que, se alguém acabar preso a um mau serviço de firewall Virtuozzo, algo aqui ajudará.
fonte