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.

Concludo la mia carrelata di articoli in-utili da pausa pranzo con una cattura del futuro QuickTime X che dovrebbe essere disponibile insieme alla prossima versione di OS X 10.0.6

quicktime-x1

Per me che uso VLC anche sul mac forse la funzionalità che mi porterà ad usare QT, la cattura dello schermo. Nell’epoca dei wekcast e non più delle singole immagini una bella novità introdotta come componente principale di un SO. Per carità nulla di nuovo cielo, esistono mille utility che fan questo, ma avere la funzione li bella e pronta ….

Ahime … il vero concorrente di Linux devo ammetterlo non è windows ma OSX e la battaglia sfortunatamente sarà ben più dura potendo quest’ultimo contare su una base Uni*X. Staremo a vedere.

Apple costruisce un team per progettare chip

Riporto la notizia presa da trackback, non tanto per la notizia in se stressa, chi vuole può leggerla qui ma per come si è arrivati a questa considerazione.

linkedinCome fa presagire l’immagine allegata tramite LinkedIn appunto, o meglio verificando i cambi di diverse figure che lavoravano in primarie aziende solite produrre chip verso cupertino.

Una volte le informazioni aziendali venivano gelosamente celate, ma oggi con il web 2.0 cosa cambia? chi di voi non si è visto pubblicare una propria foto su FaceBook da parte di un amico? ora tocca anche alle aziende?

Cosa rappresenta in realtà il web 2.0 … sicuramente ha molto di positivo ma attenzione al rovescio della medaglia …. che ne pensate?

Installiamo Google AppEngine Plugin per Eclipse

Sviluppare per AppEngine Java passa per la predisposizione dell’ambiente. Naturalmente l’ambiente non può che essere Eclipse, nella fattispece la sua ultima versione la 3.4 (Ganymede).

Il primo passo, se non l’avete già fatto è scaricare ed installare eclipse dal sito www.eclipse.org per la vostra piattaforma.

1. avviate eclipse, quindi selezionate Help > Software Updates… nella finestra di dialogo che appare, selezionate il tab Available Software quindi su  Add Site….
ganymede-software-updates-addons-available-software2. Inserite la seguente URL nel campo Location: http://dl.google.com/eclipse/plugin/3.4. Quindi date OK.

ganymede-software-updates-addons-add-site3. Tornati in Available Software, dovreste vedere un nuovo elemento Google Update Site for Eclipse 3.4. Selezionate il checkbox. In questo modo si installerà il plugin, Google App Engine Java SDK e Google Web Toolkit SDK. Cliccare su Install…

ganymede-software-updates-addons-gep

Nota: Se Eclipse impiega troppo tempo per calcolare le dipendenze provate a dare un’occhiata alle FAQ di Google.

4. Controllate le nuove features che vi accingete ad installare. Cliccare su Next.

ganymede-software-updates-addons-gep-install15. Selezionare  I accept the terms in the license agreements. Cliccare su Next.

europa-feature-license6. Vi verrà chiesto di riavviare Eclipse. Cliccate su Yes.

ganymede-restart-ack7. Ora si è pronti a creare applicazioni con Google Web Toolkit e App Engine applications! Se si dovessero riscontrare problemi cunsultare le  FAQ.

Cloud Computing

La scaletta per la mattina, seppur domenica, è serrata. Ho diverse cose da fare tra cui provare Google Appengine come scritto nell’articolo di ieri. Qualcuno si chiederà, ma allora che ci fai qui a scrivere e sopratutto che c’azzecca AppEngine con questo articolo?

E’ presto detto e per far questo prendo in prestito un paragrafo di wikipedia, siamo o no nell’era del Web 2.0 e della condivisione?

Cloud computing is a style of computing in which dynamically scalable and often virtualised resources are provided as a service over the Internet. Users need not have knowledge of, expertise in, or control over the technology infrastructure “in the cloud” that supports them.”

Cloud computing è un modo di organizzare infrastutture e servizi in cui risorse dinamiche spesso virtualizzate sono forniti come servizio tramite Internet. Gli utenti non hanno la necessità di conoscere o controllare l’infrastruttura tecnologica “in the cloud” che usano” (libera traduzione ndr).

605px-cloud_computingsvg

In parole povere è un modo per abbandonare buona parte della ferraglia, intesa come hardware, che teniamo in casa (uffico, datacenter o quello che volete) ottenendo innumerevoli vantaggi in termini di economicità e scalabilità.

Nel cloud incorpora i concetti di IaaS (Infrastructure as a Service), PaaS (Platform as a Service) e SaaS (Software as a Service). AppEngine è un pezzo del Cloud.

Sempre in tema di pezzi presi qua e la vorrei iniziare con questa metafora presa da geekissimo su fonte l’Espresso – articolo di Alessio Balbi che su l’Epresso appunto inizia l’articolo sul cloud in questo modo:

“Immaginate se, ogni volta che volete un bicchiere d’acqua, doveste prima accertarvi di aver collegato una pompa al pozzo e di aver sistemato tutti i filtri. E se un paio di volte al mese quello che vi ha venduto la pompa bussasse alla porta per sostituire un pezzo difettoso e, prima di andarsene vi dicesse di fare attenzione che ci sono persone che avvelenano i pozzi e per questo di comprarsi una pistola

Certo qualcuno potrebbe obiettare, ma i filtri non li controllo io, e se la pompa si guasta resto al secco. No non meglio gestirmi tutto in casa anche l’omino che scava il pozzo. Certo e’ un’esagerazione ma non molto distante dalla realtà.

E’ un dato di fatto, oggi l’infrastuttura conviene comprarla e non tenersela in casa a meno di casi eccezzionali, ma per far questo bisogna essere informati e saper prendere il meglio che il mercato offre.

Io tono a studiare … e vi lascio con qualche spunto:

  • AWS – Amazon Web Service
  • Google AppEngine
  • Eucalyptus
  • VmWare e la nuova infrastrttura cloud

C’e’ molto alto lo so ma devo appronfondire … il prossimo articolo su AWS ed un progetto OS davvero interessante che ho trovato.

Google App Engine incontra Java

L’altra sare mentre cercavo un hosting java decente con cui iniziare un nuovo e piccolo progetto per un cliente mi sono imbattuto in google app engine.

Ad onor del vero conoscevo gia’ il servizio, avendone ricevuto comunicazione all’epoca del suo lancio da parte di Google, quello che non sapevo è che da qualche giorno a questa parte oltre che al framework pasato du Python è disponibile anche Java.

Google App Engine Java
Google App Engine Java

Bella sorpresa devo dire. Avera la possibilità di pubblicare su infrastruttura google le proprie applicazioni può essere un vantaggio specie per progetti in via di definizione.

Detto fatto, ho chiesto l’attivazione del servizio sperimentale java e dopo qualche giorno ho ricevuto la mail di conferma da parte di Google. Ora non mi resta che realizzare la prima applicazione di esempio e vedere come si comporta.

Da quel poco che ho letto le cose interessanti che posso notare sono:

  • Supporto di spring;
  • Supporto Struts;
  • Supporto Jsf;
  • Supporto GWT;
  • Supporto per linguaggi di script e molto altro;
  • Persistenza tramite JDO e JPA.

La nota dolente, mancanza del supporto Hybernate, si è vero che è possibile convertire le classi Hybernate in JPA specie se si è utilizzato correttamente il meccanismo delle annotazioni ma avere il supporto Hybernate lascerebbe liberi di decidere se deployare di App Engine o su server propri.

Queste sono solo le primissime impressioni, spero presto di poterlo testare e scrivere due note.

Internet ed il Blog

Rimessa internet a casa qualche articolo credo di poter iniziare a riscriverlo. Sto decidendo però che taglio dare al blog. Lasciarlo come espressione delle fesserie che mi passano per la testa in un particolare momento, come questo ndr, oppure strutturarlo su argomenti specifici magari di interesse di qualcuno.

Un paio di articoli di questo blog hanno avuto un seguito insperato, ed a distanza di tempo c’e’ qualcuno che ancora trova utile quello che ho scritto, che un po’ era nello spirito con il qualo scrissi quegli articoli.

Se internet è quella che oggi tutti noi conosciamo molto lo si deve a chi senza prendere una lira ha messo a disposizione la sua conoscenza. Grazie a tutti quelli che hanno permesso a me di risolvere tanti piccoli grandi problemi, spero nel mio piccolo di poter contribuire e quindi …. qualche altro articolo tecnico lo scrivo, o almeno ci provo.

E Se … la frenesia della vita

Ormai ho abbandonato o quasi l’idea di scrivere con una certa continuità su questo blog. Il motivo principale, il tempo che posso dedicare a provare, scrivere e documentare le varie soluzioni. Uso questo spazio quindi per qualche elucubrazione mentale, un po’ per il personale forse come giusto che sia per un blog.

Oggi rifletto sulla frenesia della vita del nostro mondo, moderno?, e dell’accelerazione a cui ogni giorno ci si sottopone per cosa poi. Da ragazzino uno parte motivatissimo poi con il passare del tempo la meta e’ sempre li non si e’ mossa di un millimetro ma tu continui a correre correre correre. Il problema e’ che non potrai correre all’infinito ma allora la meta ci sara’ mai?

Sempre piu’ forte si fa l’idea di mollar tutto e trasferirsi in un posto cosi:

Non tanto per il posto, stupendo, ma per la sensazione di calma che mi da … un’isola con poche persone lontana dalla frenesia del correre moderno dove vivere alla giornata senza agenda, programmazione per i prossimi 15 giorni stress della gente che ti circonda etc etc.

Oppure che so … prendere il mare per far questo un po’ di anni:

fintanto che le ossa reggono gironzolare su e giu’ per il mondo, poi magari tornare all’isola di cui sopra.

Il vostro pensiero?