Acessando seus arquivos de sua máquina de qualquer computador do mundo

Iniciado por carlosaluisio, 17 de Março de 2008, 18:36

tópico anterior - próximo tópico

carlosaluisio

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
Ubuntu Lucid é 10 !!!

rjbgbo

Como sempre Carlos, vc c/ grds dicas.
Deixei add nos meus favoritos ubuntu, p/ estudar.
Linux User #440843 | Ubuntu User #11469

carlosaluisio

Citação de: rjbgbo online 17 de Março de 2008, 23:07
Como sempre Carlos, vc c/ grds dicas.
Deixei add nos meus favoritos ubuntu, p/ estudar.
]

Obrigado.

Se nao tiveres problemas, em 1 ou 2 horas, tudo estará rodando aí.

Sds. Carlos
Ubuntu Lucid é 10 !!!

voyeg3r

O modem d-link 500b tem um linux internamente, acesse via telnet e em seguida
digite 'sh' sem aspas, para mais detalhes acess:
http://vivaotux.blogspot.com/2008/04/hackeando-os-modem-d-link.html

mrbin

Ubuntu user nº 4141
Since 2004

mrbin

Tem como restringir o acesso remoto a uma única pasta?
Ou deixar ver tudo, mas só modificar uma pasta específica?

Tava pensando em liberar pra edição apenar a pasta /home/leandro/Público
o resto, só visualização.

Tem como?
Ubuntu user nº 4141
Since 2004

carlosaluisio

Citação de: mrbin online 07 de Maio de 2008, 12:17
Tem como restringir o acesso remoto a uma única pasta?
Ou deixar ver tudo, mas só modificar uma pasta específica?

Tava pensando em liberar pra edição apenar a pasta /home/leandro/Público
o resto, só visualização.

Tem como?

Sim, claro.
abra o nautilus, e clique com o lado direito em propriedades, e depois em permissoes. ali vc define o que quer e o que nao quer.

só cuidado ao definir permissoes dentro da pasta etc e usr, pois lá tem os executaveis que funcionam o linux.

carlos
Ubuntu Lucid é 10 !!!

mrbin

é, eu acabei fazendo isso... e criei um novo usuário que não pode alterar nada.

É muito útil isso.
Ubuntu user nº 4141
Since 2004

alphazzz

Opa, primeiramente quero dar os meus parabéns para o Carlos pelo ótimo tópico! Me ajudou bastante pois eu estou montando um servidor ubuntu no projeto de estágio e preciso acessá-lo remotamente.
Sei que o tópico é meio "velho" mas para não abrir outro achei melhor postar aqui mesmo minha dúvida.
Meu servidor está na rede do meu serviço porém já existe um servidor de internet e um firewall/proxy teve que ser feito entao um redirecionamento pelo servidor firewall, mas teria como fazer isso de uma outra maneira? o firewall usado é o winroute kerio no win 2003. Desde já muito obrigado!! P)
Ricardo Guimarães - Microcenter Computadores
8ºsem. Sistemas de Informação CESUR/ANHANGUERA
Rondonópolis-MT

carlosaluisio

Citação de: alphazzz online 25 de Setembro de 2008, 12:00
Opa, primeiramente quero dar os meus parabéns para o Carlos pelo ótimo tópico! Me ajudou bastante pois eu estou montando um servidor ubuntu no projeto de estágio e preciso acessá-lo remotamente.
Sei que o tópico é meio "velho" mas para não abrir outro achei melhor postar aqui mesmo minha dúvida.
Meu servidor está na rede do meu serviço porém já existe um servidor de internet e um firewall/proxy teve que ser feito entao um redirecionamento pelo servidor firewall, mas teria como fazer isso de uma outra maneira? o firewall usado é o winroute kerio no win 2003. Desde já muito obrigado!! P)


Opa.
Para acessar externamente, a principio, o no-ip resolve nomes. Entrando via ssh com o nome, em vez do IP, teoricamente ele deve acessar externamente.

Porém, como proxy é algo complicado, as vezes existem muitas regras dependendo do que o administrador de rede define, veja nas preferencias do firestarter o dispositivo de rede encontrado, e tente estabelecer uma regra (em politica de acesso) para o acesso externo via ssh.

em tempo, também veja se o modem usado no teu serviço não filtra as portas abertas internamente. Acessar portas filtradas, só por tunelamento, e mesmo assim não é nada fácil.

Carlos
Ubuntu Lucid é 10 !!!

alphazzz

Eu denovo, nós fizemos o redirecionamento pelo servidor windows, assim estava dando certo para acessar externamente, mas de uma hora pra outra parou de funcionar, e agora eu só acesso internamente. Já tentei dar restart no no-ip e no ssh mas mesmo assim n funciona, eu só estou conseguindo acessar pelo ip local. Aparentemente é o redirecionamento porque eu consigo resposta no shadowmoon.no-ip.org mas n acessa, voce pode me ajudar? Obrigado
Ricardo Guimarães - Microcenter Computadores
8ºsem. Sistemas de Informação CESUR/ANHANGUERA
Rondonópolis-MT

carlosaluisio

Citação de: alphazzz online 10 de Outubro de 2008, 12:26
Eu denovo, nós fizemos o redirecionamento pelo servidor windows, assim estava dando certo para acessar externamente, mas de uma hora pra outra parou de funcionar, e agora eu só acesso internamente. Já tentei dar restart no no-ip e no ssh mas mesmo assim n funciona, eu só estou conseguindo acessar pelo ip local. Aparentemente é o redirecionamento porque eu consigo resposta no shadowmoon.no-ip.org mas n acessa, voce pode me ajudar? Obrigado

Opa, é coisa do teu modem. vê como que ele tá liberando tudo aí, acabei de ver que tem coisa filtrada. É o firewall do teu modem, tente liberar a 22 no UDP. ou usa outra porta ?

Carlos
Ubuntu Lucid é 10 !!!

alphazzz

Vi muitas pessoas dizendo para mudar a porta e entao mudei para a porta 212, e vou pedir entao para o meu chefe dar uma olhada nas portas denovo. Obrigado

EDIT:
"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)."

Tinha me esquecido dessa frase do seu post, afinal eu fiz com o ip automático e funcionou normal por alguns dias, então tenho q fixar o ip da máquina e deve dar certo! Obrigado!!
Ricardo Guimarães - Microcenter Computadores
8ºsem. Sistemas de Informação CESUR/ANHANGUERA
Rondonópolis-MT

JFMMão de Ferro

Este tópico merece estar FIXO

Estas modificações serão válidas para serem implementadas aqui em Portugal, e se bem entendi servem para um computador pessoal sem rede e claro, estar ligado à internet, se assim for terei mais umas dúvidas a expor.

J. F. Machado Mão de Ferro

yzarc

; Linux is almost there!