Esse Tutorial feito com modem Siemens 4100 e 4200 mas pode ser feitos em vários modelos.
Receita de Bolo :.
1) Escolhendo o provedor DDNS dyndns, entrei no site deles:
http://www.dyndns.com e me cadastrei sob o domínio: seudominio.org
2) Configurando DMZ
- Configuração -> Firewall -> DMZ
3) Configurando DNS
- Configuração -> DNS dinamico
Feito as configurações no modem agora e so configurar o Linux.
Vamos la ...
# aptitude install ddclient
/etc/init.d/ddclient
Precisei ainda configurar o arquivo /etc/ddclient/ddclient.conf usando meus dados de cadastro, por um exemplo veja no final deste artigo.
Para inicializar este script quanto a maquina liga, criei um link symbólico da seguinte maneira:
#ln -s /etc/init.d/ddclient /etc/rc5.d/S99ddclient
Assim o serviço sera iniciado quanto a maquina inicia no run-level 5 (modo gráfico). Por um servidor será conselhável iniciar o serviço no run-level 3 (modo texto, prompt de comando) também:
#ln -s /etc/init.d/ddclient /etc/rc3.d/S99ddclient
Para resolver o problema de atualizar o IP somente quanto mudou, criei o script update.ddns.pl (em Perl), listado no final deste artigo e salvei-o em (por exemplo) /usr/local/sbin/update.ddns.pl. O script solicita o IP atual, compara com o IP obtido última vez que rodou. Se o IP mudou, o script atualiza o IP no DDNS executando o script de iniciação: '/etc/init.d/ddclient start'. Terminando, o script amazena para uso na próxima execução, o IP obtido no arquivo (por exemplo) /etc/ddclient/lastip.txt.
Para automatizar tudo, agora falta somente incluir update.ddns.pl usando crontab. Execute:
#crontab -e
e incluir ai uma linha da forma:
0,10,20,30,40,50 * * * * /usr/local/sbin/update.ddns.pl >> /tmp/update.ddns.log 2>&1
e salve (:w). Isto executara o script /usr/local/sbin/update.ddns.pl em dez a dez minutos e deixa seu output acumuladamente no arquivo /tmp/update.ddns.log.
E pronto! Agora se o modem muda de IP, depois uns dez minutos o script atualizara automaticamente.
Segue aqui o conteúdo do /etc/ddclient/ddclient.conf:
################### Start /etc/ddclient/ddclient.conf ##################
## ddclient configuration file
daemon=600 # check every 600 seconds
syslog=yes # log update msgs to syslog
mail-failure= ole@ipredes.com.br # Mail failed updates to user
pid=/var/run/ddclient.pid # record PID in file.
## Detect IP with our CheckIP server
use=web, web=checkip.dyndns.com/, web-skip='IP Address'
## DynDNS username and password here
login= seu login cadastrado aqui !!!
password= sua senha cadastrado aqui !!!
## Default options
protocol=dyndns2
server=members.dyndns.org
## Dynamic DNS hosts
seu dominio cadastrado aqui !!!
################### End /etc/ddclient/ddclient.conf ##################
E o script atualizando:
###################### Start update.ddns.pl ######################
#!/usr/bin/perl
use strict;
################# Automating DDNS update ########################
################# Only updatee if IP has changed ########################
#### Setup parameters #########
my $ip_page="
www.whatismyip.com/automation/n09230945.asp";
my $lastip_file="/etc/ddclient/lastip.txt";
my $update="/etc/init.d/ddclient start";
#### Script start ##########
#Name of file wget puts nits ooutput into
my @comps=split(/[\\\/]/,$ip_page);
my $ip_fname=pop(@comps);
#Move to /tmp and clean old files
chdir("/tmp");
system("/bin/rm -f $ip_fname*");
#Call wget
system("/usr/bin/wget $ip_page >> /tmp/ddns.log 2>&1");
#Read output from wget
open(IN,"$ip_fname") || die("$ip_fname nao existe!");
my @lines=;
close(IN);
#Our current ip is in first line
my $ip=$lines[0];
#Read previous ip
my $lastip="";
if (-f $lastip_file)
{
open(IN,$lastip_file) || die("$lastip nao existe");
my @lines=;
close(IN);
$lastip=$lines[0];
}
#Report results
print localtime().": $lastip --> $ip ";
unless ($ip=~/^(\d+)\.(\d+)\.(\d+)\.(\d+)$/)
{
print "Invalid ip format: '$ip'\n";
exit();
}
if ($ip ne $lastip)
{
#Update ddns
system("$update");
#Write current ip to file
open(OUT,">".$lastip_file) || die("Nao foi posivel rescrever $lastip_file");
print OUT $ip;
close(OUT);
print "Updated\n";
}
else { print "Up-to-date\n"; }
1;
###################### End update.ddns.pl ######################
Obs:.
Não se esquecer de dar permissão de execução aos arquivos:.
# chmod +x /etc/ddclient/ddclient.conf ou
# chmod +x /etc/ddclient.conf e também no
# chmod +x /usr/local/sbin/update.ddns.pl
Espero que este artigo pelo menos possa incentivar alguém utilizar este serviço extremamente útil, DDNS.
Créditos :.
http://www.slog.org.br/index.php?option=com_content&view=article&id=5:ddns-tutorial&catid=2:blog&Itemid=3http://under-linux.org/f126604-resolvido-acesso-remoto-via-winbox-com-modem-roteadoAnalisando e refeito por Fabio (bin_h4ck3r) e LEandr0