Mostrando entradas con la etiqueta Apache. Mostrar todas las entradas
Mostrando entradas con la etiqueta Apache. Mostrar todas las entradas

sábado, 3 de mayo de 2008

Permisos de Archivos Y Directorios--->servidor apache(CGI)

seguimos con esto de nuestro server como es usual mucho de los defaces,intrusiones y juanketos xD ocurren por mal manejo del CHMOD. Por ejemplo creamos un archivo index.cgi y lo ponemos en el directorio de Apache R00t y recibimos el clasico aviso de "forbiden" que no tienes permisos para ver archivos en este servidor xD...y para poder verlo correctamente o trabaje le damos CHMOD 777 index.cgi...

Antes que hagas esto nuevamente detente a pensar,,,es esto seguro? esta blood tripeando en pali nuevamente xD?

la respuesta es facil NO!!!pero como damos permisos ?para que nuestro index.cgi funcione correctamente...Emepzemos:

CHMOD:
Apache nesesita Permisos para ejecutar correctamente el archivo Index.cgi pero no queremos que todo el mundo tenga permisos de lectura y escritura sobre el archivo (index.cgi) el propietario de este archivo se supone que es el que sea que tenga permisos de lectura y de escritura...
Como Lo Hacemos?
Código:
# chmod 755 index.cgi
los archivos fuera de nuestro root del servidor no deben ser vistos....
Recalquemos y agregamos esta linea a nuestro archivo apache.conf:
Código:
Options FollowSymLinks AllowOverride None
Importante

1-La Linea que agregamos que mencionamos arriba previene a Apache a acceder a archivos y directorios fuera de nuestro root del servidor o sea de nuestro server...

2-Recordemos que otras distribuciones contienen por defecto mejor configuracion de seguridad que otras...

No queremos a usuarios corriendo cgi's donde sea en el directorio de archivos y menos aun no queremos que corran como r00t,la solucion de este problema es "El Directorio Options ExecCGI
ejemplo:agrega esta linea al /etc/apache2/apache2.conf:
Código:
AllowOverride None Options ExecCGI Order allow,deny Allow from all
Recargamos Apache:
Código:
# /etc/init.d/apache2 reload
========================================================
Entonces si tu tienes recursos o servicios que solamente entran por medio de una red o un Ip especifico..
La solucion a este problema seria la siguiente configuracion para que apache funcione:
Ejemplo:only allow access to network 192.168.0.0.
Cambiariamos las siguientes lineas en el /etc/apache2/apache2.conf:
Código:
AllowOverride None Options ExecCGI Order allow,deny Allow from all
Por
Código:
AllowOverride None Options ExecCGI Order Deny,Allow Deny from all Allow from 192.168.0.0/16.
Recargamos Apache Nuevamente Para ver si surgieron efectos
Código:
# /etc/init.d/apache2 reload
Ahora solamente usuarios de tu red interna,Podran correr scripts Cgi's en "/home/username/public_html/cgi-bin"

Usuarios Y Grupos En Apache--->Ubuntu 7.10 Servidor

Usuarios Y Grupos:

Sigamos Con Nuestra Configuracion De Nuestro Server En Ubuntu 7.10 Asumo Que Ya Instalaron EL server
si No Arriba En Esta Chincheta Esta El manual Echemos Manos A la Obra:

Que Vamos A Hacer?
Aseguraremos el Acceso A nuetro Servidor Y Dar Los Permisos Nesesarios A Los Archivos En El
Una De Las Cosas Que Tenemos Que Asegurar Siempre Que Apache No este Corriendo Como Root
Por Que En El Caso De Una Escalada De Privilegios O Un Hacker Ataque Nuestro Server No Tome Control De Nuestra
Cuenta Root. Ahora Veamos En Que Grupo De usuarios Apache Corre


Realizamos El Siguiente Comando
Código:
# ps auwwfx | grep apache
www-data 6216 0.0 0.3 7260 1832 ? S 17:29 0:00 \_ /usr/sbin/apache-perl
www-data 6217 0.0 0.3 7260 1832 ? S 17:29 0:00 \_ /usr/sbin/apache-perl
www-data 6218 0.0 0.3 7260 1832 ? S 17:29 0:00 \_ /usr/sbin/apache-perl
www-data 6219 0.0 0.3 7260 1832 ? S 17:29 0:00 \_ /usr/sbin/apache-perl
www-data 6224 0.0 0.3 7260 1832 ? S 17:29 0:00 \_ /usr/sbin/apache-perlt
Como Podemos Ver El Usuario www-data Es Quien Esta Corriendo Apache,Como Quiera Tenemos Que Crear Un Grupo Y Usuario
Para Apache

Código:
# groupadd www-data
# useradd -g www-data www-data
# vi /etc/apache2/apache2.conf
Cambiamos User root Group root A User www-data Group www-data
Recaragamos Para Asegurarnos Que Todo Salio Bien
Código:
# /etc/init.d/apache2 reload

Ya Con Eso Nos Hemos Ocupado Que Apache Este Corriendo Con Su Grupo Y Usuarios Para Ir Fortaleciendo Nuestro Server

Servidor Apache (Apache,PHP,ProFTPd)-->Instalacion Ubuntu 7.10

Bueno Aqui A continuacion Una Guia Para Instalar Un Servidor Apache En Ubuntu 7.10.

Ideal Para Hacer Pruebas O Para Adentrarte En El Mundo De Los Webservers O Lo Que Creas.

Que Instalaremos?

  • Apache
  • PHP5
  • Proftpd

    Asi Tendremos Los Componentes Basicos Para Tener Nuestro Server Localmente Y Si Se Puede Configurar Para Habilitarlo Web Esto Es Una Simple Guia Para Instalarlo.

    Primero Instalaremos Apache
    Código:
    apt-get install apache2 apache2-doc apache2-mpm-prefork apache2-utils libexpat1 ssl-cert
    De Esa Forma Instalamos Apache Y todos Sus Componentes Nesesarios.
    Instalamos PHP5
    Código:
    apt-get install libapache2-mod-php5 php5 php5-common php5-curl php5-dev php5-gd php5-idn php-pear php5-imagick php5-imap php5-json php5-mcrypt php5-memcache php5-mhash php5-ming php5-mysql php5-ps php5-pspell php5-recode php5-snmp php5-sqlite php5-tidy php5-xmlrpc php5-xsl
    Como Podemos Ver Se Instalan Inclusive Hasta Las Librerias.
    Saldra La siguiente Pregunta A La Que Constestaremos
    Continue installing libc-client without Maildir support?<-- Yes
    Ahora Editaremos Este Archivo
    /etc/apache2/mods-available/dir.conf:
    Código:
    vi /etc/apache2/mods-available/dir.conf
    Y Cambiaremos La Linea Del Directorio Principal:
    Código:


    #DirectoryIndex index.html index.cgi index.pl index.php index.xhtml
    DirectoryIndex index.html index.htm index.shtml index.cgi index.php index.php3 index.pl index.xhtml

    (Editado En El Archivo Obviamente)
    Ahora Habilitaremos Algunos Modulos De Apache (SSL, rewrite, suexec, y include:)
    Código:
    a2enmod ssl
    a2enmod rewrite
    a2enmod suexec
    a2enmod include
    Recargaremos La Configuracion De Apache
    Código:
    /etc/init.d/apache2 force-reload
    Desabilitamos PhP Globalmente
    Si No Tienen Planes De Instalar ISPConfig En Este Servidor Solo Omitan Esta Parte
    En La Configuracion Del ISPConfig Configuraremos los componentes basicos basados-webs-->ahi daremos los permisos de los websites que pueden correr scripts y los que no Esto Solo Trabajara Si Tenemos Desabilitado PHP Globalmente,Si No Todos Los Websites Alojados Podran Correr Scripts (PHP),Sin Importar que Configues ISPConfig
    Para Desabilitar PHP Globalmente Editamos/etc/mime.typesY Comentamos Las Lineas Deapplication/x-httpd-php
    Código:
    vi /etc/mime.types
    Serian:
    Código:
    [...]
    #application/x-httpd-php phtml pht php
    #application/x-httpd-php-source phps
    #application/x-httpd-php3 php3
    #application/x-httpd-php3-preprocessed php3p
    #application/x-httpd-php4 php4
    [...]
    Editaremos/etc/apache2/mods-enabled/php5.confY Comentaremos las Siguientes Lineas En Este Archivo
    Código:
    vi /etc/apache2/mods-enabled/php5.conf
    Recuerden Que Siempre Para Comentar Se Usa (#) Sin Los Parentesis
    Lineas A Comentar
    Código:

    #AddType application/x-httpd-php .php .phtml .php3
    #AddType application/x-httpd-php-source .phps
    Reiniciamos Apache
    Código:
    /etc/init.d/apache2 restart
    Ahora Vamos A La Parte De ProFTPd
    Para Instalarlo
    Código:
    apt-get install proftpd ucf
    Saldra La siguiente Pregunta A La Que Constestaremos
    Run proftpd from inetd or standalone?<-- standalone
    Despues Abriremos/etc/proftpd/proftpd.confY CambiamosUseIPv6DeonParaoff;Si No Lo Cambiamos Recibiremos Una Advertencia Como Esta Cuando Inicies ProFTPd
    Si Recibes Una Advertencia Como Esta
    - IPv6 getaddrinfo 'server1.example.com' error: Name or service not known
    Puedes Igual Modificar /etc/hostsY Agregarserver1.example.comA La Linea::1
    De Esta Manera:
    Código:
    vi /etc/hosts
    Código:
    127.0.0.1       localhost.localdomain   localhost
    192.168.0.100 server1.example.com server1

    # The following lines are desirable for IPv6 capable hosts
    ::1 ip6-localhost ip6-loopback server1.example.com
    fe00::0 ip6-localnet
    ff00::0 ip6-mcastprefix
    ff02::1 ip6-allnodes
    ff02::2 ip6-allrouters
    ff02::3 ip6-allhosts
    O Si No Puedes Abrir/etc/proftpd/proftpd.confY CambiarUseIPv6DeonParaoff
    Código:
    vi /etc/proftpd/proftpd.conf
    Código:
    [...]
    UseIPv6 off
    [...]
    Por Razones De Seguridad Agregaremos Las Siguientes Lineas/etc/proftpd/proftpd.conf
    Código:
    vi /etc/proftpd/proftpd.conf
    Código:
    [...]
    DefaultRoot ~
    IdentLookups off
    ServerIdent on "FTP Server ready."
    [...]
    La ISPconfig Se Supone Que Este/etc/proftpd.confEn Vez De/etc/proftpd/proftpd.conf,Crearemos Una Referencia Pueden Obviar este Paso Si No Van Instalar ISPconfig
    Código:
    ln -s /etc/proftpd/proftpd.conf /etc/proftpd.conf
    Reiniciamos ProFTPd
    Código:
    /etc/init.d/proftpd restart
    Y Ya Tienen Su Servidor Casero Con Ubuntu Instalado.Recuerden Que No Esta Totalmente Configurado Ya Les Pondre La Manera De Asegurarlo Y cosas Wink
    Que Es ISPconfig?
    ISPConfig es un gestor de hosting para la administración de ISPs. Gestiona sus servidores Webs, servidores de email, BIND DNS, proftpd + vsftpd Server, bases de datos MySQL. Spamssassin, y cuotas en discos de manera fácil, desde una interface Web, pudiendo a su vez gestionarse desde los administradores, revendedores y clientes.
    Espero Que Esto Le Sirva De Guia Para Montar Su Servidor Casero Con Ubuntu Como S.O