Vá para o terminal e digite:
sudo su -
apt-get install openssh-server openssh-client
Teste a instalação
ps -A | grep sshd
Se a saída for algo assim:
<some number> ? 00:00:00 sshd
Então o daemon ssh está sendo executado.
Digite novamente o terminal;
ss -lnp | grep sshd
Se a saída for algo assim:
0 128 :::22 :::* users:(("sshd",16893,4))
0 128 *:22 *:* users:(("sshd",16893,3))
Em seguida, significa que o daemon ssh está escutando conexões de entrada
Agora editamos o arquivo de configuração. Primeiro fazemos um backup do arquivo original.
sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.factory-defaults
Agora abrimos o arquivo de configuração para editá-lo
sudo vim /etc/ssh/sshd_config
As senhas fracas são fáceis de adivinhar. A melhor prática é usar chaves SSH em vez de senha. Então, desabilitamos a autenticação por senha. Vá para a linha
#PasswordAuthentication yes
e substitua por
PasswordAuthentication no
Ativar o encaminhamento oferece mais opções para invasores que já adivinharam senhas. Então, nós desativamos isso. Isso nos dá um pouco de segurança Vá para as linhas
AllowTcpForwarding yes
X11Forwarding yes
e substitua-os por
AllowTcpForwarding no
X11Forwarding no
Podemos permitir explicitamente determinados usuários e impedir que determinados usuários efetuem login. Para isso, temos que colocar as seguintes linhas na parte inferior do arquivo de configuração.
AllowUsers Fred Wilma
DenyUsers Dino Pebbles
Para um ótimo desempenho do laptop, permitimos duas conexões pendentes. Entre o terceiro e décima conexão o sistema irá começar a soltar aleatoriamente conexões de 30% até 100% na décima conexão simultânea. Isso pode ser feito pela seguinte linha
MaxStartups 2:30:10
Para registrar mais erros e outras informações úteis nós alteramos a linha
LogLevel INFO
em
LogLevel VERBOSE
Para assustar invasores novatos, podemos exibir um banner Nós removemos a tag hash da frente da linha
#Banner /etc/issue.net
para fazer isso
Banner /etc/issue.net
Em seguida, vamos para o terminal e digite:
sudo -H gedit /etc/issue.net
Em seguida, adicione o aviso:
***************************************************************************
NOTICE TO USERS
This computer system is the private property of its owner, whether
individual, corporate or government. It is for authorized use only.
Users (authorized or unauthorized) have no explicit or implicit
expectation of privacy.
Any or all uses of this system and all files on this system may be
intercepted, monitored, recorded, copied, audited, inspected, and
disclosed to your employer, to authorized site, government, and law
enforcement personnel, as well as authorized officials of government
agencies, both domestic and foreign.
By using this system, the user consents to such interception, monitoring,
recording, copying, auditing, inspection, and disclosure at the
discretion of such personnel or officials. Unauthorized or improper use
of this system may result in civil and criminal penalties and
administrative or disciplinary action, as appropriate. By continuing to
use this system you indicate your awareness of and consent to these terms
and conditions of use. LOG OFF IMMEDIATELY if you do not agree to the
conditions stated in this warning.
****************************************************************************
Se um endereço IP tentar se conectar mais de 10 vezes em 30 segundos, todas as tentativas a seguir falharão, pois as conexões serão DROPADAS. A regra é adicionada ao firewall executando um único comando no terminal:
sudo ufw limit ssh
Agora salvamos e fechamos o arquivo de configuração e reiniciamos o ssh
digitando no terminal:
systemctl restart ssh
Em seguida, configuramos as chaves SSH Existem dois pares de chaves SSH públicas e privadas. Chaves públicas estão presentes em servidores e chaves privadas estão presentes com os indivíduos. Se alguém puder combinar sua chave privada com chave pública, somente ele poderá entrar. Além disso, opcionalmente, chaves privadas podem ser protegidas por senha. Além disso, quando as chaves são geradas usando criptografia de 4096 bits é quase impossível quebrá-las pela força bruta.
Etapa 1: crie o par de chaves RSA :
Digite no terminal
ssh-keygen -t rsa -b 4096
Aqui usamos criptografia de 64 bits para mais segurança
Etapa dois - armazenar as chaves e a frase secreta:
Siga as instruções na tela, forneça o local desejado para o armazenamento de chaves, recomendado para aceitar o padrão, optar pela frase secreta, dar uma senha strong, lembre-se disso.
A tela é algo assim:
ssh-keygen -t rsa Generating public/private rsa key pair. Enter file in which to save the key (/home/demo/.ssh/id_rsa): Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /home/demo/.ssh/id_rsa. Your public key has been saved in /home/demo/.ssh/id_rsa.pub. The key fingerprint is: 4a:dd:0a:c6:35:4e:3f:ed:27:38:8c:74:44:4d:93:67 demo@a The key's randomart image is: +--[ RSA 2048]----+ | .oo. | | . o.E | | + . o | | . = = . | | = S = . | | o + = + | | . o + o . | | . o | | | +-----------------+
Etapa três - copiar a chave pública:
Digite no terminal
ssh-copy-id [email protected]
Aqui 123.45.56.78 é o endereço IP do servidor
No caso de localhost, é
ssh-copy-id user@localmachinename
A tela é algo parecido com isto
The authenticity of host '12.34.56.78 (12.34.56.78)' can't be established. RSA key fingerprint is b1:2d:33:67:ce:35:4d:5f:f3:a8:cd:c0:c4:48:86:12. Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added '12.34.56.78' (RSA) to the list of known hosts. [email protected]'s password: Now try logging into the machine, with "ssh '[email protected]'", and check in: ~/.ssh/authorized_keys to make sure we haven't added extra keys that you weren't expecting.
Agora nossa instalação está completa. Para fazer login, precisamos digitar o terminal:
ssh username@servername
Então, quando a senha for solicitada, precisamos fornecê-la.
Agora, habilitamos o login root do servidor opessh. Primeiro, temos que habilitar a senha sudo, pois ela está desabilitada no Ubuntu por padrão.
Para isso, digitamos no terminal o seguinte, a tela será algo assim:
sudo passwd
[sudo] password for [username]: [Type your user password and press return]
Type new UNIX password: [Type the root password you want]
Retype new UNIX password: [Retype the root password you chosen before]
passwd: password updated successfully
Agora temos que editar o arquivo / etc / sudoers.
Aqui usamos o editor chamado visudo É porque visudo é para o único propósito de editar o arquivo sudoes
No Ubuntu, por padrão, os arquivos de configuração são abertos pelo editor nano Para alterá-lo, digite terminal:
sudo update-alternatives --config editor
A tela a seguir será exibida:
There are 4 choices for the alternative editor (providing /usr/bin/editor). Selection Path Priority Status ------------------------------------------------------------ * 0 /bin/nano 40 auto mode 1 /bin/ed -100 manual mode 2 /bin/nano 40 manual mode 3 /usr/bin/vim.basic 30 manual mode 4 /usr/bin/vim.tiny 10 manual mode Press to keep the current choice[*], or type selection number:
Digite 3 e pressione enter
Em seguida, digite:
sudo visudo
Mova para a linha que diz
Defaults env_reset
Pressione enter
Acima de uma nova linha é criada Tipo:
Defaults rootpw
use barra de espaço , não TAB
Pressione Esc - > : + x - > Digite
No tipo de terminal:
gedit /etc/ssh/sshd_config
Mover para a linha:
PermitRootLogin password-prohibited
e mude para
PermitRootLogin yes
Salvar e fechar
Em seguida, reinicie o SSH
service ssh restart
Em seguida, digite terminal:
ssh-copy-id root@localmachinename
A tela de saída pode mostrar:
The authenticity of host '12.34.56.78 (12.34.56.78)' can't be established. RSA key fingerprint is b1:2d:33:67:ce:35:4d:5f:f3:a8:cd:c0:c4:48:86:12. Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added '12.34.56.78' (RSA) to the list of known hosts. [email protected]'s password: Now try logging into the machine, with "ssh '[email protected]'", and check in: ~/.ssh/authorized_keys to make sure we haven't added extra keys that you weren't expecting. Now we have granted private key access to root to login To test type: ssh root@localmachine
Ele pedirá a frase secreta. A frase secreta permanece a mesma. Dê. Agora a raiz será capaz de logar com sucesso
Agora, para mais segurança, precisamos adicionar firewall Tipo:
app install ufw
Agora inicie-o
enable ufw
Obtenha uma lista de processos atualmente em execução
ufw app list
O OpenSSH será listado lá. Agora através do firewall
ufw allow OpenSSH
Reinicie o firewall
systemctl restart ufw
Nossa instalação está completa