Category: Linux

Convertire i video da flv [formato molto in voga in rete] ad mpeg [formato riconosciuto dalla maggior parte dei dispositivi portatili (telefoni, palmari etc….)

1 – apt-get install ffmpeg

2 – ffmpeg -i FileVideo.flv -ab 56 -ar 22050 -b 500 -s 320x240 FileVideoConvertito.mpg

Volendo convertire una cartella intera:


cd /path/cartella;

for i in `ls *.flv`; do ffmpeg -i $i -ab 56 -ar 22050 -b 500-s 320x240 $i.mpg; done;

Mi è capitato che con l’aggiornamento di skype mi sono trovato incasinato in quanto il carattere era, a dir poco, schifoso….

Soluzione:

apt-get install qt3-qtconfig qt4-config

lanciare qt-config e qt4-config e settare su entrambi come font “Bitstream Sans” e dimensione a 8 o 10, a scelta :)
File -> Salva

Tutto a posto

Ecco, ho finito con le prove, e posso dire di essere abbastanza soddisfatto….
Sto usando con (abbastanza) soddisfazione BloGTK.
BloGTK è un programma per Linux, scritto in python, e che si appoggia alle librerie GTK, che permetti di avere un editor online/offline di blog.
La funzionalità più importanti sono sicuramente quella di editor off-line, ovvero scrivo il mio articolo/post, e, non appena avrò di nuovo disponibilità di connessione internet, farà l’upload dell’articolo tramite XML.
Il programma supporta diversi blog, tra cu:

  • MovableType versione 2.5 o successivi
  • Blogger
  • WordPress 1.5 o successivi o *.wordpress.com
  • Windows Live Spaces
  • Expression Engine (ma senza autoconfigurazione)
  • Qualunque altro blog che utilizzi le MetaWeblog API.

Installazione banale (“make install” nella root del programma, come utente root però).

Dispone di un’auto configurazione per i blog, ovvero io inserisco nell’interfaccia di configurazione il sito web da utilizzare e lui identifica il tipo di blog ed setta tutti i parametri, richiedendo solo utente e password (e l’eventuale abilitazione del protocollo nelle configurazioni del blog, se ottiene un 404 )

Altra cosettina carina, alla prima sincronizzazione con il proprio blog, si scarica gli articolie anche le categorie che ho impostato.

Unica “pecca” ( o forse devo ancora capire come si fa), è che gli articoli vanno salvati in locale, poi, quando si ha connettività, riaperti e syncati…..
Altra pecca, gli articoli gia salvati posso solamente leggerli o cancellarli, non modificarli…..

Il programma non è malaccio…. in mancanza di altro va benissimo… continuerò a cercare comunque….

Stefano

Problema:

root@Birillo:~# /etc/init.d/mysql restart
Stopping MySQL database server: mysqld.
Starting MySQL database server: mysqld.
Checking for corrupt, not cleanly closed and upgrade needing tables..
Warning: option ‘select_limit’: unsigned value 18446744073709551615 adjusted to 4294967295
Warning: option ‘max_join_size’: unsigned value 18446744073709551615 adjusted to 4294967295
Warning: option ‘select_limit’: unsigned value 18446744073709551615 adjusted to 4294967295
Warning: option ‘max_join_size’: unsigned value 18446744073709551615 adjusted to 4294967295
Warning: option ‘select_limit’: unsigned value 18446744073709551615 adjusted to 4294967295
Warning: option ‘max_join_size’: unsigned value 18446744073709551615 adjusted to 4294967295
Warning: option ‘select_limit’: unsigned value 18446744073709551615 adjusted to 4294967295
Warning: option ‘max_join_size’: unsigned value 18446744073709551615 adjusted to 4294967295
Warning: option ‘select_limit’: unsigned value 18446744073709551615 adjusted to 4294967295
Warning: option ‘max_join_size’: unsigned value 18446744073709551615 adjusted to 4294967295
Warning: option ‘select_limit’: unsigned value 18446744073709551615 adjusted to 4294967295
Warning: option ‘max_join_size’: unsigned value 18446744073709551615 adjusted to 4294967295
Warning: option ‘select_limit’: unsigned value 18446744073709551615 adjusted to 4294967295
Warning: option ‘max_join_size’: unsigned value 18446744073709551615 adjusted to 4294967295
Warning: option ‘select_limit’: unsigned value 18446744073709551615 adjusted to 4294967295
Warning: option ‘max_join_size’: unsigned value 18446744073709551615 adjusted to 4294967295
Warning: option ‘select_limit’: unsigned value 18446744073709551615 adjusted to 4294967295
Warning: option ‘max_join_size’: unsigned value 18446744073709551615 adjusted to 4294967295
Warning: option ‘select_limit’: unsigned value 18446744073709551615 adjusted to 4294967295
Warning: option ‘max_join_size’: unsigned value 18446744073709551615 adjusted to 4294967295
Warning: option ‘select_limit’: unsigned value 18446744073709551615 adjusted to 4294967295
Warning: option ‘max_join_size’: unsigned value 18446744073709551615 adjusted to 4294967295
Warning: option ‘select_limit’: unsigned value 18446744073709551615 adjusted to 4294967295
Warning: option ‘max_join_size’: unsigned value 18446744073709551615 adjusted to 4294967295
Warning: option ‘select_limit’: unsigned value 18446744073709551615 adjusted to 4294967295
Warning: option ‘max_join_size’: unsigned value 18446744073709551615 adjusted to 4294967295
Warning: option ‘select_limit’: unsigned value 18446744073709551615 adjusted to 4294967295
Warning: option ‘max_join_size’: unsigned value 18446744073709551615 adjusted to 4294967295
Warning: option ‘select_limit’: unsigned value 18446744073709551615 adjusted to 4294967295
Warning: option ‘max_join_size’: unsigned value 18446744073709551615 adjusted to 4294967295
Warning: option ‘select_limit’: unsigned value 18446744073709551615 adjusted to 4294967295
Warning: option ‘max_join_size’: unsigned value 18446744073709551615 adjusted to 4294967295
Warning: option ‘select_limit’: unsigned value 18446744073709551615 adjusted to 4294967295
Warning: option ‘max_join_size’: unsigned value 18446744073709551615 adjusted to 4294967295
Warning: option ‘select_limit’: unsigned value 18446744073709551615 adjusted to 4294967295
Warning: option ‘max_join_size’: unsigned value 18446744073709551615 adjusted to 4294967295
Warning: option ‘select_limit’: unsigned value 18446744073709551615 adjusted to 4294967295
Warning: option ‘max_join_size’: unsigned value 18446744073709551615 adjusted to 4294967295
Warning: option ‘select_limit’: unsigned value 18446744073709551615 adjusted to 4294967295
Warning: option ‘max_join_size’: unsigned value 18446744073709551615 adjusted to 4294967295
Warning: option ‘select_limit’: unsigned value 18446744073709551615 adjusted to 4294967295
Warning: option ‘max_join_size’: unsigned value 18446744073709551615 adjusted to 4294967295
Warning: option ‘select_limit’: unsigned value 18446744073709551615 adjusted to 4294967295
Warning: option ‘max_join_size’: unsigned value 18446744073709551615 adjusted to 4294967295
Warning: option ‘select_limit’: unsigned value 18446744073709551615 adjusted to 4294967295
Warning: option ‘max_join_size’: unsigned value 18446744073709551615 adjusted to 4294967295

root@Birillo:~#

Soluzione:

apt-get install mysql-server-5.1 :)

Spiegazione:

Bug notificato del check del db….. Upgrade e si risolve :D

Oggi mi sono posto una domanda….. Ma perché avendo una adsl a casa devo pagare anche l’accesso wap dal cellulare?

Il mio cellulare (K610i della sony ericsson), non dispone di wifi, ma ha il bluetooth….

Bhe, dov’è il problema allora? Basta collegare il cellulare via bluetooth al pc e poi sfruttare questa connessione per navigare…..

Bene, ecco come:

Intanto installiamo quello che ci serve: bluetooth e bluez-utils sono il supporto per il bluetooth su Linux, mentre il server dhcp ci serve per assegnare un ip al cellulare (quello che stiamo facendo è un accrocchio, non è una cosa standard, per cui nel telefono non esiste la possibilità di settare un ip statico….) iptables invece ci serve per nattare la connessione creata dal cellulare

apt-get install bluetooth bluez-utils dhcp3-server iptables

…do per scontato che siano già riconosciuti tra di loro telefono e pc….

Bhe, inziamo:

Per prima cosa andiamo ad editare il file  /etc/bluetooth/hcid.conf

ed andiamo a modificare la riga che contiene

lm accept;

e la facciamo diventare:

lm accept, master;

Nel file/etc/default/bluetooth modifichiamo i parametri:

PAND_ENABLED=0

in

PAND_ENABLED=1

e

PAND_OPTIONS=”

in

PAND_OPTIONS=”–listen –role=NAP –devup /etc/bluetooth/pan/dev-up”

Creiamo la directory “pan” ed il file dev-up

mkdir /etc/bluetooth/pan
touch /etc/bluetooth/pan/dev-up

Nel file dev-up inseriamo quanto segue:

#!/bin/sh
echo “1″ > /proc/sys/net/ipv4/ip_forward                 # Abilitiamo il forward dei pacchetti a livello kernel
ifup bnep0                                                                        # Abilitiamo l’interfaccia bnep0 (il tunnel bluetooth)
ifconfig bnep0 10.0.254.1 netmask 255.255.255.240    # Configuriamo a mano l’interfaccia

sleep 2                                                                               # Aspetta 2 secondi
/etc/init.d/dhcp3-server restart                                     # Riavvia il server dhcp

N.B. Solo 2 righe [oltre ai commenti] di spiegazione del file…..

Che succede?! Allora, il cellulare si aggancia al pc via bluetooth, a questo punto si attiva pand, che attiva il tunnel (bnep0) e, una volta che il device è attivo, richiama il file /etc/bluetooth/pan/dev-up che, come si vede dai commenti, configura un pò ri boba e poi fa ripartire il server dhcp (che poi configureremo per agganciarsi SOLO sull’interfaccia bnep0) che assegna l’ip al cellulare e fine….

In teoria basterebbe “ifup bnep0″ che legge il file di configurazione dell’interfaccia….. A volte non mi funzionanva, così facendo invece non mi ha mai dato problemi…..

Vabbè, continuiamo….
Rendiamo eseguibile il file appena creato

chmod +x /etc/bluetooth/pan/dev-up

Andiamo a definire l’interfaccia bnep0 in/etc/network/interfaces

iface bnep0 inet static
address 10.0.254.1
netmask 255.255.255.240
post-up iptables -t nat -A POSTROUTING -s 10.0.254.0/24 -j MASQUERADE
pre-down /etc/init.d/dhcp3-server stop

il “post-up” come dice il nome esegue quel comando appena attivata l’interfaccia, in questo caso crea solamente un nat tra le interfacce

Ora resta solamente da definire il range di ip nel dhcp, quindi nel file /etc/dhcp3/dhcpd.conf aggiungiamo

subnet 10.0.254.0 netmask 255.255.255.240 {
range 10.0.254.2 10.0.254.10;
option domain-name “bluetoot.casa.mia”;
option routers 10.0.254.1;
option domain-name-servers IP_DNS;
option broadcast-address 10.0.254.255;
default-lease-time 600;
max-lease-time 7200;
}

e nel file /etc/default/dhcp settiamo

INTERFACES=”bnep0″  #  In questo modo il server dhcp risponde solo a richieste provenienti su bnep0

Riavviamo il demone bluetooth in modo che rilegga la configurazione e creiamo la connessione sul telefono….

Impostazioni -> Connettività -> Impostazioni Internet -> Nuovo Profilo

Come nome mettete quello che volete, io (con grande fantasia ho messo PC )

e come “Connetti con” selezionate il pair bluetooth che avete fatto col vostro pc…. Ricordatevi nel pc, di settare anche “permetti connessioni dal dispositivo”…

Settate questo profilo di default per Connessione Internet, Java e Streaming….

In caso di problemi un’occhiatina a /var/log/syslog e /var/log/message puo essere mooolto utile….

P.S. Si, so che impaginato così fa veramente schifo…. Se qualcuno ha qualche plugin per wordpress da consigliarmi per rendere bene l’idea dei parametri da scrivere in shell…..

Si, lo ammetto…. Ububtu sul mio pc è durato meno di 4-5 giorni, poi sono passato a Debian….

Ho avuto solo un piccolo problema nell’installazione dei driver proprietari…

Scaricati i driver dal sito nvidia, chiuso X mi dava un errore del tipo “Non compatibile con kernel Xen”…. poi ho scoperto che i kernel bigmem di debian sono compilati con supporto xen….

Come fare?! Bhe, dato che il pc è sostanzialmente una macchina stupida….. facciamogli credere che non ci sia il supporto… Come ?! Facile :D

  • cd /lib/module/$kernel_version
  • grep CONFIG_XEN . -Rl | xargs -i sed -i -e ’s/CONFIG_XEN/CONFIG_MIO/g’ {}

E fino a qui nulla di che, basta che facciate un copia incolla (da root) e sostituiate $kernel_version con la versione del vostro kernel (la potete sapere dando un “uname -a” su una shell….

Ora, dovete chiudere X, loggarvi su una shell e dare

  • export IGNORE_XEN_PRESENCE=1
  • sh NVIDIA-Linux-x86-173.08-pkg1.run

…Mi raccomando, con export IGNORE_XEN_PRESENCE=1 esportate una variabile d’ambiente che poi viene letta dallo “script” di NVIDIA…. quella variabile nasce e muore all’interno della shell in cui la scrivete….quindi scrivetela sulla shell da cui poi lanciate lo script ;)

Stefano

Una delle più grandi “rogne”  che ho avuto con Linux è stata la gestione della wireless.

Ho trovato un programmino che automatizza la cosa… wicd

Per chi avesse gentoo basta dare un bel “emerge -av wicd

per chi invece ha Debian/Ubuntu:

  1. A questo indirizzo è disponibile un deb adatto a tutte le versioni.
  2. Con un bel “apt-get install python-glade2” risolviamo le dipendenze (al 90% è gia installato)
  3. Poi un bel dpkg -i wicd_1.5.1_all.deb
  4. A questo punto un wicd da root per far partire il demone e un wincd-client da utente per far partire la sys-ico.

Dato che ho sfruttato per l’ennesima volta dd

dd è un’utility di Linux che permette la copia di cd, hd, partizioni, file etc…..

Ammettiamo per un attimo di dover fare un backup di una partizione di un hd (nel caso di dischi danneggiati etc…).

Per fare il backup di una partizione basta eseguire

dd if=/dev/sdXn of=/mnt/Disco/Immagine.img

dove X è la “lettera” che indica il disco e n è la partizione in uso….

per ripristinare il backup poi

dd if=/mnt/Disco/Immagine.img of=/dev/sdXn

Per il backup di un disco intero

dd if=/dev/sdX of=/mnt/Disco/Immagine.img

oppure

dd if=/dev/sdX | gzip > /mnt/Disco/Immagine.img.gz

per il restore

dd if=/mnt/Disco/Immagine.iso of=/dev/sdX

oppure

gzip -dc /mnt/Disco/Immagine.img.gz | dd of=/dev/sdX

Dobbiamo fare il backup dell’mbr?

dd if=/dev/sdX of=mbr.bin bs=512 count=1

e ovviamente per ripristinare

dd if=mbr.bin of=/dev/sdX bs=512 count=1

Alla fine mi sono deciso…. Metto on-line il post sulla sicurezza della ram

Allora, passo indietro….. a cosa serve/cos’è la RAM ?

La ram altro non è che quella “cosa” che permette al pc di funzionare…..

Che vuol dire?

Il “cervello” del pc, il microprocessore non è capace di leggere dati da nessun posto ad eccezione della ram

Cosa vuol dire questo? Bhe, semplice…. se voi prendete un Pc e gli togliete l’hard disk (dove vengono salvati i dati), il floppy, il lettore cd, la scheda video e la scheda di rete il pc si accenderà lo stesso (si, lo so, è assolutamente inutile una cosa del genere, ma resta il fatto che il pc funziona)….

Se invece voi togliete la ram dal computer questo inizierà ad emettere un biip continuo e stop, nulla di piu….

Cosa vuol dire questo? Semplicemente che la RAM è una delle parti essenziali del pc .

Tornando al discorso di prima…. Tutte le informazioni che usa il µp (microprocessore, da ora in poi µp), devono passare per la ram… Ovvero….

Se sto leggendo un file dal disco, il µp si preoccuperà di dire al disco “sposta il file che sta li in ram”, il disco si preoccuperà di scriverlo in ram e solo ora il µp puo leggerlo ed “usarlo”….

Ora, ammettiamo di usare qualche password, ad esempio per il sistema operativo, per la posta, o magari per un filesystem criptato…. Dove stanno queste password? Bhe, in ram ovviamente….

Ora… la ram per sua costruzione, quando non è alimentata si cancella (viene appunto detta memoria volatile)…ma cosa succederebbe se non cancellasse realmente i dati in essa inseriti?!?!

Bhe, ad uno studio del genere si sono dedicati dei “pazzi” dell’università di Princeton.

Per chi di voi sa l’inglese consiglio VIVAMENTE la lettura sul loro sito

Per chi non lo sà invece faccio un brevissimo riassunto…..

Praticamente sono riusciti ad estrapolare dati dalla ram di un pc anche dopo che questo era stato spento….

Questo vuol dire avere libero accesso alle password che erano salvate in ram…..

La cosa fa veramente paura sopprattutto per i risvolti che potrebbe avere al lato pratico.

Data la gravità della cosa condivido al 100% l’idea dei ricercatori di NON rendere pubblico il codice per effettuare tale tipo di attacco.

Il software non è molto complicato da scrivere, anzi…. ma si da per scontato che una persona che lo scriva non usi poi tale codice per fare danni, ma solo per test personale….

http://citp.princeton.edu/memory/media/ Interessanti alcune foto ed esempi di persistenza della ram.

Appena ho un po di tempo ho intenzione di mettermi a fare qualche test…. per ora ho solo provato una cosa del tipo:

#!/usr/bin/env python

a = ""
while 1: a += "ARGON"

Cosa fa questo programma? Semplicemente riempie la memoria della parola “ARGON”…. quando la ram è satura inzierà a swppare (scrivere nella swap, la memoria virtuale).

A questo punto ho staccato brutalmente la corrente al portatile e tolto la batteria.

Riavviata la macchina ho controllato nella memoria se era presente la parola “ARGON” con il comando

strings /dev/mem | grep "ARGON"

Bhe…. inutile dire che ho riempito 200M di file di testo con la parola ARGON…. su una ram da 300 ……

Ora voglio fare dei test un pò più seri… resta il fatto che la cosa è MOLTO preoccupante a questo punto…

Stefano

Piccolo how-to su open-vpn

Prima di parlare di openvpn e di come creare una vpn tra due host, ed i vantaggi che possono venirne fuori bisogna che venga fatto una brevissima introduzione alle VPNs.

Breve introduzione alle VPNs.

La sicurezza in rete sta diventando di giorno in giorno un elemento fondamentale per le grandi aziende che adoperano Internet come mezzo di “commercio” e “comunicazione” e che pretendono di proteggersi e scambiare informazioni in maniera sicura.
Le VPNs rappresentano un modo per risparmiare cifre elevate per le linee dedicate e per permettere ad un utente quasliasi di connettersi da ovunque si trovi ed accedere ai propri dati personali residenti su server locali.
L’acronimo VPN sta per Virtual Private Network, ossia una rete privata, crittata e passante su di un canale di comunicazione diretto che permette lo scambio di dati con la possibilità di restringere l’accesso ad gruppo di utenti autorizzati.
Un semplice esempio di VPN:

Pc_Home ————- Internet ————- Pc_Uffico
Ip:10.0.0.1 ————- x.x.x.x ————- 10.0.1.2

Tra il Pc_Home e Pc_Ufficio viene aperto un canale di comunicazione che passa per Internet, utilizzando classi di indirizzi privati. Per effettuare tali operazioni si avvale dei Protocolli dei Tunneling, e` possibile accedere ad una rete privata tramite PPtP (Point To Point Tunneling Protocol) L2TP (Layer 2 Tunneling Protocol.), IPSec (IP Security).
Dopo questa breve spolverata riguardante le VPNs possiamo passare al nocciolo della questione ed al motivo per cui stiamo scrivendo questo articolo:
OpenVpn

Stiamo parlando di un software, ovviamente free, che permette la creazione di una VPN ossia un canale di comunicazione privato tra due Hosts.La necessita` di adoperare questo software e` nata dal fatto che abbiamo sperimentato di far “runnare” un servizio ad un client abbonato Fastweb del quale sappiamo tutti i problemi legati al Nat che si presentano per tali abbonati, per i quali possedere un servizio in locale, quale Http, Ftp, ssh, diventa un’ardua impresa.
Il Software in questione e` rintracciabile con semplicita` al seguente url: http://openvpn.secureforge.net e viene descritto come “secure IP tunnel daemon”.
Questo demone gira, di default, sulla porta 5000 UDP ma tramite i flags:

--port port : TCP/UDP port # for both local and remote.
--lport port : TCP/UDP port # for local (default=5000).
--rport port : TCP/UDP port # for remote (default=5000).

Tale porta puo` venir modificata, come ogni qualsiasi servizio.
e tramite il flag: –proto puo` essere selezionato il tipo di protocollo da utilizzare.

Openvpn suopporta una crittazione convenzionale di una chiave statica condivisa oppure una chiave pubblica (SSL/TSL mode), ma va detto che supporta anche connessioni senza crittazione., se possiedi kernel Linux 2.4.7 oppure superiore molto probabilmente i drivers TUN/TAP, necessari per la creazione dell’interfacce virtuali, sono installati. Se cosi` hai bisogno di creare il device e caricare il modulo

# mknod /dev/net/tun c 10 200
# modprobe tun

Se sul tuo Pc e` presente un eventuale firewall bisogna che imposti alcune regole per attivare l’inoltro dei pacchetti sulla TUN:
iptables -A INPUT -i tun+ -j ACCEPT
Questo software e` dotato di un lato client ed un lato server, nel caso in questione un pc fungera` da client mentre l’altro fungera` da server.
Come prima cosa generiamo una chiave statica ed uguale per entrambi gli host che vogliono stabilire la sessione con il seguente comando:

openvpn –genkey –secret key

Ora scegliamo una classe di indirizzi privati che verranno utilizzati per crare la VPN, nel nostro caso abbiamo preso in considerazione la rete privata di classe C 172.17.142.0/24.
L’host che funge da client adopererà l’ip 172.17.142.22 mentre l’host che fungerà da server utilizzerà l’ip 172.17.142.23. Ora analizziamo la sintassi del comando che viene eseguito “lato client”.

openvpn –remote 80.80.80.x –dev tun1 –ifconfig 172.17.142.22 172.17.142.23 –verb 5 –secret key

Andiamo subito a chiarire il comando raffigurato.

–remote 80.80.80.x e` il comando che imposta come server l’interfaccia pubblica dell’host che fungera` da server con indirizzo privato 172.17.142.22

–dev tun1 indica l’intefaccia da utilizzare

–ifconfig 172.17.142.22 172.17.142.23 imposta per primo l’ip che avra` il client locale e per secondo l’ip dell’interfaccia tun dell’host remoto.

–verb 5 Apriamo una piccola parentesi riguardo il verbose, esistono 6 livelli ed ognuno e` caratterizzato da una funzione specifica, quella che utilizzeremo noi e` il 5 che mostra i caratteri R e W in console per ogni pacchetto che viene letto e scritto. Le lettere maiuscole indicano i pacchetti TCP/UDP, mentre le minuscole indicano i pacchetti TUN/TAP.

–secret key indica il file che contiene la chiave per permettere la sessione crittata.

p.s: e` ovvio che entrambi i client debbano avere lo stesso file contente la chiave.

Appena avviato openvpn verra` creata un interfaccia virtuale denominata tun1 che avra` nel caso del client avremo 172.17.142.22, nel caso del Server avremo 172.17.142.23.
Dopo aver avviato openvpn conviene fare un po’ troubleshooting con i comandi route e ping, semplici ma efficaci. Lato server il comando sopra descritto subisce lievi modifiche:

openvpn –dev tun1 –ifconfig 172.17.142.23 172.17.142.22 –verb 5 –secret key

1) Ovviamente viene invertito la sequenza degli IP.
2) Il comando non comprende il flag “– remote x.x.x.x”, perche` ho anlizzato che
per un utente “fastweb”(io), il pc non puo` fungere da serve per problemi di NAT, dato che tutti gli utenti di un POP di fastweb stanno dietro proxy residenzialo ergo non puo` ricevere richieste ma solo effettuarle.
Fornire un servizio tramite una macchina interna alla VPN

Mostrare un servizio caricato sulla mia macchina e` praticamente impossibile dato il problema che ho segnalato pocanzi, di conseguenza ho utilizzato openvpn come strada alternativa per mostrare un servizio al pubblico.
Entriamo nel dettaglio:
Dopo aver stabilito una connessione con le stringe mostrate precedentemente, facciamo in modo che il pc che ci funge da server funga anche da NAT per il Forwarding di pacchetti specifici di un determinato servizio. Per tale motivo abbiamo sviluppato uno script contenente tutte le regole necessarie per forwardare il servizio ssh che di default gira sulla porta 22.
In questo script il server della VPN effettua il Forward dei pacchetti destinati alla sua porta 22 verso il client della VPN.
Ecco riportato un piccolo ascii art che aiutera` alla comprensione

Internet(request_ssh_session.22) to –> Host_Pubblico(serverVPN)[Forward to 172.17.142.22:22] –> 172.17.142.22

########### SCRIPT PER IL FORWARD DELLE PORTE DI UN SERVIZIO ###########
#! /bin/bash
/sbin/iptables -t nat -F
/sbin/iptables -F INPUT
/sbin/iptables -F OUTPUT
/sbin/iptables -F FORWARD
/sbin/iptables -P INPUT ACCEPT
/sbin/iptables -P FORWARD ACCEPT
/sbin/iptables -P OUTPUT ACCEPT
iptables -t nat -A PREROUTING -p tcp -i ppp0 --dport 22 -j DNAT --to 172.17.142.22:22
iptables -t nat -A PREROUTING -p tcp -i ppp0 --dport 30000:65325 -j DNAT --to 172.17.142.22
iptables -t nat -A POSTROUTING -o ppp0 -s 172.17.142.22 -j MASQUERADE
iptables -t nat -A POSTROUTING -o tun1 -p tcp -s 172.17.142.22 -j SNAT --to Host_Pubblico
iptables -t nat -A POSTROUTING -o tun1 -j MASQUERADE
iptables -A FORWARD -i tun1 -p tcp -j ACCEPT
iptables -A FORWARD -i tun1 -p udp -j ACCEPT
iptables -A INPUT -i tun1 -p tcp -j ACCEPT
iptables -A INPUT -i tun1 -p udp -j ACCEPT
/sbin/iptables -L
/sbin/iptables -t nat -L
echo "1" > /proc/sys/net/ipv4/ip_forward

Con la collaborazione di Nazgul abbiamo creato un’interfaccia grafica per l’utilizzo di openvpn, compilata tramite Gtk 2.0 e testata su Slackware 9.x. e Debian.

E` semplice ed intuitiva comprende tutti campi che sono stati indicati precedentemente ed e` integrato nell’avvio del programma il comando

#modprobe tun

non vi resta che generare la key, che ripeto dev’essere comune.

E` stata anche realizzata una versione in bash che vi alleghiamo sempre per cercare di rendere semplice ed intuitivo questo software che se ben utilizzato porta molti vantaggi. Ricordo che tutti i software compilati, ed elencati, es: iptables, openvpn sono stati eseguiti su Slackware 9.0 la versione delle gtk era la 2.2 per la compilazione di onpenvpnGUI.c lato server e client.
Per compilare bisogna utilizzare questa stringa di esempio:

gcc -o openvpnGUI openvpn.c `pkg-confg –libs –cflags gtk+-2.0`

Di iptables abbiamo usato la versione iptables v1.2.7a.
Possibili bug presenti nei software allegati ? si .. e forse anche molti.

OpenVpn Bash Client (tar.gz)

OpenVpn Bash Server (tar.gz)

OpenVpn GUI Client (tar.gz)

Cogito ergo sum
Non c’e` nulla interamente in nostro potere, se non i nostri pensieri.
Digital Souls Research Group

[cartesio zast signal]: date

Sun Jun 6 12:15:58 UTC 2004

NOTA: Questo articolo è stato importato dal vecchio sito su cui era hostato prima…

Un ringraziamento particolare a petabyte (aka bejelith ) per il sito e l’hosting, a cartesio per la parte teorica e il test su rete nattata Fastweb, e a Nazgul per l’intefaccia grafica.