[:it]Linux/Raspberry : impostare che tutta la navigazione vada sul proxy[:]

[:it]Una volta impostato un proxy, ad esempio squid, è necessario obbligare tutti gli utenti a dover navigare attraverso il proxy.

Per far questo si va a modificare il file

nano /etc/squid/squid.conf

e si ricerca la porta di default dello squid sostituendo la 3128 con la 8080.

Poi aggiungere alla tabella NAT del firewall la seguente riga:

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

a questo punto tutto il traffico deve passare per il proxy.

Se si dovesse solo vedere la regola inserita si deve digitare il comando:

iptables -t nat –list

se si volesse cancellare la regola appena inserita digitare:

iptables -t nat -D PREROUTING 1

 [:]

Pubblicato in Senza categoria | Lascia un commento

[:it]Raspberry: installare Proxy squid e Webmin[:]

[:it]Impostare un proxy server per:

  • creare una cache per memorizzare le pagine web senza che ogni client debba effettuare la richiesta al server
  • per controllare l’accesso
sudo apt-get install squid -y

aprire il file di configurazione:

nano /etc/squid/squid.conf

usa Ctrl + W per trovare ogni sezione

http_access allow localnet --> rimuovi #
Trova: acl localnet section

aggiungi:
acl localnet src YOUR CIDR IP RANGE # Description

ad esempio 

acl localnet src 192.168.5.0/24 # Home Network

Assicurarsi che il range e la sottomaschera corrisponda al range della tua rete.

Trova: # dns_v4_first off rimuovi # e cambia off a on.

impostare

Cache_mem 256 MB

impostare:

maximum_object_size 4096 MB

impostare

Maximum_object_size_in_memory 8192 KB

impostare la seguente configurazione all’interno del file squid.conf

cache_dir ufs /var/spool/squid  8192 16 256

quindi:

service squid restart

Gestione grafica di squid:

apt-get -f install
apt-get -y install apache2 apache2-suexec-custom libnet-ssleay-perl libauthen-pam-perl libio-pty-perl apt-show-versions samba bind9 webalizer locate mysql-server

con questo comando alla fine installo LAMP con mariadB

quindi installo la parte grafica per gestire il proxy:

apt-get install squid-cgi

vado sulla root e creo la directory:

mkdir installed-packages
wget http://www.webmin.com/download/deb/webmin-current.deb

adesso aggiungo il pacchetto appena scaricato e installo la parte grafica:

dpkg -i webmin-current.deb

quindi accedere all URL corrispondente allìIp del server:

https://ipserver:10000

login pi

password quella impostata come amministratore del raspberry.

SI vedrà una console completa del sistema.

Lasciando le impostazioni della rete impostate in fase di installazione le impostazioni per il funzionamento del proxy saranno:

10.0.0.1:3128

Normalmente il proxy utilizzerà la porta 3128 o 8080[:]

Pubblicato in Senza categoria | 1 commento

[:it]Raspberry – hotspot wifi – senza proxy nella LAN[:]

[:it]

Jim Warren

Bisogna prima di tutto installare

apt-get install dnsmasq hostapd

a questo punto si va:

nano /etc/dhcpcd.conf

aggiungere la seguente riga alla base del file:

denyinterfaces wlan0

Ora dobbiamo configurare l’ IP statico.

nano /etc/network/interfaces

allow-hotplug wlan0
iface wlan0 inet static
address 172.24.1.1
netmask 255.255.255.0
network 172.24.1.0
broadcast 172.24.1.255
# wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf

auto eth0
allow-hotplug eth0
iface eth0 inet dhcp
wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf
iface default inet dhcp

per far ripartire l’interfaccia bisogna digitare

service networking restart

HOSTPAD

Ora dobbiamo configurare hostapd.
Dobbiamo creare un nuovo file di configurazione con il comando

nano vi /etc/hostapd/hostapd.conf

# This is the name of the WiFi interface we configured above
interface=wlan0

# Use the nl80211 driver with the brcmfmac driver
driver=nl80211

# This is the name of the network
ssid=VoxPopuli-Hub

# Use the 2.4GHz band
hw_mode=g

# Use channel 6
channel=6

# Enable 802.11n
ieee80211n=1

# Enable WMM
wmm_enabled=1

# Enable 40MHz channels with 20ns guard interval
ht_capab=[HT40][SHORT-GI-20][DSSS_CCK-40]

# Accept all MAC addresses
macaddr_acl=0

# Use WPA authentication
auth_algs=1

# Require clients to know the network name
ignore_broadcast_ssid=0

# Use WPA2
wpa=2

# Use a pre-shared key
wpa_key_mgmt=WPA-PSK

# The network passphrase
wpa_passphrase=raspberry

# Use AES, instead of TKIP
rsn_pairwise=CCMP

quindi dare il comando

/usr/sbin/hostapd /etc/hostapd/hostapd.conf

Apri il file di configurazione di hostapd con

nano /etc/default/hostapd

e cerca la riga #DAEMON_CONF=””.

Deve essere sostituita con DAEMON_CONF=”/etc/hostapd/hostapd.conf”.

mv /etc/dnsmasq.conf /etc/dnsmasq.conf.orig
vi /etc/dnsmasq.conf

interface=wlan0 # Use interface wlan0
listen-address=172.24.1.1 # Explicitly specify the address to listen on
bind-interfaces # Bind to the interface to make sure we aren’t sending things elsewhere
server=8.8.8.8 # Forward DNS requests to Google DNS
domain-needed # Don’t forward short names
bogus-priv # Never forward addresses in the non-routed address spaces.
dhcp-range=172.24.1.50,172.24.1.150,12h # Assign IP addresses between 172.24.1.50 and 172.24.1.150 with a 12 hour lease time

Una delle ultime cose che dobbiamo fare è di abilitare l’inoltro dei pacchetti.

Per fare questo apriamo il file sysctl.conf con sudo vi /etc/sysctl.con e togliamo il commento dall’inizio della riga che contiene net.ipv4.ip_forward=1.

L’operazione appena fatta diventa effettiva al prossimo riavvio della raspberry, ma è possibile attivare subito la modifica con:

sh -c “echo 1 > /proc/sys/net/ipv4/ip_forward”

A questo punto facciamo un ultima operazione che ci consentirà di condividere la connessione internet della Raspberry Pi (attraverso la scheda di rete) con i dispositivi collegati tramite WiFi. Per farlo bisogna configurare un NAT tra l’interfaccia wlan0 e l’interfaccia eth0. Possiamo farlo utilizzando i seguenti comandi:

iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
iptables -A FORWARD -i eth0 -o wlan0 -m state –state RELATED,ESTABLISHED -j ACCEPT
iptables -A FORWARD -i wlan0 -o eth0 -j ACCEPT

Questa ultima configurazione deve essere applicata tutte le volte che la Raspberry viene riavviata, quindi procediamo in questo modo. Prima di tutto ci salviamo le regole in un file:

sh -c “iptables-save > /etc/iptables.ipv4.nat

poi, per fare in modo che vengano applicate ad ogni reboot della Raspberry, ne aggiungiamo l’esecuzione nel file rc.local. Tale file, situato sotto /etc, viene eseguito ogni volta che la Rasp parte. Quindi, riassumento:

vi /etc/rc.local
al cui interno metteremo:

iptables-restore < /etc/iptables.ipv4.nat
IMPORTANTE: Se non vuoi che la Rasp si blocchi in fase di boot, ricorda di controllare che alla fine del file /etc/rc.local ci sia sempre l’istruzione exit 0 alla fine.

Reboot del rapberry[:]

Pubblicato in Senza categoria | Lascia un commento

[:it]TPSIT – CIDR – Classless Inter-Domain Routing[:]

[:it]

Jim Warren

Il CIDR (Classless Inter-Domain Routing) è un nuovo schema di indirizzamento introdotto nel 1993 per sostituire lo schema classful secondo il quale tutti gli indirizzi IP appartengono ad una specifica classe (classe A, B e C).

La notazione usata per esprimere indirizzi CIDR è la seguente: a.b.c.d/x, dove x è il numero di bit (contati partendo dal più significativo a sinistra) che compongono la parte di indirizzo della rete. I rimanenti y = ( 32 − x ) bit consentono di calcolare il numero di host della sottorete pari a 2^{y}-2  ( − 2 ) è dovuto al fatto che il primo e l’ultimo indirizzo di ogni rete non sono assegnabili ad alcun host, in quanto riservati rispettivamente come indirizzo della rete in generale (usato ad esempio nelle tabelle dei router) e come indirizzo di broadcast (ovvero un indirizzo che comprende indistintamente ogni altro indirizzo all’interno di quella rete: viene usato ad esempio in alcuni protocolli di routing).

Utilizzando il CIDR, possiamo scegliere che struttura dare all’indirizzamento specificando semplicemente che parte assegnare alla rete e quale assegnare all’host.

Prendiamo due reti e assumiamo che gli host appartengano allo stesso dominio di collisione (uno switch o un hub):

  • 192.168.0.0/24 – netmask: 11111111.11111111.11111111.00000000 (255.255.255.0)
  • 192.168.1.0/24 – netmask: 11111111.11111111.11111111.00000000 (255.255.255.0)

Alle due reti sono assegnati 256 IP (28 bit) ciascuna, tra cui 254 usabili per gli host (difatti il .0 è riservato per la rete ed il .255 per il broadcast). Tuttavia, gli host di una rete non saranno in grado di raggiungere gli host dell’altra rete, pur essendo connessi allo stesso dominio di collisione. Ciò è dovuto al fatto che, avendo scelto come prefisso di routing i primi tre ottetti, le due reti risultano totalmente indipendenti e disconnesse l’un l’altra. Dunque, affinché gli host delle due reti possano vedersi, è necessario collegarle ad un router in grado di instradare i pacchetti.

Una seconda soluzione consiste nel diminuire di un bit il prefisso di routing, assegnando così a tale porzione 23 bit anziché 24, al fine di formare due sotto-reti:

  • 192.168.0.0/23 – netmask: 11111111.11111111.11111110.00000000 (255.255.254.0)
  • 192.168.1.0/23 – netmask: 11111111.11111111.11111110.00000000 (255.255.254.0)

In questo caso abbiamo i primi 23 bit assegnati al prefisso di routing, mentre i successivi 9 bit per gli host (512 IP). Poiché per ogni ottetto è possibile utilizzare fino a 256 bit, avremo due sotto-reti (192.168.0.0 e 192.168.1.0) in grado di comunicare senza necessità di instradare pacchetti tramite un router.

Voglio inserire i l link al seguente sito che calcola automaticamente la netmask ed il numero di host che possono essere presenti nella rete:

https://ipaddressguide.com/cidr

se adesso mettessimo come notazione della nostra rete:

172.16.0.1/12 avremo nella sottorete 255.240.0.0 e quindi

2^{20}-2=1.048.574 host a disposizione.

NOTA

Nella vecchia struttura a classi la notazione delle reti non permetteva un’efficiente suddivisione degli indirizzi in quanto le sottomaschere erano rigide:

classe A/8

classe B/16

classe C/24

in questo nuovo tipo invece si ha un’ottimizzazione degli indirizzi e dell’hardware.[:]

Pubblicato in Senza categoria | Lascia un commento

[:it]Raspberry – impostare Chromium con proxy [:]

[:it]Se si lavora con un proxy per poter navigare è necessario impostare il proxy.

Attenzione

il comando successivo non deve essre dato come root ma come utente non root:

chromium-browser –proxy-server=”ipproxy:portaproxy”

se vine dato come root comparirà il seguent messaggio:

[1116/083633.698451:FATAL:chrome_main_delegate.cc(477)] Check failed: process_type.empty(). Unable to get the user data directory for process type: zygote
#0 0x0000020c0eb0 <unknown>
#1 0x0000020d8210 <unknown>
#2 0x00000086f530 <unknown>
#3 0x000001d2abcc <unknown>
#4 0x000001d31640 <unknown>
#5 0x000001d29c88 <unknown>
#6 0x00000086ed0c <unknown>
#7 0x000075501678 __libc_start_main

Received signal 6
#0 0x0000020c0eb0 <unknown>
#1 0x0000020c0e20 <unknown>
#2 0x0000755176c0 <unknown>
#3 0x00007551645c gsignal
[end of stack trace]
Calling _exit(1). Core file will not be generated.
[1708:1708:1116/083633.704762:FATAL:zygote_host_impl_linux.cc(182)] Check failed: ReceiveFixedMessage(fds[0], kZygoteBootMessage, sizeof(kZygoteBootMessage), &boot_pid).
#0 0x0000020a6eb0 <unknown>
#1 0x0000020be210 <unknown>
#2 0x00000105e388 <unknown>
#3 0x00000105d2d8 <unknown>
#4 0x00000105d908 <unknown>
#5 0x000000ceacb8 <unknown>
#6 0x000000cf20c8 <unknown>
#7 0x000000cea358 <unknown>
#8 0x000001d110cc <unknown>
#9 0x000001d179cc <unknown>
#10 0x000001d0fc88 <unknown>
#11 0x000000854d0c <unknown>
#12 0x00007557c678 __libc_start_main

Received signal 6
#0 0x0000020a6eb0 <unknown>
#1 0x0000020a6e20 <unknown>
#2 0x0000755926c0 <unknown>
#3 0x00007559145c gsignal
[end of stack trace]
Calling _exit(1). Core file will not be generated.

 [:]

Pubblicato in Senza categoria | Lascia un commento

Raspberry – apt-get con proxy

[:it]

Jim Warren

Tale esigenza nasce quando si debba aggiornare o installare un pacchetto e si è in una LAN con un proxy attivo.

Io ho adottato questo metodo:

cd /etc/apt/apt.conf.d

poi:

sudo nano 10proxy

e poi ho scritto:

Acquire::http::Proxy “http://username:password@yourproxyaddress:proxyport/”;

dove con username e password esattamente la password e username per accedere al proxy.

Altro comando:

export http_proxy=”http://username:password@host:port/”

più compatto ma a volta potrebbe non funzionare.[:en]N[:de]N[:]

Pubblicato in Senza categoria | Lascia un commento

[:it]Raspberry – bridge wifi – ethernet[:]

[:it]Raspberry può diventare un bridge tra il wifi (dato da un cellulare che fa da hotspot mobile o un qualsiasi altro segnale wifi) e un altro host che ha la necessità di avere un collegamento alla rete ma è privo di wifi.

Il raspberry diventa un server dhcp ossia fornisce un indirizzo ip a tutti gli host che siu collegano ad esso.

Nella mia configurazione ho collegato all’uscita ethernet raspberry uno switch a cui si collegava un host con windows 10, un host debian sempre collegato allo switch ed un host Ubuntu sempre collegato allo switch.

Per comprendere tutti i passaggi è necessario conoscere:

  • impostazione porta wlan
  • dhcp
  • ip statico
  • modifica parametri di sistema
  • firewall

Per eseguire i comandi che seguono bisogna essere root

Impostazione wlan0

Editare il file /etc/wpa_supplicant/wpa_supplicant.conf  con il comando:

nano /etc/wpa_supplicant/wpa_supplicant.conf

aggiungere le seguenti righe senza cancellare quelle precedenti:

network=

{

      ssid="ReteETE"

      psk="PASSWORD"

}

con

  • ssid il nome della rete wifi
  • psk la password del wifi

si può verificare la corretta impostazione della rete con il comando:

wpa_passphrase "NOME-RETE" "password"

Impostazione IP statico

Adesso si deve impostare un IP statico andando ad editare il file /etc/network/interfaces con il comando:

nano /etc/network/interfaces

aggiungendo le seguenti righe:

allow-hotplug eth0
iface eth0 inet static
address 10.0.0.1    
netmask 255.255.255.0
network 10.0.0.0
broadcast 10.0.0.255

auto wlan0
allow-hotplug wlan0
iface wlan0 inet dhcp
wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf
iface default inet dhcp


da notare come gestisco entrambe le porte la eth0 e la wlan0 in maniera tale che quando ricarico la configurazione entrambe le porte siano correttamente configurate.

Per caricare la corretta configurazione digitare il comando:

service networking restart

Per verificare lo stato del servizio digitare:

service networking status

Installazione dhcp

per installare il dhcp bisogna prima installarlo con il comando:

apt-get install dnsmasq

è buona regola copiare il vecchio file di configurazione prima di modificarlo:

mv /etc/dnsmasq.conf /etc/dnsmasq.conf.orig

adesso vado a digitarlo:

nano /etc/dnsmasq.conf

ed inserisco le seguenti righe:

interface=eth0 # Use interface eth0
listen-address=10.0.0.1 # Specify the address to listen on
bind-interfaces      # Bind to the interface
server=208.67.222.222 # Use OpenDNS
domain-needed        # Don't forward short names
bogus-priv           # Drop the non-routed address spaces.
dhcp-range=10.0.0.10,10.0.0.50,12h # IP range and lease time

è necessario anche abilitare il forward nel file sdi configurazione sysctl.conf per abilitire l’invio IP IPv4p

Modifica variabili di configurazione di sistema

Bisogan editare il file:

nano /etc/sysctl.conf

e togliere il cancelletto alla riga

#net.ipv4.ip_forward=1

per attivare il nuovo parametro digitare:

sysctl --system

per verificare i parametri attivi nel sistema digitare il comando:

sysctl -a

Configurazione firewall

Si modifica il firewall per consentire a tutto il traffico dalla nostra interfaccia wlan0   alla eth0:

iptables -t nat -A POSTROUTING -o wlan0 -j MASQUERADE
iptables -A FORWARD -i wlan -o eth0 -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A FORWARD -i eth0 -o wlan0 -j ACCEPT

per consentire a tutte le modifiche di diventare definitive e non di cancellarsi ogni qualvolta che si fa il reboot del sistema si deve:

sh -c "iptables-save > /etc/iptables.ipv4.nat"
nano /etc/rc.local

inserire prima della riga exit 0 la riga:

iptables-restore < /etc/iptables.ipv4.nat

A questo punto si può far partire il dhcp:

service dnsmasq start

ma considerando tutte le notevoli modifiche effettuate, meglio è far ripartire il sistema.

[:]

Pubblicato in Senza categoria | Contrassegnato , , | 2 commenti

[:it]TPSIT – Linux – Installazione wordpress[:]

[:it]WordPress è lo strumento più conosciuto per la creazione di blog.

Prerequisito aver funzionante un server LAMP.

mysql -u root -p

ossia entro nel database come amministratore

CREATE USER 'wpuser'@'localhost' IDENTIFIED BY 'userpassword';

ossia creo un utente wpuser con un’opportuna password, si può verificare entrando in phpmyadmin il corretto funzionamento di tale utente.

CREATE DATABASE wp_database;
GRANT ALL ON `wp_database`.* TO `wpuser`@`localhost`;
FLUSH PRIVILEGES;
exit;
wget https://wordpress.org/latest.tar.gz

ossia mi scarico l’ultima versione di wordpress

tar xpf latest.tar.gz

scompatto il file compresso

copio tutta la mia directory nella directory in cui salvo i miei file html

cp -r wordpress /var/www/html

poi apro il mio web ed ho:

http://localhost/wordpress/index.php

mi chiederà varie impostazioni per il suo funzionamento, dare i comandi opportuni a seconda dell’impostazione data precedentemente.

Si chiederà di creare un file wp-config.php, basta usare nano e si creerà.

Alla fine per accedere al proprio wordpress locale si digita sul proprio browser:

localhost/wordpress e dando l’invio si avrà la schermata iniziale di wordpress.[:]

Pubblicato in Senza categoria | Lascia un commento

[:it]TPSIT – Backup completo del sistema con tar[:]

[:it]

Renè Magritte

Quando si sta installando del software nuovo è buona norma effettuare un backup completo del sistema in quanto tutto ciò che è stato installato deve essere ripristinato esattamente in quella maniera.

Ci si pone come utente root in /

 

 

Con il seguente comando:

tar -cvpzf /backup.tgz --exclude=/proc/* --exclude=/sys/* --exclude=/lost+found/* --exclude=/mnt/* --exclude=/media/* --exclude=/backup.tgz /

ossia utilizzo le opzioni del comando tar:

-c: indica che noi dobbiamo creare un nuovo archivio

-v: esegue l’operazione in modalità verbose, ossia ci mostra nel terminale tutto quello che il computer sta facendo

-p: dice a tar di mantenere inalterati tutti i permessi dei file

-z: comprime il file con gzip

-f /backup.tgz: f indica il nome del file compresso, in questo caso /backup.tgz, quindi verrà creato nella cartella /

–exclude=: non è necessario fare il backup dei contenuti delle cartelle /proc, /sys e /lost+found, sono stati eliminati anche /media e /mnt per evitare che venisse fatto un backup anche di eventuali partizioni o penne usb montate e infine è stato eliminato dal backup il file /backup.tgz, che dal momento in cui viene creato fa a tutti gli effetti parte del contenuto del disco e quindi è meglio eliminarlo dal backup

/: per ultimo bisogna indicare di quale cartella si vuole fare il backup, quindi in questo caso scriviamo / per fare un backup dell’intero disco

 

RIPRISTINO

tar -xvpzf /backup.tgz -C /

-x: indica che si vuole estrarre l’archivio

-C /: si sposta nella directory specificata, in questo caso /[:]

Pubblicato in Senza categoria | Lascia un commento

[:it]PHP – Approccio MySqli – connessione e creazione database, tabelle[:]

[:it]

Renè Magritte

Con Php ci si può interfacciare con il mariaDB.

MySQLi (MySQL improved), che può essere programmata tramite un approccio Object Oriented sebbene mantenga la possibilità di poter essere utilizzata anche con un approccio procedurale è un modo di poter scrivere sql.

Comprende le API (Application Programming Interface) per le prepared statements e le stored procedures, ma anche per query multiple e transazioni.

Per iniziare a lavorare con la libreria è necessario innanzitutto istanziare la relativa classe: il costruttore di MySQLi utilizzerà i parametri forniti, o quelli di default se non ne vengono specificati altri, per aprire la connessione con il DBMS, essa sarà il nostro tramite per comunicare di volta in volta le operazioni da svolgere sul database.

I metodi connect_error() e connect_errno() sono molto utili per controllare l’avvenuta connessione e consiglio sempre di usarli.

Eccone un esempio:

Attenzione alle seguenti cose, questo serve per connettersi al DBMS non allo specifico database. Serve solo la prima volta per creare un database, le volte successive si deve specificare il database a cui ci si deve connettere ed inoltre bisogna aver creato almeno un utente con gli opportuni accessi al database. Usare l’utente root solo per cancellare database e non dare mai l’autorizzazione ad altri utenti per fare tale operazione

il passo successivo è  quello di creare il database:

Quindi prima ci si connette al DBMS e poi si crea il DATABASE che nel caso specifico si chiama scuola.

Per avere i dettagli si può andare sulla seguente pagina in cui vi sono i comandi mysqli.

Per creare una tabella ci si deve prima connettere al database e poi effettuare la creazione della tabella. Naturalmente non serve più creare il database in quanto esso è già stato creato nel passo successivo.

Quindi come si vede mi sono prima connesso con il database scuola e poi ho creato la tabella login. Osservare che il campo password è un VARCHAR(64). Nel passo successivo lo spiego perchè.

Posso creare una tabella prima appoggiando il codice SQL in una variabile d’appoggio e poi passarla al metodo query.

Da notare che al termine dei comandi chiudo sempre la connessione con il database.

Pubblicato in Senza categoria | Lascia un commento