Académique Documents
Professionnel Documents
Culture Documents
Versin Autor: Till Brehm <t [dot] brehm [at] ispconfig [dot] com>, Falko Timme <ft [at] falkotimme [dot] ltima edicin 06/23/2008 Esta es una descripcin detallada sobre cmo configurar un OpenSUSE 11 servidor que ofrece todos los servicios necesarios para los ISP y alojadores: el servidor web Apache (SSL-capaz), servidor de correo Postfix con SMTP-AUTH y TLS, BIND DNS del servidor, servidor FTP Proftpd , MySQL, Dovecot POP3/IMAP, Quota, Firewall, etc Este tutorial est escrito para la versin de 32 bits de OpenSUSE 11, pero debe aplicarse a la versin de 64-bits con muy pocas modificaciones tambin. Voy a utilizar el software siguiente: 1.0 com>
Servidor Web: Apache 2.2 Servidor de base de datos: MySQL 5.0 Servidor de correo: Postfix Servidor DNS: bind9 Servidor FTP: proftpd ( ISPConfig no funcionar con vsftpd en OpenSUSE 11) POP3/IMAP: Voy a usar el formato Maildir y por lo tanto instalar Courier-POP3/Courier-IMAP. Webalizer para las estadsticas del sitio web Al final, usted debe tener un sistema que funciona de forma fiable, y si lo desea puede instalar el panel de control de webhosting gratis ISPConfig (es decir, se ejecuta en ISPConfig fuera de la caja). Quiero decir primero que esta no es la nica manera de crear tal sistema. Hay muchas maneras de lograr este objetivo, pero este es el camino que tomo. Yo no emiten ninguna garanta de que esto funcionar para usted!
1 Requisitos
Para instalar este sistema se necesita lo siguiente:
El OpenSUSE 11 DVD . Puedes descargarlo aqu: http://ftp5.gwdg.de/pub/opensuse/distribution/11.0/iso/dvd/openSUSE-11.0-DVDi386.iso Una conexin rpida a Internet ...
2 Nota preliminar
En este tutorial utilizo el nombre de host server1.example.com con la direccin IP 192.168.0.100 y la puerta de enlace 192.168.0.1 . Estos ajustes pueden ser diferentes para ti, as que tienes que reemplazarlos cuando sea apropiado.
3 El sistema base
Arrancar desde su OpenSUSE 11 DVD y seleccione Instalacin :
Seleccionamos "Other> Seleccin Servidor Mnimo" aqu queremos instalar un servidor sin escritorio X-Window. El sistema X-Window no es nescessary para ejecutar el servidor, y frenara el sistema. Vamos a hacer todas las tareas de administracin en el shell o por mediacin de una conexin SSH por ejemplo, a travs de PuTTY desde un escritorio remoto.
Haga clic en "Configuracin de la particin Editar" para cambiar las particiones propuestas. Como se trata de una configuracin de servidor, es necesario un gran / srv particin en lugar de / home particin:
Cambiar el "Punto de montaje" a / srv y haga clic en Aceptar y, a continuacin, haga clic en Siguiente :
Ahora puedo crear un usuario llamado "administrador". Usted puede usar cualquier nombre de usuario que desee. Asegrese de desactivar el inicio de sesin automticocasilla de verificacin para este usuario. La contrasea que introduzca aqu se utilizar como contrasea de root.
El programa de instalacin muestra una visin general de las opciones de instalacin seleccionadas. Seleccione Instalar para iniciar el proceso de instalacin.
Los formatos de instalacin del disco duro, instala los paquetes de software y la configuracin del sistema se prepara para el primer arranque:
Ahora inicie sesin con el nombre de usuario "root" y la contrasea que eligi durante la instalacin.
Seleccione "Direccin IP asignada estticamente" e introduzca la direccin IP, mscara de subred y de host y guardar los cambios, seleccione "Siguiente":
A continuacin, seleccione "Nombre de Host / DNS" e introduzca el nombre de host y servidores de nombres:
Ahora seleccione "Routing" e introduzca la puerta de enlace predeterminada y haga clic en "Finalizar":
6 cuotas
Para instalar cuota, ejecute yast2-i cuota Editar / etc / fstab para que parezca esto (he aadido , usrquota, grpquota respectivos puntos de montaje / y / srv ): vi / etc / fstab
/ Dev/disk/by-id/scsi-SATA_VMware_Virtual_00000000000000000001-part1 swap swap defaults 0 0 / dev/disk/by-id/scsi-SATA_VMware_Virtual_00000000000000000001-part2 / ext3 acl, user_xattr, usrquota, grpquota 1 1
/ dev / disk / by -id/scsi-SATA_VMware_Virtual_00000000000000000001-part3 / srv ext3 acl, user_xattr, usrquota, grpquota 1 2 proc / proc proc defaults 0 0 sysfs / sys sysfs noauto 0 0 debugfs / sys / kernel debugfs / debug noauto 0 0 usbfs / proc / bus / usb usbfs noauto 0 0 devpts / dev / pts modo devpts = 0620, gid = 5 0 0
A continuacin, ejecute: touch chmod touch mount-o mount-o remount / srv quotacheck-avugm quotaon-avug No te preocupes si ves estos mensajes de error quotacheck: ADVERTENCIA - Quotafile / configuracin quotacheck: quotacheck: quotacheck: configuracin configuracin quotacheck escaneado: 5286 ADVERTENCIA Quotafile / configuracin Scanning Chequeado de de / dev/sda3 / / srv chmod 600 / srv / aquota *. remount / / 600 / aquota.user / aquota.user / / aquota. srv / aquota.group * aquota.group
/ de
aquota.user aquota.group /
se fue
trunc truncado
se se
puede puede
guardar guardar
la la
... ... [/] hecho 45399 ... ... srv] Hecho archivos
de dev/sda2 directorios
y cuota cuota [/
quotacheck: ADVERTENCIA - Quotafile / srv / aquota.user fue truncado probablemente. No se puede guardar la quotacheck: ADVERTENCIA - Quotafile / srv / aquota.group fue truncado probablemente. No se puede guardar la
7 Servidor DNS
Ejecutar yast2-i se unen bind-chrootenv bind-devel bind-utils Luego agregar el sistema enlaces de inicio para BIND y ponerlo en marcha: chkconfig / etc / init.d / named start Bind se ejecutar en una crcel chroot bajo / var / lib / named . add llamado
8 MySQL
Para instalar MySQL, se corre yast2-i mysql mysql-client mysql-shared perl-DBD-mysql-perl perl-DBI datos ShowTable libmysqlclient-devel Luego agregar el sistema enlaces de inicio para MySQL e iniciarlo: chkconfig / etc / init.d / mysql start Ahora compruebe que la red est habilitada. Ejecutar add mysql
netstat-tap | grep mysql En la salida debera ver algo como esto: server1: ~ tcp server1: ~ # Si usted no ve una lnea como esta, editar / etc / my.cnf , comente la opcin skip-networking : vi / etc / my.cnf 0 0
# *:
netstat-tap mysql *: *
grep LISTEN
mysql 8566/mysqld
600
smtpd.key
openssl x509-req-days 3650-en-smtpd.csr signkey smtpd.key Salida smtpd.crt openssl rsa-in-out smtpd.key smtpd.key.unencrypted mv-f smtpd.key.unencrypted smtpd.key openssl req-new-x509-extensions-v3_ca keyout cakey.pem Salida cacert.pem das de 3650 A continuacin configurar Postfix con SMTP-AUTH y TLS: postconf-e postconf-e postconf-e postconf-e postconf-e postconf postconf-e postconf-e postconf-e postconf-e postconf-e postconf-e postconf-e postconf-e postconf-e postconf-e postconf-e postconf-e postconf-e postconf-e postconf-e ' 'smtpd_tls_key_file 'smtpd_tls_cert_file 'smtpd_tls_CAfile = 'alias_maps 'myhostname 'mynetworks 'mydomain = = = server1 127.0.0.0 = = = = permit_mynetworks, = / etc = = = = postfix / / postfix postfix / = = = yes / / ssl ssl ssl / / / smtpd.key / / aliases noanonymous' $ / example.com' mydomain. 8' =' yes' e yes' yes' check_relay_domains' all' ' no' yes' yes' yes' ' smtpd.crt' cacert.pem' 1' ' 3600s'
'smtpd_sasl_local_domain 'smtpd_sasl_auth_enable 'smtpd_sasl_security_options 'broken_sasl_auth_clients 'smtpd_sasl_authenticated_header 'smtpd_recipient_restrictions = permit_sasl_authenticated, hash: 'inet_interfaces 'smtpd_tls_auth_only 'smtp_use_tls 'smtpd_use_tls 'smtp_tls_note_starttls_offer = = / / / etc etc etc
postconf-e 'tls_random_source = dev :/ dev / urandom' Para permitir conexiones TLS en Postfix, editar / etc / postfix / master.cf y descomentar la tlsmgr lnea para que se vea como este: vi / etc / postfix / master.cf
250-STARTTLS y 250-AUTH LOGIN PLAIN entonces todo est bien. En mi sistema la salida es el siguiente: server1 :/ etc / Trying . carcter 220 ehlo 250 250 250 250 250 250-STARTTLS 250-AUTH 250-AUTH 250 250 250 dejar 221 Connection Tipo dejar de para volver al shell del sistema. closed server1 :/ etc / postfix / ssl # 2.0.0 by foreign Bye host. = LOGIN LOGIN PLAIN PLAIN ENHANCEDSTATUSCODES 8BITMIME DSN TAMAO Connected de server1.example.com escape ESMTP postfix / 127.0.0.1 to es ssl # telnet localhost 25 ... localhost '^]'. Postfix localhost server1.example.com PIPELINING 10.240.000 VRFY ETRN
10 Courier-IMAP/Courier-POP3
Quiero usar un demonio que tiene soporte POP3/IMAP Maildir. Es por eso que yo uso Courier-IMAP y POP3-Courier. yast2-i courier-imap courier fam-servidor-authlib esperar tcl Despus aadimos los enlaces de inicio del sistema e iniciar POP3, IMAP, POP3S y IMAPs: chkconfig chkconfig chkconfig chkconfig / / chkconfig chkconfig / etc / etc etc / / init.d / init.d init.d / / -aadir add courier-pop-ssl add add add courier-pop courier-imap de add fam courier-authdaemon courier-pop courier-imap inicio inicio courier-pop-ssl courier-imap-ssl inicio
/ etc / init.d / courier-imap-ssl inicio Si no desea utilizar ISPConfig, configurar Postfix para entregar mensajes de correo electrnico a Maildir del usuario *: postconf-e postconf-e / etc / init.d / postfix restart 'home_mailbox = 'mailbox_command Maildir /' ='
* Nota: Usted no tiene que hacer esto si usted va a utilizar ISPConfig en el sistema ISPConfig como lo hace la configuracin necesaria con recetas Procmail. Pero, por favor asegrese de habilitar ir Maildir bajo Management -> Servidor -> Ajustes -> Correo electrnico en la interfaz web de ISPConfig.
11 Apache/PHP5
Ahora instale Apache con PHP5: yast2-i apache2 apache2-devel apache2-mod_perl apache2-mod_php5 apache2-prefork perl-HTML-Parser perl-HTML-
Tagset perl-Tie-IxHash perl-perl-URI libwww-perl php5 php5-devel zlib zlib-devel Luego instalar algunos PHP5 mdulos: yast2-i-php5 php5-bz2 bcmath php5 php5-calendario-ctype php5-curl php5 php5-dbase-dom php5 php5-ftp-gd php5 php5-gettext-gmp php5 php5-iconv-imap php5 php5-ldap-mbstring php5- mcrypt php5-mysql php5 php5-ncurses-odbc php5 php5-openssl-PCNTL php5-pgsql php5 php5-posix-shmop php5-snmp php5 php5-soap-sockets php5-sqlite php5 php5sysvsem tokenizer-php5 php5-wddx-xmlrpc php5 -xsl php5 php5-zlib-exif php5 php5-fastcgi-pear php5 php5-sysvmsgsysvshm ImageMagick rizo Luego edite / etc/apache2/httpd.conf : vi / etc/apache2/httpd.conf y cambiar DirectoryIndex a
[...] DirectoryIndex index.html index.htm index.shtml index.cgi index.php index.php5 index.php4 index.php3 index.pl default.aspx index.aspx index.html.var [...]
Editar / etc/sysconfig/apache2 y aadir reescritura al APACHE_MODULES lnea: vi / etc/sysconfig/apache2
[...] APACHE_MODULES = "acciones alias auth_basic authn_file authz_host authz_groupfile authz_default authz_user authn_dbm autoindex cgi dir env expira incluir log_config mimo negociacin SetEnvIf ssl suexec userdir php5 rewrite" [...]
Tambin agregar SSL a la APACHE_SERVER_FLAGS lnea:
11.1 Desactivar PHP y Perl nivel mundial (Si usted no planea instalar ISPConfig en este servidor, puede omitir esta seccin!) En ISPConfig configurar PHP y Perl en funcin de cada sitio web, es decir, puede especificar qu pgina web se puede ejecutar scripts PHP y Perl y que no se puede. Esto slo puede funcionar si PHP y Perl estn desactivados a nivel mundial porque de lo contrario todos los sitios web que pueda ejecutar PHP / Perl scripts, no importa lo que especifique en ISPConfig. Para deshabilitar PHP y Perl a nivel mundial, editamos / etc / mime.types y comente la application / x-perl y application / x-php lneas: vi / etc / mime.types
[...] # Application / x-perl perl al pl pm # Application / x-php php php3 php4 [...]
A continuacin, edite / etc/apache2/conf.d/php5.conf y comentar todas las AddHandler lneas: vi / etc/apache2/conf.d/php5.conf
<IfModule Mod_php5.c> # AddHandler application / # AddHandler application / # AddHandler application / # AddHandler application / # AddHandler application / # AddHandler application / DirectoryIndex index.php4 DirectoryIndex index.php5 DirectoryIndex index.php </ IfModule>
Luego reiniciamos Apache: / Etc/init.d/apache2 reiniciar
x-httpd-php. Php4 x-httpd-php. Php5 x-httpd-php. Php x-httpd-php-source. Php4s x-httpd-php-source. Php5s x-httpd-php-source phps.
11,2 mod_ruby OpenSUSE 11 no tiene un paquete mod_ruby, por lo que hay que compilarlo manualmente. En primer lugar, instale los requisitos previos: yast-i apache2-devel ruby ruby-devel Despus construimos mod_ruby la siguiente manera: cd wget tar cd / hacer make install Para habilitar mod_ruby, abrimos / etc/sysconfig/apache2 rub y aadir a la APACHE_MODULES lnea, por ejemplo, as: configure.rb. zxvf mod_ruby-1.2.6 con-abr-includes = / / tmp http://www.modruby.net/archive/mod_ruby-1.2.6.tar.gz mod_ruby-1.2.6.tar.gz / usr/include/apr-1
vi / etc/sysconfig/apache2
[...] APACHE_MODULES = "acciones alias auth_basic authn_file authz_host authz_groupfile authz_default authz_user authn_dbm autoindex cgi dir env expira incluir log_config mimo negociacin SetEnvIf ssl suexec userdir php5 rewrite ruby" [...]
Despus nos encontramos SuSEconfig y reiniciar Apache: / Etc/init.d/apache2 reiniciar
12 Proftpd
Quiero usar Proftpd en lugar de vsftpd que es el servidor FTP por defecto de SUSE debido a que el software de panel de control que voy a instalar en este servidor (ISPConfig ) requiere Proftpd en OpenSUSE 11 (en otras distribuciones es diferente). Dado que no existen paquetes de openSUSE para Proftpd tengo que compilarlo manualmente: yast2-i libcap libcap-devel cd wget alquitrn cd . hacer make cd rm-fr-proftpd 1.3.2rc1 * Ahora cree el archivo / etc / init.d / proftpd : vi / etc / init.d / proftpd install .. / configure / passive-ftp xvfz proftpd-1.3.2rc1 sysconfdir = / tmp / proftpd-1.3.2rc1.tar.gz / etc ftp://ftp.proftpd.org/distrib/source/proftpd-1.3.2rc1.tar.gz
#! / Bin / sh # Copyright (c) 2000-2001 SuSE GmbH Nuremberg, Alemania. # Todos los derechos reservados. # # Autor original: Marius Tomaschewski <mt@suse.de> # # Ligeramente modificado en 2003 para su uso con SuSE Linux 8.1, # Por http://www.learnlinux.co.uk/ # # Ligeramente modificado en 2005 para su uso con SuSE Linux 9.2, # Por Falko Timme # # / Etc / init.d / proftpd # # # # BEGIN INIT INFO # Proporciona: proftpd
# Required-Start: $ $ remote_fs red $ $ syslog llamado # Required-Stop: # Default-Start: 3 5 # Default-Stop: 0 1 2 6 # Descripcin: Inicia servidor ProFTPD # # # END INIT INFO # Determinar la base y siga un nombre de enlace nivel de ejecucin. base = $ {0 # # * /} link = $ {base # * [SK] [0-9] [0-9]} # Fuerza la ejecucin si no es llamado por un directorio de nivel de ejecucin. TEST $ link = $ base && START_PROFTPD = yes # Modificado por learnlinux.co.uk test "$ START_PROFTPD" = yes | | exit 0 # Modificado por learnlinux.co.uk # Los valores que devuelve acc. a LSB para todos los comandos, pero Estado # (ver ms abajo): # # 0 - xito # 1 - error genrico o no especificado # 2 - argumento no vlido o exceso (s) # 3 - Funcin no implementada (por ejemplo, "reload") # 4 - privilegio insuficiente # 5 - programa no est instalado # 6 - programa no est configurado # 7 - programa no se ejecuta proftpd_cfg = "/ etc / proftpd.conf" proftpd_bin = "/ usr / local / sbin / proftpd" proftpd_pid = "/ usr / local / var / proftpd.pid" [-R $ proftpd_cfg] | | salida 6 [-X $ proftpd_bin] | | salida 5 # Fuente funciones de estado . / Etc / rc.status # Primero restablecimiento estado de este servicio rc_reset case "$ 1" empezar) echo-n "Iniciando el servidor ProFTPD:" test-f / etc / shutmsg && rm-f / etc / shutmsg / Sbin / startproc $ proftpd_bin rc_status-v ;; parada) echo-n "Apagado del servidor ProFTPD:" test-x / usr / local / sbin && / ftpshut / usr / local / sbin / ftpshut ahora sueo 1 && / Sbin / killproc PLAZO proftpd_bin $ test-f / etc / shutmsg && rm-f / etc / shutmsg rc_status-v ;; reinicio) # # Si se vuelve a llamar a la primera Aceptar en segundo lugar, si antes o Comando # # segunda falla, establezca el valor eco de retorno. $ 0 parar $ 0 comenzar rc_status ;;
try-restart) # # Detener el servicio y si esto tiene xito (es decir, el # # Servicio estaba funcionando antes), es empezar de nuevo. # # Nota: no (todava) parte del LSB (a partir de 0.7.5) $ 0 Estado> / dev / null && $ 0 reinicie rc_status ;; reload | force-reload) Posibilidad # # Exclusivo: Algunos de los servicios debe ser detenido # # Y comenz a forzar una nueva carga de la configuracin. echo-n "Actualizar servidor ProFTPD:" / Sbin / killproc-HUP $ proftpd_bin rc_status-v ;; estado) # Estado tiene un poco diferente para el comando de estado: # 0 - Correr servicio # 1 - Servicio de muertos, pero / var / run / pid archivo existe # 2 - Servicio de muertos, pero / var / lock / archivo de bloqueo existe # 3 - no servicio que se ejecuta echo-n "Comprobacin de servidor ProFTPD:" checkproc $ proftpd_bin rc_status-v ;; sonda) Sonda para la necesidad de una recarga,: # # Opcional # # Dar el argumento que se requiere para una recarga. [$ Proftpd_cfg-nt $ proftpd_pid] && echo reload ;; *) echo "Uso: $ 0 {start | stop | status | restart | reload | intentar el rearranque | sonda}" salida 1 ;; esac # Establecer un estado de salida. rc_exit
A continuacin, ejecute chmod 755 / etc / init.d / proftpd
chkconfig - add proftpd Comience Proftpd : / Etc / init.d / proftpd inicio Si obtiene el siguiente error ... Inicio del servidor ProFTPD: - Fatal: UseIPv6: El uso de la directiva UseIPv6 requiere soporte IPv6 (- enableipv6) en la lnea 14 del fichero '/ etc / proftpd.conf' startproc: estado de salida del maestro de / usr / local / sbin / proftpd: 1 ... abrir / etc / proftpd.conf y comentar o eliminar la UseIPv6 lnea: vi / etc / proftpd.conf
[...] # Bar uso de SITE CHMOD por defecto # <Limit SITE_CHMOD> # DenyAll # </ Limit> [...]
y reinicie Proftpd : / Etc / init.d / proftpd restart
13 Webalizer
15 Instalar algunos mdulos Perl requeridos por SpamAssassin (viene con ISPConfig)
Ejecutar yast2-i perl-HTML-Parser perl-Net-DNS perl-Digest-SHA1
16 Desactivar AppArmor
AppArmor es una extensin de seguridad de SUSE (similar a SELinux de Fedora) que debe proporcionar mayor seguridad. En mi opinin no es necesario configurar un sistema seguro, y por lo general provoca ms problemas que ventajas (pensar en ello despus de haber hecho una semana despus de la resolucin de problemas porque algn servicio no estaba funcionando como se esperaba,
y entonces saber que todo estaba bien, slo AppArmor era la causa del problema). Por lo tanto, deshabilitarlo (esto es una necesidad si usted quiere instalar ISPConfig ms adelante). Podemos desactivar esta manera: / Etc / init.d / boot.apparmor detener
chkconfig-d boot.apparmor
17 The End
La configuracin del servidor ya est terminado, y si lo desea, ahora puede instalar ISPConfig en l, siguiendo estas instrucciones:http://www.ispconfig.org/manual_installation.htm
17.1 Una nota sobre SuExec Si desea ejecutar scripts CGI bajo suexec, debe especificar / srv / www como la raz web para los sitios web creados por ISPConfig como suexec SUSE se compila con / srv / www como doc_root . Ejecutar / Usr/sbin/suexec2-V y el resultado debe ser similar a esto: server1: ~ -D -D -D -D -D -D -D server1: ~ # As que si quieres usar suexec con ISPConfig, no cambie la raz web predeterminado (que es / srv / www ) si se utiliza el modo experto durante la instalacin de ISPConfig (en modo estndar no se puede cambiar la raz de tela de todos modos por lo que ser capaz de usar suexec en cualquier caso). AP_SAFE_PATH AP_LOG_EXEC = "/ usr / AP_UID_MIN AP_USERDIR_SUFFIX = AP_DOC_ROOT = AP_GID_MIN AP_HTTPD_USER = local / "/ bin :/ = usr = / bin :/
# "/
/ srv = /
18 Links
Primero deberemos instalar el paquete necesario para nuestro servidor ftp, en nuestro caso usaremos vsftpd incluido en los repositorios. Para su instalacin, abriremos un terminal y teclearemos, siempre como root:
$ zypper in vsftpd
(Podemos usar Yast Software Management para instalar dicho paquete de manera grfica, tal como Synaptic en Ubuntu)
Una vez instalado vamos a activar el servidor FTP en el init script con tal de que el servidor FTP arranque automaticamente en el arranque de la mquina.
Echo esto, vamos a proceder a arrancar el servidor FTP, para ello, como root teclearemos:
$ rcvsftpd start
Tras ello es el momento de abrir el puerto en el firewall para poder hacer uso del servidor FTP. Para ello abriremos el fichero SuSEfirewall2 con nuestro editor favorito (en el ejemplo vim):
Debemos buscar la variable FW_SERVICES_EXT_TCP y asegurarnos que el servicio ftp aparece en la lista, quedando el fichero, por ejemplo, de la siguiente manera:
$ rcSuSEfirewall2 reload
FTP
Activar escritura:
write_enable=YES
local_enable=YES
chroot_local_user=NO
anonymous_enable=NO