PDA

View Full Version : Server SSH


osa
14-08-2006, 12:14
Salve ho installato il server ssh sulla mia Ubuntu.
Ho cambiato la porta del server modificando l'apposito file.
Quando digito:
ssh -p NUM_PORT user@MY_IP
Viene visualizzato tale messaggio:
ssh: connect to host MY_IP port NUM_PORT Connection refused
Da locale il server funziona cioè se do il comando
ssh -p NUM_PORT user@localhost

Ho provato ad aprire la porta con:
iptables -A INPUT -p udp --dport NUM_PORT -j ACCEPT
iptables -A INPUT -p tcp --dport NUM_PORT -j ACCEPT

La porta sembra aperta dato che se digito:
netstat -lnp
Ho il seguente messaggio:
tcp6 0 0 :::NUM_PORT :::* LISTEN 8838/sshd

Qualcuno sa aiutarmi???

osa
14-08-2006, 12:36
in genere la porta usata da ssh è la 22

inserisci tali comandi

nmap 127.0.0.1 per identificare le porte aperte nel sistema e poi

usa ssh sensa inserire numero della porta semplicemente inserendo

(ssh user@host) così

se la porta 22 non è attiva dovresti attivare il servizio ssh a mano magari con ssh start. :)

Ciao, ho cambiato il numero della porta modificando /etc/ssh/sshd_config.
Come gia ho detto se digito ssh -p NUM_PORT user@localhost, in questo caso il server risponde, ma se al posto di localhost digito l'indirizzo ip della mia macchina , la connessione non è accettata.

scorpion89
14-08-2006, 13:28
Cosi x curiosità prova cosi:
ssh <ip_computer_sshd> -p <porta> -l <utente_ke_vuoi_usare>

Ciao

osa
14-08-2006, 13:36
Cosi x curiosità prova cosi:
ssh <ip_computer_sshd> -p <porta> -l <utente_ke_vuoi_usare>

Ciao
Non va, forse dovre impostare iptables?

scorpion89
14-08-2006, 13:40
Non va, forse dovre impostare iptables?
Come ti aveva già detto scansionando le porte con nmap cosa ti dice??

Ciao

osa
14-08-2006, 14:05
Come ti aveva già detto scansionando le porte con nmap cosa ti dice??

Ciao
Ecco il listato:

nmap localhost

Starting nmap 3.81 ( http://www.insecure.org/nmap/ ) at 2006-08-14 14:04 CEST
Interesting ports on localhost.localdomain (127.0.0.1):
(The 1660 ports scanned but not shown below are in state: closed)
PORT STATE SERVICE
80/tcp open http
631/tcp open ipp
32770/tcp open sometimes-rpc3

Nmap finished: 1 IP address (1 host up) scanned in 0.562 seconds

Non leggo la porta che ho settato per ssh

scorpion89
14-08-2006, 14:35
Magari perchè nn rientra nelle porte scansionate da nmap!
Prova telnet <ip> <porta>
Se vedi delle scritte OpenSSH ecc...
Allora è aperta se ti dice nn possibile accedere o simili è chiusa quindi devi aprirla aggiungendo
delle regole di iptables

Ciao

osa
14-08-2006, 14:47
Magari perchè nn rientra nelle porte scansionate da nmap!
Prova telnet <ip> <porta>
Se vedi delle scritte OpenSSH ecc...
Allora è aperta se ti dice nn possibile accedere o simili è chiusa quindi devi aprirla aggiungendo
delle regole di iptables

Ciao

Ho provato con telnet, ecco l'output:
telnet: Unable to connect to remote host: Connection refused.
Ho apero la porta con iptables: iptables -A INPUT -p udp --dport NUM_PORT -j ACCEPT iptables -A INPUT -p tcp --dport NUM_PORT -j ACCEPT
Se digito netstat -lnp ecco il listato:
tcp6 0 0 :::NUM_PORT :::* LISTEN 8852/sshd
E' strano dato che, come già detto se faccio ssh con localhost invece dell'ip (sulla stessa porta) mi posso collegare, è strano dato che se la porta è chiusa non dovrei lo stesso collegarmi.

osa
14-08-2006, 17:15
Ho capito la fonte del problema. Ho un modem Router Adsl Telit AR 520 (ethernet( (quello distributito da libero), sicuramente dipende da qualche settaggio della route table. Infatti ho provato con un semplice modem ethernet e ssh funzionava a meraviglia.
Questa è la Ip Route Table visualizzata nella pagina di configurazione del router:
Destination Netmask NextHop IF Name Route Type Route Origin Action
0.0.0.0 0.0.0.0 151.6.155.65 ppp-0 Indirect Dynamic
127.0.0.0 255.0.0.0 127.0.0.1 lo-0 Direct Dynamic
151.6.155.65 255.255.255.255 151.41.65.96 ppp-0 Direct Dynamic
151.41.65.96 255.255.255.255 127.0.0.1 lo-0 Direct Dynamic
192.168.1.0 255.255.255.0 192.168.1.1 eth-0 Direct Dynamic
192.168.1.1 255.255.255.255 127.0.0.1 lo-0 Direct Dynamic
192.168.1.2 255.255.255.255 127.0.0.1 lo-0 Direct Dynamic
193.70.152.15 255.255.255.255 151.6.155.65 ppp-0 Indirect Dynamic
193.70.152.25 255.255.255.255 151.6.155.65 ppp-0 Indirect Dynamic

dennyv
14-08-2006, 18:39
Eh si se hai un router devi modificare anche la sua nat! Se hai accesso all'interfaccia web puoi farlo tranquillamente, disolito è semplice (se ti serve ti posso dire come si fa sul mio d-link, ma cambia abbastanza da router a router).

A differenza di altri io ti consiglio VIVAMENTE di cambiare porta a SSH e ti spiego anche il perchè:

Finchè sul mio serverino avevo SSH sulla 22, ero infestato da tentativi di accesso "fasulli" cioè creati con utenti a caso, (più o meno, ci sono i soliti root, admin ecc...) e da svariati IP. Ovviamente erano generati da bot.
Spostando la porta su un altra di cui ero sicuro fosse libera (basta un netstat e che non usi quelle alte, ma ne tieni una bassa, diciamo <10000) non ho avuto più tentativi indesiderati, proprio perchè i bot provano solo sulla 22 (anche se non in ascolto, prova a creare una regola ad hoc di iptables che logga i tentativi) e non su una non-standard; anche i portscan per essere più veloci provano solo range limitati di porte.

Finezza in più (che anche tu puoi fare visto che usi un router): in realtà sshd sulla macchina è effettivamente in ascolto sulla 22; infatti per accedere dalla mia lan basta un ssh utente@server. Dove altero il numero della porta del servizio e proprio attraverso il NAT del router: in pratica quando fuori dalla lan esegui un ssh utente@server -p 12345 (es. di porta) il router rigira la connessione alla porta 22 del server; così dalla lan è tutto più immediato e da fuori sono protetto dai bot poichè la 22 risulta "closed".

12345 ROUTER WAN -> 22 ROUTER LAN ----- 22 SERVER

Spero di esserti stato utile, ciao.

dennyv
14-08-2006, 18:51
Ah, aggiungo che se non puoi modificare la NAT del router avrai gli stessi problemi anche con la porta settata su 22, a meno che quelli di Libero tenagano aperta sul router la 22 di "default".

osa
14-08-2006, 20:10
Ah, aggiungo che se non puoi modificare la NAT del router avrai gli stessi problemi anche con la porta settata su 22, a meno che quelli di Libero tenagano aperta sul router la 22 di "default".
Ho già cambiato la porta del server ssh. Quando apro la pagina del modem, ci sono diverse opzioni modificabili ad esempio la route ip table, e per quanto riguarda la nat c'è un opzione NAT Options dove posso scegliere: Nat global Info, Nat Rule Entry, e Nat translation. Poi ci sono i seguenti parametri che possono essere alterati.
NAT Global Information
TCP Idle Timeout(sec):
TCP Close Wait(sec):
TCP Def Timeout(sec):
UDP Timeout(sec):
ICMP Timeout(sec):
GRE Timeout(sec):
ESP Timeout(sec):
Default Nat Age(sec):
NAPT Port Start: 50000
NAPT Port End: 51023

Poi dirmi di preciso cosa devo cambiare???

dennyv
14-08-2006, 23:05
Ho già cambiato la porta del server ssh. Quando apro la pagina del modem, ci sono diverse opzioni modificabili ad esempio la route ip table, e per quanto riguarda la nat c'è un opzione NAT Options dove posso scegliere: Nat global Info, Nat Rule Entry, e Nat translation. Poi ci sono i seguenti parametri che possono essere alterati.
NAT Global Information
TCP Idle Timeout(sec):
TCP Close Wait(sec):
TCP Def Timeout(sec):
UDP Timeout(sec):
ICMP Timeout(sec):
GRE Timeout(sec):
ESP Timeout(sec):
Default Nat Age(sec):
NAPT Port Start: 50000
NAPT Port End: 51023

Poi dirmi di preciso cosa devo cambiare???

Questi dovrebbero essere i parametri generali della gestione della NAT, invece quello che a te serve è qualcosa che ti permetta di creare delle regole in cui setti la porta di origine, la porta di destinazione e l'ip di destinazione.
Immagino che sia in NAT rule entry o in NAT translation...

Che router è?

scorpion89
14-08-2006, 23:40
Se ho capito bene devi forwardare la porta!!
Cerca sul router qualcosa tipo Port Forwarding

Ciao

osa
15-08-2006, 01:19
Questi dovrebbero essere i parametri generali della gestione della NAT, invece quello che a te serve è qualcosa che ti permetta di creare delle regole in cui setti la porta di origine, la porta di destinazione e l'ip di destinazione.
Immagino che sia in NAT rule entry o in NAT translation...

Che router è?
Il router è un Telit Ar520.
Qui (http://img205.imageshack.us/my.php?image=screencr0.png) trovi la schermata delle Nat rules: . Ti ringrazio per la gentilezza.

dennyv
15-08-2006, 12:16
Guarda, questa guida è per emule, ma il principio è identico, basta che cambi i numeri delle porte e adatti gli ip a quelli della tua rete!

http://www.emule.it/guida_emule/config_porte/Telit_AR520.asp

Ciao!

osa
15-08-2006, 14:14
Guarda, questa guida è per emule, ma il principio è identico, basta che cambi i numeri delle porte e adatti gli ip a quelli della tua rete!

http://www.emule.it/guida_emule/config_porte/Telit_AR520.asp

Ciao!
Grazie per l'aiuto, ho fatto come dice la guida ma non riesco a collegarmi con ssh.
L'ip locale del mio pc è 192.168.1.3 come indicato nella guida, infatti ssh 192.168.1.3 funziona. Il protocollo nella configurazione deve essere TCP, vero?
Non so come fare....

dennyv
15-08-2006, 15:40
Sì, TCP:

da quanto ho capito dalla guida devi prima di tutto creare una regola del firewall, falla esattamente uguale alla prima immagine

http://www.emule.it/guida_emule/config_porte/images/ar520_4.GIF

Però metti 22 invece di 4662; la seconda immagine saltala.

Poi esegui la terza imamgine

http://www.emule.it/guida_emule/config_porte/images/ar520_6bis.GIF

Sempre cambiando 4662 con 22. Infine ricordati di salvare e riavviare.
NOTA BENE Per provare che funzioni correttamente richiamando ssh attraverso un nome dns (dominio) o ip pubblico devi provare fuori dalla tua rete locale, altrimenti esegui un ssh sul router (che oviamente non ha il servizio).
Se mi dai ip o dominio, magari anche via mp, controllo se sei raggiungibile; ovviamente non mi mandare user e passwd!! :D

Ad esempio: se io eseguo ssh 192.168.0.11 all'interno della mia rete locale, mi collegherò al mio server; ma se eseguo ssh mioserver.org (sempre dalla lan) non riuscirò mai a connettermi, poichè mioserver.org -> 87.blabla (ip pubblico) -> router quindi è come se cercassi ssh sul router. L'unica possibilità per provare se funziona è da fuori. Mentre per l'uso interno devi modificare il file /etc/hosts (o C:\win...\system..\drivers\etc\hosts) dei tuoi client in modo che mioserver.org sia 192.168.0.11 l'ip locale della macchina)

Spero di essere stato chiaro! Se c'è qualcosa fammi sapere

osa
15-08-2006, 18:25
Sì, TCP:

da quanto ho capito dalla guida devi prima di tutto creare una regola del firewall, falla esattamente uguale alla prima immagine

http://www.emule.it/guida_emule/config_porte/images/ar520_4.GIF

Però metti 22 invece di 4662; la seconda immagine saltala.

Poi esegui la terza imamgine

http://www.emule.it/guida_emule/config_porte/images/ar520_6bis.GIF

Sempre cambiando 4662 con 22. Infine ricordati di salvare e riavviare.
NOTA BENE Per provare che funzioni correttamente richiamando ssh attraverso un nome dns (dominio) o ip pubblico devi provare fuori dalla tua rete locale, altrimenti esegui un ssh sul router (che oviamente non ha il servizio).
Se mi dai ip o dominio, magari anche via mp, controllo se sei raggiungibile; ovviamente non mi mandare user e passwd!! :D

Ad esempio: se io eseguo ssh 192.168.0.11 all'interno della mia rete locale, mi collegherò al mio server; ma se eseguo ssh mioserver.org (sempre dalla lan) non riuscirò mai a connettermi, poichè mioserver.org -> 87.blabla (ip pubblico) -> router quindi è come se cercassi ssh sul router. L'unica possibilità per provare se funziona è da fuori. Mentre per l'uso interno devi modificare il file /etc/hosts (o C:\win...\system..\drivers\etc\hosts) dei tuoi client in modo che mioserver.org sia 192.168.0.11 l'ip locale della macchina)

Spero di essere stato chiaro! Se c'è qualcosa fammi sapere

Se io digito ssh localhost oppure 192.168.0.1 la connessione avviene, ma se al posto di localhost metto il mio Ip che è un ip dinamico non riesco a connettermi. Quindi devo collegarmi da un computer remoto e da li devo provaere?

dennyv
15-08-2006, 18:54
Se io digito ssh localhost oppure 192.168.0.1 la connessione avviene, ma se al posto di localhost metto il mio Ip che è un ip dinamico non riesco a connettermi. Quindi devo collegarmi da un computer remoto e da li devo provaere?

Sì esatto: se tu inserisci il tuo ip pubblico (dinamico o no) e sei all'interno della tua lan, il router non farà il nat dell'indirizzo, quindi è come se tu cercassi di accedere alla porta 22 del router (occhio del router, non degli indirizzi nattati).
Quindi si devi provare da fuori!

osa
15-08-2006, 22:22
Grazie! Da remoto funziona!!!
Per attivare anche il server ftp o sftp devo sempre modificare il router come fatto per ssh?
Ho notato che se digito ftp MY_IP da remoto dopo aver immesso l'username non mi è possibile digitare la passwords (mentre se lo faccio da locale, dopo aver digitato la password mi viene dato un Login failed, cosa strana la password è corretta). Mentre se do il comando sftp MY_IP sia da locale che da remoto ho il seguente messaggio:
Connection refused
Couldn't read packet: Connection reset by peer
Ho aperto la porta 22 con: iptables -A INPUT -p tcp --dport 22 -j ACCEPT