Eu vejo dois pontos na sua pergunta:
-
" controle de acesso para todo o servidor ": você já conhece a solução, pois os limites por diretório podem ser aplicados com Directory no contexto do servidor-config (portanto, em todo o sistema e não relacionado a um host virtual específico) até "/", portanto, em todo o servidor, todo o sistema de arquivos. Por exemplo, é comum, dentro do httpd.conf, ver algo assim:
<Directory /> Options FollowSymLinks AllowOverride None </Directory>
-
" blocos inteiros de países como china, coreia do sul ": se você quiser que o seu Apache filtre solicitações HTTP com base nos países de origem, uma abordagem bastante eficaz é confiar na Serviços GeoIP . Quanto ao Apache, há um módulo mod_geoip2 que você pode instalar em sua própria instalação do Apache. Quando estiver em funcionamento, esse módulo cuidará, para cada solicitação HTTP, de atribuir uma variável de ambiente (GEOIP_COUNTRY_CODE) com base no código de país ISO 3166-1 correspondente. Essa variável de ambiente, posteriormente, pode ser verificada em relação a diretivas de filtragem comuns, para filtrar a solicitação. Um exemplo completo (junto com outros exemplos interessantes) é fornecido na página mod_geoip2 acima:
( de: link )
Bloqueio de um cliente com base no país
Este exemplo mostra como bloquear clientes com base no código do país definido pelo GeoIP.
GeoIPEnable On
GeoIPDBFile /path/to/GeoIP.dat
SetEnvIf GEOIP_COUNTRY_CODE CN BlockCountry
SetEnvIf GEOIP_COUNTRY_CODE RU BlockCountry
# ... place more countries here
Deny from env=BlockCountry