Permitindo portas específicas em interfaces específicas / ip com CSF

2

Acabei de aprender sobre o CSF e como as possibilidades de registro / bloqueio que isso me dá. No entanto, não faz o bloqueio desejado.

A situação está seguindo, eu tenho um servidor com vários endereços IP. Estou executando o apache em um ip e o ssh em outro (assim, os hackers que direcionam meu site têm menos alterações para atacar o ssh ou outro serviço).

Para o csf.allow eu adicionei:

tcp|in|d=80|d=xx.xx.xx.xx
tcp|in|d=22|d=xx.xx.xx.xy

No entanto, no iptables, a permissão é adicionada antes do bloco, tornando-a inútil.

Chain LOCALINPUT (1 references)
num   pkts bytes target     prot opt in     out     source               destination         
1     1074 92873 ACCEPT     tcp  --  !lo    *       0.0.0.0/0            xx.xx.xx.xy       tcp dpt:22 
2    34401 2163K ACCEPT     tcp  --  !lo    *       0.0.0.0/0            xx.xx.xx.xx       tcp dpt:80 
3        0     0 DROP       all  --  !lo    *       xx.xx.xx.hacker1     0.0.0.0/0           
4        0     0 DROP       all  --  !lo    *       xx.xx.xx.hacker2     0.0.0.0/0           

Existe uma maneira de reverter isso?

    
por Paul Jacobse 13.03.2012 / 10:49

1 resposta

0

Eu descobri como fazer isso eu mudei o csf.pl com o seguinte:

Em sub linefilter eu troquei o $ inadd (na linha 1923).

original:

my $inadd = "-I";
if ($ad eq "deny") {
    $inadd = "-A";

novo:

my $inadd = "-A";
if ($ad eq "deny") {
    $inadd = "-I";

Eu percebo que o original é o caminho mais comum, mas se você quiser filtrar portas / ips específicas, esta é a solução. Apenas certifique-se de ter seu próprio ip (externo) na lista de ignorados, ou você tem acesso físico fácil (ou kvm sobre ip, etc) à máquina, para que você não fique bloqueado acidentalmente!

    
por 14.03.2012 / 11:24