Usando Linux para muchas cosas y disfrutando de videojuegos, en dispositivos moviles, consolas y pc. Using Linux for many things and enjoying video games, mobile devices, consoles and pc

Mostrando entradas con la etiqueta apache server. Mostrar todas las entradas
Mostrando entradas con la etiqueta apache server. Mostrar todas las entradas

Como restringir el acceso en Apache Web Server

Apache http server logo
No todo tiene que ser publico en este mundo interconectado por medio de la red de redes, Internet. En algún momento puedes necesitar tener un sitio o parte de el privado, solo para tus ojos y algunos colaboradores. Usas Apache, bien, la solución que te mostrare es con el como servidor web.
Esto lo podrías hacer de dos formas; con un archivo .htaccess en el directorio al que quieres restringir el acceso lo cual no es recomendado por motivos de perfomance de Apache y la segunda opción, que es la que les mostrare, es con un bloque Directory.
El ejemplo mostrado se hizo en un servidor Linux Centos 6.5 con Apache, en otras distribuciones debe funcionar igual

Requerimientos

  • Tener permisos para editar el conf de apache
  • Poder reiniciar Apache despues del cambio


-Editamos el httpd.conf y nos creamos un bloque Directory con el path exacto del directorio que queremos restringir. Salimos guardando
vi /etc/httpd/conf/httpd.conf
<Directory "/var/www/html/homero-hobby">
    Order allow,deny
    Allow from 192.168.1.0/24
    Allow from 127
    AddHandler cgi-script cgi exe pl
</Directory>

Explicación de lineas:

  1. Order allow,deny primero dará permisos a las ips en las sentencias Allow from y después denegara todos los accesos que no hayan sido listados en Allow from
  2. Allow from listara una por linea las ips permitidas a leer el directorio, como ven podemos tambien usar rangos con el uso de /mascara de red
  3. AddHandler lista los scripts/binarios permitidos en el directorio
  4. El bloque abre con un <Directory "path"> y cierra con un </Directory> por ende nuestra configuración es dentro de estas dos lineas

-Reiniciamos apache
service httpd restart

-Si alguien no permitido intenta visitar el sitio restringido vera el siguiente error. Sin importar si navegan por http o por https, el directorio/sitio no sera mostrado
DriveMeca restringiendo directorios web con Apache

Te suena util esta forma de restringir contenido? Lo haces de otra forma, como?
Si te resulto útil este articulo, se social, haz un tweet, compártelo con otros por medio de los botones o sígueme en twitter google+ o email y podrás estar enterado de todas mis publicaciones.
Disfrútenlo.

Share/Bookmark

Como instalar un certificado ssl en Apache

Como instalar un certificado ssl en Apache
Si quieres darle confianza a los clientes de tu tienda online debes asegurarla por medio de SSL y hoy te mostraremos como instalar un certificado ssl en Apache. Al tener un certificado instalado en tu apache web server todas las transacciones serán cifradas y tu pagina por si sola certificara que si eres quien dices ser dando esa confianza que un cliente necesita para realizar una compra o transacción. Usaremos un servidor Linux Centos con apache instalado.

-Instalamos dependencias
yum install openssl openssl-devel mod_ssl

-Generamos el csr y key para el certificado. Posteriormente con ellos debemos comprar el certificado en el sitio de alguna autoridad como Thawte o Comodo. En un articulo anterior mostré como generarlo.

-Copiamos nuestro file crt al servidor y lo colocamos en la carpeta pki
cp /root/server.crt /etc/pki/tls/certs/

-Lo incluimos para que apache los lea. Salimos guardando.
vi /etc/httpd/conf.d/ssl.conf

LoadModule ssl_module modules/mod_ssl.so
Listen 443
AddType application/x-x509-ca-cert .crt
AddType application/x-pkcs7-crl    .crl
SSLPassPhraseDialog  builtin
SSLSessionCache         shmcb:/var/cache/mod_ssl/scache(512000)
SSLSessionCacheTimeout  300
SSLMutex default
SSLRandomSeed startup file:/dev/urandom  256
SSLRandomSeed connect builtin
SSLCryptoDevice builtin
<VirtualHost _default_:443>
ErrorLog logs/ssl_error_log
TransferLog logs/ssl_access_log
LogLevel warn
SSLEngine on
SSLProtocol all -SSLv2
SSLCipherSuite ALL:!ADH:!EXPORT:!SSLv2:RC4+RSA:+HIGH:+MEDIUM:+LOW
SSLCertificateFile /etc/pki/tls/certs/server.crt  #Nuestro certificado
SSLCertificateKeyFile /etc/pki/tls/private/server.key   #Copiamos nuestro key en este directorio
SSLCACertificateFile /etc/pki/tls/certs/ca-bundle.crt
<Files ~ "\.(cgi|shtml|phtml|php3?)$">
    SSLOptions +StdEnvVars
</Files>
<Directory "/var/www/cgi-bin">
    SSLOptions +StdEnvVars
</Directory>
SetEnvIf User-Agent ".*MSIE.*" \
         nokeepalive ssl-unclean-shutdown \
         downgrade-1.0 force-response-1.0
         CustomLog logs/ssl_request_log \
          "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"

</VirtualHost>

-Reiniciamos apache
service httpd restart

-Verificamos el certificado abriendo un browser y apuntando hacia la ip o dominio al que le colocamos el certificado recordando hacerlo con https
Como instalar un certificado ssl en Apache

-Le damos click al candado antes de https y allí veremos la ip y el dominio al que le colocamos el certificado ssl.
Como instalar un certificado ssl en Apache

Ya tenemos funcionando nuestro certificado SSL. No fue tan difícil cierto?
Sígueme en twitter google+facebook o email y podrás estar enterado de todas mis publicaciones.
Disfrútenlo.

Share/Bookmark

Como instalar y configurar Mailman con postfix MTA

Mailman es un servidor de listas muy util que nos sirve para tener nuestra propia lista de discusion por email o tener informado a un grupo sobre noticias, lanzamientos, etc. Bien usado (no para el envio de spam o correo no deseado) puede ser una gran herramienta.
Hoy les mostrare como instalarlo y configurarlo en un server Linux Centos 6 con Postfix como MTA. Toda la instalacion y configuracion la haremos desde root.

-Instalamos dependencias
yum install gcc python-devel python

-Descargamos mailman, aunque ya hay algunas versiones 3.x estan aun no estan en modo stable y no tienen casi documentacion asi que no las recomiendo para un servidor de produccion.
cd /tmp
wget -c http://launchpad.net/mailman/2.1/2.1.14/+download/mailman-2.1.14-1.tgz
tar -xzvf mailman-2.1.14-1.tgz
mkdir /usr/local/mailman

-Creamos un usuario y grupo para mailman con permisos limitados
cd mailman-2.1.14-1
groupadd mailman
useradd -c 'GNU Mailman' -s /sbin/nologin -M -g mailman mailman

-Damos permisos para el grupo mailman
chmod a+rx,g+ws /usr/local/mailman/
chown -R mailman.mailman /usr/local/mailman

-Compilamos
./configure
make install

cd /usr/local/mailman

-Verificamos los permisos ejecutando el siguiente comando hasta que ya no devuelva errores.
bin/check_perms -f

-Configuramos apache
chkconfig httpd on
cd /etc/httpd/conf

-Agregamos al conf de apache y salimos guardando
vi httpd.conf

group nobody
ScriptAlias /mailman/ "/usr/local/mailman/cgi-bin/"
Alias   /pipermail/     "/usr/local/mailman/archives/public/"
<Directory "/usr/local/mailman/archives/public/">
    AddDefaultCharset Off
</Directory>

-Reiniciamos apache
service httpd restart

cd /usr/local/mailman
cp icons/*.{jpg,png} /var/www/icons/

vi Mailman/mm_cfg.py
IMAGE_LOGOS = '/icons/'
MTA = 'Postfix'

-Agregar a postfix y salimos guardando
vi /etc/postfix/main.cf
#luser_relay
recipient_delimiter = +
alias_maps = hash:/etc/aliases, hash:/usr/local/mailman/data/aliases

-Generamos aliases
bin/genaliases

-Cambios en permisos
chown mailman:mailman data/aliases*
chmod g+w data/aliases*

-Generamos la primera lista, obligatorio para el funcionamiento de mailman
bin/newlist mailman

-Configuramos tareas en cron
cd cron

-Editamos el crontab.in y agregamos el campo MAILTO en la primera linea y salimos guardando.
vi crontab.in

MAILTO=user@example.com


-Ejecutamos
crontab -u mailman crontab.in
cd ..

-Ejecutamos mailman
bin/mailmanctl start

-Configuramos para inicio automatico cada vez que haga boot el server
cp scripts/mailman /etc/init.d/mailman
chkconfig mailman on

-Creamos el password del sitio en general y el de creador de listas. El del sitio tiene permisos para todas las listas, el de creador de listas seria para dar permisos para una lista a otro usuario sin que tenga permisos para las demas

-Password del sitio
bin/mmsitepass

-Password para una lista
bin/mmsitepass -c password-a-colocar

-Entramos con un browser a la pagina del server con mailman y llenamos los campos para crear nuestra segunda lista, esta ya de uso nuestro.
http://mm.test.com/mailman/create

Listo, ya podemos configurar a nuestro gusto las listas, que pueden ser moderadas o no moderadas, de solo envio, etc.
Disfrutenlo

Share/Bookmark