Una guida ai Comandi Linux Essenziali – prima parte

LINUX

Navigare nel terminale Linux non è sempre semplice, ma conoscere i comandi giusti può fare una grande differenza. In questa serie di  articoli, proverò a guidarti attraverso alcuni dei comandi Linux più avanzati e utili, come `awk`, `sed`, e `systemctl`. Questa guida è pensata sia per chi si sta avvicinando ora a Linux sia per gli utenti esperti che vogliono approfondire le loro conoscenze.

Di seguito una breve guida per alcuni  comandi Linux che ritendo sia necessario conoscere:

awk

Uso: `awk [opzioni] ‘programma’ input-file(s)`:

  • Descrizione: `awk` è un linguaggio di programmazione usato per la manipolazione di dati e la generazione di report. Permette di scrivere piccoli programmi che implementano complesse operazioni su file di testo.
  • Esempio: Stampa la seconda colonna di un file:
awk '{print $2}' file.txt

sed

Uso: `sed [opzioni] ‘comando’ file`:

  • Descrizione: `sed` è uno stream editor per modificare i file di testo automaticamente. È utilizzato comunemente per sostituire testo, inserire o cancellare linee
  •  Esempio: Sostituisce “vecchio” con “nuovo” in un file:
sed 's/vecchio/nuovo/g' file.txt

grep

Uso: `grep [opzioni] pattern [file]`

  •  Descrizione: `grep` è usato per cercare all’interno dei file testuali per righe che corrispondono a un pattern specificato.
  •  Esempio: Cerca la parola “esempio” in `documento.txt`:
grep "esempio" documento.txt

systemctl

Uso: `systemctl [comando] [nome-servizio]`

  • – Descrizione: `systemctl` è il comando centrale per gestire il sistema systemd e i servizi relativi.
  •  Esempio: Avvia il servizio ssh:
systemctl start sshd

iptables

Uso: `iptables [opzioni]`

  • Descrizione: `iptables` è utilizzato per configurare le regole del firewall nel kernel Linux.
  • Esempi: Bloccare tutto il traffico da una specifica subnet

 

a.Blocca tutto il traffico in entrata da una subnet specifica, ad esempio la subnet `192.168.1.0/24`:

iptables -A INPUT -s 192.168.1.0/24 -j DROP

b.Consente il traffico su una specifica porta, per consentire il traffico su una porta specifica, come la porta 80 (HTTP), puoi utilizzare il seguente comando:

iptables -A INPUT -p tcp --dport 80 -j ACCEPT

c. Reindirizza il traffico da una porta all’altra, questo comando è utile per il reindirizzamento del traffico, ad esempio, reindirizzare tutto il traffico dalla porta 80 alla porta 8080:

iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8080

d. Blocca il traffico in uscita verso un determinato IP, se vuoi bloccare tutto il traffico in uscita verso un IP specifico, come `123.123.123.123`, puoi fare così:

iptables -A OUTPUT -d 123.123.123.123 -j DROP

e. Limita i tentativi di connessione per mitigare gli attacchi di tipo DoS, puoi limitare il numero di tentativi di connessione da un IP usando il modulo `limit`, questo comando consente non più di 10 connessioni al minuto con una “bolla” di 3 connessioni.

iptables -A INPUT -p tcp --dport 80 -m limit --limit 10/min --limit-burst 3 -j ACCEPT

f. Consente il traffico solo se proviene da una specifica interfaccia di rete, per esempio, consentire il traffico in ingresso sulla porta 22 (SSH) solo se proviene dall’interfaccia `eth0`:

iptables -A INPUT -i eth0 -p tcp --dport 22 -j ACCEPT

g. Registra i pacchetti droppati, per monitorare gli accessi o attività sospette, potresti voler registrare i pacchetti che vengono droppati:

iptables -A INPUT -m limit --limit 5/min -j LOG --log-prefix "iptables dropped: " --log-level 4
iptables -A INPUT -j DROP

tcpdump

Uso: `tcpdump [opzioni]`
– Descrizione: `tcpdump` è uno strumento per analizzare il traffico di rete che passa attraverso il tuo sistema.
– Esempio: Cattura pacchetti sulla porta 80:

tcpdump port 80

rsync

Uso: `rsync [opzioni] sorgente destinazione`
– Descrizione: `rsync` è usato per la sincronizzazione di file e cartelle tra due sistemi in modo efficiente.
– Esempio: Sincronizza la directory locale con una remota:

rsync -avz /local/dir user@remote:/remote/dir

find

Uso: `find [percorso] [opzioni] [azione]`
– Descrizione: `find` cerca file e directory nel file system che soddisfano una condizione espressa.
– Esempio: Trova tutti i file .txt modificati negli ultimi 7 giorni:

find / -name '*.txt' -mtime -7

cron

Uso: Editing di crontab con `crontab -e`
– Descrizione: `cron` è usato per pianificare l’esecuzione di script a intervalli regolari.
– Esempio: Esegui uno script ogni giorno alle 5 AM:

0 5 * * * /path/to/script.sh

lsof

Uso: `lsof [opzioni]`
– Descrizione: `lsof` elenca i file aperti da processi in esecuzione.
– Esempio: Elenca tutti i file aperti da un utente specifico:

lsof -u nomeutente

 

Per maggiori dettagli  e opzioni avanzate, consulta le pagine man del tuo sistema (`man nomecomando`).

Se vuoi farmi qualche richiesta o contattarmi per un aiuto riempi il seguente form

    Comments