GNU/Linux >> Linux Esercitazione >  >> Cent OS

Passaggi preliminari alla configurazione

Il tuo cloud, i tuoi dati, a modo tuo! - ownCloud 4.0 su CentOS 6.2 + nginx + PostgreSQL

Questo documento descrive come installare e configurare ownCloud dalla "community ownCloud" su un server web basato su CentOS 6.2 dal pacchetto tar su un nginx e php-fpm con database postgreSQL come backend. Per altre distribuzioni potrebbero esserci lievi modifiche alle procedure di installazione dei prerequisiti software. Questa guida non solo aiuterà a installare il prodotto, ma anche a capire perché alcuni punti vengono eseguiti nel modo in cui vengono eseguiti (questo è molto utile per gli utenti con poca o nessuna conoscenza che, come me qualche tempo fa, hanno solo iniziato a usare Linux).

Cos'è ownCloud?

È uno strumento di condivisione di file / contatti / calendario di gruppo o aziendale che, dal mio punto di vista, sfrutta al meglio sia Dropbox che GroupOffice (ad eccezione dell'integrazione e-mail finora) e non è ingombra o pesante come Alfresco o Sharepoint.

Collegamenti a diverse sezioni dello sviluppatore:

  • Home page del prodotto:http://owncloud.org/
  • IRC:http://webchat.freenode.net/?channels=owncloud
  • Supporto:http://owncloud.org/support/

Non garantisco che funzionerà per te, poiché in seguito potrebbero esserci modifiche al software, sia prerequisito che principale, eseguite in modo tale da interrompere o comunque impedire il completamento delle procedure menzionate in questo tutorial.
PS Tutti i bug aggiunti sono miei. Usa i commenti o naviga su IRC.

Nota preliminare

In questo tutorial utilizziamo:

  • Supporto di installazione di Centos 6.2
  • Nome host:owncloud.example.com
  • Indirizzo IP:192.168.1.100
  • Indirizzo del router:192.168.1.1
  • Maschera di rete:255.255.255.0
  • Supponiamo (immagina) che il server sia connesso alla rete Internet pubblica
  • Utilizziamo il nostro computer per amministrare il server in remoto tramite ssh (putty su Windows), anche se hai il server al tuo fianco, o se lo fai funzionare come macchina virtuale con il tuo sistema operativo principale
  • GNU vim come nostro editor di testo principale. Ma sentiti libero di usare qualsiasi altro di tuo gradimento

Requisiti

Avremo bisogno di un'installazione pulita (minima) di Centos 6.2 (x86 o x86_64 è irrilevante), io personalmente uso la versione x86_64 e ti consiglio vivamente di fare lo stesso.

Prima le cose da fare

Accedi alla console del server come root. Ti troverai al prompt [[email protected] ~]#.

Preferisco alcune impostazioni, che sono completamente opzionali, ma potresti trovarle utili in seguito. Ho impostato il mio terminale per mostrare l'output a colori con data, ora, nome del server e cartella corrente al prompt. Anche per mostrare la cronologia dei comandi con data/ora. Aumento anche i valori predefiniti delle dimensioni della cronologia.

Per farlo, esegui:

vi ~/.bash_profile

Aggiungi le righe menzionate dopo la direttiva export PATH. Nel caso non lo sapessi, premendo "i" si entra in modalità inserimento, "ESC" ne esce. Vi è vi :)

#History size to hold 50.000 commands and inflate filesize ten times bigger
export HISTSIZE=50000
export HISTFILESIZE=500000
#Show history with date as example: "24.05.2012 - 14:28:56"
export HISTTIMEFORMAT="%d.%m.%Y - %H:%M:%S "
#Autocolor output of "ls" command
export LS_OPTIONS='--color=auto'
eval "`dircolors`"
#Set prompt to display as example: "Thu May 24 2012  14:28:56 owncloud.example.com of root @ ~]"
#and colorize date, time and location differently. Set all input text to default values.
PS1="\e[1;37m\][\e[1;36m\] \d \D{%Y}  \e[1;31m\]\t \e[1;37m\] \H of \u @ \W] \033[00m\]"

Salva ed esci dal file. Di nuovo, se non lo sai, al di fuori della modalità di inserimento puoi inserire ":wq" e premere invio per salvare ed uscire, o semplicemente premere "ZZ" per fare lo stesso. Per accedere nuovamente al terminale per applicare le modifiche, eseguire:

exit

Rete

Se non hai impostato un indirizzo IP statico durante l'installazione, supponi di avere un router abilitato per DHCP, devi farlo ora, altrimenti vai al passaggio successivo.

vi /etc/sysconfig/network-scripts/ifcfg-eth0

Modifica o aggiungi solo le righe citate.

BOOTPROTO="none"
NETWORK="192.168.1.0"
NETMASK="255.255.255.0"
IPADDR="192.168.1.100"
GATEWAY="192.168.1.1"

Salva ed esci. Quindi riavvia la rete:

service network restart

Verifica che la rete sia riconfigurata eseguendo:

ifconfig

Ora dovresti essere in grado di inviare ssh al server su 192.168.1.100 come root. Ma non farlo ancora, prima completa il passaggio successivo.

Protezione del server

Prima di procedere oltre, poiché supponiamo che il server sia, in effetti, connesso a Internet, dobbiamo metterlo in sicurezza. Faremo tre cose.

  • Riconfigura ssh-server in modo che non consenta l'accesso come root e modifichi la porta predefinita 22 con qualcos'altro, meno comune, ad esempio 60606,
  • Configura iptables per consentire le connessioni in entrata su una nuova porta,
  • Aggiungi il nostro primo utente di sistema per accedere con lui tramite ssh.
  1. Protezione dell'accesso remoto

    Se non hai ancora effettuato l'accesso dalla console al server (intendo console locale, non ancora ssh), accedi come root, quindi esegui:

    vi /etc/ssh/sshd_config

    Sulla riga tredici del file predefinito inalterato (nel caso te lo chieda di nuovo, digita ":set number" e premi invio fuori dalla modalità di inserimento per ottenere i numeri di riga) c'è la direttiva Port 22. Duplicalo, cambia il numero di porta in 60606 e decommenta.
    Quindi trova (fuori dalla modalità di inserimento premi "/" e digita la frase che stai cercando) PermitRootLogin yes direttiva duplica di nuovo e cambia il suo valore in no e decommenta pure , quindi salva il file. Oh, ed è ":noh" per disattivare l'evidenziazione.
    Riavvia sshd in seguito:

    service sshd restart
  2. Impostazione di iptables

    Per prima cosa controlla iptables già esistenti:

    iptables -L -v --line-numbers

    Nell'installazione predefinita nella posizione '4' sarà la direttiva per accettare nuove connessioni TCP sulla porta ssh predefinita, dobbiamo liberarcene, quindi eseguire:

    iptables -D INPUT 4

    Ora dobbiamo invece consentire le connessioni alla porta 60606. Esegui:

    iptables -I INPUT 4 -p tcp -d 192.168.1.100 --dport 60606 -j ACCEPT

    Infine, per salvare lo stato corrente di iptables, esegui:

    service iptables save
    service iptables riavvia

  3. Aggiunta del primo utente

    Ora va tutto bene, tranne una cosa, ci siamo bannati da ssh, poiché root non è consentito e non ci sono ancora altri utenti di sistema. È ora di correggere:

    useradd -c "ownCloud system user" -m -n cloudadmin

    Imposta la password per questo utente:

    passwd cloudadmin

    Fatto. Puoi impostare la password per l'utente nel primo comando, ma in questo modo il valore della password sarà visibile durante l'immissione nella finestra del terminale e verrà anche salvato in .bash_history dell'utente root, che non è desiderabile.
    Ora puoi accedere tramite ssh eseguendo il seguente comando nella finestra del terminale sul computer locale:

    ssh [email protected] -p60606

Passaggi preliminari alla configurazione

L'installazione del software nella maggior parte dei casi è abbastanza semplice e avremmo potuto "verificarne" la maggior parte al momento dell'installazione iniziale, ma preferisco fare le cose a mano.
Divido intenzionalmente l'installazione in sezioni.

  1. Registrazione come superutente

    In questo momento dovresti essere sul prompt della console come utente di cloudadmin. Per ottenere i privilegi di root esegui:

    su -
  2. Repository software

    Per utilizzare il software desiderato, sono necessari due repository.
    Prima EPEL, esegui:

    rpm -Uvh http://download.fedoraproject.org/pub/epel/6/i386/epel-release-6-6.noarch.rpm
    E no, i386 non è un errore, è lo stesso sia per i sistemi a 32 bit che a 64 bit.
    Quindi Remi, esegui:

    rpm --import http://rpms.famillecollet.com/RPM-GPG-KEY-remi
    rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-6.rpm

    Ora controlla entrambi i repository epel e remi e nel caso non ci sia set enabled=1 eseguendo:

    vi /etc/yum.repos.d/epel.repo
    vi /etc/yum.repos.d/remi.repo

    Infine, aggiorna il tuo sistema. Anche CentOS appena installato potrebbe richiedere prima l'aggiornamento. Esegui:
    yum update -y
  3. Tempo di precisione

    È bene essere sincronizzati con il resto del mondo, esegui:

    yum install ntp
    service ntpd start
    chkconfig ntpd on
    ntpd

  4. Alcuni altri strumenti

    Per semplificarmi la vita, uso vim invece di vi, htop invece di top, elinks per testare rapidamente le cose da terminale e mc, come un buon file manager e non solo a doppio pannello, wget è necessario per scaricare materiale e l'uomo è essenziale quando vuoi leggere qualsiasi cosa. Esegui:

    yum install vim htop elinks mc wget man -y

Impostazione proprioCloud

  1. Prerequisiti software

    Un mucchio di roba php, esegui:

    yum install php-fpm php-gd php-ldap php-pear php-xml php-xmlrpc php-eaccelerator php-magickwand php-magpierss php-mbstring php-mcrypt php-shout php-snmp php-soap php-tidy php-pgsql

    Modifica php.ini, esegui:

    vim /etc/php.ini

    Ci sono quattro direttive da modificare,
    la prima dovrebbe essere alla riga 736, la direttiva post_max_size
    la seconda alla riga 848, la direttiva cgi.fix_pathinfo
    la terza alla riga 885, la direttiva upload_max_filesize
    l'ultima su riga 956, direttiva date.timezone modificalo in base alla posizione del tuo server.

    [...]
    post_max_size = 64M
    [...]
    cgi.fix_pathinfo = 0
    [...]
    upload_max_filesize = 64M
    [...]
    date.timezone = "Europe/Prague"
    [...]

    Nel caso non sapessi come, puoi trovare il nome del tuo fuso orario eseguendo:

    cat /etc/sysconfig/clock

    Quindi, configura php-fpm per utilizzare il socket unix invece dello stack TCP, esegui:

    vim /etc/php-fpm.d/www.conf

    Dalla riga dodici, fallo così:

    ;listen = 127.0.0.1:9000
    listen = /var/run/php-fpm/php-fpm.sock

    Avvia php-fpm:

    chkconfig php-fpm su
    servizio php-fpm start

  2. Backend - PostgreSQL

    Per installarlo e configurarlo, eseguire:

    yum install postgresql postgresql-libs postgresql-server
    servizio postgresql initdb
    servizio postgresql start
    chkconfig postgresql su

    Accedi a postgres come utente del sistema postgres, crea un utente del database, un database e concedi i privilegi

    su - -c "psql" postgres
    CREATE USER clouduser CON PASSWORD 'userpass';
    CREATE DATABASE clouddb OWNER clouduser ENCODING 'UTF8';
    CONCEDERE TUTTI I PRIVILEGI SU DATABASE clouddb A clouduser;
    \q

    Modificare il file di configurazione postgresql per consentire gli accessi con password:

    vim /var/lib/pgsql/data/pg_hba.conf
    • Cerca

      # Connessioni locali IPv4:
      host all 127.0.0.1/32 ident

    • E modificalo in

      # Connessioni locali IPv4:
      host tutto tutto 127.0.0.1/32 password

    Ora riavvia il database:

    service postgresql restart
  3. server web nginx

    Installa, imposta l'avvio all'avvio e quindi interrompilo:

    yum install nginx
    service nginx start
    chkconfig nginx on
    service nginx stop

    Prepara il file di configurazione per il sito Web ownclod:

    vim /etc/nginx/conf.d/owncloud.conf
    # redirect http to https.
    server {
      listen 80;
      server_name owncloud.example.com;
      rewrite ^ https://$server_name$request_uri? permanent;  # enforce https
    }
    # owncloud (ssl/tls)
    server {
      listen 443 ssl;
      ssl_certificate /etc/nginx/certs/server.crt;
      ssl_certificate_key /etc/nginx/certs/server.key;
      server_name owncloud.example.com;
      root /var/www/owncloud;
      index index.php;
      client_max_body_size 64M; # set maximum upload size
      # deny direct access
      location ~ ^/(data|config|\.ht|db_structure\.xml|README) {
        deny all;
      }
      # default try order
      location / {
        try_files $uri $uri/ @webdav;
      }
      # owncloud WebDAV
      location @webdav {
        fastcgi_split_path_info ^(.+\.php)(/.*)$;
        fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_param HTTPS on;
        include fastcgi_params;
      }
      # enable php
      location ~ \.php$ {
        fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_param HTTPS on;
        include fastcgi_params;
      }
    }

    Ora creiamo i certificati per il server, rispondi alle domande nel prompt in base alle tue impostazioni:

    mkdir -p /etc/nginx/certs/
    cd /etc/nginx/certs/
    openssl genrsa -des3 -out server.key 1024
    openssl req -new -key server.key - out server.csr
    cp server.key server.key.orig
    openssl rsa -in server.key.orig -out server.key
    openssl x509 -req -days 365 -in server. csr -signkey server.key -out server.crt

    Ricarica nginx per abilitare la nuova configurazione:

    service nginx reload
  4. file e directory ownCloud

    L'installazione di ownCloud consiste nel scaricare e decomprimere l'archivio, con alcune modifiche lato server, quindi eseguire:

    cd /tmp
    wget http://download2.owncloud.org/releases/owncloud-4.0.0.tar.bz2
    tar xjf owncloud-4.0.0.tar.bz2
    mv owncloud /var/www/
    mkdir -p /var/www/owncloud/data
    chmod 770 /var/www/owncloud/data
    chown -R root:apache /var/www/owncloud

    E ancora, apache come gruppo nell'ultimo comando non è un errore. php-fpm viene eseguito per impostazione predefinita come utente apache

  5. Accedi al sito web

    Aprire la porta 443 per poter accedere al sito Web, eseguire:

    iptables -I INPUT 4 -p tcp -d 192.168.1.100 --dport 443 -j ACCEPT
    servizio iptables save
    servizio iptables riavvia

Esecuzione di prova

Accedi a https://owncloud.example.com tramite il browser che preferisci e completa la procedura di installazione.

Scegli il nome utente e la password dell'amministratore, scegli PostgreSQL come back-end del database e pubblica i valori appropriati nelle impostazioni di connessione del database.

Divertiti.

Risoluzione dei problemi

I file di registro si trovano come segue:

/var/www/owncloud/data/owncloud.log
/var/log/php-fpm/www-error.log
/var/log/nginx/access.log
/var /log/nginx/error.log


Cent OS
  1. 4 passaggi per configurare il repository locale in Ubuntu utilizzando APT-mirror

  2. Configura il server SysLog su CentOS 6 / RHEL 6

  3. Come configurare il server SysLog su CentOS 7 / RHEL 7

  4. Come configurare il server NFS su CentOS 7 / RHEL 7

  5. Configura il server Rsyslog centralizzato su CentOS 7

Configurazione del server http di Kali

Come configurare il server NFS su CentOS 8 / RHEL 8

Come configurare un server SVN su CentOS

Configurazione del server ISP - OpenSUSE 10

CentOS 8 – Configurazione iniziale del server

Configurazione passo passo del server di posta iRedMail su Centos 8