Newsgroup: it.comp.os.linux.sys
Titolo: shorewall: alternative?

In tutti i server ho sempre usato uno script di configurazione per iptables.
Funziona bene, lo uso ovunque, ma dovendo configurare in maniera sostanzialmente identica sia v4 che v6, devo replicare tutte le regole ogni volta.
 
La cosa inizia ad essere fastidiosa.
Shorewall è decisamente overkill.
 
Conoscete qualche alternativa ? La mia configurazione è piuttosto semplice: blocco tutto ed accetto solo le porte che interessano a me.
 
Dover replicare tutto in maniera identica per v6, alla fine, porta a problemi: ci si dimentica qualche pezzo qua e la e così via..... Preferisco evitare.

 Dover replicare tutto in maniera identica per v6, alla fine, porta a 
problemi: ci si dimentica qualche pezzo qua e la e così via..... 
Preferisco evitare.
 
 
-- 
http://redtowers.org/txt/va.a.capo.dopo.72.colonne.txt
 
 

 Preferisco evitare.
 
Dovrebbe bastare creare in automatico un secondo script a colpi di sed che 
applichi le modifiche necessarie per passare da IPV4 a 6 .
 
O anche comandi composti da variabili nello script che vengono settate con 
quello che serve per IPV4 e poi al 6 .
 

 quello che serve per IPV4 e poi al 6 .
 
E' ciò che faccio, ma alla lunga ci si incasina.
Preferivo qualche tool apposito ma shorewall è paurosamente overkill.


shorewall6-5.0.14.tar.bz2               03-Nov-2016 23:14  234K
 
  E non è neanche da compilare.  Cos'avrebbe di così tremendamente
esagerato?
 
 
  Ciao,
 
 
-- 
Alessandro Selli 
http://alessandro.route-add.net
 
AVVERTENZA: i messaggi inviati a "trappola" non mi arriveranno.
WARNING: messages sent to "trappola" will never reach me.

 esagerato?
 
Il modo in cui va configurato.
Mille file, la definizione delle zone e quant'altro.
Non devo configurare un gateway ma il firewall locale del server.
 
In pratica devo sostituire il seguente script di 12 righe (es
 
###########################################
EXTIF="eth0"
TCP_SERVICES="21,80,443"
UDP_SERVICES=""
 
iptables="/sbin/iptables"
 
$iptables -P INPUT DROP
$iptables -P FORWARD DROP
$iptables -P OUTPUT ACCEPT
 
$iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
$iptables -A INPUT -i $EXTIF -p tcp -m multiport --dport $TCP_SERVICES -m state --state NEW -j ACCEPT
$iptables -A INPUT -i $EXTIF -p tcp -m multiport --dport $UDP_SERVICES -j ACCEPT
$iptables -A INPUT -i $EXTIF -p tcp -j DROP
 
$iptables -A INPUT -i lo -j ACCEPT
###########################################
 
In alcuni server il firewall è leggermente più complicato, sopratutto perchè c'è di mezzo v6 e le porte vengono aperte in base a determinate IP
 
Ho notato che mischiare v4 e v6 nello stesso script, almeno per me, lo rende illeggibile. Se faccio (come ora) due script differenti, inevitabilmente mi dimentico di variare il v6 una volta fatte le variazioni sul v4
 
Se ci fosse qualche strumento che permetta di scrivere una configurazione più "leggibile" e che non faccia uso di mille file, sarebbe certamente utile.
 
"ufw" forse fa al caso mio, non l'ho mai usato, ma sembra mi permetta di fare questo:
 
"ufw deny ssh/tcp"
"ufw allow http/tcp"
ed automaticamente chiude ssh sia in v4 che in v6 ed apre, sempre v4+v6, la 80.
 
E' ciò che cerco di fare, vorrei unificare le regole. Finchè devo solo aprire e chiudere le porte posso farlo anche con il mio script condividendo la variabile, ma appena il firewall si complica, magari perchè c'è un ratelimit o cose simili, devo replicare tutte le regole a mano.

 E' ciò che faccio, ma alla lunga ci si incasina.
 
Scusa, ma non capisco perche`.
 
Lo scopo dello script e` proprio di non "incasinarsi".
 
Lo script fa sempre lo stesso, senza rischio di errori.
 
Tra l'altro, se lo script genera regole IPv4 e IPv6,
diventa facilissimo fare aggiornamenti a *tutti* i
server in un colpo solo.
 
Chiaramente, se la cosa non e` generalizzabile, allora
c'e` sicuramente un problema per lo script.
 
bye,
 
-- 
 
piergiorgio

 ha scritto:

-- 
http://redtowers.org/txt/va.a.capo.dopo.72.colonne.txt
 
 

On 2016-11-06 15:01, Scroogle wrote:
[...]
 
Capisco ri-postare i post che non rispettano le 72
colonne, ma non come reply o forward, dato che
questo fa ancora piu` confusione dell'originale.
 
Ri-posta senza marker (">" o "|" o quello che e`).
 
E, magari, senza header "On x.y.z tizio wrote:"
 
Se proprio devi fare le cose bene, metti un header
che identifichi il re-post, come re-formatted.
 
bye,
 
-- 
 
piergiorgio

 Non devo configurare un gateway ma il firewall locale del server.
]zac[
 
Probabilmente perche' sono pensati per essere impostati da interfaccia 
grafica. 
Per esempio system-config-firewall di redhat/fedora e' semplice da usare da 
interfaccia grafica, difficile da impostalo editando i file.
 
 

 questo fa ancora piu` confusione dell'originale.
 
No, no, va proprio bene cosi` e se fa confusione da una parte meglio ancora, 
cosi` spero che chi posta fregandosene degli altri, e per 
gandalf.co...@gmail.com
 cosi` e`, riceva pochissime risposte sensate, 
perche` e` solo quello che si merita, visto che sa quello che sta facendo.
 
Se non ti va bene prenditela con lui non con me.
 
 
 
 

 In alcuni server il firewall è leggermente più complicato,
 
  Vale veramente la pena darsi tanto da fare per trovare uno strumento
di amministrazione automatica del firewall per una dozzina di regole o
poco di più?



prenditela con lui.  Come fanno gli altri quando se la prendono con te
per quello che *tu*, non gandalf, fai.


 Se non ti va bene prenditela con lui non con me.
 
se 
non 
ti 
va 
bene 
incazzati
con
Google
Gruppi
dato
che
non
permette
di
impostare
una
larghezza
massima
 
Comunque
ora
dovrei
aver
usato
meno
di
72
caratteri
oppure
ne
ho
usati
troppo
pochi
?

 poco di più?
 
Sicuramente no, per questo ho chiesto sul gruppo, proprio per
evitare di perdere giornate a cercare.
 
Se poi non c'è nulla, amen, me ne faccio una ragione, non è nulla di critico.

 Se non ti va bene prenditela con lui non con me.
 
Era solo un suggerimento per migliorare quello
che stai gia` facendo.
 
Allo stato attuale e` inutile, perche` le parole
te le prendi tu, non quelli che vanno oltre le
72 colonne.
 
bye,
 
-- 
 
piergiorgio


forse dopo tutto un po' di casino ha sortito l'effetto sperato. 
 
Piu` che altro speriamo duri.
 
 
 

 Piu` che altro speriamo duri.
 
Pura coincidenza. ero da cellulare, evidentemente il mio cellullare va a capo da solo (dubito)
 
Secondo me, visto che il 99.99% dei newsreader supportano l'acapo automatico e che i newsreader
web oggigiorno dispongono di sufficiente spazio per mostrare più di 72 caratteri,
faresti prima a smettere di stracciare i coglioni ad ogni post e cambiare newsreader con qualcosa di più evoluto.
 
Perfino mynewsgate, a risoluzione 1280 (quasi in disuso, persino i cellulari hanno risoluzioni superiori) mostra
perfettamente oltre 72 caratteri, pur facendo uso di quel fastidiosissimo frame (!) sulla sinistra che non si può nemmeno nascondere.

 C'era proprio bisogno che intervenissi io? 
 
No, nel modo in cui lo hai fatto sicuramente non
era necessario.
Avresti potuto farlo meglio.
 
E ripeto, apprezzo l'impegno, il mio era *solo*
un suggerimento per rendere, secondo me, il tuo
lavoro piu` valido.
 
bye,
 
-- 
 
piergiorgio

On 2016-11-06 22:07, 
gandalf.co...@gmail.com
 wrote:
[...]
In generale, vi e` un discorso di leggibilita`.
 
Il fatto che il mio schermo consenta 200 caratteri o piu`,
non vuol dire che il testo sia "ergonomico".
 
Mandare a capo in maniera manuale, con il testo di lunghezza
decente, potrebbe essere una gentilezza apprezzata.
 
bye,
 
-- 
 
piergiorgio

 ha scritto:

http://redtowers.org/txt/va.a.capo.dopo.72.colonne.txt
 
 


wrote:

So che ci sono in giro dei proxy (o dei plugin, tipo 
https://addons.mozilla.org/en-US/firefox/addon/foxreplace/
)
che consentono di riscrivere l'HTML in transito.
 
In questo caso è sufficiente che l'URL
 
 
http://www.mynewsgate.net/messaggio.php
 
 
veda il suo HTML riscritto:
 
	<pre>
 
diventa
 
	<div style="font-family: monospace; white-space: pre-wrap; width=600px;">
 
e "</pre>" diventa "</div>".
 
Leonardo
-- 
 
A terrible beauty is born.
                                     - W. B. Yeats, Easter 1916

 perfettamente oltre 72 caratteri, pur facendo uso di quel fastidiosissimo 
frame (!) sulla sinistra che non si può nemmeno nascondere.
 
Io uso uno schermo con risoluzione orizzontale di 1920 px ed alle volte, pur 
riducendo anche con lo zoom, manco cosi` e` sufficiente per visualizzare 
completamente le righe piu` lunghe, ma oltre a cio` ti stanno sfuggendo altri 
due questioni: 
 
anche se le righe fossero interamente leggibili sullo schermo, non va bene che 
la lunghezza superi una certa dimensione; libri, giornali, riviste, ed anche gli 
articoli sul web presentano normalmente delle larghezze medie che non 
costringono il lettore a muovere piu` di tanto occhi e testa, figuriamoci nel 
tuo caso che obblighi la gente che ti vuole leggere online (non da Gogole) ad 
usare pure la scroll bar ... 
 
e poi non hai notato che anche la parte quotata quando ti si risponde non 
risulta corretta perche` si porta dietro l'errore fatto da te su Google?
Su questo fatto come la mettiamo? Deve essere anche in questo caso il tuo 
interlocutore a correggere costantemente i tuoi errori, pure in fase di quoting?
 
Fossi tu uno che scrive una volta ogni tanto non la farei certo cosi` lunga ma 
visto che scrivi qui costantemente, che tu non sia in grado di dotarti di un 
client adeguato mi pare proprio il colmo! mmh! forse sbaglio io a non tener 
conto che tu scrivi,scrivi e chiedi continuamente proprio perche` sei uno che 
non capisce un tubo e che questo e` il vero problema ... infatti anche qui come 
altrove chi ha un minimo di competenza, magari mi da contro, ma mica usa google 
groups, eh! sei proprio solo tu 
gandalf.co...@gmail.com
 e pochi altri 
'buoni' come te! 
Poveri utenti con gente cosi`... :-D
 
 

 decente, potrebbe essere una gentilezza apprezzata
 
Sono d'accordo infatti solitamente vado a capo manualmente
Ma come ho scritto, non sempre è possibile, sopratutto quando il messaggio
viene rieditato piu volte prima di postarlo,
considerato che non è possibile riconoscere dove c'è un a capo manuale da uno automatico, bisognerebbe ricontrollarli tutti
A volte sfuggono....

Il giorno domenica 6 novembre 2016 22:26:50 UTC+1, Piergiorgio Sartor ha scritto:

oppure si potrebbe usare un newsreader che fa il wrap automatico, cosi uno puo' avere la larghezza della riga che vuole...
(tra l'altro esistono?)
 
Ciao Jack

 oppure si potrebbe usare un newsreader che fa il wrap automatico, cosi uno puo' 
avere la larghezza della riga che vuole...
 
http://redtowers.org/txt/va.a.capo.dopo.72.colonne.txt
 
 

 Conoscete qualche alternativa ?
 
  Non lo conosco, ma vedi se fa al caso tuo:
 
https://launchpad.net/ufw
 
 
"Ufw stands for Uncomplicated Firewall, and is program for managing a
netfilter firewall. It provides a command line interface and aims to be
uncomplicated and easy to use."


>>>>  
http://www.bb2002.it
 :)  <<<<<
........... [ al lavoro ] ...........

 
https://launchpad.net/ufw
 
 
Ne avevo parlato sopra.
Sembra interessante, appena ho modo lo provo.

 Dovrebbe bastare creare in automatico un secondo script a colpi di sed
 
"colpi di sed" nel 2016 ... ma ve possino. 
Ci sono i configuration Management per queste cose! Se pensate che puppet 
sia overkill per il vostra struttura, c'è Ansible che è superlightweight e 
non è per nulla complesso.... e non ci fai solo shorewall. 
 
 
-- 
Massimiliano Adamo

 Preferisco evitare.
 
devi usare un configuration management (sia per iptables, sia per 
shorewall). Se non hai voglia di impelagarti con Puppet server, PuppetDB, 
Mcollective, hiera, puoi usare Ansible che è leggerissimo, semplice e se 
non hai un parco macchine tale da giustificare la presenza di server 
dedicati, è ideale.  
 
 
-- 
Massimiliano Adamo

 E' ciò che faccio, ma alla lunga ci si incasina. 
 
Mi sembra il minimo! Configurare i server a botte di script fatti in casa 
è roba degli anni 90. 
 
-- 
Massimiliano Adamo


Ma è una nota legge che qualsiasi metodo o linguaggio che in qualche modo ne
sussuma o comandi un altro perde in capacità quello che guadagna in brevità.
 
Sicché, va valutato il rischio di trovarsi a risparmiare l'uso di sed, ma al
prezzo di fare tutto a colpi di script di Ansible :-D
 
(Va detto che probabilmente, essendo ansible orientato a fare quelle dieci o
quindici cose, se la perdita è concentrata solo in tutte le altre, alla fine
il guadagno c'è).



il tuo problema è diverso e la soluzione è altrove: 
https://docs.ansible.com/ansible/iptables_module.html
 
https://github.com/ElaoInfra/ansible-role-shorewall
 
https://forge.puppet.com/puppetlabs/firewall
 
https://forge.puppet.com/tags/shorewall
 
 
 
-- 
Massimiliano Adamo

 
https://forge.puppet.com/tags/shorewall
 
 
non risolve il mio problema.
non voglio evitare l'uso di script, voglio
poter unificare IPv4 e IPv6 per il 99.99% delle
regole che ho, dato che sono in comune

 per il 99.99% delle regole che ho, dato che sono in comune
 
 
esistono moduli per shorewall e shorewall6. 
 
 
-- 
Massimiliano Adamo


Massima stima e rispetto per sed, ma Ansible è un banalissimo yaml, più 
una infinità di moduli a corredo, più i moduli di terze parti, più i 
moduli fatti in casa. 
Dico Ansible perché è più pythonico e python piace a lagggente (usa i 
template jinja2, si può aggiungere un rendereer per template python 
puri), ma anche puppet non è per nulla male. Solo che puppet per un 
neofita rompe di più: DSL specifica (niente yaml), template ERB con 
sintassi ruby. 
Poi per chi vuole farsi male c'è chef che è ruby puro. Solo i pazzi e i 
dissennati oggi usano chef! 
Io spesso mi trovo a usare una combinazione di ansible e puppet :) 
Ansible embedded in Packer, che fa il setup iniziale di puppet. 
 
Tu con Ansible ci ricostruisci un server da zero e tutto quello che devi 
fare è salvare le configurazioni su version control (git ovviamente). 
 
 
-- 
Massimiliano Adamo

 Siamo nel 2016. Buttaci un occhio. 
 
Scusa ma chi ha mai parlato di script per *gestire* i server?
Hai letto l'intero thread o solo pezzi qua e la ?
 
Sto parlando di *UNO* (non due o più, ma *UNO*) script di circa *12 righe*
per settare iptables di cui un 30% (4 righe su 12) sono settaggi di variabili.

 python piace a lagggente
 
Piace a lagggente tranne a me.
Lo detesto dal profondo del cuore, mi fa letteralmente schifo al c@zzo
e non scherzo, se posso, lo evito come la peste.
 
Il fatto che devi obbligatoriamente indentare come vuole lui mi da alla testa.

 di variabili.
 
tu gestisci iptables su UN SOLO server? :) 
Se questo è il caso, memorizzi il file di configurazione di shorewall o 
di iptable su pennetta USB e via. 
 
Insisto sul fatto che il configuration management, in un datacenter 
qualsiasi del XXI secolo va preso seriamente in considerazione. 
 
-- 
Massimiliano Adamo


va bene, ma è phythonico tra virgolette. I playbook di ansible sono YAML 
puro. I template sono Jinja2. Il renderer python (che non ho mai usato) è 
del tutto opizonale (per i maniaci di python). Ansible è scritto in 
python, ma spero che tu non ti stia ponendo il problema se usare o meno 
un programma in base al linguaggio con il quale è stato scritto. 
 
Puppet è scritto in ruby. Usa un puppet master che fa uso di passenger su 
apache/nginx, opzionalmente usa il PuppetDB (che è un postgres), 
MCollective che è uno strano accrocchione, Foreman, hiera come backend. 
Chiaramente puppet lo conosco meglio, perché non conosco tutti i meandri 
di Ansible: Ansible Galaxy, Ansible Tower... 
 
Chef è ruby puro (ma lo conosco troppo di striscio). 
Capistrano non saprei...CFEngine non lo conosco per niente. 
Le alternative a sed ci sono e sono parecchie! 
 
-- 
Massimiliano Adamo

Il Tue, 15 Nov 2016 21:25:48 +0000, Max_Adamo ha scritto:
 
to', ti abbuono una classe puppet per shorewall e shorewall6, per 
consentire l'accesso SSH ad un cliente (gli indirizzi sono ovviamente di 
fantasia). Una classe del genere viene applicata automaticamente a tutti 
i server che sono registrati per leggerla. Non devi fare login, non devi 
fare cavolate con sed. Questo è il modo di lavorare nel XXI secolo:
 
# == Class: blahblah::firewall
#
class blahblah::firewall {
 
  shorewall::rule {
    'igress-ssh-from-XXXX':
      destination     => '$FW',
      proto           => 'tcp',
      source          => 'net:
123.123.123.0/24
',
      destinationport => '22',
      order           => 340,
      action          => 'ACCEPT';
    'igress-ssh-from-YYYY':
      destination     => '$FW',
      proto           => 'tcp',
      source          => 'net:
192.192.192.192/32
',
      destinationport => '22',
      order           => 341,
      action          => 'ACCEPT';
  }
 
  shorewall6::rule {
    'igress-ssh-from-XXXX':
      source          => '$FW',
      proto           => 'tcp',
      destination     => 'net:2001:650:1234::/48',
      destinationport => '22',
      order           => 340,
      action          => 'ACCEPT';
    'igress-ssh-from-YYYY':
      source          => '$FW',
      proto           => 'tcp',
      destination     => 'net:2001:360::55:775b:ef54:fe9a:6348/128',
      destinationport => '22',
      order           => 341,
      action          => 'ACCEPT';
  }
 
}
 
 
 
 
-- 
Massimiliano Adamo

 fare cavolate con sed. Questo è il modo di lavorare nel XXI secolo:
 
Chi ha mai detto che uso sed? Ma l'hai letto il thread?

OMG! Sono 37 (trentasette) righe rispetto le mie 12 (dodici)
No, non va bene, voglio semplificare, non aggiungere codice.
 
E sopratutto la classe qui sopra non risolve il mio problema, dato
che dovrei comunque gestire separatamente IPv4 ed IPv6, mi obbliga
ad installare shorewall e mi obbliga ad installare persino puppet.
 
Per ora la soluzione più rapida è quella con 'ufw':
 
ufw default deny incoming
ufw allow proto tcp from any to any port 80,443
 
che automaticamente mi apre la 80 e la 443 sia in v4 che in v6 e chiude 
tutto il resto.
2 righe rispetto alle mie attuali 12 e alle tue 37
 
Il problema di UFW è che molte feature non le supporta, tra cui, mi pare,
il connection tracking.

 Per ora la soluzione più rapida è quella con 'ufw':
 
ah beh, si beh. 
Puoi installare windows 10 e usare il firewall di windows. 
 

 Puoi installare windows 10 e usare il firewall di windows.
 
Cosa centra? parli tanto per parlare? ufw è un tool di gestione, non un firewall.

 Cosa centra? parli tanto per parlare? ufw è un tool di gestione, non un firewall.
 
hai detto tu che manca il connection tracking o sbaglio? Ecco.

 hai detto tu che manca il connection tracking o sbaglio? Ecco.
 
Esatto.
Quindi cerco qualcosa di *alternativo*