NOTA: Esta página está desactualizada. A nova versão está disponível aqui.
Para aumentar a segurança em máquinas que funcionam como routers, o
kernel Linux permite, opcionalmente, filtrar pacotes recebidos por uma
interface que não é a que seria usada para enviar pacotes para o endereço IP de
origem do pacote recebido. Esta opção controla-se através da variável
rp_filter
(ver abaixo). Uma outra variável relacionada,
log_martians
, indica que deve registar-se nos logs do
sistema a chegada de pacotes nessas condições.
Pelo facto de esta filtragem causar problemas em situações em que é legítimo
existirem caminhos assimétricos, como é o caso do
trabalho 1, o valor-padrão da variável
rp_filter
é 0, desactivando a filtragem. No entanto, algumas distribuições de Linux
vêm, ainda assim, configuradas de origem para activar essa filtragem, como é o
caso da versão do Mandriva actualmente instalada nos laboratórios.
Para evitar efeitos indesejados nos trabalhos em que se usam máquinas Linux
com mais que uma interface de rede activa, devem desactivar a filtragem de caminho
inverso nessas máquinas. Em particular, devem desactivá-la no
RLin e no Term2 do
trabalho 1.
Podem fazê-lo de forma permanente alterando no ficheiro
/etc/sysctl.conf
as linhas
net.ipv4.conf.default.rp_filter=1
,
net.ipv4.conf.all.rp_filter=1
e
net.ipv4.conf.all.log_martians=1
para, respectivamente,
net.ipv4.conf.default.rp_filter=0
,
net.ipv4.conf.all.rp_filter=0
e
net.ipv4.conf.all.log_martians=0
.
Para o fazerem de forma imediata sem necessidade de reboot podem usar
o seguinte código na shell:
for i in default all eth0 eth1 eth2; do sysctl -w net.ipv4.conf.$i.rp_filter=0 sysctl -w net.ipv4.conf.$i.log_martians=0 done
rp_filter - BOOLEAN 1 - do source validation by reversed path, as specified in RFC1812 Recommended option for single homed hosts and stub network routers. Could cause troubles for complicated (not loop free) networks running a slow unreliable protocol (sort of RIP), or using static routes. 0 - No source validation. conf/all/rp_filter must also be set to TRUE to do source validation on the interface Default value is 0. Note that some distributions enable it in startup scripts. log_martians - BOOLEAN Log packets with impossible addresses to kernel log. log_martians for the interface will be enabled if at least one of conf/{all,interface}/log_martians is set to TRUE, it will be disabled otherwise |