Posts Tagged apt

Ubuntu server & php5-gd

Per motivi di sicurezza gli hacker di Canonical hanno deciso di pacchettizzare nei Repository ufficiali di Ubuntu una versione di php5-gd che non fornisce la funzione imagerotate, per tanto  se avete (come me) un qualche accrocchio che permette di ruotare le immagini prima di caricarle, sono dolori. unica ‘seria’ alternativa alla compilazione del php5 con abilitato il supporto  per imagerotate, è aggiungere questi repository ad apt:

deb http://packages.dotdeb.org stable all
deb-src http://packages.dotdeb.org stable all

rimuovere con l’opzione –purge di apt il pacchetto php5-gd, fare un update e installare di nuovo php5-gd confermando di mantenere la vecchia versione del php.ini quando lo chiedera’,  dopo commentiamo i repository  appena aggiunti, facciamo nuovamente un update e il gioco è fatto.  ;)

Share

, , , , , , , ,

2 Comments

Proftpd e utenti virtuali

Con questo post voglio inaugurare la serie “basta con l’utilizzo di utenti di sistema” ed iniziare ad appuntarmi un po’ di configurazioni per i demoni piu’ utilizzati relativamente all’utilizzo di utenti virtuali storati in un db MySQL . Cominciamo con qualcosa di semplice: configuriamo il nostro servizio FTP.

Per prima cosa procuriamoci tutto il necessario:

# apt-get install proftpd proftpd-mysql mysql-server

Settiamo una password (su Debian di default è blank)

# mysqladmin -u root password 'QuiLaMiaPassword'

Adesso prepariamo gruppi e utenti:

# groupadd -G 3001 ftpgroup
# useradd -s /bin/false -d /bin/null -c "proftpd user" --uid 3001 -g ftpgroup ftpuser

Adesso cominciamo a preparare Il nostro DB:

# mysql -u root -p

mysql> CREATE DATABASE proftpddb;
Query OK, 1 row affected (0.00 sec)

mysql> GRANT USAGE ON *.* TO proftpduser@localhost IDENTIFIED BY 'proftpdpassword';
Query OK, 0 rows affected (0.00 sec)

mysql> GRANT SELECT, INSERT, UPDATE, DELETE ON proftpddb.* TO 'proftpduser'@'localhost';
Query OK, 0 rows affected (0.00 sec)

mysql> quit

Adesso è  il momento di inserire le tabelle necessarie all’interno del nostro DB, per far questo prepariamo un file di testo che chiameremo ‘proftp-mysql.sql’ e lo editiamo inserendo quanto segue:

CREATE TABLE ftpgroup (
groupname varchar(16) NOT NULL default '',
gid smallint(6) NOT NULL default '3000',
members varchar(16) NOT NULL default '',
KEY groupname (groupname)
) TYPE=MyISAM COMMENT='ProFTPd group table';

CREATE TABLE ftpuser (
id int(10) unsigned NOT NULL auto_increment,
userid varchar(32) NOT NULL default '',
passwd varchar(80) NOT NULL default '',
uid smallint(6) NOT NULL default '3000',
gid smallint(6) NOT NULL default '3000',
homedir varchar(255) NOT NULL default '',
shell varchar(16) NOT NULL default '/sbin/nologin',
count int(11) NOT NULL default '0',
accessed datetime NOT NULL default '0000-00-00 00:00:00',
modified datetime NOT NULL default '0000-00-00 00:00:00',
PRIMARY KEY (id),
UNIQUE KEY userid (userid)
) TYPE=MyISAM COMMENT='ProFTPd user table';

e adesso diamo un bel:

# mysql -u root -p proftpddb < proftpd-mysql.sql

Poi:

# mysql -u proftpduser -p proftpddb

mysql> INSERT INTO `ftpgroup` (`groupname`, `gid`, `members`) VALUES ('ftpgroup', 3001, 'ftpuser');

mysql> INSERT INTO `ftpuser` (`id`, `userid`, `passwd`, `uid`, `gid`, `homedir`, `shell`, `count`, `accessed`, `modified`) VALUES (1, 'firstuser', PASSWORD('userpassword'), 3001, 3001, '/var/proftp/firstuser', '/sbin/nologin', 0, '', '');

Adesso settiamo la $HOME del nostro utente e gli diamo i permessi corretti:

# mkdir /var/proftp
# chown ftpuser:ftpgroup /var/proftp
# chmod 775 /var/proftp

Procediamo Adesso con il setup del nostro demone FTP. Per prima cosa ci spostiamo in /etc/proftpd ed editiamo modules.conf scommentando il modulo relativo a Mysql, dopodiche’ creiamo un nuovo file mysql.conf e lo editiamo inserendo al suo interno:

#Force the use of mysql backend
SQLBackend mysql

# The passwords in MySQL are using its own PASSWORD function
SQLAuthTypes Backend
SQLAuthenticate users* groups*

# details to connect to mysql db
# dbname@host dbuser dbpass
SQLConnectInfo proftpddb@localhost proftpduser proftpdpassword

# Let proFTPd know the name of the columns in the user table
# Mind that this need to match the name in you table
SQLUserInfo ftpuser userid passwd uid gid homedir shell

# Let proFTPd know the name of the columns in the group table
# we want it to interact with. Again the names match with those in the db
SQLGroupInfo ftpgroup groupname gid members

# proftpd will dynamicaly create if the homedir does not yet exist
SQLHomedirOnDemand on

# update counter when a user logs in
SQLLog PASS updatecount
SQLNamedQuery updatecount UPDATE "count=count+1, accessed=now() WHERE userid='%u'" ftpuser

# change modified time anytime a user delete a file or upload one
SQLLog STOR,DELE modified

SQLNamedQuery modified UPDATE "modified=now() WHERE userid='%u'" ftpuser

Salviamo ed editiamo proftpd.conf inserendo subito dopo Include /etc/proftpd/modules.conf:

Include /etc/proftpd/mysql.conf

RootLogin off

RequireValidShell off

Adesso restartiamo il servizio e siamo pronti ad effettuare il primo test ;)

Share

, , , , , , , , , ,

No Comments

Pulizia dei pacchetti e files di configurazione in Debian

MI appunto qui di seguito una serie di metodi per tenere il sistema debian pulito da pacchetti non piu’ utilizzati e da files di configurazione imbastarditi:

Deborphan

Il suo scopo è quello di generare una lista di pacchetti `orfani’, ovvero pacchetti che per dipendenza non vengono piu’ utilizzati da nessun software presente sul sistema:

# apt-get install deborphan

# deborphan

o si puo’ usare l’opzione –libdevel che crea una lista con le librerie di sviluppo

# deborphan --libdevel

quindi passiamo la lista di pacchetti generata ad apt con:

# apt-get --purge remove `deborphan`
# apt-get --purge remove `deborphan --libdev`

File di Configurazione

Con questo comando e’ possibile pulire /etc dai files di configurazione che sono rimasti sul sistema dopo disinstallazioni di pacchetti senza aver utilizzato l’opzione –purge:

# dpkg --purge `COLUMNS=300 dpkg -l | egrep "^rc" | cut -d' ' -f3`

Localepurge

Una volta installato questo software provvede da solo dopo ogni installazione di pacchetti di rimuovere le lingue che non ci interessano

# localepurge

La cache di apt-get

Apt ci mette a disposizione alcuni efficacissimi strumenti per tenere pulita la cache:

# apt-get clean
# apt-get autoclean

La cache di apt-build

Lo stesso vale per apt-build:

# apt-build clean-sources
# apt-build clean-build
# apt-build clean-repository


Share

, , , , , , , ,

No Comments