Visualizzazione post con etichetta SSH. Mostra tutti i post
Visualizzazione post con etichetta SSH. Mostra tutti i post

martedì 7 novembre 2017

copia e sincronia file con rsync

Aggiornamento nov 2017
copia e sincronia di file con un determinato pattern
rsync -avr ---include "pattern" --include "*/" --exclude "*" <from-path> <to-path>

copia e sincronia file con find per file vecchi
find path -mtime +2000 >/tmp/rsyncfiles #cerca i file modificati o creati più di 2000 giorni fa e li scrive in un file
rsync -Ravh --files-from=/tmp/rsyncfiles . <destination-path> 
attenzione al punto è importante!
Aggiornamento dicembre 2016
http://www.tecmint.com/sync-new-changed-modified-files-rsync-linux/#

Aggiornamento Giugno 2016automatizzare rsync con Crono:
https://www.marksanborn.net/howto/use-rsync-for-daily-weekly-and-full-monthly-backups/


Aggiornamento maggio 2014:
rsync con samba:
si monta prima la periferica di rete samba con il comando
# mkdir /mnt/cifs
# mount.cifs //192.168.101.100/sales /mnt/cifs -o username=shareuser,nounix

attenzione che le opzioni scritte dopo la -o non vogliono spazi
e quindi il gioco è fatto perchè userai il comando rsync come per qualsiasi folder locale

settembre 2013
Se nasce l'esigenza di copiare tonnellate di file e magari fare in modo che le volte successive la copia sia sincronizzata, rsync è il comando più potente anche perchè permette di copiare o sincronizzare in locale ed in remoto tramite ssh
alcune dritte:

questi link danno qualche esmpio utile
http://www.cyberciti.biz/tips/linux-use-rsync-transfer-mirror-files-directories.html
http://www.thegeekstuff.com/2010/09/rsync-command-examples/

gli attribbuti che ho usato
-r per copiare anche le sottodir
--progress mi dice per ogni file quanto ci vuole
-v mi dice che file o dir sta copiando
-a per conservare tutti gli attributi
--delete cancella file nella destinazione che non appartengono al source
--remove-source-files cancella il file copiato dalla dir sorgente
se specifichi una dir di destinazione inesistente lui la crea

per collegarmi ad un computer remoto ho usato ad esempio
# rsync -arve "ssh -l ettore" --delete Dropbox/ 192.168.13.112:~/Dropbox/

# rsync --progress -avre 'ssh -l root' /var/lib/libvirt/images/ 192.168.13.51:/var/lib/libvirt/images/

chiaramente è necessario che lo user ssh abbia i permessi per scrivere

altri esempi utili:
http://www.thegeekstuff.com/2011/01/rsync-exclude-files-and-folders/

mercoledì 8 giugno 2016

lanciare da shell programmi con interfaccia grafica su un computer remoto su display remoti

Un ottimo articolo che risponde in maniera esaustiva alla questione:
https://guiodic.wordpress.com/2010/09/18/xorg-ssh-altro-che-desktop-remoto/

Caso pratico:
devo accendere teamviewer su di una macchina remota dotata solo di ssh ma con serverX funzionante.
Ciò significa lanciare un'applicazione con GUI da un terminale ssh. Se la si lancia così com'è l'applicazione dice che non trova il Display su cui far partire la GUI e si spegne. Quindi nel terminale bisogna settare il display su cui far comparire la GUI. Se il terminale sta su di una macchina con Xorg acceso, si può settare il display locale digitando

export DISPLAY=:0

una volta settato il display si può lanciare l'applicazione come ad esempio teamviewer

Aggiornamento 31 luglio 2017:
ho trovato anche questo post interessante per visualizzare desktop di macchine virtuali da remoto:
https://serverfault.com/questions/196379/virt-manager-virt-viewer-virtualization-command-line-alternatives
cito:
Ultimately virt-manager is doing the following behind the scenes:

virt-viewer -c qemu+ssh://root@192.168.1.1/system myvm1
Where 192.168.1.1 is my KVM headless server and myvm1 is one of my guest KVM instances. Alternatively you can remotely run virt-manager from the headless system and tunnel it through ssh with a command like this:

ssh -X root@192.168.1.1 virt-manager
This works OK too, but I generally only use this in LAN situations, not WAN.

Comunque, in definitiva se avete un SO linux con sessione X in funzione e potete collegarvi via ssh. allora basta un
ssh -X user@remote_machine per aprire una sessione ssh dove tutti i programmi che usano una GUI vengono indirizzati al computer remoto. FINE non serve altro

venerdì 22 maggio 2015

controllo intrusioni sul proprio server

il file che ci dice chi si connette al nostro pc o server è /var/log/auth.log

se volete sapere quanti tentativi di autenticazione falliti ci sono stati sulla vostra macchina allora

egrep -ci 'auth.*fail.*;' /var/log/auth.log

se volete sapere da chi provengono, togli il -ci

se vuoi sapere quali utenti hanno tentato di loggarsi
egrep 'Failed password for' /var/log/auth.log

invece se vuoi vedere chi si è loggato
egrep 'Accepted password for' /var/log/auth.log

infine un tutorial per blindare macchine di frontiera con IP pubblico
http://www.cyberciti.biz/tips/linux-unix-bsd-openssh-server-best-practices.html

se vuoi ridurre i tentativi di intrusione si potrebbe provare
http://www.fail2ban.org/wiki/index.php/Main_Page

per uno studio statistico degli attacchi
https://www.netmess.org/examine-your-attackers/

lunedì 27 maggio 2013

reverse ssh tunnelling

Aggiornamento del 05/07/2021 - tutorial per raspberry:

https://www.it-react.com/index.php/2020/01/06/how-to-setup-reverse-ssh-tunnel-on-linux

ATTENZIONE!: Il tutorial permette anche di automatizzare il reverse Tunnelling con un demone che controlla lo stato ed eventualmente riavvia il tunnelling ( e funziona)!

La questione è la seguente:
ho una macchina senza indirizzo pubblico (dietro ad un NAT e firewall intoccabile) con linux e vorrei ragiungerla da internet.
mi basta anche una shell ssh, ma come fare?
VNC chiede il forwarding delle porte sul router NAT ed è quindi non praticabile.
Esiste però una soluzione elegante e affidabile che ha solo bisogno di un server con IP pubblico:
il reverse SSH tunnelling!

si usa così (testato su debian):
dalla macchina a cui voglio connettermi (destinazione) devo:
installare openssh-server
lanciare il reverse SSH tunnelling verso il server con ip pubblico che diciamo ha l'indirizzo 10.10.10.1

scriverò:
[ettore@destinazione ~]$ ssh -R 19999:localhost:22 user@10.10.10.1

la porta 19999 è una qualsiasi porta sopra alla 1024 che sia libera
"localhost" è 127.0.0.1 e deve rimanere così
user è l'account con cui ci si collega al server

una volta stabilita la sessione (che non deve essere interrotta) basterà dal server digitare
user@server:~$ ssh ettore@localhost -p 19999
per aprire una sessione ssh sulla macchina "destinazione" senza conoscere il suo IP! MAGICO!

Ricapitolando, se voglio connettermi a "destinazione" da una qualsiasi macchina con connessione internet dovrò:
1. aver lanciato l'ssh reverse tunnelling su "destinazione" verso il server o chiamando qualcuno o facendolo fisicamente.

2 . collegarmi via ssh al server con ip pubblico ed aprire la sessione ssh
user@server:~$ ssh ettore@localhost -p 19999

per maggiori dettagli
http://www.howtoforge.com/reverse-ssh-tunneling
Attenzione!
Per gli utenti di Fedora e più in generale di SELINUX bisogna configurare SELINUX per permettere l'ssh tunnelling sulla macchina "destinazione"

martedì 29 gennaio 2013

esercitazioni per imparare i comandi bash e gli script

Chi, come me, vuole realmente appassionarsi all'universo linux (e proviene dall'universo microsoft) deve vincere la repulsione alla linea di comando
sono esercizi utili nella configurazione quotidiana del PC:

1) mostra il contenuto nascosto della dir
R: ls -a

2) edita uno script
R: vi nomedelloscript poi per inserire il testo devi andare in insert mode con il tasto insert, mentre per salvare e uscire basta tornare in command mode e scrivere ZZ. per maggiori dettagli
http://www.tutorialspoint.com/unix/unix-vi-editor.htm

3)rinomina o sposta file
R: mv nomeoriginale nomenuovo

4)fai gli aggiornamenti di fedora
R: yum update

5)rimuovi un pacchetto o programma
R: yum remove nomedelprogramma

6)come cercare un file
R:  usa il comando find; per sintassi ed esempi
http://www.cyberciti.biz/tips/linux-findinglocating-files-with-find-command-part-1.html

7)il comando cat: a che serve?
R: serve a visualizzare il contenuto di file e spostarlo o unirlo in altri file. Può anche editare nuovi file
per sintassi ed esempi
http://www.cyberciti.biz/faq/howto-use-cat-command-in-unix-linux-shell-script/

8) lista dei comandi digitati
R: history
per sintassi ed esempi
http://www.cyberciti.biz/faq/howto-flush-clearing-command-line-cache/

9) visualizza file pdf in Gnome
R: evidence File.pdf

10) inviare mail con attachmet
R: installare e utilizzare mutt
http://www.mutt.org/doc/manual/manual-6.html

11) utilizzare la pendrive
R: se la pendrive viene montata da Nautilus in fedora allora la posizione è /run/media/USER/PENDRIVE
altrimenti si usa il comando MOUNT prima però bisogna conoscere le memorie di massa installate
http://www.cyberciti.biz/tips/linux-how-to-use-usb-penflash-stick.html

12) visualizza le memorie di massa installate sul pc
R: fdisk -l

13) lista dei processi attivi
R: ci sono vari modi, dal più semplice "ps -A" o analogo "ps -e" al comando "top" ai più sofisticati (da installare) htop e atop
per maggiori dettagli vedi
http://www.cyberciti.biz/faq/show-all-running-processes-in-linux/

14) lista dei DNS sulla mia macchina
R: cat /etc/resolv.conf

15) come eseguire un file binario (l'equivalente del run in Windows)
R: rendi prima eseguibile il file con
chmod +x file.bin
poi esegui con ./file.bin e basta

16) quali periferiche USB sono attaccate al mio PC
R: digita il comando
lsusb

Da Fare:
- Installazione di teamviewer, scrittura dello script ed esecuzione all'avio dello script che genera la png della schermata per conoscere ID e PW del computer
R: su Fedora
- Installazione di un server SSH
- Installazione di un server Samba
- Installazione di un server cloud su amazon