phpmyadmin Archive

  • Sedicenti Hacker crescono

    Sedicenti Hacker crescono

    O almeno credono di esserlo (hacker)..

    Perchè ho la netta impressione che quello che sta tutt'ora provando a bucarmi il server abbia un quoziente intellettivo più o meno come quello di un paguro...

    Full Story

  • Incomprensioni

    Incomprensioni

     

    Vi è mai capitato di pensare "ma sono io scemo o sono gli altri che stanno diventando pazzi?"

    No perchè il dubbio inizia ad insinuarsi dentro me...

     

    (cliccare sulla figura per vederla ingrandita)

    Full Story

  • Server FTP con utenze virtuali su Debian Etch

    Server FTP con utenze virtuali su Debian Etch

    Questa sera vi illustro come mettere in piedi un server ftp, quasi obbligatorio in server che ospitano servizi web pubblici, con la gestione virtuale delle utenze...

    cosa sono e perchè innanzitutto, utilizzare le utenze virtuali?

    Beh chi avrà letto le precedenti guide su postfix avrà capito che avere una gestione di utenze virtuali è senza dubbio molto molto più comodo, piuttosto che dover per ogni utente creare una vera e propria utenza reale sul server.

    Appoggiandoci difatti ad un database mysql possiamo gestire l'utenticazione dei vari utenti in maniera semplice veloce e più funzionale.

    Per questa guida utilizzeremo il software che in ambiente server linux è considerato forse il più sicuro e veloce software di gestione per un server ftp: vsftpd ((Per questa guida è stata utilizzata la versione 4.0 della distribuzione Debian Etch, presupposto che abbiate già effettuato tutti gli aggiornamenti di sistema necessari.))

    Generalmente vsftpd è pensato per agire con utenze reali del sistema, con questa guida vedremo come istruire vsftpd per controllare l'autenticazione attraverso MySQL.

    Installazione del software necessario:
    Per prima cosa installiamo il server ftp, mysql ed alcune librerie necessarie:apt-get install vsftpd libpam-mysql mysql-server mysql-client phpmyadminadesso, impostiamo la password di root del nostro account root di mysql, dato che di default dopo l'installazione essa non viene inserita.mysqladmin -u root password rootpasswordAdesso per motivi di sicurezza impostiamo la password di root (la stessa va bene), anche per il nostro dominio, altrimenti chiunque potrebbe entrare e modificare i dati. mysqladmin -h server.dominio.com -u root password rootpassword
    Preparazione del database:
    Adesso creeremo un database chiamato vsftpd ed un utente omonimo che il demone ftp utilizzerà per connettersi al database:mysql -u root -pdopo aver inserito la password di root per il DB:CREATE DATABASE vsftpd; GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP ON vsftpd.* TO 'vsftpd'@'localhost' IDENTIFIED BY 'password'; GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP ON vsftpd.* TO 'vsftpd'@'localhost.localdomain' IDENTIFIED BY 'password'; FLUSH PRIVILEGES;Adesso inseriamo le tabelle necessarie all'interno del tabase:USE vsftpd; CREATE TABLE `accounts` ( `id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY , `username` VARCHAR( 30 ) NOT NULL , `pass` VARCHAR( 50 ) NOT NULL , UNIQUE ( `username` ) ) ENGINE = MYISAM ; quit;Adesso creeremo un utente senza privilegi, nella cui home directory verranno ospitate le varie dyrectories dei nostri utenti ftp virtuali:useradd --home /home/vsftpd --gid nogroup -m --shell /bin/false vsftpdAdesso creiamo una copia di backup del file di configurazione di vsftpd e poi editiamolo sostituendo l'intero suo contenuto con ciò che seguirà: cp /etc/vsftpd.conf /etc/vsftpd.conf_orig vi /etc/vsftpd.conf
    listen=YES anonymous_enable=NO local_enable=YES write_enable=YES local_umask=022 dirmessage_enable=YES xferlog_enable=YES connect_from_port_20=YES nopriv_user=vsftpd chroot_local_user=YES secure_chroot_dir=/var/run/vsftpd pam_service_name=vsftpd rsa_cert_file=/etc/ssl/certs/vsftpd.pem guest_enable=YES guest_username=vsftpd local_root=/home/vsftpd/$USER user_sub_token=$USER virtual_use_local_privs=YES user_config_dir=/etc/vsftpd_user_conf
    Come possiamo vedere dalla configurazione, l'utente vsftpd verrà rinchiuso in una jail chroot ((Utilizzando questo metodo l'utente vsftpd non avrà possibilità di fare nulla al di fuori della sua jail (prigione, che è la sua home ndr.) cosi se qualche malintenzionato vorrà giocare col nostro server potrà fare danni limitati.))Mentre con l'ultima istruzione "user_config_dir", diciamo a vsftpd dove andare a pescare la configurazione per il singolo utente, qualora ne abbiamo bisogno, di modo da gestire alcuni utenti in maniera diversa dagli altri, però dobbiamo anche creare la directory:mkdir /etc/vsftpd_user_confAdesso configureremo PAM per l'autenticazione al database mysql, anzichè usare come normalmente si farebbe il file /etc/passwd, come al solito, creiamo backup e sostituiamo l'intero contenuto del file con quello che seguirà:cp /etc/pam.d/vsftpd /etc/pam.d/vsftpd_orig vi /etc/pam.d/vsftpd
    auth required pam_mysql.so user=vsftpd passwd=ftpdpass host=localhost db=vsftpd table=accounts usercolumn=username passwdcolumn=pass crypt=2 account required pam_mysql.so user=vsftpd passwd=ftpdpass host=localhost db=vsftpd table=accounts usercolumn=username passwdcolumn=pass crypt=2
    Fatto questo riavviamo il demone ftp per ricaricare la configurazione:/etc/init.d/vsftpd restart
    inserimento degli utenti virtuali FTP:
    Purtroppo non c'è un metodo standard automatico per l'inserimento degli utenti nel database mysql, dovremo quindi procedere tramite phpmyadmin o shell, a vostra discrezione:mysql -u root -p USE vsftpd; INSERT INTO accounts (username, pass) VALUES('testuser', PASSWORD('secret')); quit;E poi creiamo la directory ftp che l'utente potrà utilizzare sul server:mkdir /home/vsftpd/testuser chown vsftpd:nogroup /home/vsftpd/testuserPonendo in questo esempio, che l'utente sia "testuser" e abbia la password "secret".Adesso aprite il vostro cliente puntate all'indirizzo del server e inserite testuser e secret come credenziali, se riuscite a vedere la vostra directory complimenti! avete appena configurato il vostro ftp server con utenze virtuali :mrgreen:

    Full Story

  • Configuriamo un server di posta completo su Etch (Postfix) – Parte 4°

    Configuriamo un server di posta completo su Etch (Postfix) – Parte 4°

    Adesso che abbiamo il nostro MTA bello e funzionante non ci resta che fornire ai nostri utenti i tool necessari per la gestione.

    il tool che è stato scelto ha un nome che si presenta da solo: postfixadmin. Con questo tool avremo la possibilità di:

    Full Story

  • Configuriamo un server di posta completo su Etch (Postfix) – Parte 1°

    Configuriamo un server di posta completo su Etch (Postfix) – Parte 1°

    In questi giorni mi sono dedicato al nuovo vps in quanto volevo mettere in piedi un servizio di posta che fosse il più possibile completo...

    l'intenzione era infatti di redigere questo how-to, che vi guidasse nella creazione di un MTA completo di pannello di controllo per amministratori, antispam, antivirus, greylisting, webmail, imap, pop, ed ssl per le comunicazioni criptate; e la gestione dei domini e degli utenti sarà virtuale, questo significa che ci appoggeremo ad un server mysql per la loro registrazione anzichè dover creare vere e proprie utenze sul sistema come normalmente di sovrebbe fare, ed inoltre effettueremo un patching di postfix per abilitare la gestione delle quote sulle mailbox degli utenti.il principio di funzionamento è il seguente: postfix riceve una mail, inizialmente risponde con un errore non definitivo (440) segnalando il greylist, ed invitando a riprovare dopo 5 minuti, al secondo tentativo da parte del mittente, dopo aver controllato tramite saslauthd che l'indirizzo di destinazione sia presente sul database, e quindi valido, effettua una connessione tramite amavisd (in localhost) per passare la mail a clamav e spamassassin per il content filtering, se la mail passa anche questo controllo viene rispedita a postfix che effettuerà il local delivery verso la casella dell'utente.Il software utilizzato sarà:
    • Apache2
    • Openssl
    • Postfix
    • Courier
    • Postgrey
    • Spamassassin
    • ClamaV Antivirus
    • Amavisd-new
    • Mysql
    • PostfixAdmin
    • RoundCube Webmail
    • Saslauthd
    Avvertenza: Questa è una guida per utenti di livello medio-alto, pertanto non darò supporto, per ovvi motivi, ad esempio per la configurazione di apache, o per server improvvisati in locale giusto per provare, in quanto si intende che se avete la necessità di mettere su un server di posta sappiate cosa state facendo. Sarò invece disponibile a spiegare a livello teorico alcuni concetti che magari qualcuno, anche non esperto, ha voglia di imparare.
    Partiamo; come già detto nel titolo, il sistema è rivolto agli utilizzatori di sistemi debian stable (etch, con sarge cambia qualcosina quindi se volete utilizzarlo documentatevi un pò prima ci sono numerosi how-to in giro), teoricamente dovrebbe funzionare anche con ubuntu, al limite può cambiare il nome di qualche pacchetto, anche in questo caso...chiedete a me o documentatevi eventualmente, io farò il possibile per aiutarvi.
    Installazione Postfix e MySQL:
    Aggiorniamo il sistema se non l'abbiamo già fatto ed installiamo i primi pacchetti (do per scontato che stiate lavorando come root):apt-get install postfix postfix-mysql postfix-doc mysql-client mysql-server courier-authdaemon courier-authlib-mysql courier-pop courier-pop-ssl courier-imap courier-imap-ssl postfix-tls libsasl2 libsasl2-modules libsasl2-modules-sql sasl2-bin libpam-mysql openssl phpmyadmin apache2 libapache2-mod-php5 php5 php5-mysqlCon questo comando andremo ad installare il mail server postfix, courier per l'autenticazione tramite pop/imap, saslauthd per la gestione dell'autenticazione in plain text con le librerie sasl, ed infine il database mysql con l'interfaccia phpmyadmin per il management via web-gui del database. Durante la configurazione dei pacchetti ci verranno poste alcune domande:
    Create directories for web-based administration ? <-- No General type of configuration? <-- Internet Site Mail name? <-- server1.example.com SSL certificate required <-- Ok
    Fatto questo dobbiamo applicare una patch ai sorgenti di postfix, con tale patch abiliteremo la gestione delle quote delle caselle, che di default non è presente in postfix.apt-get install build-essential dpkg-dev fakeroot debhelper libgdbm-dev libldap2-dev libpcre3-dev libssl-dev libsasl2-dev postgresql-dev po-debconf dpatch libdb4.3-dev libmysqlclient15-dev lsb-release libcdb-devDopo avere scaricato i pacchetti necessari scarichiamo i sorgenti di postfix:cd /usr/src apt-get source postfixE poi controlliamo la versione che abbiamo, per scaricare poi la patch apposita:postconf -d | grep mail_version Sul mio server ad esempio ho:
    logubuntu:~# postconf -d | grep mail_version mail_version = 2.3.8 milter_macro_v = $mail_name $mail_version
    In questo caso quindi, scarichiamo la patch per la versione 2.3.8:wget http://vda.sourceforge.net/VDA/postfix-2.3.8-vda.patch.gz gunzip postfix-2.3.8-vda.patch.gz cd postfix-2.3.8 patch -p1 < ../postfix-2.3.8-vda.patchPrima di creare il pacchetto però dobbiamo effettuare un piccolo cambiamento al file di changelog, cosi com'è infatti avremo un pacchetto di versione 2.3.8-2 che creerà problemi di dipendenze con il pacchetto postfix-pcre che ha per dipendenza necessaria la versione 2.3.8-2+b1:nano debian/changeloge cambiamo nella prima riga 2.3.8-2 con 2.3.8-2+b1 salviamo e chiudiamo:dpkg-buildpackagee creiamo il pacchetto deb (in realtà ne verranno creati di diversi) che poi andremo ad installare:cd .. dpkg -i postfix_2.3.8-2+b1_i386.deb dpkg -i postfix-mysql_2.3.8-2+b1_i386.deb
    Preparazione del database:
    Adesso andremo a preparare il database con le tabelle che conterranno le caselle di posta dei nostri utenti. Di default mysql server viene installato con l'utenza root senza password, la prima cosa che facciamo è quindi impostarla:mysqladmin -uroot password propria_passwordAdesso creiamo il database di postfix, l'utente mail_admin con i relativi privilegi, e inseriamo le tabelle necessarie:mysqladmin -u root -p create mailmysql -u root -pGRANT SELECT, INSERT, UPDATE, DELETE ON mail.* TO 'mail_admin'@'localhost' IDENTIFIED BY 'mail_admin_password';GRANT SELECT, INSERT, UPDATE, DELETE ON mail.* TO 'mail_admin'@'localhost.localdomain' IDENTIFIED BY 'mail_admin_password';FLUSH PRIVILEGES;USE mail;CREATE TABLE domains ( domain varchar(50) NOT NULL, PRIMARY KEY (domain) ) TYPE=MyISAM;CREATE TABLE forwardings ( source varchar(80) NOT NULL, destination TEXT NOT NULL, PRIMARY KEY (source) ) TYPE=MyISAM;CREATE TABLE users ( email varchar(80) NOT NULL, password varchar(20) NOT NULL, quota INT(10) DEFAULT '10485760', PRIMARY KEY (email) ) TYPE=MyISAM;CREATE TABLE transport ( domain varchar(128) NOT NULL default '', transport varchar(128) NOT NULL default '', UNIQUE KEY domain (domain) ) TYPE=MyISAM;quit;Come è facile immaginare, la tabella domain conterrà i vari domini che gestirà il nostro server, nella tabella forwardings saranno presenti le caselle alias per redirezionare il traffico verso una casella reale, nella tabella users avremo lo username dell'utente, che è poi la stessa casella di posta, la password (criptata ovviamente), e la quota massima che può occupare la casella.La tabella transport è opzionale, ed è per un utilizzo più avanzato, in questa tabella inseriamo i dati necessari per far si che il server possa reinstradare le mail per una singola casella, o per un intero dominio, verso un altro server.

    Full Story

Canonical URL by SEO No Duplicate WordPress Plugin