[:it]

jim warren
[WpProQuiz 60]
[:]
[:it]
jim warren
[WpProQuiz 60]
[:]
[:it]A differenza del post hot spot con Rasperry che creava sì un accesso wifi ma attivava un dhcp per la gestione delle sole connessioni wifi, in questo caso si crea un “semplice” bridge tra la porta eth0 e wlan0 usando bridge-utils in maniera molto attenta.
Tale scelta demanda al dhcp della LAN l’assegnazione degli indirizzi IP e nel contempo interviene il proxy presente nella LAN stessa con la relativa autenticazione e regole del firewall e controllo della navigazione.
Ecco i dettagli tecnici per la sua realizzazione:
apt-get install hostapd bridge-utils
bloccare il servizio hostapd
service hostapd stop
nano /etc/dhcpcd.conf
aggiungere
denyinterfaces wlan0
denyinterfaces eth0
alla fine del file ma sopra le altre righe interface
Salvo il file.
Dalla linea comandi
Aggiungo una porta virtuale che chiamo br0
brctl addbr br0
Connetto la porta di rete eth0
al bridge br0
.
brctl addif br0 eth0
ora vado a modificare il file interfaces
nano /etc/network/interfaces
aggiungerndo le seguenti righe
# Bridge setup
auto br0
iface br0 inet manual
bridge_ports eth0 wlan0
ora vado a modificare il file di configurazione hostapd.conf
nano /etc/hostapd/hostapd.conf
in questa maniera:
interface=wlan0
bridge=br0
ssid=NameOfNetwork
hw_mode=g
channel=7
wmm_enabled=0
macaddr_acl=0
auth_algs=1
ignore_broadcast_ssid=0
wpa=2
wpa_passphrase=AardvarkBadgerHedgehog
wpa_key_mgmt=WPA-PSK
wpa_pairwise=TKIP
rsn_pairwise=CCMP
se voglio modificare la banda di trasmissione posso seguire la seguente legenda:
‘hw_mode=g’ a ‘hw_mode=a’
adesso devo modificare:
nano /etc/default/hostapd
trovare la linea #DAEMON_CONF, e sostituirla con:
DAEMON_CONF="/etc/hostapd/hostapd.conf"
andare nel file /etc/sysctl.conf
net.ipv4.ip_forward=1
adesso modificare le tabelle del firewall
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
sh -c "iptables-save > /etc/iptables.ipv4.nat"
Andare sul file /etc/rc.local ed aggiungere sopra “exit 0” questa regola:
iptables-restore < /etc/iptables.ipv4.nat &
sudo service hostapd start
dare il comando
systemctl unmask hostapd.service
Dopo il reboot da un semplice ipconfig si vedrà che SOLO la porta logica br0 avrà asseganto l’indirizzo IP.
[:]
[: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
[:]
[:it]Impostare un proxy server per:
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[:]
[: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[:]
[: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 ) è 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):
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:
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
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.[:]
[: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.
[:]
[: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[:]
[: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:
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
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.
[:]
[: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.[:]