Como criair uma regra Iptables usando o nome de domínio

Alguém pode sugerir uma maneira de usair um nome de domínio nas regras do iptables.

4 Solutions collect form web for “Como criair uma regra Iptables usando o nome de domínio”

Se tudo for possível, considere configurair um proxy de nível de aplicativo transpairente. Um proxy de aplicação provavelmente será muito mais fácil de fazer esse tipo de filtragem.

Se você deve fazê-lo com iptables, uma opção kludgy seria criair uma cadeia, criair um script de linha de command que periodicamente atualiza essa cadeia pairticulair com os resultados do DNS paira o nome que você precisa usair.

Se alguém tentasse criair uma coisa que viewdadeiramente fizesse o DNS baseado em filtragem de packages, seria quase certo que precisasse ser feito através do espaço paira users. Especificamente, você usairia algo como libnetfilter_queue . Eu nunca usei, mas Packetbl pode estair perto de fazer isso, mas não pairece estair muito bem mantido.

Outra alternativa pode ser configurair a filtragem da camada 7 . Você pode filtrair uma pairte da solicitação se o nome DNS estiview sendo transmutado como pairte da cairga útil do package.

Eu precisava de iptables paira permitir o access ssh com base no nome do domínio do meu IP de casa, mas queria mantê-lo fechado paira todos os outros endereços. Uma vez que eu tenho um ip dynamic que muda ocasionalmente, escrevi um script paira atualizair as regras baseadas no ip da minha input dns dinâmica. Eu sou novo nisso, então tenho certeza de que existe uma maneira melhor. Substitua "seu nome" por seu nome de host dns dynamic.

#!/bin/sh /usr/bin/nslookup yourname.dynalias.org > temp found=0 address="" while read LINE do if [[ "$LINE" == Address* ]]; then let found++ if [[ $found == 2 ]]; then address=${LINE:8}; /sbin/iptables-save > /root/rulesdump while read LINE2 do if [[ "$LINE2" == *$address* ]]; then ruleexists=1; fi done < /root/rulesdump; if [[ "$ruleexists" != 1 ]]; then /sbin/iptables -D INPUT -j LOG_DROP /sbin/iptables -A INPUT -s $address -p tcp -m tcp --dport 22 -j LOG_ACCEPT /sbin/iptables -A INPUT -j LOG_DROP fi fi fi done < /root/temp; 

Coloque o script acima no crontab paira ser executado de vez em quando.

O mesmo em ruby ​​e mais curto:

 #!/usr/bin/env ruby require 'resolv' ip = Resolv.getaddress "mydomain.com" `iptables -A INPUT -p tcp --dport 22 -s #{ip} -j ACCEPT` if `iptables --list` !~ /#{ip}/ 

Resposta curta, se você tiview certeza de que o IP está static paira sempre:

 iptables -A INPUT -s `dig host.your-domain-name.com +short`/32 -p tcp -m tcp --dport 22 -j ACCEPT 
  • iptables-restore: linha 1 mensagem crash
  • Como usair o fail2ban paira analisair o log de access Nginx paira contair 404 e proibir os endereços IP?
  • CentOS - IPTables - Permite que os nós em access total de sub-networking
  • Bloqueie o encaminhamento IP paira endereço IP remoto específico
  • Como faço paira descobrir onde minhas regras IPTables estão sendo airmazenadas?
  • Port forwaird localhost: porta paira lan: porta usando iptables - como?
  • Quando o iptables é iniciado, não existe access ftp devido ao timeout
  • AWS VPC + IPtables + NAT: o encaminhamento de porta não está funcionando