Indice del forum www.zeroshell.net
Distribuzione Linux ZeroShell
 
 FAQFAQ   CercaCerca  GruppiGruppi   RegistratiRegistrati 
 ProfiloProfilo  Log inLog in   Messaggi privatiMessaggi privati 

Captive portal ed iptables

 
Nuovo argomento   Rispondi    Indice del forum -> ZeroShell
Precedente :: Successivo  
Autore Messaggio
Danielem



Registrato: 29/03/16 13:58
Messaggi: 27

MessaggioInviato: Mar Apr 19, 2016 2:25 pm    Oggetto: Captive portal ed iptables Rispondi citando

Salve,
sono ancora alle prese con i miei due firewall.
ho configurato il captive portal e le varie regole in del firewall in input, output, e forward.

sicurmente ancora ho motlo da vedere comunque mi dovrebbe mancare qualcosa nella chain dell'output perche se metto come default ACCEPT appena mi collego mi viene proposta la schermata di login captive portal e tutto funziona, altrimenti no.
sapete indicarmi cosa può essere? vi allego la regole che ho inseritoe considerate che ETHO è la scheda collegata al router, ETH2.001 e ETH2.002 le VLAN su cui attivo il captive portal.

ecco le ip tables:

Codice:
Chain OUTPUT (policy ACCEPT 81 packets, 30144 bytes)
 pkts bytes target     prot opt in     out     source               destination         
 1546  417K SYS_OUTPUT  all  --  *      *       0.0.0.0/0            0.0.0.0/0           
    0     0 ACCEPT     tcp  --  *      ETH01   10.10.11.1           10.10.11.0/24        state ESTABLISHED tcp spt:22
    0     0 ACCEPT     tcp  --  *      ETH01   10.10.11.1           10.10.11.0/24        state ESTABLISHED tcp spt:80
    0     0 ACCEPT     tcp  --  *      ETH01   10.10.11.1           10.10.11.0/24        state ESTABLISHED tcp spt:443
    0     0 ACCEPT     tcp  --  *      ETH02.1  10.10.10.1           10.10.10.0/24        state ESTABLISHED tcp spt:22
    0     0 ACCEPT     tcp  --  *      ETH02.1  10.10.10.1           10.10.10.0/24        state ESTABLISHED tcp spt:80
  215  140K ACCEPT     tcp  --  *      ETH02.1  10.10.10.1           10.10.10.0/24        state ESTABLISHED tcp spt:443
    6   320 ACCEPT     tcp  --  *      ETH02.1001  0.0.0.0/0            0.0.0.0/0            state RELATED,ESTABLISHED tcp spts:12080:12083
  317  128K ACCEPT     tcp  --  *      ETH02.1002  0.0.0.0/0            0.0.0.0/0            state RELATED,ESTABLISHED tcp spts:12080:12083



Codice:

Chain INPUT (policy DROP 155 packets, 52205 bytes)
 pkts bytes target     prot opt in     out     source               destination         
 6353  924K SYS_GUI    all  --  *      *       0.0.0.0/0            0.0.0.0/0           
 6353  924K SYS_INPUT  all  --  *      *       0.0.0.0/0            0.0.0.0/0           
   44  2854 SYS_HTTPS  tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            tcp dpt:80
 1424  243K SYS_HTTPS  tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            tcp dpt:443
    6   304 SYS_SSH    tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            tcp dpt:22
    0     0 ACCEPT     tcp  --  !ETH00 *       10.10.0.0/16         0.0.0.0/0            tcp dpt:53
    0     0 ACCEPT     udp  --  !ETH00 *       10.10.0.0/16         0.0.0.0/0            udp dpt:53
    1    56 ACCEPT     all  --  *      *       0.0.0.0/0            0.0.0.0/0            state RELATED,ESTABLISHED
    0     0 ACCEPT     tcp  --  ETH01  *       10.10.11.0/24        10.10.11.1           state NEW,ESTABLISHED tcp dpt:22
    0     0 ACCEPT     tcp  --  ETH02.1 *       10.10.10.0/24        10.10.10.1           state NEW,ESTABLISHED tcp dpt:22
    0     0 ACCEPT     tcp  --  ETH02.1001 *       0.0.0.0/0            0.0.0.0/0            tcp dpts:12080:12083
    0     0 ACCEPT     tcp  --  ETH02.1002 *       0.0.0.0/0            0.0.0.0/0            tcp dpts:12080:12083


Codice:

Chain FORWARD (policy DROP 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         
   37  2170 DROP       udp  --  *      *       0.0.0.0/0            0.0.0.0/0            udp dpt:53
   34 12190 DROP       tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            tcp dpt:443 STRING match  "facebook.com" ALGO name kmp TO 65535
    0     0 DROP       tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            tcp dpt:443 STRING match  "twitter.com" ALGO name kmp TO 65535
    0     0 DROP       tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            tcp dpt:443 STRING match  "ask.fm" ALGO name kmp TO 65535
13645 4141K ACCEPT     all  --  *      *       0.0.0.0/0            0.0.0.0/0            state RELATED,ESTABLISHED
    0     0 ACCEPT     all  --  ETH01  *       0.0.0.0/0            0.0.0.0/0           
  909  141K ACCEPT     all  --  ETH02.1 *       0.0.0.0/0            0.0.0.0/0           
    8   480 ACCEPT     tcp  --  *      ETH00   0.0.0.0/0            0.0.0.0/0            tcp dpt:80
   28  1624 ACCEPT     tcp  --  *      ETH00   0.0.0.0/0            0.0.0.0/0            tcp dpt:443
    0     0 ACCEPT     tcp  --  ETH02.1001 *       10.10.12.0/24        10.10.12.1           tcp dpts:12080:12083
    0     0 ACCEPT     tcp  --  ETH02.1002 *       10.10.13.0/24        10.10.13.1           tcp dpts:12080:12083
   83 42414 CapPort    all  --  *      *       0.0.0.0/0            0.0.0.0/0           


qualcuno mi sa aiutare? sapete cosa manca nell'OUTPUT che se cambio alla POLiCY DROP non me lo fa funzionare?
Top
Profilo Invia messaggio privato
redfive



Registrato: 26/06/09 22:21
Messaggi: 765

MessaggioInviato: Mar Apr 19, 2016 7:36 pm    Oggetto: Rispondi citando

Mi sembra di capire che 'forzi' i client ad usare ZS come DNS-Server... la chain OUTPUT è destinata ai pacchetti generati da ZS stesso, se ZS non può fare da DNS proxy (nell'output non hai dichiarato la tcp-udp 53), le dns-queries non partono, e di conseguenza, non sapendo che ip ha un determinatio sito, non partono neanche le richieste sulla tcp 80/443, quindi il CP non ha niente da intercettare....
La OUTPUT, normalmente si lascia ad accept, e lavori su INPUT e FORWARD.
Se usi il CP, non dovresti avere regole che 'interagiscono' con l'interfaccia del CP, a meno che tu non voglia esplicitamente bloccare qualcosa, ma, ad esempio, la regola 5, permette tutto ciò che è related, established da qualsiasi interfaccia, và bene in generale, ma questa regola intercetta anche il traffico di ritorno destinato algli hosts 'dietro le eth2.1001 ed eth02.1002, qundi potresti avere problemi con l'accounting (se guardi in fondo alla chain di FORWARD, vedrai che cè un'altra chain, CapPort, che non è visibile da gui, ma si occupa del CP e accounting, se una regola precedente trova un match, viene eseguita e la chain CapPort non viene 'raggiunta' dal pacchetto ...)
ciao
Top
Profilo Invia messaggio privato
Danielem



Registrato: 29/03/16 13:58
Messaggi: 27

MessaggioInviato: Mer Apr 20, 2016 7:06 am    Oggetto: Rispondi citando

Grazie mille per la tua preziosa risposta.

in effetti loggando i DROP mi ero accorto della regola sulla porta 53 ed avevo corretto. Ti confermo poi che obbligo ad usare ZS come DNS perchè ho impostato i DNS di openDNS che effettuano il blocco dei siti per adulti.

Comunque mi hai dato molte altre informazioni che non conoscevo e ti ringrazio (questo è il mio primo zeroshell)

Vorrei chiederti un consiglio. Io vorrei che le due lan con Captive portal possano accedere al web, ftp , protocolli posta . le altre due lan invece (EtH1, ed ETH2.1) possono andare su internet ma ETH1 può andare su ETH2.1 ma non il viceversa.Per facilità potrei anche permettere tutto il traffico verso internet ma non voglio assolutamente che le LAN con il captive portal possano accedere alle altre LAN. Mi potresti consigliare una strategia per le regole per questa mia necessità?

grazie mille per la gentilezza

Daniele
Top
Profilo Invia messaggio privato
redfive



Registrato: 26/06/09 22:21
Messaggi: 765

MessaggioInviato: Gio Apr 21, 2016 7:35 pm    Oggetto: Rispondi citando

Potresti, creare una nuova chain, es allowed_ports, in questa chain creare n° regole per proto e porta, action RETURN, nell esempio qui sotto, per tcp 80 e 443 ( puoi fare lo stesso per 25, 110, 465, 587, o quello che vuoi .... )

Poi, nella chain di FORWARD inserisci, in basso, all'ultimo posto (da gui) una regola tipo con input interface l'interfaccia del CP, e come action CHAIN >>allowed_ports, i pacchetti che soddisfano le regole della allowed_ports rientrereanno nella FORWARD (e verranno processati dalla chain CapPort), gli altri verranno droppati, comprese le DNS queries.
Per la regola 'sopra' quella accept related-established da tutte le interfacce, la modificherei , negando l'interfaccia di destinazione l'interfaccia del CP,
tipo * ! ETHxx, in modo che l'azione (ACCEPT) non venga eseguita prima del raggiungimento della CapPort
ciao
Top
Profilo Invia messaggio privato
Danielem



Registrato: 29/03/16 13:58
Messaggi: 27

MessaggioInviato: Gio Apr 21, 2016 9:10 pm    Oggetto: Rispondi citando

Spiegazione grandiosa. Provo e ti faccio sapere grazie.

per la regola "accept e related" dovrò spacchettare in più regole perchè le interfacce del captive portal sono due e se faccio due regole con la negazione per entrambe viene sempre droppato.
Top
Profilo Invia messaggio privato
Danielem



Registrato: 29/03/16 13:58
Messaggi: 27

MessaggioInviato: Gio Apr 21, 2016 9:28 pm    Oggetto: Rispondi citando

che ne pensi ho interpretato bene?

grazie come sempre


Codice:

Chain INPUT (policy DROP 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         
   87 10877 SYS_GUI    all  --  *      *       0.0.0.0/0            0.0.0.0/0           
   87 10877 SYS_INPUT  all  --  *      *       0.0.0.0/0            0.0.0.0/0           
    0     0 SYS_HTTPS  tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            tcp dpt:80
   45  6444 SYS_HTTPS  tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            tcp dpt:443
    0     0 SYS_SSH    tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            tcp dpt:22
    0     0 ACCEPT     tcp  --  ETH01  *       10.10.11.0/24        10.10.11.1           state NEW,ESTABLISHED tcp dpt:22
    0     0 ACCEPT     tcp  --  ETH02.1 *       10.10.10.0/24        10.10.10.1           state NEW,ESTABLISHED tcp dpt:22
    0     0 ACCEPT     udp  --  ETH00  *       0.0.0.0/0            0.0.0.0/0            udp spt:53
    0     0 ACCEPT     tcp  --  ETH00  *       0.0.0.0/0            0.0.0.0/0            tcp spt:53
    0     0 ACCEPT     tcp  --  !ETH00 *       10.10.0.0/16         0.0.0.0/0            tcp dpt:53
    0     0 ACCEPT     udp  --  !ETH00 *       10.10.0.0/16         0.0.0.0/0            udp dpt:53
    0     0 ACCEPT     all  --  ETH00  *       0.0.0.0/0            0.0.0.0/0            state RELATED,ESTABLISHED
    2   942 ACCEPT     all  --  ETH01  *       0.0.0.0/0            0.0.0.0/0           
    4   712 ACCEPT     all  --  ETH02.1 *       0.0.0.0/0            0.0.0.0/0           
    0     0 ACCEPT     tcp  --  ETH02.1001 *       0.0.0.0/0            0.0.0.0/0            tcp dpts:8080:8090
    0     0 ACCEPT     tcp  --  ETH02.1002 *       0.0.0.0/0            0.0.0.0/0            tcp dpts:8080:8090



Codice:

Chain FORWARD (policy DROP 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         
    0     0 DROP       tcp  --  !ETH00 *       0.0.0.0/0            0.0.0.0/0            tcp dpt:53
    0     0 DROP       udp  --  !ETH00 *       0.0.0.0/0            0.0.0.0/0            udp dpt:53
    0     0 DROP       tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            tcp dpt:443 STRING match  "facebook.com" ALGO name kmp TO 65535
    0     0 DROP       tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            tcp dpt:443 STRING match  "twitter.com" ALGO name kmp TO 65535
    0     0 DROP       tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            tcp dpt:443 STRING match  "ask.fm" ALGO name kmp TO 65535
  338  109K ACCEPT     all  --  ETH00  ETH01   0.0.0.0/0            0.0.0.0/0            state RELATED,ESTABLISHED
    0     0 ACCEPT     all  --  ETH00  ETH02.1  0.0.0.0/0            0.0.0.0/0            state RELATED,ESTABLISHED
  287 68303 ACCEPT     all  --  ETH01  *       0.0.0.0/0            0.0.0.0/0           
    9   540 ACCEPT     all  --  ETH02.1 *       0.0.0.0/0            0.0.0.0/0           
    0     0 DROP       all  --  ETH02.1002 !ETH00  0.0.0.0/0            0.0.0.0/0           
    0     0 DROP       all  --  ETH02.1001 !ETH00  0.0.0.0/0            0.0.0.0/0           
    0     0 docenti_rules  all  --  ETH02.1001 *       0.0.0.0/0            0.0.0.0/0           
    0     0 studenti_rules  all  --  ETH02.1002 *       0.0.0.0/0            0.0.0.0/0           
    0     0 CapPort    all  --  *      *       0.0.0.0/0            0.0.0.0/0         



Codice:

Chain docenti_rules (1 references)
 pkts bytes target     prot opt in     out     source               destination         
    0     0 RETURN     tcp  --  *      *       10.10.12.0/24        0.0.0.0/0            tcp dpt:80
    0     0 RETURN     tcp  --  *      *       10.10.12.0/24        0.0.0.0/0            tcp dpt:443
    0     0 DROP       all  --  *      *       0.0.0.



Codice:

Chain studenti_rules (1 references)
 pkts bytes target     prot opt in     out     source               destination         
    0     0 RETURN     tcp  --  *      *       10.10.13.0/24        0.0.0.0/0            tcp dpt:80
    0     0 RETURN     tcp  --  *      *       10.10.13.0/24        0.0.0.0/0            tcp dpt:443
    0     0 DROP       all  --  *      *       0.0.0.0/0            0.0.0.0/0           



Codice:

Chain OUTPUT (policy ACCEPT 121 packets, 54424 bytes)
 pkts bytes target     prot opt in     out     source               destination         
 8794 4007K SYS_OUTPUT  all  --  *      *       0.0.0.0/0            0.0.0.0/0   
Top
Profilo Invia messaggio privato
redfive



Registrato: 26/06/09 22:21
Messaggi: 765

MessaggioInviato: Gio Apr 21, 2016 10:10 pm    Oggetto: Rispondi citando

Mi sono ... perso un attimo !!! Postresti spiegare la topologia ?
Intrfeccia wan, interfaccia rete 'trusted' interfaccia management ... le interfacce CP invece ho capito !!!
Chain supplementare, puoi farne una sola (se hanno le stesse policies), mettendo come prime regole i drop per facebook, twitter, le reti 'trusted'e cosi via, subito 'sotto' metti le regole con RETURN, ultima DROP, ed in FORWARD, in 'basso' 2 rules, una con interfaccia di ingresso la ETH02.1001, l'altra per la ETH02.1002, che 'chiamano' la stessa custom chain
ciao
jonatha
Top
Profilo Invia messaggio privato
Danielem



Registrato: 29/03/16 13:58
Messaggi: 27

MessaggioInviato: Gio Apr 21, 2016 10:28 pm    Oggetto: Rispondi citando

mi spiego meglio:
ETH0 sarebbe la WAN
ETH1 la "trusted" (utenti postazione fissa)
ETH02.1 VLAN amministrazione dispositivi
ETH02.1001 (captive portal docenti)
ETH02.1002 (captive portal studenti)

per quanto riguarda le chain supplementari non avranno le stesse policy dunque preferisco lasciarne due mentre invece le regole del blocco social valgono per tutte le interfacce interne dunque mi sembrava corretto lasciarle li. Credi possa andare bene?
Top
Profilo Invia messaggio privato
Mostra prima i messaggi di:   
Nuovo argomento   Rispondi    Indice del forum -> ZeroShell Tutti i fusi orari sono GMT + 1 ora
Pagina 1 di 1

 
Vai a:  
Non puoi inserire nuovi argomenti
Non puoi rispondere a nessun argomento
Non puoi modificare i tuoi messaggi
Non puoi cancellare i tuoi messaggi
Non puoi votare nei sondaggi


Powered by phpBB © 2001, 2005 phpBB Group
phpbb.it