Acessando seus arquivos da sua máquina remotamente sem complicações e com segurança
Em muitas vezes, você gostaria de deixar, por exemplo, seu computador ligado, para poder acessar os arquivos de qualquer lugar, no caso de uma viagem, ou de estar na faculdade, etc... Enfim, a utilidade disso são muitas.
Porém, essa tarefa pode ser complicada para usuários comuns. E, em muitos casos, fazer isso pode representar um grande risco de segurança.
Com o Ubuntu, é possível fazer isso de maneira segura. É para isso que escrevo este tutorial.
Primeiramente, certifique se você tem o Firestarter instalado. Caso contrário, procure-o no synaptic, ou senao:
sudo apt-get install firestarter
Logo após, instalaremos o ssh. Agora, porque escolhemos ssh, em vez de FTP, por exemplo ?
Simples, porque o ssh tem crotografia, ou seja, quando a sua senha "vai para a rede", ela vai criptografada. num servidor ftp, isso não ocorre. Então...
sudo apt-get install ssh
Depois de instalado, você precisa editar um arquivo de configuração, que encontra-se em /etc/ssh/sshd_config . O arquivo é semelhante a isso:
_____________________________________________________________________________
# $OpenBSD: sshd_config,v 1.72 2005/07/25 11:59:40 markus Exp $
# This is the sshd server system-wide configuration file. See
# sshd_config(5) for more information.
# This sshd was compiled with PATH=/usr/bin:/bin:/usr/sbin:/sbin
# The strategy used for options in the default sshd_config shipped with
# OpenSSH is to specify options with their default value where
# possible, but leave them commented. Uncommented options change a
# default value.
Port 22
Protocol 2
#AddressFamily any
#ListenAddress 0.0.0.0
#ListenAddress ::
# HostKey for protocol version 1
#HostKey /etc/ssh/ssh_host_key
# HostKeys for protocol version 2
#HostKey /etc/ssh/ssh_host_rsa_key
#HostKey /etc/ssh/ssh_host_dsa_key
# Lifetime and size of ephemeral version 1 server key
#KeyRegenerationInterval 1h
#ServerKeyBits 768
# Logging
# obsoletes QuietMode and FascistLogging
#SyslogFacility AUTH
#LogLevel INFO
# Authentication:
#LoginGraceTime 2m
#PermitRootLogin yes
#StrictModes yes
#MaxAuthTries 6
#RSAAuthentication yes
#PubkeyAuthentication yes
#AuthorizedKeysFile .ssh/authorized_keys
# For this to work you will also need host keys in /etc/ssh/ssh_known_hosts
#RhostsRSAAuthentication no
# similar for protocol version 2
#HostbasedAuthentication no
# Change to yes if you don't trust ~/.ssh/known_hosts for
# RhostsRSAAuthentication and HostbasedAuthentication
#IgnoreUserKnownHosts no
# Don't read the user's ~/.rhosts and ~/.shosts files
#IgnoreRhosts yes
# To disable tunneled clear text passwords, change to no here!
PasswordAuthentication no
#PermitEmptyPasswords no
# Change to no to disable s/key passwords
#ChallengeResponseAuthentication yes
# Kerberos options
#KerberosAuthentication no
#KerberosOrLocalPasswd yes
#KerberosTicketCleanup yes
#KerberosGetAFSToken no
# GSSAPI options
#GSSAPIAuthentication no
#GSSAPICleanupCredentials yes
# Set this to 'yes' to enable PAM authentication, account processing,
# and session processing. If this is enabled, PAM authentication will
# be allowed through the ChallengeResponseAuthentication mechanism.
# Depending on your PAM configuration, this may bypass the setting of
# PasswordAuthentication, PermitEmptyPasswords, and
# "PermitRootLogin without-password". If you just want the PAM account and
# session checks to run without PAM authentication, then enable this but set
# ChallengeResponseAuthentication=no
UsePAM yes
#AllowTcpForwarding yes
#GatewayPorts no
X11Forwarding yes
#X11DisplayOffset 10
#X11UseLocalhost yes
#PrintMotd yes
#PrintLastLog yes
#TCPKeepAlive yes
#UseLogin no
#UsePrivilegeSeparation yes
#PermitUserEnvironment no
#Compression delayed
#ClientAliveInterval 0
#ClientAliveCountMax 3
#UseDNS yes
#PidFile /var/run/sshd.pid
#MaxStartups 10
# no default banner path
#Banner /some/path
# override default of no subsystems
Subsystem sftp /usr/lib/misc/sftp-server
_____________________________________________________________________________________________
Note que em "Port", está marcada a 22, que é a porta padrão do tráfego ssh (assim como a 21 é a ftp, 666 é de uso da NASA, 5900 é vnc, 80 é http, etc...). Porta coloca-se onde quiser. Podemos deixar por padrão a 22. Caso queiram editar o arquivo, basta entrar como root.
Depois, é só dar o seguinte comando
/etc/init.d/ssh start
Se não houver nenhuma mensagem de erro, é porque está tudo OK.
Agora, o próximo passo é fazer seu servidor ser reconhecido para fora. Na maioria esmagadora dos casos, usuários residenciais, e de empresas que naõ tem aplicações cliente-servidor, usam IP externo dinâmico, ou seja, ele está constantemente mudando.
Para isso, existe o no-ip, que é um software que "resolve" um nome de sua máquina para a rede externa.
www.ubuntu-br.org , por exemplo, é um "name host" . O no-ip vai fazer exatamente isso, vai deixar o nome do host da máquina fixo, não importando o IP dela. Assim, ela fica acessível de qualquer lugar do mundo, via ssh, ftp, vnc, ou qualquer protocolo.
Agora, basta seguir estes passos:
- Acesse
http://www.no-ip.com- Crie uam conta de usuário
- Depois, em "hosts - redirect", clicar em "add"
- em Hostname, coloque o nome que desejares. Por exemplo, carlosaluisio
- Abaixo de hostname, tem a continuaçãodo nome, que o usuário pode escolher (eu gosto do myftp.org)
- Em Host type, marque a 1a. opção
- "Create Host"
Pronto. É esperar uns 5 minutos, e ele já vai colocar seu nome no ar.
Agora, deve-se instalar o no-ip na máquina. Para isso. Synaptic, ou...
sudo apt-get install no-ip
Ele vai instalar sem problemas (como tudo no Ubuntu). Depois, o no-ip deve ser configurado. Para isso, digitar via console:
no-ip -C
Ele vai perguntar o nome de usuário, a senha, depois é só dar enter mais uma vez, que o arquivo no-ip.conf, em /etc, vai ser criado. Com isso, o serviço no-ip deve ser iniciado:
/etc/init.d/no-ip start
Espere uns minutinhos, e depois ,dentro de sua máquina, teste um PING com o host que vocÊ criou, porexemplo:
ping carlosaluisio.myftp.org
Se o PING tiver resposta, a sua máquina tem agora um nome fixo para o mundo. Agora só nos resta configurar o ssh.
Vamos utilizar o usuário nosso corrente. também é recomendável cruar um usuário do grupo ssh caso voce nao queira acessar com o seu, em "sistema - administração - usuários e grupos --> adicionar usuário - avançado - grupo ssh".
Depois disso, temos que liberar a porta 22. Antes disso ,vamos instalar um programa excelente para verificação de portas, chamado nmap
sudo apt-get install nmap
Depois, teste com o comando nmap localhost (como root), e verão as portas que estão abertas na sua máquina. a principio, quase tudo estará fechado, talvez com a exceção da 631.
Está quase acabando...
temos que liberar a porta 22. Se você usa modem no modo bridge, PPPoE ou discada, esse passo não se faz necessário. Caso seja um modem roteador (eu uso D-link), tem que liberar a porta ssh 22 no campo "nat". Qualquer dúvida, ligar para a fabricante. Em alguns roteadores, eles perguntam o ip interno da máquina. Para isso, só digitar ifconfig, e pegar o número. No meu caso, é 10.1.1.3 , no eth0 (EM TEMPO, SE O IP INTERNO NÃO FOR FIXO, NÃO FUNCIONA, JÁ FIZ TESTES).
Depois de liberar o modem nacaixa, temos que liberar no Ubuntu. para isso, basta acessaro firestarter, licar em "politica" - "adicionar regra", colocar o nome e a porta (22), e dar um OK. depois, é só clicar em "aplicar politica", dentro do firestarter. Note que o Firestarter também permite selecionar quais máquinas voce quer o acesso. Digamos que você queira isso somente em uma outra máquina"x", que também tem no-ip. Pode colocar ela em "Permitir conexões da máquina".
Por via das dúvidas, clique também em "preferencias " no firestarter, e , em "eventos", coloque em "não registrar eventos para o seguinte" a porta 22 ....
Pronto, aplique, e o seu serviço ssh estará liberado. digite novamente nmap localhost para conferir
Para acessar de uma máquina de fora, se for windows, basta fazer download do winscp. Se for Ubuntu, mais fácil, basta ir em "locais - conectar ao servidor" . Em "tipo de serviço", colocar ssh, em servidor, colocar o nome do servidor (sem https, etc...), porta 22 (ou a que vc tenha escolhido),a pasta, pode colocar /home/[seunomedeusuario] , preencha o nome do usuário, e clique em OK. Prontinho, seus arquivos estão acessíveis de fora, e sua senha está trafegando de modo seguro !
Espero que isso seja útil para alguém.
Carlos