diff --git a/networking.md b/networking.md index 7152e49..d5318ca 100644 --- a/networking.md +++ b/networking.md @@ -318,7 +318,7 @@ Se si va di fretta e è necessario finire la scansione il prima possibile, si pu Potrebbe essere necessario eseguire la scansione di più host e nmap offre vari modi per eseguire tale scansione, tra cui usare i caratteri jolly: ```bash -map -F 192.168.1.* +nmap -F 192.168.1.* Starting Nmap 7.93 ( https://nmap.org ) at 2023-03-12 18:25 CET Nmap scan report for 192.168.1.1 diff --git a/sambashare.md b/sambashare.md new file mode 100644 index 0000000..3b7ec43 --- /dev/null +++ b/sambashare.md @@ -0,0 +1,408 @@ +# Nas con samba + +## Impostare IP statico + +Collegarsi al raspberry via ssh, quindi modificare il seguente file, aggiungendo le righe sottostanti: + +```bash +nano /etc/dhcpcd.conf + +interface wlan0 +static ip_address=192.168.1.107/24 +static routers=192.168.1.1 +static domain_name_servers=192.168.1.1 5.2.75.75 +``` + +## Identificare e partizionare i dischi + +```bash +fdisk -l + +Disk /dev/sda: 12.73 TiB, 14000519643136 bytes, 27344764928 sectors +Disk model: Generic +Units: sectors of 1 * 512 = 512 bytes +Sector size (logical/physical): 512 bytes / 4096 bytes +I/O size (minimum/optimal): 4096 bytes / 4096 bytes +Disklabel type: gpt +Disk identifier: 4AE9456D-B7BA-4011-87ED-A73741BAA769 + +Device Start End Sectors Size Type +/dev/sda1 2048 27344764894 27344762847 12.7T Linux filesystem + + +Disk /dev/sdb: 12.73 TiB, 14000519643136 bytes, 27344764928 sectors +Disk model: Generic +Units: sectors of 1 * 512 = 512 bytes +Sector size (logical/physical): 512 bytes / 4096 bytes +I/O size (minimum/optimal): 4096 bytes / 4096 bytes +Disklabel type: gpt +Disk identifier: 1499002A-74AD-446F-994F-F07DF88B7E16 +``` +È possibile identificare i dischi anche con altri comandi: + +```bash +lsblk -f + +NAME FSTYPE FSVER LABEL UUID FSAVAIL FSUSE% MOUNTPOINT +sda +sdb +mmcblk0 +|-mmcblk0p1 vfat FAT32 bootfs 37CA-39EC 224.3M 12% /boot +`-mmcblk0p2 ext4 1.0 rootfs a4af13c6-d165-4cbd-a9f6-c961fef8255d 54.4G 3% / + +blkid + +/dev/mmcblk0p1: LABEL_FATBOOT="bootfs" LABEL="bootfs" UUID="37CA-39EC" BLOCK_SIZE="512" TYPE="vfat" PARTUUID="be140fba-01" +/dev/mmcblk0p2: LABEL="rootfs" UUID="a4af13c6-d165-4cbd-a9f6-c961fef8255d" BLOCK_SIZE="4096" TYPE="ext4" PARTUUID="be140fba-02" +/dev/sda: PTUUID="4ae9456d-b7ba-4011-87ed-a73741baa769" PTTYPE="gpt" +/dev/sdb: PTUUID="1499002a-74ad-446f-994f-f07df88b7e16" PTTYPE="gpt" +``` +### Partizionare i dischi + +```bash +fdisk /dev/sda + +Welcome to fdisk (util-linux 2.36.1). + +Command (m for help): m + +Help: + + GPT + M enter protective/hybrid MBR + + Generic + d delete a partition + F list free unpartitioned space + l list known partition types + n add a new partition + p print the partition table + t change a partition type + v verify the partition table + i print information about a partition + + Misc + m print this menu + x extra functionality (experts only) + + Script + I load disk layout from sfdisk script file + O dump disk layout to sfdisk script file + + Save & Exit + w write table to disk and exit + q quit without saving changes + + Create a new label + g create a new empty GPT partition table + G create a new empty SGI (IRIX) partition table + o create a new empty DOS partition table + s create a new empty Sun partition table + + +Command (m for help): g +Created a new GPT disklabel (GUID: 4D12D92A-E17B-114E-8805-762CC6E5A690). + +Command (m for help): n +Partition number (1-128, default 1): 1 +First sector (2048-27344764894, default 2048): +Last sector, +/-sectors or +/-size{K,M,G,T,P} (2048-27344764894, default 27344764894): + +Created a new partition 1 of type 'Linux filesystem' and of size 12.7 TiB. + +Command (m for help): w +The partition table has been altered. +Calling ioctl() to re-read partition table. +Syncing disks. + +``` +Dopo aver partizionato anche `/dev/sdb`: + +```bash +lsblk -f + +NAME FSTYPE FSVER LABEL UUID FSAVAIL FSUSE% MOUNTPOINT +sda +`-sda1 +sdb +`-sdb1 +mmcblk0 +|-mmcblk0p1 vfat FAT32 bootfs 37CA-39EC 224.3M 12% /boot +`-mmcblk0p2 ext4 1.0 rootfs a4af13c6-d165-4cbd-a9f6-c961fef8255d 54.4G 3% / +``` + +## Formattare il disco + +Assicurarsi che entrambi i dispositivi siano smontati: + +```bash +umount /dev/sda +umount: /dev/sda: not mounted. + +umount /dev/sdb +umount: /dev/sdb: not mounted. +``` + +Quindi formattarli in `ext4`: + +```bash +mkfs.ext4 -L "NAS1" /dev/sda1 -v + +mke2fs 1.46.2 (28-Feb-2021) +fs_types for mke2fs.conf resolution: 'ext4', 'big' +Filesystem label=NAS1 +OS type: Linux +Block size=4096 (log=2) +Fragment size=4096 (log=2) +Stride=0 blocks, Stripe width=0 blocks +427261952 inodes, 3418095355 blocks +170904767 blocks (5.00%) reserved for the super user +First data block=0 +Maximum filesystem blocks=4294967296 +104312 block groups +32768 blocks per group, 32768 fragments per group +4096 inodes per group +Filesystem UUID: 95db731d-5687-4681-bdac-b0d57dea0260 +Superblock backups stored on blocks: + 32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, + 4096000, 7962624, 11239424, 20480000, 23887872, 71663616, 78675968, + 102400000, 214990848, 512000000, 550731776, 644972544, 1934917632, + 2560000000 + +Allocating group tables: done +Writing inode tables: done +Creating journal (262144 blocks): done +Writing superblocks and filesystem accounting information: done +``` +### Verificare la formattazione + +```bash +file -sL /dev/sda1 +/dev/sda1: Linux rev 1.0 ext4 filesystem data, UUID=95db731d-5687-4681-bdac-b0d57dea0260, volume name "NAS1" (extents) (64bit) (large files) (huge files) + +file -sL /dev/sdb1 +/dev/sdb1: Linux rev 1.0 ext4 filesystem data, UUID=c2ccecd7-5ce2-4441-a134-f8d293831aea, volume name "NAS2" (extents) (64bit) (large files) (huge files) +``` + +## fstab + +Creare i punti di mount nella cartella `/srv/`: + +```bash +root@iron:/# cd /srv/ +root@iron:/srv# mkdir private/ +root@iron:/srv# mkdir public/ +``` +Procedere quindi a modificare il file fstab: + +```bash +root@iron:/media# cat /etc/fstab +proc /proc proc defaults 0 0 +PARTUUID=be140fba-01 /boot vfat defaults 0 2 +PARTUUID=be140fba-02 / ext4 defaults,noatime 0 1 + +# I due dischi + +UUID=95db731d-5687-4681-bdac-b0d57dea0260 /srv/private/ ext4 defaults 0 2 +UUID=c2ccecd7-5ce2-4441-a134-f8d293831aea /srv/public/ ext4 defaults 0 2 +``` +Se, provando a montare i dischi non vengono restituiti errori, la procedura è avvenuta correttamente e i dischi verranno montati automaticamente all'avvio: + +```bash +root@iron:/media# mount /srv/private/ +root@iron:/media# mount /srv/public/ + +root@iron:/media# lsblk -f + +NAME FSTYPE FSVER LABEL UUID FSAVAIL FSUSE% MOUNTPOINT +sda +`-sda1 ext4 1.0 NAS1 95db731d-5687-4681-bdac-b0d57dea0260 12T 0% /srv/private +sdb +`-sdb1 ext4 1.0 NAS2 c2ccecd7-5ce2-4441-a134-f8d293831aea 12T 0% /srv/public +mmcblk0 +|-mmcblk0p1 vfat FAT32 bootfs 37CA-39EC 224.3M 12% /boot +`-mmcblk0p2 ext4 1.0 rootfs a4af13c6-d165-4cbd-a9f6-c961fef8255d 54.4G 3% / + +root@iron:/media# mount -t ext4 + +/dev/mmcblk0p2 on / type ext4 (rw,noatime) +/dev/sda1 on /srv/private type ext4 (rw,relatime) +/dev/sdb1 on /srv/public type ext4 (rw,relatime) +``` + +## Configurazione di samba + +Installare i seguenti paccchetti: + +```bash +root@iron:/media# apt install samba samba-common-bin cifs-utils + +Reading package lists... Done +Building dependency tree... Done +Reading state information... Done +cifs-utils is already the newest version (2:6.11-3.1+deb11u1). +The following additional packages will be installed: + attr ibverbs-providers libavahi-client3 libboost-iostreams1.74.0 libboost-thread1.74.0 libcephfs2 libcups2 + libgfapi0 libgfrpc0 libgfxdr0 libglusterfs0 libibverbs1 libldb2 librados2 librdmacm1 libtdb1 liburing1 + python3-cffi-backend python3-cryptography python3-dnspython python3-gpg python3-ldb python3-markdown + python3-pygments python3-requests-toolbelt python3-samba python3-talloc python3-tdb python3-yaml samba-common + samba-dsdb-modules samba-libs samba-vfs-modules tdb-tools +Suggested packages: + cups-common python-cryptography-doc python3-cryptography-vectors python3-sniffio python3-trio python-markdown-doc + python-pygments-doc ttf-bitstream-vera bind9 bind9utils ctdb ldb-tools ntp | chrony smbldap-tools ufw winbind + heimdal-clients +The following NEW packages will be installed: + attr ibverbs-providers libavahi-client3 libboost-iostreams1.74.0 libboost-thread1.74.0 libcephfs2 libcups2 + libgfapi0 libgfrpc0 libgfxdr0 libglusterfs0 libibverbs1 libldb2 librados2 librdmacm1 libtdb1 liburing1 + python3-cffi-backend python3-cryptography python3-dnspython python3-gpg python3-ldb python3-markdown + python3-pygments python3-requests-toolbelt python3-samba python3-talloc python3-tdb python3-yaml samba + samba-common samba-common-bin samba-dsdb-modules samba-libs samba-vfs-modules tdb-tools +0 upgraded, 36 newly installed, 0 to remove and 0 not upgraded. +Need to get 29.6 MB of archives. +After this operation, 113 MB of additional disk space will be used. +Do you want to continue? [Y/n] +``` +### Global section + +In `/etc/samba/smb.conf` aggiungere: + +```bash +[global] + #allow hosts = 192.168.1.0/24 + workgroup = WORKGROUP + security = USER + server string = FILE SERVER + create mask = 0755 + browsable = no +``` + +### Share section + +```bash +[private] + comment = Cartella condivisa + path = /srv/private + browsable = no + read only = no + writable = yes + guest ok = no + create mask = 0775 + valid users = @samba +``` + +Verificare che la configurazione sia corretta col comando: + +```bash +testparm +``` + +Quindi riavviare i servizi: + +```bash +systemctl restart smbd.service +systemctl restart nmbd.service + +# oppure + +systemctl restart smbd nmbd +``` + +### Aggiunta utente + +```bash +adduser davide --home=/home/public --shell=/bin/false --disabled-password + +Adding user `davide' ... +Adding new group `davide' (1001) ... +Adding new user `davide' (1001) with group `davide' ... +Creating home directory `/home/public' ... +Copying files from `/etc/skel' ... +Changing the user information for davide +Enter the new value, or press ENTER for the default + Full Name []: + Room Number []: + Work Phone []: + Home Phone []: + Other []: +Is the information correct? [Y/n] +``` +#### Assegnare una password all'utente + +```bash +smbpasswd -a davide + +New SMB password: +Retype new SMB password: +Added user davide. +``` + +### Aggiungere l'utente al gruppo samba + +```bash +usermod -aG samba utente +``` + +#### Assegnare la cartella condivisa all'utente + +```bash +chown davide:samba /srv/private/ +chmod -R 770 /srv/private/ +ls -lh1 /srv/private/ +total 20K +drwxrwx--- 2 davide davide 4.0K Mar 26 17:46 files +``` + +## Montare automaticamente la cartella condivisa + +Installare sul client i seguenti pacchetti: + +```bash +sudo apt-get install cifs-utils smb4k +``` + +Creare nella propria home un file `.smbcredentials` coi seguenti dati: + +```bash +username=shareuser +password=sharepassword +domain=workgroupname +``` + +Quindi `chmod 0600 ~/.smbcredentials`. + +Modificare il file `/etc/fstab` nel seguente modo: + +```bash +cat /etc/fstab +# +# + +//192.168.1.107/private/ /media/davide/samba cifs credentials=/home/davide/.smbcredentials,uid=davide,gid=davide 0 0 +``` + +Infine dare il comando `sudo mount -a`. La cartella dovrebbe essere correttamente montata. + +```bash +sudo mount -a + +mount: (hint) your fstab has been modified, but systemd still uses + the old version; use 'systemctl daemon-reload' to reload. +``` + +### Connettersi tramite file manager + +Inserire nel path: + +```bash +smb://server/share_folder/ + + +smb://192.168.1.107/private/ +``` + +## Collegamenti + +- [https://linuxhint.com/raspberry_pi_static_ip_setup/](https://linuxhint.com/raspberry_pi_static_ip_setup/) +- [https://askubuntu.com/questions/157128/proper-fstab-entry-to-mount-a-samba-share-on-boot](https://askubuntu.com/questions/157128/proper-fstab-entry-to-mount-a-samba-share-on-boot) +- [https://noviello.it/come-installare-e-configurare-samba-server-su-ubuntu-18-04-lts/](https://noviello.it/come-installare-e-configurare-samba-server-su-ubuntu-18-04-lts/) +- [https://www.howtogeek.com/50787/add-a-user-to-a-group-or-second-group-on-linux/](https://www.howtogeek.com/50787/add-a-user-to-a-group-or-second-group-on-linux/)