GUIDA Nas Fai da me :)

Stato
Discussione chiusa ad ulteriori risposte.

Federico83

UTENTE LEGGENDARIO
Utente Èlite
35,407
6,323
CPU
Ryzen 7 3700X
Dissipatore
NDH15
Scheda Madre
Gigabyte auros X570 elite
HDD
4.5TB + 15 di NAS lol
RAM
16 GB G.Skill 3200
GPU
RTX2070
Monitor
IIyama 28" 4K
PSU
Cooler Master GX 650
Case
REV200
OS
Windows11x64pro
Bene ecco qui in un altro ambito in cui mi sono cimentato… ovvero la costruzione di un NAS

le mie componenti sono le seguenti:
Case: Kolink GEKL-006 Midi-Tower Black
Scheda Madre: ASRock H110M-ITX 1151
Ram: 4gb non ricordo la marca
CPU: Intel 1151 Celeron G3900 Box
Alimentatore: Bequiet 350W
Hard Disk 1: Western Digital 2TB SATA3 RED
Hard Disk 2: Western Digital 2TB SATA3 PURPLE
Hard Disk 3: TOSHIBA 3TB
SSD OS: OCZ Vertex2 120gb proveniente da un vecchio pc XD
51bSLN8q9SL._SY355_.jpg

Hardware niente di eccezionale ma per quello che devo fare va più che bene ;)
ho scelto questi componenti a basso costo dato che sono tutti compatibili con ubuntu server, e al massimo se avessi fallito avrei puntato sull'installazione di windows 10 ma con grosse limitazioni che qui per ora non ho trovato.

OS: Ubuntu server 16.04 LTS quindi per lo meno 3 anni di aggiornamenti garantiti.
upload_2017-10-11_22-24-26.png
la scelta di questo os nasce dalla voglia di sperimentare provare e fare bagaglio personale, non è stato semplice configurarlo specie per me che mastico poco di linux ma alla fine seguendo le guide e installando il minimo necessario sono arrivato ad un buon risultato, infatti il nas è attivo da fine aprile e per ora non ho avuto grossi problemi di configurazione.

Servizi di base:
SSH: per l’accesso e la configurazione tramite putty quindi tutto da riga di comando
WebMin: per l’accesso remoto ma per la gestione del sistema
upload_2017-10-11_22-27-21.png
Samba: Condivisione file e cartelle
upload_2017-10-11_22-28-23.png

Cups: Condivisione di stampanti
Sane scanner: avendo una multi funzione mi serviva anche che lo scanner funzionasse tramite rete :)
Nextcloud: Fork di Owncloud con il quale posso accedere da fuori e caricare o scaricare file
MiniDlna: Per la parte multimediale share su xbox e dispositivi connessi in rete
Transmission: Client Torrent per il download di file non ha di certo bisogno di presentazioni ;)
upload_2017-10-11_22-30-42.png

per ora mi fermo qui. la lascio chiusa, se avete qualche suggerimento scrivetemi in privato.

vorrei fare qui di seguito una mini guida su come ho installato il sistema i servizi minimi che ho installato e come li ho installati. Nei prossimi giorni svilupperò il tutto.

:)
 
Ultima modifica:

Federico83

UTENTE LEGGENDARIO
Utente Èlite
35,407
6,323
CPU
Ryzen 7 3700X
Dissipatore
NDH15
Scheda Madre
Gigabyte auros X570 elite
HDD
4.5TB + 15 di NAS lol
RAM
16 GB G.Skill 3200
GPU
RTX2070
Monitor
IIyama 28" 4K
PSU
Cooler Master GX 650
Case
REV200
OS
Windows11x64pro
La seconda parte della guida è dedicata a quanto io abbia fatto diciamo un how to install & setup service...

Installazione ubuntu server e servizi minimali in fase di installazione
4e9b777c-ubuntu-orange-on-white.gif
prelevabile da qui https://www.ubuntu.com/download/server per stabilità consiglio la 16.04
procediamo con l'installazione basica del sistema scegliendo le 3/4 cose che ci servono
vi risparmio tutti i passaggi dell'installazione :) vi metto i punti salienti fatti durante l'installazione

ubuntu [In esecuzione] - Oracle VM VirtualBox 12_10_2017 19_53_58.png ubuntu [In esecuzione] - Oracle VM VirtualBox 12_10_2017 19_55_13.png ubuntu [In esecuzione] - Oracle VM VirtualBox 12_10_2017 20_01_08.png ubuntu [In esecuzione] - Oracle VM VirtualBox 12_10_2017 20_19_09.png

configurazione samba
Continuiamo con la configurazione di samba che servirà per condividere le cartelle da noi scelte con i nostri computer e dispositivi mobili

Prima di tutto vi consiglio di procurarvi putty

E poi di collegarvi alla vostra nas con quella così da prendere dimestichezza con i comandi

Iniziamo. Prendo deliberatamente spunto da una guida su https://www.howtoforge.com

Attenzione nel nas anche se virtuale per renderlo più simile alla mia situazione ho aggiunto un disco da 20gb trovate qui https://help.ubuntu.com/community/InstallingANewHardDrive trovate una guida su come aggiungere altri dischi dopo la prima installazione.
Iniziamo ad aprire una sessione di putti verso l’ip del nas…
Per sapere l’ip del nas da dentro la shell diamo il comando ip addr che ci mostrerà il suo ip altrimenti con altri strumenti tipo ip scanner dal pc principale oppure dal modem router ecc fate come meglio credete :)
Bene cominciamo con questi comandi diamoli come root vi consiglio per non star sempre a mettere sudo davanti a tutti i comandi di dare il comando sudo –i vi chiederà la password e da lì saremo root
Codice:
 apt-get install -y samba samba-common python-glade2 system-config-samba
Macinerà un pochino scaricando e installando il resto dei componenti mancanti
Terminato diamo il seguente comando
Codice:
 cp -pf /etc/samba/smb.conf /etc/samba/smb.conf.bak
cat /dev/null  > /etc/samba/smb.conf
apriamo la configurazione di samba con il nano
Codice:
nano /etc/samba/smb.conf
incolliamo dentro questo *attenzione i path saranno di sicuro differenti è solo un esempio
Codice:
[global]
workgroup = WORKGROUP
server string = Samba Server %v
netbios name = TOMSHW
security = user
map to guest = bad user
dns proxy = no

#============================ Share Definitions ==============================

[MyShare]
path = /media/20gb/myshare
workgroup = WORKGROUP
available = yes
browsable = yes
public = yes
writable = yes
guest ok = yes
read only = no
force user = nobody
force directory mode = 777
force create mode = 777
salviamo e usciamo dal nano CTRL+X -> S
questo è quello che funziona ne avevo trovato uno che facendo nuova cartella ne creava 4
ve lo risparmio
proseguiamo nella creazione della cartella da condividere
Codice:
 mkdir -p /media/20gb/myshare
e attribuiamo le permission sulla cartella
Codice:
chmod -R 0775 /media/20gb/myshare
hown -R nobody:nogroup  /media/20gb/myshare
riavviamo samba con questo comando
Codice:
service smbd restart
e controlliamo se si riesce ad arrivare sulla share e a scriverci dentro
upload_2017-10-13_21-50-26.png
ok si vede la share entro provo a fare una nuova cartella e ok. riesco a farla senza troppi problemi e soprattutto senza farne 4 :)
upload_2017-10-13_21-51-1.png

configurazione webmin
continuiamo con l'installazione di webmin
usiamo sempre putty questo poco ma scontato ma sempre meglio ricordarlo
inziamo con questo comando... vorrei ricordare che dobbiamo essere sempre root per installare quindi root -i e password e continuiamo l'installazione
Codice:
sudo nano /etc/apt/sources.list
e aggiungiamo alla fine della lista questa stringa
Codice:
deb http://download.webmin.com/download/repository sarge contrib
salviamo e usciamo dal nano CTRL+X -> S
ora aggiungiamo la chiave PGP di webmin al nostro sistema
sono due stringe separate
Codice:
wget http://www.webmin.com/jcameron-key.asc
sudo apt-key add jcameron-key.asc
andiamo alla ricerca di update visto che abbiamo aggiunto poco fa la stringa per l'installazione di webmin
con questo comando
Codice:
sudo apt-get update
una volta terminata la ricerca di update diamo il seguente comando
Codice:
sudo apt-get install webmin
aspettiamo che termini il tutto
avremo a video quanto segue
upload_2017-10-13_22-34-59.png
digitiamo dal browser preferito l'indirizzo riportato e logghiamo con le credenziali di root
upload_2017-10-13_22-37-32.png
ed ecco il risultato finale
upload_2017-10-13_22-38-49.png
configurazione cups

installiamo cups se ne abbiamo realmente bisogno possiamo passare a i punti successivi visto che sono servizi accessori e se vogliamo dirla tutta secondari
iniziamo
autentichiamoci tramite putty e poi diamo il comando sudo -i (così lavoreremo sempre come root)
Codice:
 sudo apt-get install cups
il comportamento di cups viene gestito tramite il file di configurazione etc/cups/cupsd.conf
primi di andarlo a pasticciare :) vi consiglio di farne una copia di backup con il seguente comando
Codice:
sudo cp /etc/cups/cupsd.conf /etc/cups/cupsd.conf.original
 sudo chmod a-w /etc/cups/cupsd.conf.original
incollo il codice che utilizzo e che funziona senza troppi sbattimenti magari non fate proprio copia incolla cambiate solo alcune inezzie
Codice:
#
# Configuration file for the CUPS scheduler.  See "man cupsd.conf" for a
# complete description of this file.
#

# Log general information in error_log - change "warn" to "debug"
# for troubleshooting...
LogLevel warn
PageLogFormat

# Deactivate CUPS' internal logrotating, as we provide a better one, especially
# LogLevel debug2 gets usable now
MaxLogSize 0

# Only listen for connections from the local machine.
port 631
Listen /var/run/cups/cups.sock

# Show shared printers on the local network.
Browsing on
BrowseLocalProtocols dnssd

# Default authentication type, when authentication is required...
DefaultAuthType Basic

# Web interface setting...
WebInterface Yes

# Restrict access to the server...
<Location />
  Order allow,deny
  Allow all
</Location>

# Restrict access to the admin pages...
<Location /admin>
  Order allow,deny
  Allow all
</Location>

# Restrict access to configuration files...
<Location /admin/conf>
  AuthType Default
  Require user @SYSTEM
  Order allow,deny
</Location>

# Restrict access to log files...
<Location /admin/log>
  AuthType Default
  Require user @SYSTEM
  Order allow,deny
</Location>

# Set the default printer/job policies...
<Policy default>
  # Job/subscription privacy...
  JobPrivateAccess default
  JobPrivateValues default
  SubscriptionPrivateAccess default
  SubscriptionPrivateValues default

  # Job-related operations must be done by the owner or an administrator...
  <Limit Create-Job Print-Job Print-URI Validate-Job>
    Order deny,allow
  </Limit>

  <Limit Send-Document Send-URI Hold-Job Release-Job Restart-Job Purge-Jobs Set-Job-Attributes Create-Job-Subscription Renew-Subscription Cancel-Subscription Get-Notifications Reprocess-Job Cancel-Current-Job Suspend-Current-Job Resume-Job Cancel-My-Jobs Close-Job CUPS-Move-Job CUPS-Get-Document>
    Require user @OWNER @SYSTEM
    Order deny,allow
  </Limit>

  # All administration operations require an administrator to authenticate...
  <Limit CUPS-Add-Modify-Printer CUPS-Delete-Printer CUPS-Add-Modify-Class CUPS-Delete-Class CUPS-Set-Default CUPS-Get-Devices>
    AuthType Default
    Require user @SYSTEM
    Order deny,allow
  </Limit>

  # All printer operations require a printer operator to authenticate...
  <Limit Pause-Printer Resume-Printer Enable-Printer Disable-Printer Pause-Printer-After-Current-Job Hold-New-Jobs Release-Held-New-Jobs Deactivate-Printer Activate-Printer Restart-Printer Shutdown-Printer Startup-Printer Promote-Job Schedule-Job-After Cancel-Jobs CUPS-Accept-Jobs CUPS-Reject-Jobs>
    AuthType Default
    Require user @SYSTEM
    Order deny,allow
  </Limit>

  # Only the owner or an administrator can cancel or authenticate a job...
  <Limit Cancel-Job CUPS-Authenticate-Job>
    Require user @OWNER @SYSTEM
    Order deny,allow
  </Limit>

  <Limit All>
    Order deny,allow
  </Limit>
</Policy>

# Set the authenticated printer/job policies...
<Policy authenticated>
  # Job/subscription privacy...
  JobPrivateAccess default
  JobPrivateValues default
  SubscriptionPrivateAccess default
  SubscriptionPrivateValues default

  # Job-related operations must be done by the owner or an administrator...
  <Limit Create-Job Print-Job Print-URI Validate-Job>
    AuthType Default
    Order deny,allow
  </Limit>

  <Limit Send-Document Send-URI Hold-Job Release-Job Restart-Job Purge-Jobs Set-Job-Attributes Create-Job-Subscription Renew-Subscription Cancel-Subscription Get-Notifications Reprocess-Job Cancel-Current-Job Suspend-Current-Job Resume-Job Cancel-My-Jobs Close-Job CUPS-Move-Job CUPS-Get-Document>
    AuthType Default
    Require user @OWNER @SYSTEM
    Order deny,allow
  </Limit>

  # All administration operations require an administrator to authenticate...
  <Limit CUPS-Add-Modify-Printer CUPS-Delete-Printer CUPS-Add-Modify-Class CUPS-Delete-Class CUPS-Set-Default>
    AuthType Default
    Require user @SYSTEM
    Order deny,allow
  </Limit>

  # All printer operations require a printer operator to authenticate...
  <Limit Pause-Printer Resume-Printer Enable-Printer Disable-Printer Pause-Printer-After-Current-Job Hold-New-Jobs Release-Held-New-Jobs Deactivate-Printer Activate-Printer Restart-Printer Shutdown-Printer Startup-Printer Promote-Job Schedule-Job-After Cancel-Jobs CUPS-Accept-Jobs CUPS-Reject-Jobs>
    AuthType Default
    Require user @SYSTEM
    Order deny,allow
  </Limit>

  # Only the owner or an administrator can cancel or authenticate a job...
  <Limit Cancel-Job CUPS-Authenticate-Job>
    AuthType Default
    Require user @OWNER @SYSTEM
    Order deny,allow
  </Limit>

  <Limit All>
    Order deny,allow
  </Limit>
</Policy>
Salviamo il tutto CTRL+X ->S
e andiamo sull'ip del nas 192.168.x.y:631 e saremo sulla pagina di configurazione di CUPS
da qui potremmo aggiungere la stampante... ripeto se non volete condividere la stampante via rete saltate il passaggio a piè pari
Installazione SANE
come per la stampante se non avete uno scanner da collegare saltate a piè pari
iniziamo con questo comando
Codice:
apt-get install sane sane-utils libsane-extras xsane
verrà installato sane e tutto il sw
diamo questo comando se lo scanner è collegato
Codice:
scanimage --list-devices
l'out-put sarà simile a questo
Codice:
root@TOMS-NAS:/# scanimage --list-devices
device `net:localhost:epson2:libusb:001:002' is a Epson NX300 flatbed scanner
root@TOMS-NAS:/#
una volta rilevato vi consiglio questi 3 programmi che uso per la scansione tramite rete
ScanImage, NAPS E SwingSane
configurazione transmission
installiamo questo client torrent completo di tutto :)

iniziamo
Codice:
sudo add-apt-repository ppa: trasmissione / ppa
e poi aggiorniamo i repository
Codice:
sudo apt-get update
passiamo in fine all'installazione vera e propria di transmission
Codice:
sudo apt-get install transmission-cli transmission-common transmission-daemon
passiamo alla sua configurazione
iniziamo stoppando il servizio del transmission
Codice:
sudo service transmission-daemon stop
e andiamo ad editare il file di configurazione
Codice:
sudo nano /var/lib/transmission-daemon/info/settings.json
adiamo a modificare i seguenti campi

Codice:
"rpc-password": "{62b16db87b89a91dd49a5110a7cafc06d20eb4f2wtK6kqPj",
"rpc-username": "transmission",

la pass che vedete è un hash della pass predefinita cambiatela scrivendoci dentro
sentra troppi problemi verrà poi modificata in seguito
stesso per lo username... potete usare quello che volete
continuiamo con la modifica del file
Codice:
"rpc-whitelist": "127.0.0.1,192.168.*.*",
dobbiamo dare l'accesso anche dalla lan infatti adiamo a modificare la white list
degli ip che si possono collegare
cambiamo anche il parametro umask da 18 a 2
Codice:
"umask": 2,
saremmo anche apposto così ma che ce lo abbiamo a fare un disco secondario se poi non lo si usa?
andiamo a modificare anche questo campo
Codice:
  "download-dir": "/media/20gb/myshare/torrent/",
questo campo serve per specificare dove vengono salvati i dati
continuiamo con l'aggiungere il proprio utente al gruppo transmission
Codice:
sudo usermod -a -G debian-transmission tomhw
adesso possiamo riavviare il servizio e vedere se tutto funziona in modo corretto
Codice:
sudo service transmission-daemon start
rechiamoci sul'ip del nas 192.168.1.x:9091 e inseriamo i nostri dati che precedentemente abbiamo inserito
e logghiamo nel cliet torrent :)
priviamo subito a scricare qualcosa preferisco sempre scaricare un file ovvero
una iso di ubuntu prelevabile da qui https://www.ubuntu.com/download/alternative-downloads
caricate il torrent all'interno e controllate se procede in modo corretto

upload_2017-10-14_19-25-25.png
configurazione nextcloud
dimenticavo per un periodo di tempo ha fatto anche da back-end per la tv digitale terrestre per lo strem via lan per dispositivi android.
varie ed eventuali tips
 
Ultima modifica:

Federico83

UTENTE LEGGENDARIO
Utente Èlite
35,407
6,323
CPU
Ryzen 7 3700X
Dissipatore
NDH15
Scheda Madre
Gigabyte auros X570 elite
HDD
4.5TB + 15 di NAS lol
RAM
16 GB G.Skill 3200
GPU
RTX2070
Monitor
IIyama 28" 4K
PSU
Cooler Master GX 650
Case
REV200
OS
Windows11x64pro
configurazione nexcloud
per l'installazione di nexcloud abbiamo prima di tutto bisogno di un ambiete lamp

iniziamo con
1) Apache
Codice:
sudo apt-get update
sudo apt-get install apache2
diamo questo comando per verificare la presenza del servizio apache
Codice:
sudo apache2ctl configtest
dovrebbe dare un output del genere
Codice:
root@TOMS-NAS:/# sudo apache2ctl configtest
AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using                                                                127.0.1.1. Set the 'ServerName' directive globally to suppress this message
Syntax OK
root@TOMS-NAS:/#
continuiamo la configurazione dando il seguente comando
Codice:
sudo nano /etc/apache2/apache2.conf
andremmo a modificare la configurazione apache alla fine del documento inseriamo queste voci
Codice:
ServerName localhost
ServerName 127.0.0.1
salviamo ctrl+x -> s e ridiamo il comando
Codice:
sudo apache2ctl configtest
l'output dovrà essere così
Codice:
root@TOMS-NAS:/# sudo apache2ctl configtest
Syntax OK
root@TOMS-NAS:/#
riavviamo apache
Codice:
sudo systemctl restart apache2
aggiungiamo le regole al firewall di ubuntu
Codice:
sudo ufw app list
e diamo di seguito questo comando che ci aggiungerà tutto apache al firewall
Codice:
sudo ufw app info "Apache Full"
testiamo se ora apache è in funzione andiamo sull'ip del nostro nas 192.168.1.x
la pagina presentata dovrebbe essere così
upload_2017-10-16_18-45-28.png

2)continuiamo con mysql
Codice:
sudo apt-get install mysql-server
sql abbiamo fatto in fretta :D
3) continuiamo con php
Codice:
sudo apt-get install php libapache2-mod-php php-mcrypt php-mysql
finita l'installazione andiamo a modificare il file dir.conf
Codice:
sudo nano /etc/apache2/mods-enabled/dir.conf
che sarà simile a questo
<IfModule mod_dir.c>
DirectoryIndex index.html index.cgi index.pl index.php index.xhtml index.htm
</IfModule>

andiamo a modificare l'ordine degli index in questo modo
<IfModule mod_dir.c>
DirectoryIndex index.php index.html index.cgi index.pl index.xhtml index.htm
</IfModule>

eseguiamo un riavvio di apache

Codice:
sudo systemctl restart apache2

e controlliamo lo status

Codice:
sudo systemctl status apache2

a schermo dovremmo vedere questo
Codice:
root@TOMS-NAS:/# sudo systemctl status apache2
● apache2.service - LSB: Apache2 web server
   Loaded: loaded (/etc/init.d/apache2; bad; vendor preset: enabled)
  Drop-In: /lib/systemd/system/apache2.service.d
           └─apache2-systemd.conf
   Active: active (running) since lun 2017-10-16 18:56:30 CEST; 11s ago
     Docs: man:systemd-sysv-generator(8)
  Process: 14296 ExecStop=/etc/init.d/apache2 stop (code=exited, status=0/SUCCESS)
  Process: 14321 ExecStart=/etc/init.d/apache2 start (code=exited, status=0/SUCCESS)
    Tasks: 6
   Memory: 15.4M
      CPU: 56ms
   CGroup: /system.slice/apache2.service
           ├─14338 /usr/sbin/apache2 -k start
           ├─14341 /usr/sbin/apache2 -k start
           ├─14342 /usr/sbin/apache2 -k start
           ├─14343 /usr/sbin/apache2 -k start
           ├─14344 /usr/sbin/apache2 -k start
           └─14345 /usr/sbin/apache2 -k start

ott 16 18:56:29 TOMS-NAS systemd[1]: Stopped LSB: Apache2 web server.
ott 16 18:56:29 TOMS-NAS systemd[1]: Starting LSB: Apache2 web server...
ott 16 18:56:29 TOMS-NAS apache2[14321]:  * Starting Apache httpd web server apache2
ott 16 18:56:30 TOMS-NAS apache2[14321]:  *
ott 16 18:56:30 TOMS-NAS systemd[1]: Started LSB: Apache2 web server.
decidiamo di installare php-cli per fare una prova
diamo questo comando
[/code]
sudo apt-get install php-cli[/code]
una volta installato andiamo a modificare il info.php
Codice:
sudo nano /var/ www /html /info.php
inseriamo il seguente codice
Codice:
<?php
phpinfo();
?>
con una pagina simile a questa
upload_2017-10-16_19-22-46.png

una volta vista la pagina possiamo anche rimuoverla
Codice:
sudo rm /var/ www/ html/ info.php
serve solo per vedere la versione ma è sempre ripristinabile
visto che alcune cose non me le fa incollare per la protezione del forum vi lascio il pastebin dell'ultimo pezzo
https://pastebin.com/H33MHqe6
il risultato sarà questo

upload_2017-10-17_19-33-32.png upload_2017-10-17_19-33-50.png upload_2017-10-17_19-33-58.png
 
Ultima modifica:
Stato
Discussione chiusa ad ulteriori risposte.

Entra

oppure Accedi utilizzando
Discord Ufficiale Entra ora!

Discussioni Simili