Como construir um servidor de arquivos com Alpine Linux
Você trocou seu velho computador e não sabe o que fazer com ele? Pois, então o use como servidor.
TL;DR
Essa seção é pensada para usuários já familiarizados com o sistema que sabem exatamente o que precisam fazer, caso você não conheça cada passo adequadamente, pule para 1. Instalação do Alpine Linux
Instalar o sistema no pendrive
sudo umount /dev/sdX
sudo mkfs.vfat -F 32 /dev/sdX
sudo dd if=/path/to/file.iso of=/dev/sdX bs=4M status=progress
sync
sudo eject /dev/sdX
Instalação e configuração dos serviços
Depois de instalado o sistema, reiniciado e logado no usuário cadastrado usuario
sudo apk update
sudo apk add openssh samba
sudo rc-service sshd start
sudo rc-update add sshd
sudo mkdir -p /srv/samba/guest
sudo chmod 0777 /srv/samba/guest
smbpasswd -a usuario
sudo addgroup staff
sudo adduser usuario staff
sudo echo '[global]
workgroup = WORKGROUP
server string = Armazenamento
server role = standalone server
# Mantém compatibilidade com versões mais antigas
server min protocol = SMB2
server max protocol = SMB3
# Importante para segurança
client signing = mandatory
disable netbios = yes
map to guest = bad user
log file = /var/log/samba/%m.log
log level = 1
max log size = 50
# Mantém compatibilidade com o iOS
vfs objects = streams_xattr fruit catia
dns proxy = no
[public]
comment = Público
path = /data/public
public = yes
writable = no
printable = no
write list = @staff
[usuario]
path = /home/usuario
public = no
browsable = no
writable = yes
printable = no
write list = usuario' > /etc/samba/smb.conf
sudo rc-service samba start
sudo rc-update add samba
1. Instalação do Alpine Linux
O Alpine Linux é uma distribuição muito leve e extremamente básica de Linux. Por conta disso, ela é perfeita para se utilizar em um servidor.
1.1 Criar um pendrive bootável
Antes de tudo, teremos que criar um pendrive bootável com o Alpine; agora existem várias formas de instalar um sistema num pendrive. A mais comum é com Balena Etcher, mas se seu pendrive tiver um pouco mais de armazenamento e não tiver nenhum outro melhor uso, você pode instalar múltiplos sistemas com o Ventoy. No entanto, estaremos utilizando uma ferramenta de linha de comando simplesmente para instalar um sistema no USB, pela praticidade.
Lembre-se de substituir sdX
pelo seu atual dispositivo (corra lsblk
para descobrir
os dispositivos disponíveis), escolher o dispositivo errado pode fazer você perder dados:
sudo umount /dev/sdX
sudo mkfs.vfat -F 32 /dev/sdX
sudo dd if=/path/to/file.iso of=/dev/sdX bs=4M status=progress
sync
sudo eject /dev/sdX
1.2 Iniciar e Instalar o Sistema
Iniciar o sistema vária de computador a computador, geralmente as teclas F2, F3, Del, F12
servem para
entrar ou na BIOS ou na lista de dispositivos bootáveis (para descobrir exatamente qual é a combinação utilize esta
ferramenta.
Com o sistema inicializado, o seu computador já deve ter pedido o login se tudo foi bem. Coloque o usuário do computador
como root
e quando pedir a senha só aperte Enter
.
A instalação deixarei a cargo do leitor descobrir, no entanto ficará aqui a documentação original. Lembre-se de garantir escolher um IP Fixo para seu servidor tanto no sistema tanto no seu roteador (referência para escolher IP Fixo no Alpine), se não toda vez que alguma mudança ocorrer na rede o IP estará diferente.
2. Instalação dos Serviços
Iremos instalar apenas dois serviços aqui, o ssh
para controlar remotamente o servidor e o samba
para compartilhamento
de arquivos atráves da rede. Nos outros serviços para compartilhar arquivos através da rede temos o NFS
, que não
utilizaremos para manter compatibilidade com o Windows.
2.1 Instalar SSH
Caso já tenha instalado o SSH na seção anterior, ignore essa seção e vá para a próxima.
Para controlar remotamente seu servidor precisamo baixar os pacotes necessários para o SSH e ativar o seu serviço. Tudo pode ser feito com os comandos:
sudo apk update
sudo apk add openssh
sudo rc-service sshd start
sudo rc-update add sshd
Agora, em outro computador na mesma rede abra o terminal e escreva ssh 192.168.X.Y
substituindo X
e Y
pelo
restante do IP do servidor. Coloque seu usuário e senha e então poderá utilizar normalmente o terminal diretamente
no servidor.
2.2 Instalar Samba
Esta é a parte mais importante. Após feito isso é possível já utilizar seu servidor normalmente.
Devemos instalar o Samba, configurar ele e então ativar o seu serviço, para que corra assim que ligar o servidor. Para instalar, escreva o comando:
sudo apk add samba
Agora precisamos configurar o samba e as pastas que você quer compartilhar. A estrutura para compartilhamento das pastas não é muito padronizado. Utilizaremos aqui duas pastas compartilhadas, a privada (do seu usuário) e a pública (para convidados.
Durante a execução aparecerá um prompt te pedindo a senha para o usuario no Samba, coloque a mesma senha que você tinha
configurado no sistema. Altere usuario
pelo nome configurado:
sudo mkdir -p /srv/samba/guest # cria uma pasta para os convidados
sudo chmod 0777 /srv/samba/guest
smbpasswd -a usuario
sudo addgroup staff # cria um grupo para administração
sudo adduser usuario staff # e adiciona um usuario nele
Para configurar o caminho das pastas e todas as coisas do samba devemos alterar o arquivo /etc/samba/smb.conf
para
melhor se encaixar nas nossas necessidades. O arquivo de configuração tem muitas opções que valem a pena olhar no site
do samba.
Altere usuario
pelo nome configurado:
smb.conf
[global]
workgroup = WORKGROUP
server string = Armazenamento
server role = standalone server
# Mantém compatibilidade com versões mais antigas
server min protocol = SMB2
server max protocol = SMB3
# Importante para segurança
client signing = mandatory
disable netbios = yes
map to guest = bad user
log file = /var/log/samba/%m.log
log level = 1
max log size = 50
# Mantém compatibilidade com o iOS
vfs objects = streams_xattr fruit catia
dns proxy = no
[public]
comment = Público
path = /data/public
public = yes
writable = no
printable = no
write list = @staff
[usuario]
path = /home/usuario
public = no
browsable = no
writable = yes
printable = no
write list = usuario
Por último, devemos adicionar o Samba nos serviços de Boot do nosso servidor. Para isso, coloque os comandos:
sudo rc-service samba start
sudo rc-update add samba
3. Conclusão
Pronto! Você criou seu servidor de arquivos. Para acessar ele você deve baixar um cliente SMB e colocar o usuário e senha do sistema, que havia sido definido na instalação do sistema.
3.1 Para acessar no Arch Linux
sudo pacman -Sy smbclient cifs-utils
sudo mkdir /mnt/mountpoint
sudo mount --mkdir -t cifs //192.168.X.Y/usuario /mnt/mountpoint -o "username=usuario,iocharset=utf8,uid=60466,vers=3.0"
3.2 Para acessar no iPhone
- Abra o aplicativo
Arquivos
na mesma rede que seu servidor. - Clique nos três pontinhos no canto superior direito.
- Clique em ‘Conectar a um servidor’
- Digite na primeira entrada
smb://192.168.X.Y/usuario
; altereX
eY
pelo restante do IP do servidor eusuario
pelo usuário cadastrado noSamba
. - Coloque seu usuário e a senha em baixo
- Pronto!