Este howto es para todos aquellos que quieran servir páginas web desde su casa, ya sea publicando directamente en el servidor o instalando algún portal en php como wordpress o joomla.
El primer paso es dar de alta un dominio de segundo nivel en www.dyndns.com o alguna página similar. Hay que tener en cuenta que las ip’s asignadas a los usuarios caseros suelen ser dinámicas, por lo que deberemos estar pendientes de que la ip que damos de alta en dyndns sea la correcta, y si nos la cambia nuestro ISP, deberemos cambiarla en dyndns.
Con el nombre de dominio que hemos obtenido en dyndns (en el presente ejemplo server1.example.com), procedemos a nombrar nuestra debian, respecto a nuestra ip externa (la que no es 127.0.0.1).
$ nano /etc/hosts
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 fe00::0 ip6-localnet ff00::0 ip6-mcastprefix ff02::1 ip6-allnodes ff02::2 ip6-allrouters ff02::3 ip6-allhosts |
$ nano /etc/hostname
server1 |
$ /bin/hostname -F /etc/hostname
$ shutdown -r now
Cuando conectamos un ordenador directamente a Internet le exponemos a muy diversos peligros. El primero es el de todos los puertos abiertos, es decir, multitud de caminos por los que un hacker puede hacerse con el control de nuestra máquina. En mi caso, tengo un firewall externo, la airport extreme. Si no es vuestro caso, os recomiendo instalar iptables.
El siguiente consejo es cambiar la configuración del servidor ssh, si os es necesario acceder a la shell desde fuera de casa. Si no es así cerrar el puerto 22. Para tener un servidor ssh medianamente seguro, lo mejor es desactivar el acceso del root y darle permisos a un usuario para ejecutar sus tareas. Primero configuraremos sudo al modo ubuntu, y después editaremos la configuración de ssh.
Instalar sudo
$ apt-get install sudo
dar permisos de root a un usuario
Si no le tenemos creado, lo creamos
$ adduser user1
le damos permisos de root desde sudo
$ visudo
añadimos la línea
user1 ALL=(ALL) ALL
Asegurar ssh.
Vamos a cambiar el puerto por defecto de ssh, desactivar el acceso del root y establecer los usuarios que podrán acceder.
$ nano /etc/ssh/sshd_config
– Buscamos
Port 22 – y lo cambiamos por un numero diferente (12345) para ponerselo más difícil a los hackers
– Cambiamos:
PermitRootLogin no
X11Forwarding no
UsePAM no
– y añadimos estas líneas al final:
UseDNS no
AllowUsers user1
Para reiniciar ssh
$ /etc/init.d/ssh reload
Salimos e iniciamos una sesión ssh con el nuevo usuario
* desde OSX o Linux:
ssh -p 12345 user1@123.45.6.78
* Desde Windows:
putty user1@123.45.6.78 1234
Si deseais configurar postfix como servidor de correo, visitar el enlace: http://www.howtoforge.com/perfect_setup_debian_etch_p5 ejecutando antes desde ssh “$ sudo su” para actuar como root.
Instalar apache con php5
$ sudo apt-get install apache2 php5 libapache2-mod-php5 php5-common php5-dev php5-mysql php5-tidy php5-xmlrpc php5-xsl php5-cgi php5-mcrypt php5-curl php5-gd php5-memcache php5-mhash php5-pspell php5-snmp libmagick9-dev php5-cli
Y testeamos php generando un archivo de prueba
$ nano /var/www/test.php
con el contenido
<?php phpinfo()?> |
Visitamos con el navegador http://midominio/test.php
Solucionar problemas con imagick:
sudo aptitude -y install make php-pear |
sudo pecl install imagick |
(y presionamos <ENTER> )
Ajustamos php.ini:
$ sudo nano /etc/php5/cgi/php.ini
Aumentamos la memoria para WordPress :
Buscamos la línea:
memory_limit = 16M y la cambiamos a: memory_limit = 48M
Y al final del archivo añadimos la siguiente línea:
extension=imagick.so
Instalar MySQL y asegurarlo
$ sudo apt-get install mysql-server mysql-client php5-mysql libmysqlclient15-dev
Para asegurarlo
$ mysql_secure_installation
Instalar phpmyadmin
$ sudo apt-get install phpmyadmin
Editamos el archivo de configuración de apache
$ sudo nano /etc/apache2/apache2.conf
Y añadimos la siguiente línea
Include /etc/phpmyadmin/apache.conf |
Reiniciamos apache
$ sudo /etc/init.d/apache2 restart
Ahora deberíamos ver la página de phpmyadmin en http://midominio/phpmyadmin
Introducimos root y password_root
Instalar webmin
Descargar la ulrima version para debian desde www.webmin.com
$ wget http://heanet.dl.sourceforge.net/sourceforge/webadmin/webmin_1.430_all.deb
instalamos programas necesarios
$ apt-get install libnet-ssleay-perl libauthen-pam-perl libio-pty-perl libmd5-perl
instalamos webmin
$ dpkg –i webmin_1.430_all.deb
Podemos acceder a webmin desde https://midominio/webmin:10000/
Para subir páginas hay varios procedimientos, a través de un servidor ftp, a través de la red local con samba, afp o nfs, o a través de ssh. En un próximo howto configuraremos vsftpd.
A disfrutarlo