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

Integrazione su WIN (Recupero dati, log, utenti)

 
Nuovo argomento   Rispondi    Indice del forum -> ZeroShell
Precedente :: Successivo  
Autore Messaggio
roberto.roncato



Registrato: 14/06/07 08:35
Messaggi: 6

MessaggioInviato: Gio Giu 14, 2007 9:01 am    Oggetto: Integrazione su WIN (Recupero dati, log, utenti) Rispondi citando

Ciao a tutti, complimenti per tutto il lavoro fatto da Fulvio e per l'aiuto ottenuto dal forum

Premetto che sono un utente completamente Windows e sto iniziando per la prima volta a vedere un linux proprio con ZeroShell

Il mio problema consiste nell'interfacciare ZeroShell con il mondo Win per realizzare un AccessPoint WiFi in regola con le normative. Per far risparmiare sui costi voglio far girare ZS dentro VMPlayer per Win
Quello che voglio realizzare è un software Win che permetta:
- di registrare nuovi clienti, assegnare delle password e trasmetterle via LDAP a ZeroShell
- recuperare i log del captive portal

Sul secondo problema ho delle difficoltà:
ho provato ad accedere via ftp ma non c'è il demone attivo
ho provato a montare dentro a Win il disco virtuale usato da ZS ma ci sono problemi di accesso esclusivo
telnet non funziona
se provo ad aprire il disco vmdk con un editor in win potrei avere problemi di deframmentazione

La domanda che rivolgo a tutti quanti è: qual'è il metodo migliore per interrogare il DB interno di ZS? Potrei installare ZS su HD, modificarlo per inserire un demone FTP?

Grazie per l'aiuto


L'ultima modifica di roberto.roncato il Gio Lug 05, 2007 12:03 am, modificato 1 volta
Top
Profilo Invia messaggio privato
fulvio
Site Admin


Registrato: 01/11/06 17:45
Messaggi: 1558

MessaggioInviato: Dom Giu 17, 2007 9:06 pm    Oggetto: Rispondi citando

Al momento, per accedere ai log dall'esterno di Zeroshell è necessario fare una copia del Database su di un supporto removiile come per esempio un disco USB. La copia non è altro che una directory che contiene tra le altre cose anche i log già classificati per giorno e daemon o kernel che gli ha prodotti.
In futuro Zeroshell potra mandare via protocollo syslog i log verso un server esterno.

Fulvio
Top
Profilo Invia messaggio privato
roberto.roncato



Registrato: 14/06/07 08:35
Messaggi: 6

MessaggioInviato: Dom Giu 17, 2007 10:40 pm    Oggetto: Rispondi citando

Grazie per l'indicazione, ora provo.

Appena avrò terminato invierò una piccola guida per le persone che vedono linux per la prima volta. Ho dovuto superare un po' di difficoltà iniziali e qualcuno potrebbe beneficiare dei miei tentativi

Ancora grazie per l'ottimo lavoro!
Top
Profilo Invia messaggio privato
roberto.roncato



Registrato: 14/06/07 08:35
Messaggi: 6

MessaggioInviato: Mar Giu 26, 2007 2:21 am    Oggetto: Rispondi citando

Ciao, sono riuscito a risolvere i punti su cui stavo lavorando.

Per chi volesse una dritta su come controllare ZeroShell via C# ho utilizzato due tecniche differenti:
- Le classi di Directory che mi permettono la cancellazione dell'utente
- Oggetto WebBrowser inserito in un form e programmato per simulare la navigazione

In questo modo è possibile aggiungere/rimuovere gli utenti e recuperare pure i log del Captive Portal.

Ho anche realizzato una guida (formato testuale) per creare una macchina virtuale con VMware, avviare e configurare Zero Shell per una semplice rete del tipo:

INTERNET <--> ROUTER <--> LAN INTERNA SICURA <--> ZEROSHELL <--> Access Point WiFi <--> Clients

Ciao, grazie a tutti (soprattutto a Fulvio!)
Top
Profilo Invia messaggio privato
roberto.roncato



Registrato: 14/06/07 08:35
Messaggi: 6

MessaggioInviato: Mer Lug 04, 2007 11:44 pm    Oggetto: Rispondi citando

Ciao a tutti, finalmente ho trovato il tempo di aggiornarvi sugli ultimi sviluppi in C# per Win.

Allora, per cancellare gli utenti uso le librerie di Directory:

using System.DirectoryServices;
...
private bool DeleteUser_Try(string userToDel)
{
DirectoryEntry DirEnt = new DirectoryEntry("LDAP://192.168.0.75/DC=VOSTRODOMINIO,DC=VOSTROTLD", "CN=Manager,DC=VOSTRODOMINIO,DC=VOSTROTLD", "PWDPERADMIN", AuthenticationTypes.ServerBind);
DirectoryEntry DirCartellaUtenti = DirEnt.Children.Find("OU=People");

DirectorySearcher DirSrc = new DirectorySearcher(DirEnt);
DirSrc.SearchScope = SearchScope.Subtree;
DirSrc.ReferralChasing = ReferralChasingOption.All;
DirSrc.Filter = "uid=" + userToDel;
DirSrc.SizeLimit = 10;

try
{
DirectoryEntry DirUtente = DirCartellaUtenti.Children.Find(DirSrc.Filter);

if (DirUtente != null)
{
DirUtente.DeleteTree();
DirUtente.CommitChanges();
return true;
}
}
catch
{

}

return false;
}
Top
Profilo Invia messaggio privato
roberto.roncato



Registrato: 14/06/07 08:35
Messaggi: 6

MessaggioInviato: Mer Lug 04, 2007 11:59 pm    Oggetto: Recupero dati + Accesso via software Rispondi citando

Invece per interagire programmaticamente con ZeroShell uso una soluzione "alternativa"

Ho inserito in un'applicazione C# per Windows un oggetto WebBrowser (riferimenti a: AxSHDocVw e MSHTML), ci carico dentro la home page di ZeroShell e via codice simulo la navigazione tra le pagine, per ottenere alla fine quello che mi serve

Per dare un'idea:


using mshtml;

...

private void Login_RequirePage()
{
object loc = "https://192.168.0.75/";
object null_obj_str = "";
object null_obj = 0;
wbMain.Navigate2(ref loc, ref null_obj, ref null_obj, ref null_obj_str, ref null_obj_str);
}

private void Login_Try(string login, string password)
{
HTMLDocument doc = (HTMLDocument)wbMain.Document;
HTMLFrameElementClass body = (HTMLFrameElementClass)doc.all.item("body", 0);
HTMLWindow2Class bodyContent = (HTMLWindow2Class)body.contentWindow;
HTMLDocument bodyContentDoc = (HTMLDocument)bodyContent.document;

// Utente
HTMLInputElement oUser = (HTMLInputElement bodyContentDoc.all.item("User", 0);
oUser.value = user;

// Password
HTMLInputElement oPassword = (HTMLInputElement)bodyContentDoc.all.item("PW", 0);
oPassword.value = password;

// Click
IHTMLElementCollection icoll = bodyContentDoc.getElementsByTagName("INPUT");
foreach (HTMLInputElement obtn in icoll)
{
string temp = obtn.value.Trim().ToLower();
if (temp == "login")
{
obtn.click();
break;
}
}
}


...


private void AddUser_Try(string user, string password, string firstName, string secondName, string email)
{
HTMLDocument doc = (HTMLDocument)wbMain.Document;
HTMLFrameElementClass body = (HTMLFrameElementClass)doc.all.item("body", 0);
HTMLWindow2Class bodyContent = (HTMLWindow2Class)body.contentWindow;
HTMLDocument bodyContentDoc = (HTMLDocument)bodyContent.document;

HTMLInputElement oText;
oText = (HTMLInputElement)bodyContentDoc.all.item("uid", 0);
oText.value = user;

oText = (HTMLInputElement)bodyContentDoc.all.item("PW", 0);
oText.value = password;

oText = (HTMLInputElement)bodyContentDoc.all.item("CoPW", 0);
oText.value = password;

oText = (HTMLInputElement)bodyContentDoc.all.item("givenName", 0);
oText.value = firstName;

oText = (HTMLInputElement)bodyContentDoc.all.item("sn", 0);
oText.value = secondName;

oText = (HTMLInputElement)bodyContentDoc.all.item("mail", 0);
oText.value = eMail;

HTMLInputElement oCheck;
oCheck = (HTMLInputElement)bodyContentDoc.all.item("K5", 0);
oCheck.@checked = true;

oCheck = (HTMLInputElement)bodyContentDoc.all.item("VPN", 0);
oCheck.@checked = true;

oCheck = (HTMLInputElement)bodyContentDoc.all.item("WIFI", 0);
oCheck.@checked = true;

// Click
IHTMLElementCollection icoll = bodyContentDoc.getElementsByTagName("INPUT");
foreach (HTMLInputElement obtn in icoll)
{
string temp = obtn.value.Trim().ToLower();
if (temp == "submit")
{
obtn.click();
break;
}
}
}


N.B.:
Il codice deriva dal mio programma di gestione e ho riscritto "al volo" alcuni pezzetti. Probabilmente gli spezzoni di codice rilasciati saranno difficilmente compilabili


Sto terminando di realizzare un'applicazione commerciale, closed source per gestire gli accesso, secondo le normative e con un DB di supporto esterno. Gestirà anche il billing e sarà solo per Win.
Per ringraziare la comunità, molto probabilmente rilascerò una versione free per usi non commerciali (istituzioni scolastiche, circoli privati, ecc)

Ho realizzato tre piccole guide schematiche per mettere su una soluzione virtuale con WMplayer su Win. Appena possibile le caricherò online per tutti.

Ciao!
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