Ubuntu Server Configurazione Base iptables

Di seguito troverete alcuni semplici passi per configurare in maniera permanente iptables su ubuntu server. Per prima cosa occorre installare il pacchetto iptables-persistent. Questo semplice script permette configurare iptables all’avvio del sistema.
sudo apt-get install iptables-persistent

Passiamo ora alla configurazione, aprire il file rules
sudo vi /etc/iptables/rules

inserite la configurazione proposta di seguito (solo ssh ed http/s) ed abilitate eventuali altri servizi che vi servono. Fate attenzione a configurare correttamente il/i vostri server DNS.


# Public server IPTables Policy
#
# Written and Composed by Luigi Di Naro
#
# This assumes a few things.
# We use DNS servers from our ISP; 213.186.33.99
# Internal Network Consists of many things, but...
#
# Webserver
# SSH server
#
##############
# The Basics #
##############
#
# Turn on traffic filtering
*filter
#
# Default policies
:INPUT DROP
:FORWARD DROP
# I want to allow most websites, just not the trouble some ones.
:OUTPUT ACCEPT
#
# Accept all traffic from the loopback interface.
-A INPUT -i lo -j ACCEPT
#
# Accept legitimate responses to traffic we generate.
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
#
# Allow established traffic
-A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
#
#############################
# Services We Want to Allow #
#############################
#
# Allow ssh
iptables -A INPUT -p tcp --dport ssh -j ACCEPT
#
# Allow web traffic
-A INPUT -p tcp --dport 80 -j ACCEPT
-A INPUT -p tcp --dport 443 -j ACCEPT
#
#
# Allow inbound DNS responses from our ISPs DNS servers.
-A INPUT -s 213.186.33.99 -i eth0 -p udp -m state --state ESTABLISHED -m udp --sport 53 -j ACCEPT
-A INPUT -s 213.186.33.99 -i eth0 -p tcp -m tcp --sport 53 -m state --state ESTABLISHED -j ACCEPT
#
###################
# Everything Else #
###################
#
# Drop Everything Else
-A INPUT -j DROP
#
# Log Traffic
-I INPUT 5 -m limit --limit 5/min -j LOG --log-prefix "iptables denied: " --log-level 7
#
# Make it all true.
COMMIT

La configurazione è minimale e si riferisce ad un server pubblico che distribuisce contenuti tramite http da controllare con ssh (il caso più comune).

Se volete aggiungere nuovi servizi duplicate la sezione http con il nuovo protocollo, se avete più di un dns duplicate le due righe della sezione DNS.

Una volta attivato il firewall:

sudo /etc/init.d/iptables-persistent start

il vostro sistema accetterà connessioni in ingresso solo per le porte HTTP/S ed SSH.

Buona sperimentazione con iptables.

Gnome script

Visto che me li hanno chiesti in tanti pubblico i due script semplici semplici che permettono di aggiungere delle funzionalità in più a Gnome.

Vado di fretta quindi nessun immagine correlata come al solito ma solo il testo.

Per installarli da terminale date i seguenti comandi :

sudo apt-get install nautilus-open-terminal -y
sudo apt-get install nautilus-gksu -y

E con questo semplici articolo rientro a scrivere sul blog.

Installare Ubuntu via NetBoot (PXE)

Miniguida su come installare Ubuntu via rete

Qualche domenica fa ho approfittato di una mattina libera per installare Feisty sul mio portatile, operazione che mi ero ripromesso di fare da diverso tempo ma causa impegni e distrazioni varie non avevo mai fatto. Fin qui nulla di nuovo sotto questo cielo, quanti di voi hanno fatto la stessa operazione?, ma allora perché questo articolo? La particolarità dell’installazione non è legata ad ubuntu, o almeno non direttamente, ma all’hardware su cui dovevo installarlo, un Toshiba Portegè R100 sprovvisto di lettore CD/DVD. A complicare il tutto una limitazione inserita nel bios che impedisce il boot a mezzo usb di un lettore esterno, una boiata della Toshiba per farti comprare i suoi lettori PCMCIA, considerazione che faccio poiché sul manuale è espressamente indicato che il boot da CD è possibile solo tramite PCMCIA e che la stessa Toshiba garantisce solo per i suoi prodotti.

Unica alternativa per installare Ubuntu rimane quella tramite boot di rete (fortunatamente questo supportato), ed ecco allora spiegato il senso di questo articolo. Descrivere i semplici passi necessari ad una installazione via PXE di ubuntu.

Per l’installazione ho utilizzato un server TFTP sotto windows poiché devo anche sistemare il fisso e l’unica installazione semifunzionante è quella con un vecchio windows dismesso. I passi da seguire restano comunque pressoché identici, basta sostituire il demone TFTP con il corrispettivo Unix.

Vediamo quindi come installare Feisty via PXE iniziando dalla lista della spesa, ovvero

Cosa serve:

a) Una rete domestica con un pc che faccia da server TFTP (M$ windows nel mio caso)
b) Una connessione ad internet veloce (DSL o cavo che sia)
c) un demone TFTP ( io ho usato Tftpd32.exe)
d) l’immagine di boot di Ubuntu Feisty.

Il primo passo è preparare la macchina server affinché faccia da TFTP e DHCP, per far ciò sotto windows potere utilizzare il già citato Tftpd32 scaricabile liberamente da qui http://tftpd32.jounin.net/

Decomprimete lo zip dove vi pare, vi sconsiglio di utilizzare l’installer piuttosto prendete lo zip e scompattatelo in una cartella a vostro piacimento, E:\nb\tftpd32 nel mio caso.

Il passo successivo consiste nel recuperare l’immagine netboot di feisty che trovate qui
http://archive.ubuntu.com/ubuntu/dists/feisty/main/installer-i386/current/images/netboot/netboot.tar.gz

Estraete il contenuto del file nella stassa cartella utilizzata per il server tftpd (E:\nb\netboot).

Decompresso il contenuto bisogna copiare:

la cartella “E:\nb\netboot\ubuntu-installer\i386\pxelinux.cfg”
ed i files “E:\nb\netboot\ubuntu-installer\i386\pxelinux.0” ed “E:\nb\netboot\ubuntu-installer\i386\linux” in E:\nb\netboot”

fatto ciò è possibile avviare il server tftp tramite l’eseguibile tftpd32.exe

Nella tab tftp configurare le opzioni come in figura:

tftp server

spostarsi nella tab dhcp e configurare le varie opzioni come segue:

  • ip pool starting address: il primo ip che verra’ rilasciato (ES: 192.168.1.110)
  • size: il numero di ip massimi rilasciabili, potete mettere anche 2 (ES: 5)
  • boot file: /netboot/pxelinux.0
  • dafult router: l’indirizzo del vostro gateway (es: 192.168.1.1)
  • mask: la maschera della vostra rete (ES: 255.255.255.0)

Le operazioni di configurazione del demone TFTP sono terminate, ricordarsi di salvare le impostazioni del DHCP tramite apposito bottone “salva” sulla tab di configurazione.

I passi successivi si eseguono sulla macchina nella quale vogliamo installare Ubuntu. Per prima cosa bisogna controllate che nel bios sia impostato il boot da rete in modalita’ PXE e che questa modalità di boot abbia precedenza su eventuali altri dispositivi. Se non lo fosse configurate di conseguenza il bios ed avviate il pc.

Quello che vi verrà mostrato a video dipende dal tipo di bios utilizzato, in generale si vengono mostrate le fasi di acqusizione ip tramite DHCP, la richiesta al server TFTP.

Potete controllare nei log del server tftp le richieste con il relativo esito, se non arriva nessuna richiesta di DHCP ricontrollare la configurazione ed i cablaggi tra client (pc che vogliamo installare) e server.

In assenza di problemi l’immagine del kernel viene scaricata dal server ed avviata, quello che vi si presenta è qualcosa di simile a questo:

 

screen1

Confermiamo l’installazione client, a meno che non vogliate installare un server, e dopo qualche secondo apparire la schermata di scelta della lingua:

 

screen2

Da questo momento in poi seguite una delle tante guide su come installare ubuntu. Unica accortezza, armatevi di pazienza perché tutto verra’ scaricato dalla rete quindi ci vorrà’ un pezzo per completare l’installazione.

VMware – paravirtualizziamoci con Paravirt-ops.

La notizia è un po vecchiotta, risale al 9 maggio, ma leggo solo ora che mi accingo a scaricare il player di VMware. La cosa mi ha incuriosito visto che non sapevo un tubo di questa interfaccia paravirtuale ed ho cercato un pò in giro.

vmware

Paravirt-ops è un’interfaccia, sviluppata da IBM, Red Hat, VMware e XenSource, per la paravirtualizzazione trasparente, in parole povere da la possibilità di utilizzare lo stesso kernel Linux sia su un hypervisor sia su hardware nativo. Come è facile immaginare il vantaggio risiede nel non dover mantenere due versioni distinte del kernel.

Nell’ultimo periodo VMware era stata spesso ostacolata ad eseguire interventi sul kernel, a ragion di ciò e per superare le leggitime opposizioni che arrivavano da più parti, in primis da Xen, VMware ha modificato la propria Virtual Machine Interface per agganciarsi ad un’interfaccia nel kernel, paravirt-ops appunto, e supportare più hypervisor.

Dall’annuncio presente sul sito di VMware si legge:

 

Paravirt-ops is an open interface developed through a community process that included collaboration from the Linux community as well commercial vendors IBM, Red Hat, VMware and XenSource. Paravirt-ops was included in the latest version of the Linux kernel (version 2.6.20) and includes support for the VMware VMI interface, which provides a hypervisor-agnostic paravirtualization interface.

“Interoperability and open interfaces are a major focus for VMware,” said Dan Chu, vice president of emerging products and markets at VMware. “VMware support for paravirtualization through the paravirt-ops interface demonstrates our commitment to working with open communities such as Linux and with other leading vendors to achieve open interoperability and optimizations for end users.”

“Ubuntu 7.04 is the first Linux distribution to support paravirt-ops,” said Jane Silber, director of operations at Canonical Ltd., the primary sponsor of Ubuntu. “VMware and the Ubuntu community have worked closely together to ensure that Linux customers can use a single operating system for both virtual and physical environments as well as receive optimal performance and an excellent out-of-box experience in both environments.”


Paravirt-ops è un’interfaccia aperta sviluppata all’interno della comunità Linux con la collaborazione di aziende quali IBM, Red Hat, VMware e XenSource. Paravirt-ops è disponibile nelle ultime versioni del kernel Linux (2.6.20 in poi) ed include il supporto per l’interfaccia VMI di VMware e fornisce un’interfaccia di praravirtualizzazione trasparente per hypervisor.

“Interoperabilità ed interfacce aperte sono gli obiettivi principali per WMware,” afferma Dan Chu, vice presidente per i prodotti emergenti e per il market in VMware. “Il supporto di VMware per la paravirtualizzazione attraverso l’interfaccia paravirt-ops dimostra il nostro impegno a lavorare con le comunità open source quali Linux e con i vendors commerciali per realizzare performance ed ottimizzazione per l’utente finale”

“Ubuntu 7.04 è la prima distribuzione Linux a supportare paravirt-ops, ” afferma Jane Silber, di Canonical Ltd., lo sponsor primario di Ubuntu. “VMware e la comunità di Ubuntu hanno lavorato a stretto contatto per permettere ai clienti Linux di usare un singolo sistema operativo sia per i sistemi virtuali che per quelli reali e nel contempo avere performance ottimali in ambedue gli ambienti.”

(libera traduzione)

Il vantaggio di questa nuova interfaccia, che presto sarà supprtata anche dagli altri competitors nel campo della virtualizzazione, nella “non necessità” di ottimizzare un kernel per la macchina virtuale, o meglio nel poter ottimizzare un kernel che giri con prestazioni ottimali sia su macchine reali che virtuali (per usare le parole di Jane Silber).

Per ora mi fermo qui, spero di avervi incuriosito come ha incuriosito me la notizia, indagherò’ un po meglio su questa interfaccia e sulla sua implementazione in kvm e virtualbox.

 

Software War – MS vs ALL (linux in primis)

E’ giusto di ieri la notizia che microsoft rincara la dose sulle presunte violazioni di brevetti, la notizia stessa ha fatto un pò il giro della rete.

Sul fronte italiano ne parlono diversi bloggers, tra cui Pollycoke, e ne parla punto-informatico, per citarne solo alcuni … insomma se ne discute.

Inizierà veramente la guerra??? bene intanto vediam come siam disposti sulla mappa:

tunb

Versione originale : software_war

I fronti son caldissimi, l’impero di Microsoft attacca da tutti i lati con tutti i suoi scanozzi piu’ agguerriti …. il tempo della pace è finito .

Posso solo commentare così in maniera giocosa le ultime farneticazioni di ballmer & co.

Aggiornamento, per dare un metro sullo scalpore dato dalla notizia, anche IlSole24Ore la riporta, nel giusto tono e con le giuste considerazioni fatte anche da me tempo fa … microsoft vuol solo lucrare anche sul software open source.

Cara Microsoft …. basta guadagnare su speculazioni

Scrivo questo post di getto, dopo aver letto un bel po di flame sull’argomento diatriba Micro$oft / Linux e proprieta’ intellettuale. Mi riservo altresi’ di editare tale post in caso di nuove informazioni al riguardo.

Non mi dilungo visto che la storia e’ ormai conosciuta ….

Al di la di tutto quello che mi fa ribbrezzo e’ che con speculazioni di poco conto M$ sta guadagnando una barcata di soldi su presunti ( ed a mio avviso infondate) proprieta’ intellettuali.

Alla fine quello che volevano lo stanno ottendendo, guadagnare alle spalle della comunita’ linux senza dare nulla in cambio.

Ma favvv … M$ e tutti coloro che stringono accordi con essa, io dal mio piccolo ed insignificante mondo comincio una battaglia boicottando tutti coloro che firmano accordi con l’incriminata (Novel e Samsung in primis).

Spero che il mercato punisca questo abuso e che ste cazz di brevetti siano annullati … l’innovazione non ha bisogno di brevetti.

Wireless Toolkit for CLDC 2.5.1 per Linux

E’ stata rilasciata, finalmente direi, la Wireless Toolkit per Linux. Dopo un bel po di attesa anche gli sviluppatori che hanno deciso di utilizzare linux per ogni tipo di lavoro, anche lo sviluppo per la J2ME, hanno la possibilita’ di utilizzare l’utile tool di Sun.

Intanto una chicca, leggendo i requisiti per far funzionare il CLDC ho notato:

The following libraries should be present on the system running Ubuntu v6.x:

  • ibXpm (libxpm-dev)
  • libXt (libxt-dev)
  • libX11 (libx11-dev)
  • libICE (libice-dev)
  • libSM (libsm-dev)
  • libpthread (libc6-dev)
  • libm (libc6-dev)
  • libnsl (libc6-dev)
  • libstdc++6-dev

Al di la delle librerie citate, che vi riporto per completezza, notate come sia stata presa proprio ubuntu come distribuzione di riferimento, un grande passo per questa distro direi.

Per installare il tutto scaricate il file dal sito della sun, poi:

sh sun_java_wireless_toolkit-2_5_1-ea-linux.bin

vi verra chiesto la path dove si trova la JVM, nel mio caso non e’ stata risconoscita automaticamente la vesione 6 installata ed ho dovuto specificare manualmente (opzione 1).

Secondo step la dir di installazione ( nel mio caso $HOME/soft/WTK2.5.1EA).

Inseriti questi due paramenti vi verrà chiesto di confermarli (0) oppure annullare (1), scegliamo l’opzione (0) naturalmente.

Finito il processo di installazione ci si posiziona nella directory

$INSTALLDIR/bin

./ktoolbar

Quello che dovreste vedere è simile alla figura:

cldc

 

Ora potete iniziare a sperimentare con il Wireless Toolkit e creare le prime applicazioni java per il vosto cellulare.

In qualche successivo articolo vedremo come creare la prima applicazioncina e trasferirla sul nostro fidato cellulare per averla sempre vicina vicina.

Azureus 3.0b6 installazione su Linux

Azureus 3.0 (Zudeo) non è direttamente scaricabile per linux, di seguito trovate i semplici e brevissimi passi necessari ad aggiornare la vostra versione all’ultima beta ( che per il momento mi sembra molto stabile) disponibile.

La procedura descritta non abilita l’interfaccia nuova di Zudeo, disponibile per windows e non so se altre piattaforme, ma semplicemente aggiorna il core di azureus, appena avrò un pò più di tempo proverò anche a fare un merge della versione per windows e capire se e’ possibile abilitare anche la nuova interfaccia sempre che a qualcuno interessi.

Tornando in tema ecco come appare il mio azureus dopo il trattamento :

azureus 3.0beta

 Per ottenere ciò basta semplicemente scaricare da questo link :

http://azureus.sourceforge.net/index_CVS.php

la versione aggiornata del jar.

Prerequisito è avere la versione 2.5 aggiornata, non ho provato con versioni precedenti. Se non avete l’ultima versione stabile aggiornata fatelo prima di procedere con l’upgrade alla beta. L’aggiornamento all’ultima versione stabile permette di aggiornare tutti i vari plugins che saranno successivamente compatibili con la 3.0b6.

Una volta aggiornato tutto alla stabile non resta che rinominare il file azureus2.jar in azureus2.jar.old, copiare nella directory azureus il file appena scaricato e rinominarlo in azureus2.jar.

Riavviate azureus ed avrete qualcosa come quella mostrata nella figura precedente, ovvero il core di azureus aggiornato all’ultima versione.

Come detto in precedenza niente interfaccia di contenuti di Zudeo, per chi volesse sperimentare ecco il link direttamente alla FAQ che spiega come fare:

http://www.azureuswiki.com/index.php/Azureus_2_and_Zudeo#Can_I_run_the_Zudeo_interface_on_linux.3F

se non ci riuscite aspettare che ritorni dal ponte di pasqua ed integro questa nuova interfaccia sulla mia linux box 😀

PS:

Uno dei programmi per la mia comparativa su 3SO è già certo, come client BT ci sarà sicuramente azureus.

 

Interoperabilità – 3 SO come se fossero 1

Inizio questa sera una serie di articoli incentrati sull’interoperabilità del software tra diversi Sistemi Operativi.

Lo scopo di questo ed altri articoli che seguiranno sarà quello di definire un set di software disponibili per i 3 SO presi in esame:

  • Linux
  • Solaris
  • Windows

3so21.png

Il motivo che mi spinge in questa comparativa non è dimostrare che un SO è migliore di un’altro ma semplicemente cercare di capire se utilizzando un set di software condivisi ed una serie di formati standard è possibile una reale interoperabilità tra i vari SO lasciando la libertà di scelta all’utente su quale sistema preferisce.

Lo scenario immeginato prevede un team in cui sono presenti tutti e tre i sistemi immaginando altresì che un singolo utente utilizzi tutti e tre gli SO individuati. Il passaggio da un sistema all’altro presenta delle problematiche di adattamento, queste problematiche possono essere risolte utilizzando un set comune di software? Questa è la domanda che mi pongo e vi pongo ed alla quale cercherò di rispondere nei giorni a venire.

Per quelli che si chiedono il motivo di esclusione di OsX rispondo immediatamente, gli SO individuati sono quelli più popolari e disponibili per piattaforma PC. OsX sfortunatamente gira su hardware proprietario pertanto per gli scopi della mia ricerca è poco significativo, in aggiunta a ciò per poter provare sarei costretto a comprare un mac cosa che almeno per il momento non intendo fare.

Di seguito alcune delle linee guida che seranno alla base della ricerca:

  • Il software individuato deve essere disponibile per tutti e 3 gli SO;
  • deve esistere un ciclo di sviluppo e rilascio parallelo per il prodotto individuato e le versioni per i vari SO devono essere allineate;
  • prediligerò software scritto in java in modo tale da avere la “stessa” versione e non un porting che potrebbe presentare delle differenze;
  • qualora per una specifica esigenza non esistesse un prodotto comune il formato dei files deve essere aperto ed interoperabile;
  • gli scenari di utilizzo saranno quelli a me più familiari, se qualcuno vuol aggiungere sofware per esigenze che non riesco a valutare farà una cosa a me molto gradita;
  • tutti i software verrano installati su macchina vertuale configurata in maniera identica e con dentro i vari SO per valutarne le prestazioni;

Detto questo mi metto a lavoro, se qualcuno ha già idee da proporre o qualche comparativa in tema mi contatti.