Newsgroup: it.comp.os.linux.iniziare
Titolo: chiudere la porta in faccia a...

Ciao a tutti... mi domandavo... come faccio a settare i miei servizi in modo
che, su un computer con due schede di rete, stiano in ascolto solo sulla
rete interna?
-- 
Sean von Drake
"sono un servitore del fuoco segreto, e reggo la fiamma di Anor"

 rete interna?
Usi un firewall ed /etc/hosts.deny vedi la documentazione
relativa.
Davide
-- 
| We are not gentle tolerant people.  We like drastically effective
| solutions. --Steve VanDevender 
| 
| 
| 
| 

 sulla rete interna?
Dipende da che demone vuoi configurare, ognuno ha le sue opzioni.
Quelli (parecchi) che supportano tcpwrap li sistemi con hosts.deny.
Inoltre potresti montare un firewall che ti blocchi gli accessi alle porte
sull'interfaccia ''esterna''.
Dario Basile
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.3 (GNU/Linux)
iD8DBQFAEr+p7mRkrRsDl/8RAiUaAKCCllA7fzA1/wjj/lXwZN4Oz3je8ACgiMFJ
5qzu8E31oxIAaaHDnO8P69M=
=X8WP
-----END PGP SIGNATURE-----



O setti l'interfaccia in ascolto dai file di configurazione (in genere
sotto /etc/) oppure imposti iptables.
Ciao
---------------------------------------
Please visit my site at
http://www.crapa.org

 relativa.
ma scusa, ma gia' con  /etc/hosts.deny non potrei gia' bloccare tutto il 
traffico proveniente dall'esterno e limitare gli accessi al traffico 
interno. a cosa serve a questo punto un firewall ??
(domanda da assoluto ignorante in materia )
        f. 

 interno. a cosa serve a questo punto un firewall ??
hosts.deny ed hosts.allow funzionano solo se il servizio richiamato
usa tcpserver o similari, una cosa come sshd per esempio non lo
guarda nemmeno, ne' httpd o altri servizi che non sono gestiti da
inetd.
Davide
-- 
| "It's 806 miles to Chicago, we've got a full tank of coffee, half a
| fsckload of Y2K crap, it's dark, and we're wearing sunglasses." "Hit
| it". --adb 
| 
| 
| 

  interno.
Con /etc/hosts.deny il traffico arriva tutto, ma (compatibilmente con
la configurazione) viene esaminato e rifiutato.
Morale della favola: se c'e` un servizio vulnerabile _e_ arriva
un pacchetto malizioso _puo`_ accadere il patatrac.
Col firewall, si puo` effettivamente scartare il traffico, impedendo
che giunga a portata di mano del servizio e risolvendo il problema
alla radice (chiaramente e` possibile, per bug del firewall,
creare pacchetti malformati che lo oltrepassano o lo mandano in
pappa, ma questa e` un'altra storia.)
-- 
Francesco Romani - Ikitt   (signature under [re]construction)
'A geek is someone who spends time being "social" on a computer.'


/etc/hosts.deny viene utilizzato solo dai programmi chiamati dai tcp-wrapper 
(quasi nessuno ormai) e da quelli che utilizzano la libwrap (sshd e 
il portmapper). Gli altri lo ignorano bellamente. Quindi ti serve un 
firewall.
-- 
Enrico Bodo  -  Junior Lecturer in Theoretical Chemistry 
University of Rome "La Sapienza" 
Department of Chemistry         

 
Purtroppo il firewalling sotto Linux mi risulta ostico nonostante un'attenta
lettura degli howto... per esempio, devo per forza ricompilare il kernel
per mettere un firewall?


 
no: nei kernel precompilati generici che si usano comunemente e' gia' 
tutto abilitato. Un'interfaccia grafica buona a iptables e' per esempio 
il programma guarddog.
ciao
slacky
-- 
Powered by Slackware 9.1 & Linux 2.4.24!
Linux user #312588 ( 
http://counter.li.org
 )
Home Page: 
http://www.science.unitn.it/~adesi

 
Fantastoco!!! ^__^ io *odio* ricompilare il kernel... dove trovo guarddog???


 Fantastoco!!! ^__^ io *odio* ricompilare il kernel... dove trovo guarddog???
Inizia  a  verificare che  iptables  funzioni  lanciando iptables  -L,
l'output che otterrai dovra' essere simile a questo:
[1058][root@damun:~]$ iptables -L
Chain INPUT (policy ACCEPT)
target     prot opt source               destination
Chain FORWARD (policy ACCEPT)
target     prot opt source               destination
Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination
[1059][root@damun:~]$
Se e' cosi' sei a posto e non hai bisogno di fare nulla.  A quel punto
cerca il  pacchetto di guardog per  la tua distribuzione, o  se no vai
nella sua homepage e scaricati i sorgenti e compila.
PS.  quota  correttamente tagliano  le  parti  del  messaggio che  non
c'entrano con  la tua  risposta in modo  da leggere piu'  leggibile il
thread.
-- 
Vuoi fare colpo su di lei con me?
Fai colpo su di lei con me! Fai colpo su di lei con me!
[Dr. Gonzo : Paura e delirio a Las Vegas]

 un firewall.
grazie a tutti per le risposte.
e' bello ricevere tre risposte che in pratica dicono cose agli antipodi 
l'una con l'altra! ^_^
comunque ho compreso la solfa. ma quindi se non avessi servizi attivi (es 
niente sever web e similia) posso essere tranquillo anche senza firewall? 
anche se comunque il mio leafnode e' in funzione... e se faccio un netstat 
-na ottengo un po' di roba in ascolto su varie porte 
(9.13,37,111,113,119,25,3276) che non saprei da dove viene fuori, escluso 
ovviamente la porta 119 che dovrebbe essere leafnode e porta 25 che e' 
exim. mi sapete indicare di che si tratta per le altre porte. collegandomi 
tramite telnet non aottongo informazioni.
        f.

 tramite telnet non aottongo informazioni.
La 37 e' un time server. La 111 e' il portmapper che puoi bloccare con
/etc/hosts.deny se ti serve, se non ti serve disabilitalo. la 113 e' ident
che puoi disabilitare. Mi sa che hai un po' di roba attiva via inetd/xinetd.


 thread.
chiedo venia. cosě va bene?!


 inetd/xinetd.
ecco, io non ho ancora capito bene come funziona 'sta cosa di inetd/xinetd 


 chiedo venia. così va bene?!
Perfetto :-)


 inetd/xinetd.
dunque /etc/hosts.deny e' settato su ALL:ALL, quindi non dovrebbe far 
passare nulla che non sia compreso in /etc/hosts.allow, che nel mio caso 
comprende solo 'leafnode: 127.0.0.1' inserito da leafnode stesso, che 
quindi dovrebbe permettere solo alla mia macchina di accedere al server di 
news.
 
invece /etc/inetd.conf comprende:
#:INTERNAL: Internal services
#echo           stream  tcp     nowait  root    internal
#echo           dgram   udp     wait    root    internal
#chargen        stream  tcp     nowait  root    internal
#chargen        dgram   udp     wait    root    internal
discard         stream  tcp     nowait  root    internal
discard         dgram   udp     wait    root    internal
daytime         stream  tcp     nowait  root    internal
#daytime        dgram   udp     wait    root    internal
time            stream  tcp     nowait  root    internal
#time           dgram   udp     wait    root    internal
#:MAIL: Mail, news and uucp services.
smtp            stream  tcp     nowait  mail    /usr/sbin/exim exim -bs
nntp            stream  tcp     nowait  news    /usr/sbin/tcpd  /usr/sbin/leafnode
#:INFO: Info services
ident           stream  tcp     wait    identd  /usr/sbin/identd        identd
quindi posso eliminare 'ident' pacchetto 'pidentd' e il portmapper tramite 
pacchetto 'portmap' (uso debian e il 'apt-get -s remove' dei due pacchetti 
non ha presentato problemi) e chiudere un po' di servizi che non uso, o 
comunque, che ad una lettura al relativo man non sembrano interessanti???
ma il servizio 'time' e' lo stesso del comando 'time'?? non ho trovato 
informazioni in merito leggendo il man.
grazie
fedro

 informazioni in merito leggendo il man.
No, e' un server tcp vero  e proprio.  Dovrebbe stare in ascolto sulla
37 tcp.  A quanto ho capito dovrebbe darti una data in formato unix ma
se  mi  telnetto  alla  37  mi restituisce  qualcosa  di  binariamente
incomprensibile.  Forse ha bisogno del client adatto.
Il manuale di inetd dice  che per una spiegazione sui servizi definiti
``internal'' bisogna andarsi a leggere le rfc.
HTH, ciao.


 ``internal'' bisogna andarsi a leggere le rfc.
sotto tuo consiglio ho letto le rfc di riferimento (sopra ho scritto quali 
sono) ed ho scoperto che il servizio 'time' dovrebbbe restituire la data in 
formato binario a 32 bit. presumo sia per questo motivo che tu ed io 
leggiamo soltanto degli incomprensibili caratteri. ora bisogna solo 
stabilire se questo servizio e' utile o solo un pericolo per possibili 
attacchi esterni. (troppo paranoico?)
        f.
ps: ma che differenza c'e' tra i protocolli tcp e udp, o ,meglio, ma perche' 
si usano tutti e due???

 non mi e' chiaro se posso eliminarlo oppure se serva ad alcunche'? 
Levalo a meno che tu non debba fornire l'ora a qualcuno. E' del tutto 
inutile al funionamento della tua macchina.


 perche' si usano tutti e due???
In  parole  poverissime:  tcp  fornisce  un  servizio  orientato  alla
connessione e affidabile, garantisce  che ogni pacchetto spedito venga
anche  ricevuto; udp  e' invece  connectionless ed  e' intrinsecamente
inaffidabile.
udp  pero' crea molto  meno overhead  di pacchetti  ed e'  quindi piu'
veloce.
Tipicamente  i servizi che  hanno bisogno  di affidabilita'  girano su
tcp,  quelle  che  invece  hanno  bisogno di  velocita'  piu'  che  di
affidabilita' su udp.
L'esempio tipico che viene fatto e' lo streaming video che viene fatto
girare  sotto udp  poiche'  e'  meglio non  ricevere  un pacchetto  (e
idealmente  perdere un  frame) piuttosto  che dover  attendere  per la
ritrasmissione del pacchetto  perso per vedere il frame  in un momento
sbagliato oppure rallentando tutto il flusso audio rispetto al video.
Tutto questo, ripeto, molto molto alla buona :-)
Spero comunque di esserti stato utile.


 Spero comunque di esserti stato utile.
perbacco!
mi hai spiegato un bel po' di cose,
sia in questo che nel post precedente.
grazie assai!
fedro

 inutile al funionamento della tua macchina.
eliminato anche questo servizio!
ora rimangono aperti soltanto smtp e nntp. 
l'unico che rimane scoperto quindi e' l'smtp (exim) di cui non me ne faccio 
nulla ma serve (dipendenze alla mano!) e logrotate e a leafnode e quindi 
devo tenermelo. che tu sappia e' 'protetto' da '/etc/hosts.deny' o per 
questo dovrei montare un firewall??? ma da solo, senza chiedere al NG, come 
faccio a sapere quali servizi sono lanciati da tcp-wrapper o da libwrap e 
quali invece se ne infischiano del hosts.deny ?? (non ho trovato man pages 
di riferimento).
grazie ancora
fedro
 

 riferimento).
Questa  e' piu' difficile.   Solitamente se  partono da  [x]inetd sono
controllati da  tcpwrapper, quelli che  partono standalone no.   Ma ci
sono  delle eccezioni (se  no era  facile, eh  ;-)).  Ad  esempio sshd
parte   standalone  ma  solitamente   e'  controllato   da  tcpwrapper
(slackware debian, Open e Freebsd, a quanto ho potuto vedere).
L'unica e' provare  :-) e magari mettere un log  su hosts.allow o deny
per vedere quando  droppa una connessione.  Per sapere  come fare vedi
man 5 hosts_access.


 man 5 hosts_access.
quest'ultimo punto credo sia al di fuori delle mie possibilita'... almeno 
per il momento! ^_^
grazie ancora
fedro

 fedro
Figurati, e' un piacere :-)
Ciao


 di riferimento).
I servizi che vengono lanciati dal "superdemone" inetd o xinetd possono o
meno usare i tcp-wrappers a seconda che nella relativa riga in
/etc/inetd.conf o nel relativo file nella directory /etc/xinetd/ compaia in
qualche modo la scritta /usr/sbin/tcpd. Alcuni software usano libwrap senza
usare tcpd (che ormai possiamo considerare obsoleto) e lo puoi vedere
guardando la man page (per esempio portmap) o guardando se sono linkati
direttamente alla libwrap (come ssh):
$ ldd /usr/sbin/sshd
        libwrap.so.0 => /usr/lib/libwrap.so.0 (0x00525000)
        [...]
Pero' il tutto dipende dalla distribuzione.


 Pero' il tutto dipende dalla distribuzione.
Questa e' la verita' piu' grande :-)


 Probabilmente qui in Slack e' stato compilato staticamente.
Infatti, anche portmap su fedora sara' compilato cosi'. A parte cercare le 
stringhe libwrap o tcpd dentro al file eseguibile e a parte la man page tu 
sai come si f ikn quel caso a sapere se e' linkato o no alla libreria in 
questione?
-- 
Enrico Bodo  -  Assistant Professor in Theoretical Chemistry 


 usufruire del servizio.
ok. quindi intervengo dalla configurazionedel programma in questione.
grazie
fedro

 Figurati, e' un piacere :-)
hem........ :-)
        fedro

 per forza tenere installati? 
Direi proprio di si'. 
 
-- 
Enrico Bodo  -  Assistant Professor in Theoretical Chemistry 


 questione?
Non ne  ho la piu'  pallida idea :-)  E' anche per questo  che l'unica
cosa  che  avevo  consigliato  era   quella  di  negare  e  provare  a
connettercisi.
Ciao.


 che non ho capito e' come 'mettere un log su hosts.allow' !!!
Un esempio semplice semplice, in hosts.allow:
sshd : 192.168.7. : spawn (/usr/bin/echo "host %h si connette" > /var/log/miolog ) &
Ora quando ti connetterai a sshd da una macchina della rete
192.168.7.0/24
 in /var/log/miolog troverai:
[1538][root@damun:~]$ tail /var/log/miolog
host 192.168.7.44 si connette
[1539][root@damun:~]$
Ciao.
[1] Spero  che questo  punto ti sia  piu' chiaro.  Di  questo discorso
forse  ho   scritto  qualcosa   di  piu'  approfondito   sulla  pagina
http://www.siforge.org/articles/2003/05/07-firewall-linux.html
 vedi se
ti puo' essere utile.


 Di cosa stai parlando?
Niente, ho sbagliato io. Mi ricordavo male.


 ti puo' essere utile.
ah... non avevo capito che era un tuo articolo... !!!!
devo ancora leggere bene  la parte relativa al frewall vero e proprio, pero' 
pare fatto molto bene. my compliments!
ancora una volta grazie
        fedro

 proprio, pero' pare fatto molto bene. my compliments!
Grazie, mi fa molto piacere se puo' essere utile a qualcuno :-)
Ciao, alla prossima.


 Grazie, mi fa molto piacere se puo' essere utile a qualcuno :-)
a me sicuramente si!
ancora grazie per il tempo he hai speso con me
        f.

 informazioni in merito leggendo il man.
No non e' lo stesso, ma non mi ricordo a cosa servisse. 
-- 
Enrico Bodo  -  Junior Lecturer in Theoretical Chemistry 
