Your SlideShare is downloading. ×
  • Like
Policyd: Instalacion y configuracion
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Now you can save presentations on your phone or tablet

Available for both IPhone and Android

Text the download link to your phone

Standard text messaging rates apply

Policyd: Instalacion y configuracion

  • 653 views
Published

 

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
653
On SlideShare
0
From Embeds
0
Number of Embeds
0

Actions

Shares
Downloads
21
Comments
0
Likes
0

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. POLICYD: INSTALACION y CONFIGURACION INTRODUCCIÓN Policyd v2 (también llamado cluebringer) es un servicio multi-plataforma que permite implementar políticas de seguridad anti-spam para servidores MTA. INSTALACION Y CONFIGURACION DEL POLICYD 1.- REQUISITOS PolicyD: • MySQL, PostgreSQL or SQLite • Net::Server >= 0.96 • Net::CIDR • Config::IniFiles (debian: libconfig-inifiles-perl, rpm: perl-Config-IniFiles) • Cache::FastMap (debian: libcache-fastmmap-perl, rpm: perl-Cache-FastMmap) • Mail::SPF (required for CheckSPF module) WebUI - Para la parte web del Policyd (opcional): • PHP v5+ (compiled with PDO support for your database) 2.- INSTALACIÓN • Descargamos la última versión desde http://devlabs.linuxassist.net/projects/policyd/files y extraemos los ficheros: tar -xvvzf cluebringer-v2.1.x-201211111115.tar.gz • Entramos en el directorio database y creamos la estructura de la base de datos, para ello ejecutamos: for i in core.tsql access_control.tsql quotas.tsql amavis.tsql checkhelo.tsql checkspf.tsql greylisting.tsql accounting.tsql do ./convert-tsql mysql $i done > policyd.sql • Ejecutamos el sql que acabamos de crear, en el servidor que vaya a tener la base de datos del policyd y creamos el usuario que va a acceder a la base de datos: mysql -u root -p -e "create database policyd" mysql -u root -p policyd < policyd.sql mysql -u root -p -e "grant select, insert, update, delete on policyd.* to usuarioBD@'servidorCorreoPolicyd' identified by 'passwordDelUsuarioBD';" mysql -u root -p -e "flush privileges;" • Creamos el usuario y grupo con el que se va a ejecutar el demonio del policyd: /usr/sbin/groupadd cbpolicyd /usr/sbin/useradd -s /sbin/nologin -g cbpolicyd cbpolicyd
  • 2. • Creamos el directorio /etc/cbpolicyd y movemos el cluebringer.conf a dicho directorio: mkdir /etc/cbpolicyd mv cluebringer.conf /etc/cbpolicyd/ • Modificamos las siguientes líneas en el /etc/cbpolicyd/cluebringer.conf, sobretodo hay que especificar el puerto y los datos de la base de datos: vi /etc/cbpolicyd/cluebringer.conf # Preforking configuration # # min_server - Minimum servers to keep around # min_spare_servers - Minimum spare servers to keep around ready to # handle requests # max_spare_servers - Maximum spare servers to have around doing nothing # max_servers - Maximum servers alltogether # max_requests - Maximum number of requests each child will serve min_servers=4 min_spare_servers=4 max_spare_servers=12 max_servers=25 max_requests=1000 # Log level: # 2 - Notices, warnings, errors log_level=2 log_file=/var/log/cbpolicyd/cbpolicyd.log # Things to log in extreme detail log_detail=modules,tracking,policies,protocols proto=tcp # IP to listen on, * for all. Blank for unix sockets host=* port=10031 # Timeout in communication with clients # Idle timeout in postfix defaults to 1015s (active connection) timeout_idle=1015 # Busy sockets in postfix defaults to 100s timeout_busy=115 # cidr_allow/cidr_deny # Comma, whitespace or semi-colon separated. Contains a CIDR block to # compare the clients IP to. If cidr_allow or cidr_deny options are # given, the incoming client must match a cidr_allow and not match a # cidr_deny or the client connection will be closed. cidr_allow=0.0.0.0/0 cidr_deny= # DATOS DE NUESTRA BASE DE DATOS: nombre, usuario y password correspondiente [database] #DSN=DBI:SQLite:dbname=policyd.sqlite DSN=DBI:mysql:database=policyd;host=localhost Username=usuarioBD Password=passwordDelUsuarioBD • Movemos los directorios cbp/ y awitpt/ a /usr/local/lib/cbpolicyd-2.1: mkdir /usr/local/lib/cbpolicyd-2.1 mv cbp /usr/local/lib/cbpolicyd-2.1/
  • 3. mv awitpt/awitpt /usr/local/lib/cbpolicyd-2.1/ • Movemos los servicios cbpolicyd y cbpadmin a /usr/local/sbin y /usr/local/bin respectivamente: mv cbpadmin /usr/local/bin/ mv cbpolicyd /usr/local/sbin/ • Creamos los directorios /var/log/cbpolicyd y /var/run/cbpolicyd y asignamos los permisos adecuados: mkdir /var/log/cbpolicyd mkdir /var/run/cbpolicyd chown cbpolicyd.cbpolicyd /var/log/cbpolicyd /var/run/cbpolicyd • Si queremos gestionar las políticas vía web, movemos el contenido del directorio webui/* a un directorio que vea el apache y modificamos los parámetros del includes/config.php con los datos de nuestra base de datos (nombre, usuario y password). • Creamos un script de inicio para arrancar y parar el servicio del cbpolicyd (/usr/local/sbin/cbpolicyd): • Tenemos un modelo de script de inicio para debian (en el directorio debian) y otro para Fedora (en el directorio contrib/initscripts/Fedora). Como nuestra distribución es debian, hacemos una copia del que viene de ejemplo para debian: cp -prf debian/cluebringer.init /etc/init.d/cbpolicyd • Modificamos los siguientes parámetros: DAEMON="/usr/local/sbin/cbpolicyd" NAME="cbpolicyd" PATH="/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin" LOGFILE="/var/log/cbpolicyd/cbpolicyd.log" RUNDIR="/var/run/cbpolicyd" • Damos permiso de ejecución: chmod +x /etc/init.d/cbpolicyd • Lo configuramos en el arranque de la máquina. En debian, por defecto, no tenemos el chkconfig (se puede instalar pero instala más cosas críticas), como equivalente tenemos el update-rc.d: update-rc.d cbpolicyd defaults Note • Habilitar servicio --> update-rc.d servicio defaults --> Crea enlaces que inician el servicio en los runlevels 2345 y enlaces que lo terminan en los runlevels 016 con la prioridad 20. Equivale a update-rc.d servicio start 20 2 3 4 5 . stop 20 0 1 6
  • 4. • Dehabilitar servicio --> update.rc.d -f servicio remove--> Borra todos los enlaces en los directorios rc.?.d. • Configuramos la rotación del log. Tenemos un fichero de ejemplo para debian, hacemos una copia y modificamos los parámetros que necesitemos: cp debian/cluebringer.logrotate /etc/logrotate.d/cbpolicyd vi /etc/logrotate.d/cbpolicyd /var/log/cbpolicyd/cbpolicyd.log { weekly rotate 7 copytruncate compress notifempty missingok } • Para que el Postfix use el cbpolicyd, debemos añadir las directiva check_policy_service inet:127.0.0.1:10031 en los parámetros smtpd_recipient_restrictions y smtpd_end_of_data_restrictions del main.cf: vi /etc/postfix/main.cf smtpd_recipient_restrictions= check_policy_service inet:127.0.0.1:10031, .... permit smtpd_end_of_data_restrictions = check_policy_service inet:127.0.0.1:10031, permit BIBLIOGRAFíA http://wiki.policyd.org/ http://www.policyd.org/