nocat e freeradius

Postate qui per tutte le discussioni legate a Linux in generale.

Moderatore: Staff

Regole del forum
1) Citare sempre la versione di Slackware usata, la versione del Kernel e magari anche la versione della libreria coinvolta. Questi dati aiutano le persone che possono rispondere.
2) Per evitare confusione prego inserire in questo forum solo topic che riguardano appunto Gnu/Linux in genere, se l'argomento è specifico alla Slackware usate uno dei forum Slackware o Slackware64.
3) Leggere attentamente le risposte ricevute
4) Scrivere i messaggi con il colore di default, evitare altri colori.
5) Scrivere in Italiano o in Inglese, se possibile grammaticalmente corretto, evitate stili di scrittura poco chiari, quindi nessuna abbreviazione tipo telegramma o scrittura stile SMS o CHAT.
6) Appena registrati è consigliato presentarsi nel forum dedicato.

La non osservanza delle regole porta a provvedimenti di vari tipo da parte dello staff, in particolare la non osservanza della regola 5 porta alla cancellazione del post e alla segnalazione dell'utente. In caso di recidività l'utente rischia il ban temporaneo.
Avatar utente
lennynero
Linux 3.x
Linux 3.x
Messaggi: 641
Iscritto il: lun 3 mag 2004, 0:00
Nome Cognome: Luigi Picaro
Slackware: current-x64
Kernel: 6.13.1
Desktop: Xfce-4.20
Località: Salerno

nocat e freeradius

Messaggio da lennynero »

salve raga sto cercando di mettere su un hotspot wifi, ho configurato freeradius e l'AP adeguatamente ma ora ho bisogno di offrire un servizio di accounting e autenticazione agli utenti. Ho provato nocat(authserv e gateway), ma il problema è che non riesco a preconnettermi all'AP in modo da poter poi usare l'authserver per effettuare il login...
Ho configurato il dhcp sulla macchina server sulla quale si trovano freeradius, nocat-gw e nocat-authserv ma non ottengo l'ip xke o freeradius o nocatgw pretendono che mi autentichi prima di assegnarmi l'ip
Mi rivolgo magari a qualcuno che ha un pò di esperienza in fatto di hotspot wifi, magari con freeradius+nocat, ma accetto anche consigli su qualche altro captive portal che mi permetta di inviare i dati a freeradius per autenticarmi.

ps freeradius con radtest funziona...

Avatar utente
mip
Linux 0.x
Linux 0.x
Messaggi: 47
Iscritto il: sab 5 feb 2005, 0:00
Località: Rovigo

Messaggio da mip »

Ciao,
io uso da un po' di tempo (e con successo) chillispot. Se sei interessato a come "mettere in piedi" il tutto fammi sapere. Ho anche scritto un velocissimo howto (per uso mio personale) per far tutto con slack-freeradius-mysql-apache-php-chillispot.

Saluti

mip

Avatar utente
lennynero
Linux 3.x
Linux 3.x
Messaggi: 641
Iscritto il: lun 3 mag 2004, 0:00
Nome Cognome: Luigi Picaro
Slackware: current-x64
Kernel: 6.13.1
Desktop: Xfce-4.20
Località: Salerno

Messaggio da lennynero »

io sono riuscito a configurare freeradius con eap e mschapv2(per i client windows...), il mio problema era che non avevo capito che per autenticarmi con mschapv2 mi serviva necessariamente eap e tutti i certificati annessi, quindi ora sono in grado di offrire un servizio di login con un proprio supplicant, ma sono molto interessato alla soluzione slack-freeradius-mysql-apache-php-chillispot, come appoggio al mio attuale sistema. Ho smanettato parecchio per far andare freeradius, quindi ora qualche feature in + sarebbe + che consolatoria:), fammi sapere per howto, magari tra un paio di giorni gli ridò un'occhiata (a chillispot) ora ho un altro esame impellente:)

Avatar utente
mip
Linux 0.x
Linux 0.x
Messaggi: 47
Iscritto il: sab 5 feb 2005, 0:00
Località: Rovigo

Messaggio da mip »

Preciso innanzitutto che la soluzione con chillispot dovrebbe essere l'unica in funzione sul tuo server, non credo tu voglia installare due captive portal...
comunque, nel repository di slackware, trovi il pacchetto (che, tra le altre cose, ho fatto io) per chillispot. Una volta installato quello fammi sapere. Ne riparleremo quando avrai fatto l'esame e sarai più libero. ;)

Saluti

mip

Avatar utente
lennynero
Linux 3.x
Linux 3.x
Messaggi: 641
Iscritto il: lun 3 mag 2004, 0:00
Nome Cognome: Luigi Picaro
Slackware: current-x64
Kernel: 6.13.1
Desktop: Xfce-4.20
Località: Salerno

Messaggio da lennynero »

scusa forse non mi sono espresso bene, io intendevo che attualmente, senza nessun captive portal in funzione ricevo le richieste direttamente su radius ...richieste create con il client di windows per collegarsi ad una rete wireless protetta, oppure con wpa_supplicant per esempio. Ora quello che non ho capito bene è: se installo il captive portal poi sarà possibile collegarsi solo tramite captive portal e addio wpa_supplicant?la cosa non mi turba + di tanto ma mi piacerebbe capirlo, a quel punto userei i sistemi mutuamente

ps scarico il pacchetto e poi ti contatto;)

Avatar utente
mip
Linux 0.x
Linux 0.x
Messaggi: 47
Iscritto il: sab 5 feb 2005, 0:00
Località: Rovigo

Messaggio da mip »

Io attualmente uso chillispot da solo, senza nessun tipo di autenticazione (ne sono obbligato, essendo radioamatore). Però, da quel che ho visto, è possibile usarlo anche in congiunzione a WPA.

Saluti

mip

Avatar utente
lennynero
Linux 3.x
Linux 3.x
Messaggi: 641
Iscritto il: lun 3 mag 2004, 0:00
Nome Cognome: Luigi Picaro
Slackware: current-x64
Kernel: 6.13.1
Desktop: Xfce-4.20
Località: Salerno

Messaggio da lennynero »

ho scaricato il pacchetto e installato ma ho un problema quando lo lancio:) questo era il problema x cui lo avevo abbandonato...
/usr/sbin/chilli -f -d
ChilliSpot version 1.0 started.
chillispot[10345]: ChilliSpot 1.0. Copyright 2002-2005 Mondru AB. Licensed under GPL. See http://www.chillispot.org for credits.
chillispot[10345]: tun.c: 673: 19 (No such device) open() failed
chillispot[10345]: chilli.c: 3482: Failed to create tun
ho anche provato a scaricare i sorgenti e ricompilarmelo ma ottengo lo stesso problema. Ho pensato che il problema potrebbe essere a livello di kernel, ma non saprei cosa serve abilitare(sul kernel 2.4 di default mi sembra che partiva senza dare errori), ora non ho + quel kernel, e ho un 2.6.17.1...magari tu puoi saperne di +.

Inoltre vorrei chiederti una cosa che non mi è chiara dal punto di vista funzionale: se io sono un client che rileva l'ssid dell'ap, e provo a connettermi poi mi basta aprire il browser mentre faccio la richiesta e mi si presenterà la pagina di login di chilli?, insomma prima che il dhcp mi assegna un ip?anche in questo caso mi affido a te:)

grazie in anticipo per la pazienza

Avatar utente
mip
Linux 0.x
Linux 0.x
Messaggi: 47
Iscritto il: sab 5 feb 2005, 0:00
Località: Rovigo

Messaggio da mip »

Allora, controlla di avere una directory chiamata /dev/net/tun. Se non ce l'hai, creala così:

Codice: Seleziona tutto

# mkdir /dev/net
# mknod /dev/net/tun c 10 200 
A questo punto chillispot dovrebbe funzionare.
lennynero ha scritto:Inoltre vorrei chiederti una cosa che non mi è chiara dal punto di vista funzionale: se io sono un client che rileva l'ssid dell'ap, e provo a connettermi poi mi basta aprire il browser mentre faccio la richiesta e mi si presenterà la pagina di login di chilli?
Certo.
lennynero ha scritto:insomma prima che il dhcp mi assegna un ip?
No. Tu, non appena ti connetti, ricevi un ip in dhcp da chillispot, e SUCCESSIVAMENTE avviene la fase di autenticazione.

Tips:
- non devi avere altri server dhcp attivi ad esclusione di quello interno di chilli (si attiva da solo dando /etc/rc.d/rc.chilli start, non devi far altro);
- l'interfaccia di rete alla quale è connesso l'access point, dovrà essere configurata con ip 0.0.0.0;
- ricordati di installare/configurare il server radius;
- ricordati di metter mano sia a /etc/chilli.conf che a /var/www/cgi/hotspotlogin.cgi.

Saluti

mip

Avatar utente
lennynero
Linux 3.x
Linux 3.x
Messaggi: 641
Iscritto il: lun 3 mag 2004, 0:00
Nome Cognome: Luigi Picaro
Slackware: current-x64
Kernel: 6.13.1
Desktop: Xfce-4.20
Località: Salerno

Messaggio da lennynero »

grazie delle precisazioni...sei davvero molto celere :)

comunque per TUN ho risolto, mi mancava il modulo nel kernel.

per il dhcp di chilli la cosa non mi è molto chiara: innanzitutto non so se chilli parli ocn radius(come potri verificarlo?), inoltre non so come effettuare la procedura di autenticazione, mi spiego meglio:

facciamo per ipotesi che io usi la wpa e la 802.1x, allora il mio client di reti wifi rileva la rete "test", se doppioclicco suppongo che non mi collega...o sbaglio?quando interviene chilli, cioè quando posso aprire il browser e richiedere la apgina di login?

se magari mi posti il tuo chilli.conf capisco anche meglio se ho sbagliato qualcosa

ps io in dhcpif uso eth1, ma non è che devo usare eth0(che è la sk collegata all'ap)?

Avatar utente
lennynero
Linux 3.x
Linux 3.x
Messaggi: 641
Iscritto il: lun 3 mag 2004, 0:00
Nome Cognome: Luigi Picaro
Slackware: current-x64
Kernel: 6.13.1
Desktop: Xfce-4.20
Località: Salerno

Messaggio da lennynero »

il chillispot parte ma quando provo a connettermi all'ap il client che uso per connettermi rileva la protezione 802.1x e mi chiede user e pass,. solo se gliele do il dhcp di chilli mi da l'ip(ma a quel punto radius ha già controllato le mie credenziali( mha) quindi se apro la pagina corrispondende a hotspotlogin.cgi mi compare la form di login, ma a quel punto non capisco che senso ha fare il login....se metto user e pass giuste chilli riceve dei pacchetti ma in foreground dice dei messaggi del tipo:

ps io ho impostato la mia eth0 a 0.0.0.0 con ifconfig eth0 up 0.0.0.0, ma ovviamente tutti i conf che fanno riferimento a me sanno che mi chiamo 0.0.0.0(confesso che c'è qualcosa che non ho capito)

pss inoltre se non uso 0.0.0.0 ma un ip tipo 192.168.0.1 il web server mi risponde sennò nemmeno quello...
root@localhost:lenny$ chilli -d -f
ChilliSpot version 1.0 started.
chillispot[4744]: ChilliSpot 1.0. Copyright 2002-2005 Mondru AB. Licensed under GPL. See http://www.chillispot.org for credits.
Waiting for client request...
chillispot[4744]: chilli.c: 3082: New DHCP request from MAC=00-0D-54-F7-E9-70
New DHCP connection established
DHCP requested IP address
chillispot[4744]: chilli.c: 3052: Client MAC=00-0D-54-F7-E9-70 assigned IP 192.168.182.2
cb_tun_ind. Packet received: Forwarding to link layer
Received packet with no destination!!!
cb_tun_ind. Packet received: Forwarding to link layer
Received packet with no destination!!!
comunque ti ripeto che un bel chilli.conf tuo mi farebbe capire unpò meglio molte impostazioni che non mi sono chiare come tutta la sezione UAM.

Avatar utente
mip
Linux 0.x
Linux 0.x
Messaggi: 47
Iscritto il: sab 5 feb 2005, 0:00
Località: Rovigo

Messaggio da mip »

Ciao, e scusami se non ho risposto subito al tuo post precedente, ma non l'avevo proprio visto!
Allora, non devi usare 802.1x per l'autenticazione, ma lasciare la rete "aperta", altrimenti che senso avrebbe chillispot se uno deve già inserire nella propria conf le credenziali? Poi, se vorresti dare una forma di accesso gratuito a persone che entrano per la prima volta nella tua rete, come faresti ad indirizzare loro in una eventuale pagina di registrazione visto che la tua rete è "chiusa" con 802.1x?
Di seguito, il chilli.conf che uso io, saluti.

Codice: Seleziona tutto

#fg
#debug
#interval 3600
pidfile /var/run/chilli.pid
#statedir ./
net 192.168.2.0/24
dynip 192.168.2.128/25
statip 192.168.2.0/25
dns1 192.168.2.1
#dns2 172.16.0.6
#domain no.name.com
#ipup /etc/chilli.ipup
#ipdown /etc/chilli.ipdown
#radiuslisten 127.0.0.1
radiusserver1 127.0.0.1
radiusserver2 127.0.0.1
#radiusauthport 1812
#radiusacctport 1813
radiussecret PASSWORD
#radiusnasid nas01
#radiuslocationid isocc=us,cc=1,ac=408,network=ACMEWISP_NewarkAirport
radiuslocationname IZ3HAD,Wireless_HAM_Network
#proxylisten 10.0.0.1
#proxyport 1645
#proxyclient 10.0.0.1/24
#proxysecret testing123
dhcpif eth2
#dhcpmac 00:00:5E:00:02:00
lease 600
uamserver https://192.168.2.1/cgi-bin/hotspotlogin.cgi
#uamhomepage http://192.168.2.1/
uamsecret PASSWORD
#uamlisten 192.168.2.1
#uamport 3990
uamallowed 192.168.2.1
#uamanydns
#macauth
#macallowed 00-0A-5E-AC-BE-51,00-30-1B-3C-32-E9
#macpasswd password
#macsuffix suffix

Avatar utente
lennynero
Linux 3.x
Linux 3.x
Messaggi: 641
Iscritto il: lun 3 mag 2004, 0:00
Nome Cognome: Luigi Picaro
Slackware: current-x64
Kernel: 6.13.1
Desktop: Xfce-4.20
Località: Salerno

Messaggio da lennynero »

grazi mille della conf, ma ho ancora problemi :( :(

cioè non ho capito bene l'ip della tua sk di rete collegata all'ap (è 192.168.2.1?)
inoltre vorrei capire se devo cambiare anche la conf di radius(che ora accetta solo connessioni eap(con certificati e mschapv2...) insomma ora chilli dovrebbe fare da ponte tra ap e radiuserver, visto che nell'ap non imposto + il radiuserver?

ps chilli con la tua conf non mi da gli ip in dhcpmi dice:
cb_dhcp_data_ind. packed received. dhcp authstate:6
received packed with spoofed source!!!

Avatar utente
mip
Linux 0.x
Linux 0.x
Messaggi: 47
Iscritto il: sab 5 feb 2005, 0:00
Località: Rovigo

Messaggio da mip »

lennynero ha scritto:cioè non ho capito bene l'ip della tua sk di rete collegata all'ap (è 192.168.2.1?)
No, l'indirizzo della scheda di rete DEVE essere 0.0.0.0. O meglio ancora, in /etc/rc.d/rc.inet1.conf:

Codice: Seleziona tutto

# Config information for eth2:
IPADDR[2]=""
NETMASK[2]=""
USE_DHCP[2]=""
DHCP_HOSTNAME[2]=""
eth2 è la scheda di rete collegata fisicamente all'access point.
lennynero ha scritto:inoltre vorrei capire se devo cambiare anche la conf di radius(che ora accetta solo connessioni eap(con certificati e mschapv2...) insomma ora chilli dovrebbe fare da ponte tra ap e radiuserver, visto che nell'ap non imposto + il radiuserver?
Chilli fà proprio da ponte tra ap e radiusserver, o meglio, tra scheda di rete e radiusserver.
Di seguito, un radiusd.conf che potrebbe andare bene (è abbastanza una conf di default, ma funziona perfettamente)

Codice: Seleziona tutto

prefix = /usr
exec_prefix = ${prefix}
sysconfdir = ${prefix}/etc
localstatedir = ${prefix}/var
sbindir = ${exec_prefix}/sbin
logdir = ${localstatedir}/log/radius
raddbdir = ${sysconfdir}/raddb
radacctdir = ${logdir}/radacct

confdir = ${raddbdir}
run_dir = ${localstatedir}/run/radiusd

log_file = ${logdir}/radius.log

libdir = ${exec_prefix}/lib

pidfile = ${run_dir}/radiusd.pid

max_request_time = 30

delete_blocked_requests = no

cleanup_delay = 5

max_requests = 1024

bind_address = *

port = 0

hostname_lookups = no

allow_core_dumps = no

regular_expressions	= yes
extended_expressions	= yes

log_stripped_names = no

log_auth = no

log_auth_badpass = no
log_auth_goodpass = no

usercollide = no

lower_user = no
lower_pass = no

nospace_user = no
nospace_pass = no

checkrad = ${sbindir}/checkrad

security {
	max_attributes = 200

	reject_delay = 1

	status_server = no
}

proxy_requests  = yes
$INCLUDE  ${confdir}/proxy.conf


$INCLUDE  ${confdir}/clients.conf

snmp	= no
$INCLUDE  ${confdir}/snmp.conf


thread pool {
	start_servers = 5

	max_servers = 32

	min_spare_servers = 3
	max_spare_servers = 10

	max_requests_per_server = 0
}

modules {
	pap {
		encryption_scheme = crypt
	}

	chap {
		authtype = CHAP
	}

	pam {
		pam_auth = radiusd
	}

	unix {
		cache = no
		cache_reload = 600

		radwtmp = ${logdir}/radwtmp
	}

$INCLUDE ${confdir}/eap.conf

	mschap {
	}

	ldap {
		server = "ldap.your.domain"
		basedn = "o=My Org,c=UA"
		filter = "(uid=%{Stripped-User-Name:-%{User-Name}})"
		start_tls = no

		access_attr = "dialupAccess"

		dictionary_mapping = ${raddbdir}/ldap.attrmap

		ldap_connections_number = 5

		timeout = 4
		timelimit = 3
		net_timeout = 1
	}

	realm IPASS {
		format = prefix
		delimiter = "/"
		ignore_default = no
		ignore_null = no
	}

	realm suffix {
		format = suffix
		delimiter = "@"
		ignore_default = no
		ignore_null = no
	}

	realm realmpercent {
		format = suffix
		delimiter = "%"
		ignore_default = no
		ignore_null = no
	}

	realm ntdomain {
		format = prefix
		delimiter = "\"
		ignore_default = no
		ignore_null = no
	}	

	checkval {
		item-name = Calling-Station-Id

		check-name = Calling-Station-Id

		data-type = string

	}
	
	preprocess {
		huntgroups = ${confdir}/huntgroups
		hints = ${confdir}/hints

		with_ascend_hack = no
		ascend_channels_per_line = 23

		with_ntdomain_hack = no

		with_specialix_jetstream_hack = no

		with_cisco_vsa_hack = no
	}

	files {
		usersfile = ${confdir}/users
		acctusersfile = ${confdir}/acct_users
		preproxy_usersfile = ${confdir}/preproxy_users

		compat = no
	}

	detail {
		detailfile = ${radacctdir}/%{Client-IP-Address}/detail-%Y%m%d

		detailperm = 0600

	}

	acct_unique {
		key = "User-Name, Acct-Session-Id, NAS-IP-Address, Client-IP-Address, NAS-Port"
	}


	$INCLUDE  ${confdir}/sql.conf

	#
	radutmp {
		filename = ${logdir}/radutmp
		username = %{User-Name}

		case_sensitive = yes

		check_with_nas = yes		

		perm = 0600

		callerid = "yes"
	}

	radutmp sradutmp {
		filename = ${logdir}/sradutmp
		perm = 0644
		callerid = "no"
	}

	attr_filter {
		attrsfile = ${confdir}/attrs
	}

	counter daily {
		filename = ${raddbdir}/db.daily
		key = User-Name
		count-attribute = Acct-Session-Time
		reset = daily
		counter-name = Daily-Session-Time
		check-name = Max-Daily-Session
		allowed-servicetype = Framed-User
		cache-size = 5000
	}

	sqlcounter dailycounter {
		counter-name = Daily-Session-Time
		check-name = Max-Daily-Session
		sqlmod-inst = sql
		key = User-Name
		reset = daily

		query = "SELECT SUM(AcctSessionTime - \
                 GREATEST((%b - UNIX_TIMESTAMP(AcctStartTime)), 0)) \
                 FROM radacct WHERE UserName='%{%k}' AND \
                 UNIX_TIMESTAMP(AcctStartTime) + AcctSessionTime > '%b'"

	}

	sqlcounter monthlycounter {
		counter-name = Monthly-Session-Time
		check-name = Max-Monthly-Session
		sqlmod-inst = sql
		key = User-Name
		reset = monthly

		query = "SELECT SUM(AcctSessionTime - \
                 GREATEST((%b - UNIX_TIMESTAMP(AcctStartTime)), 0)) \
                 FROM radacct WHERE UserName='%{%k}' AND \
                 UNIX_TIMESTAMP(AcctStartTime) + AcctSessionTime > '%b'"

	}

	always fail {
		rcode = fail
	}
	always reject {
		rcode = reject
	}
	always ok {
		rcode = ok
		simulcount = 0
		mpp = no
	}

	expr {
	}

	digest {
	}

	exec {
		wait = yes
		input_pairs = request
	}

	exec echo {
		wait = yes

		program = "/bin/echo %{User-Name}"

		input_pairs = request

		output_pairs = reply

	}

	ippool main_pool {

		range-start = 192.168.1.1
		range-stop = 192.168.3.254

		netmask = 255.255.255.0

		cache-size = 800

		session-db = ${raddbdir}/db.ippool

		ip-index = ${raddbdir}/db.ipindex

		override = no

		maximum-timeout = 0
	}


}

instantiate {
	exec

	expr

}

authorize {
	preprocess
	chap

	mschap

	suffix
	sql
}


authenticate {
	Auth-Type PAP {
		pap
	}

	Auth-Type CHAP {
		chap
	}

	Auth-Type MS-CHAP {
		mschap
	}

}


preacct {
	preprocess

	acct_unique
	suffix

}

accounting {
	acct_unique
	detail
	unix

	radutmp
	sql

}


session {
	radutmp

}

post-auth {

}

pre-proxy {
}

post-proxy {
	eap
}

Avatar utente
lennynero
Linux 3.x
Linux 3.x
Messaggi: 641
Iscritto il: lun 3 mag 2004, 0:00
Nome Cognome: Luigi Picaro
Slackware: current-x64
Kernel: 6.13.1
Desktop: Xfce-4.20
Località: Salerno

Messaggio da lennynero »

ti ringrazio per la precisazione su radius, ma ora il mio problma è: 192.168.2.1 a te a che eth fa riferimento? mi spiego meglio: io ho una sola sk di rete eth0 ed è quella collegata all'ap, ora se a quella imposto ifconfig eth0 up 0.0.0.0, come ip dell'uamserver che ip devo usare?(x questo prima ti ho chiesto se 192.168.2.1) ora non so che ip mettere lì insomma...e anche a dns1 di conseguenza...

Avatar utente
mip
Linux 0.x
Linux 0.x
Messaggi: 47
Iscritto il: sab 5 feb 2005, 0:00
Località: Rovigo

Messaggio da mip »

Beh, dovresti avere almeno un paio di schede di rete sul pc, una dedicata all'access point e una che connette il tuo pc alla tua rete. All'avvio di chilispot, viene creata in automatico una nuova interfaccia di rete, e questa assumerà proprio l'ip 192.168.2.1!

Rispondi