# data[].attributes.body
Tutorial instalação do Serviço de Ftp no Debian 9.3 (Stretch)

O que é FTP ?

FTP é um acrônimo que significa File Transfer Protocol (Protocolo de Transferência de Arquivos). É um protocolo muito utilizado para transferência de arquivos entre peers remotos.

Este é o protocolo conhecido por sua rapidez e segurança, pois é usado por todo o tipo de usuários, seja para funções pessoais ou profissionais.

A transmissão em si é feita através do computador do utilizador para um espaço online pré-definido. O usuário acessa por meio de um cliente FTP ou então o próprio explorador do Windows, que contempla essa funcionalidade, e em seguida seleciona os arquivos para transferir. Este passo demora de acordo com o tamanho do arquivo e a velocidade da Internet do usuário, bem como a velocidade de internet do servidor. Posteriormente a ligação é terminada e os arquivos ficam acessíveis no servidor FTP na rede.

Configurando o VSFTPD com acesso pelo usuários locais (vsftpd):

TUTORIAL DE CONFIGURAÇÂO VSFTPD

Acesse o Debian com o usuário root por meio do comando

$user@localhost:$/ su

Coloque a senha do root ou acesse por meio do sudo su

Agora é necessária a atualização do repositório com o comando abaixo

#apt-get update ou apt update

Configuração vsftpd:

Após a atualização do repositório devem-se fazer as configurações do VSFTPD a partir do comando

#nano /etc/vsftpd.conf

Então serão efetuadas as seguintes alterações na ferramenta vsftpd. Abaixo estão os comandos para realizar a permissão dos arquivos de upload, a restrição do acesso a maioria das system_calls do sistema operacional, habilitar usuários locais da maquina, habilitar edição upload, ajuste da máscara de permissão do arquivo gravado, permissão da gravação de arquivos na raiz do ftp.

file_open_mode=0755

seccomp_sandbox=NO

local_enable=YES

write_enable=YES

local_umask=022

allow_writeable_chroot=YES

Teste:

Reiniciar serviço - service vsftpd restart

Mostrar status do serviço - service vsftpd status

Testar no WinSCP ou Filezilla

Efetuar o login no usuário anônimo e local para fazer os testes

Configurando o VSFTPD com acesso pelo anônimo (vsftpd):

TUTORIAL DE CONFIGURAÇÂO VSFTPD

Acesse o Debian com o usuário root por meio do comando

$user@localhost:$/ su

Coloque a senha do root ou acesse por meio do sudo su

Agora é necessária a atualização do repositório com o comando abaixo

#apt-get update ou apt update

Configuração vsftpd:

Após a atualização do repositório devem-se fazer as configurações do VSFTPD a partir do comando

#nano /etc/vsftpd.conf

Abaixo estão as configurações do vsftpd para permitir o envio de arquivos pelo usuário anônimo, na pasta /var/ftp, bem como a criação de diretórios. Para todos os arquivos criados serão aplicadas a máscara de permissão padrão de 755.

listen=YES

anonymous_enable=YES

write_enable=YES

anon_upload_enable=YES

anon_other_write_enable=YES

anon_root=/var/ftp

anon_mkdir_write_enable=YES

dirmessage_enable=YES

use_localtime=YES

xferlog_enable=YES

Teste:

Reiniciar serviço - service vsftpd restart

Mostrar status do serviço - service vsftpd status

Testar no WinSCP ou Filezilla

Efetuar o login no usuário anônimo e local para fazer os testes

# data[].attributes.body
Sistema Operacional usado Ubuntu 17.0.4

Como instalar o serviço dhcp
Primeiramente abra o terminal e digite o comando
#apt update
Esse comando irá atualizar o repositório do SO(Sistema Operacional).
Para instalar o serviço dhp voce deve usar o seguinte comando no terminar:
#apt-get install isc-dhcp-server

Configurando ip estático
Para configurar o ip estático você deve destinar um ip da faixa do serviço dhcp que será o ip desta maquina ( lembrando que ele tem que ser pulado na faixa de ip do dhcp)

neste exemplo iremos usar o ip 192.168.0.1 e a mascara de rede 255.255.248.0
e precisaremos saber as placas de rede existentes usando o comando:
#ifconfig -a

neste caso usaremos a placa de rede enp0s8
com isso deveremos editar o arquivo de interfaces com  o comando
#nano -w /etc/network/interfaces

e tem que adicionar o seguinte a seguinte linha

auto <placa de rede>
iface <placa de rede> inet static
    address <ip estático>
    netmask <mascara de rede>

neste exemplo será preenchido
auto enp0s8
iface enp0s8 inet static
address 192.168.0.1
netmask 255.255.248.0
salve o arquivo
e entre no seguinte direitorio
#nano -w /etc/default/isc-dhcp-server

e na linha que contem  "INTERFACES" e mude para a placa de rede que você escolheu acima. Neste exemplo foi escolhido enp0s8 e ficará assim INTERFACES="enp0s8"

Configurando o servidor DHCP

Para configurar o servidor DHCP utilizaremos o comando:

#nano /etc/dhcp/dhcpd.conf
Primeiramente iremos configurar o Sistema de Nomes de Domínios (DNS) nesse exemplo colocaremos o 8.8.4.4:
option domain-name-servers 8.8.4.4;

Após isso iremos configurar a sub rede, Na mesma ordem iremos informar
a subnet, netmask, o faixa de ip que o serviço irá atuar e o ip do servidor
ficando assim:

subnet 192.168.0.0 netmask 255.255.248.0{
range dynamic-bootp 192.168.0.2 192.168.0.254;
option routers 192.168.0.1;
}

Dica: Recomenda-se o uso de uma calculadora de ip

# data[].attributes.body
Sistema Operacional usado Debian v9

Como instalar o apache 2
versão

Primeiramente abra o terminal e digite o comando apt update, esse comando irá atualizar o repositório do SO(Sistema Operacional), após este passo deve-se instalar o próprio apache com o PHP junto a instalação, para isso digite o seguinte comando:

apt install apache2 php7.0

Após instalar o apache e o PHP, teste, digitando o IP da máquina, no exemplo o IP é 10.7.32.65. Caso tenha sucesso aparecerá uma pagina contendo algo parecido com a imagem seguir:
http://prntscr.com/ixjtpc

CONFIGURAÇÃO

Mudar a porta

Primeiro você deve se dirigir a pasta do apache que se encontra no diretório /etc/apache2 e editar  o arquivo com o nome ports.conf utilizando um comando de edição (nano ports.conf), dentro do arquivo haverá um uma linha com o seguinte texto “Listen 80” lá você pode muda o valor da porta  de 80 para outro entre 1024 a 65535 (Observação pode dar um erro caso algum programa possa utilizar uma porta dentro desses valores).

Ao mudar a porta você deve reiniciar o serviço do apache com o comando:

service apache2 restart

Logo após, você deve digitar o mesmo IP da sua maquina com o seguinte diferencial colocando " : " e a porta que você usou no navegador.

Como por exemplo: 10.7.32.65:7562

Mudando o path

Entre na pasta do apache localizada no diretório: /etc/apache2. Após acessar o diretório você deve mudar os seguintes arquivos apache2.conf e o 000-default.conf.

Primeiro vamos editar o arquivo apache2.conf com o comando de edição nano,

nano apache2.conf entrando nesse arquivo você deve procurar as linhas que contenham o seguinte texto:

<Directory /var/www/>

Options Indexes FollowSymLinks

AllowOverride All

Require all granted

</Directory>

Após isso mude para : o /var/www/ para qualquer pasta que deseja (Observação a pasta que você esta colocando deve existir).
No próximo exemplo:

<Directory /var/apache/>

Options Indexes FollowSymLinks

AllowOverride All

Require all granted

</Directory>
Salve o arquivo.

Depois de alterar no arquivo apache2.conf você deve acessar a pasta sites-available, acessando a pasta com o comando cd sites-available/ e editar o arquivo 000-default.conf.

Entrando no arquivo, na primeira linha haverá escrito <VirtualHost *:80> se houve a mudança da porta do apache você deve editar nessa linha com colocando a porta que você mudou no caso do exemplo acima, a porta escolhida foi a 7562 então mude o texto para  <VirtualHost *:7562>.      Agora deve mudar a linha DocumentRoot /var/www/html/ para o diretório que foi mudado, no caso foi mudando para /var/apache/ e mude a linha para DocumentRoot /var/apache/.

Reinicie o serviço do apache com o comando:

service apache2 restart

Teste o digitando o IP do seu servidor, se deu certou aparecerá uma pagina parecida com isso:

https://prnt.sc/ixjxo1

Você pode copiar o índex do HTML usando o comando cp /var/www/html/index.html /var/apache.
\Mudar para fork ou processos os handlers do apache2

Neste módulo, cada request é tratado por um processo separado e, dessa forma, um problema no processo filho não implica no processo pai. É muito tolerante a falhas e, por causa disso, muito estável e pode ser utilizado com módulos não thread-safe. Falando pelo lado do desenvolvedor, ele é ideal para módulos monolíticos (PHP), muito fácil de debuggar e efetua pooling de processos. Mas, como nem tudo são flores, ele utiliza mais memória do que o Worker e criar um processo nele é muito custoso e demorado.

<IfModule prefork.c>
StartServers 10
MinSpareServers 10
MaxSpareServers 25
ServerLimit 350
MaxClients 350
MaxRequestsPerChild 5
</IfModule>

StartServers: O número de processos que serão criados quando o Apache for iniciado.

MinSpareServers: Número mínimo de processos que ficarão esperando por requisições.

MaxSpareServers: Número máximo de processos que ficarão esperando por requisições.

MaxClients: Número máximo de requisições atendidas simultâneamente.

ServerLimit: Número mais alto que o MaxClients pode chegar.

MaxRequestsPerChild: Quantas vezes um mesmo processo será reutilizado.
**********************************
Copie o texto

" <IfModule prefork.c>
StartServers 10
MinSpareServers 10
MaxSpareServers 25
ServerLimit 350
MaxClients 350
MaxRequestsPerChild 5
</IfModule> "
dentro do arquivo localizado no seguinte diretório /etc/apache2/apache2.conf use o comando nano apache2.conf  para modifica-la, e copiando esse código para ultima linha

Em seguida, ativamos o mpm_prefork que se encontra na pasta /etc/apache2/mods-available/ , porem para ativa-la devera ser desativado o arquivo de conf com o nome
de mpm_event então deve usar o comando a2dismod mpm_event para desativar o este módulo para então ativar o mpm_prefork usando o a2enmod  mpm_prefork que ira ativa-lo.

reinicie o serviço do apache2 usando o root (usando o comando su), com o comando " service apache2 restart"

# data[].attributes.headline
Parte 3 - Mudar para fork ou processos os handlers do apache2 

# data[].attributes.subject
Parte 3 - Mudar para fork ou processos os handlers do apache2 

# data[].attributes.body
Neste módulo, cada request é tratado por um processo separado e, dessa forma, um problema no processo filho não implica no processo pai. É muito tolerante a falhas e, por causa disso, muito estável e pode ser utilizado com módulos não thread-safe. Falando pelo lado do desenvolvedor, ele é ideal para módulos monolíticos (PHP), muito fácil de debuggar e efetua pooling de processos. Mas, como nem tudo são flores, ele utiliza mais memória do que o Worker e criar um processo nele é muito custoso e demorado.

<IfModule prefork.c>
StartServers 10
MinSpareServers 10
MaxSpareServers 25
ServerLimit 350
MaxClients 350
MaxRequestsPerChild 5
</IfModule>

StartServers: O número de processos que serão criados quando o Apache for iniciado.

MinSpareServers: Número mínimo de processos que ficarão esperando por requisições.

MaxSpareServers: Número máximo de processos que ficarão esperando por requisições.

MaxClients: Número máximo de requisições atendidas simultâneamente.

ServerLimit: Número mais alto que o MaxClients pode chegar.

MaxRequestsPerChild: Quantas vezes um mesmo processo será reutilizado.
**********************************
1> Copie o texto

" <IfModule prefork.c>
StartServers 10
MinSpareServers 10
MaxSpareServers 25
ServerLimit 350
MaxClients 350
MaxRequestsPerChild 5
</IfModule> "
dentro do arquivo localizado no seguinte diretório /etc/apache2/apache2.conf use o comando nano apache2.conf  para modifica-la, e copiando esse código para ultima linha

2> Em seguida, ativamos o mpm_prefork que se encontra na pasta /etc/apache2/mods-available/ , porem para ativa-la devera ser desativado o arquivo de conf com o nome
de mpm_event então deve usar o comando a2dismod mpm_event para desativar o este módulo para então ativar o mpm_prefork usando o a2enmod  mpm_prefork que ira ativa-lo.

3> reinicie o serviço do apache2 usando o root (usando o comando su), com o comando " service apache2 restart"

# data[].attributes.body
Escrever o tutorial daquilo que já foi feito com o apache2.
1- mudar a porta de funcionamento
2- mudar o caminho padrão de trabalho, pode ser a pasta de cada usuário ou uma comum a todos
3- mudar para fork ou processos os handlers do apache2