Mover htaccess em massa nega regras para o iptables

1

Estou usando o sistema CentOS 5.7 de 64 bits e execute o Apache. Atualmente, eu tenho um site que tem um arquivo .htaccess contém milhares de "negar de IP" regras (adicionadas do cPanel). O carregamento do meu servidor foi muito alto recentemente, suspeito que essas regras causaram o problema. Eles vão?

Estou pensando em mover essas regras para um arquivo de inclusão do iptables, mas não sei como configurar. Algum conselho? Obrigado.

Transfira o seguinte

deny from 8.8.8.8

Para

-A RH-Firewall-1-INPUT -i eth0 -s 8.8.8.8 -j DROP

Resultado Sar

# sar -q

01:00:02 PM   runq-sz  plist-sz   ldavg-1   ldavg-5  ldavg-15
01:10:01 PM        41       359     42.59     39.85     26.52
01:20:11 PM        37       267     37.34     33.99     29.45
01:30:02 PM        19       242     24.99     30.76     30.85

# sar

01:00:02 PM       CPU     %user     %nice   %system   %iowait    %steal     %idle
01:10:01 PM       all     81.50      0.14     18.23      0.01      0.00      0.12
01:20:11 PM       all     78.41      0.00     16.96      0.01      0.00      4.62
01:30:02 PM       all     82.48      0.00     15.89      0.01      0.00      1.62
01:40:01 PM       all     84.48      0.01     15.05      0.00      0.00      0.46

Resultado principal

top - 19:03:02 up  6:09,  1 user,  load average: 9.49, 15.19, 13.19
Tasks: 211 total,  34 running, 175 sleeping,   0 stopped,   2 zombie
Cpu(s): 77.2%us, 22.6%sy,  0.0%ni,  0.1%id,  0.0%wa,  0.0%hi,  0.2%si,  0.0%st
Mem:   4117724k total,  1678008k used,  2439716k free,    79456k buffers
Swap:  8385848k total,        0k used,  8385848k free,   780952k cached
    
por garconcn 14.10.2011 / 00:45

1 resposta

1

Não tenho tanta certeza de que o que você está vendo se baseia em suas regras de negação, mas aqui está um folheto que deve ajudá-lo a transferir suas regras (pelo menos temporariamente):

grep deny .htaccess | awk {'print $3;'} | while read i; do iptables -A RH-Firewall-1-INPUT -i eth0 -s ${i} -j DROP; done

Esteja avisado que isso colocará as regras DROP diretamente no final da sua cadeia INPUT principal, tornando-as muito difíceis de remover sem reiniciar o iptables. Se você quiser algo mais fácil de desfazer, provavelmente deve criar uma tabela extra primeiro com algo como:

iptables -A RH-Firewall-1-INPUT -j HTACCESS_TEST
grep deny .htaccess | awk {'print $3;'} | while read i; do iptables -A HTACCESS_TEST -i eth0 -s ${i} -j DROP; done

Depois disso, você precisará comentar suas linhas de negação no .htaccess e possivelmente recarregar o Apache para que ele tenha efeito.

    
por 14.10.2011 / 01:13

Tags