Diferenças entre edições de "Introdução à utilização de iptables"

Fonte: TecPorto
Saltar para a navegação Saltar para a pesquisa
Linha 39: Linha 39:
  
 
===Configuração de uma página===
 
===Configuração de uma página===
<syntaxhighlight lang="bash">cd /var/www/html
+
<syntaxhighlight lang="bash">
cp index.html index_old.html
+
cd /var/www/html
nano index.html
+
cp index.html index_old.html
 +
nano index.html
 
  <html>
 
  <html>
 
   <body>
 
   <body>
Linha 47: Linha 48:
 
   </body>
 
   </body>
 
  </html>
 
  </html>
service apache2 restart (se necessário)</syntaxhighlight>
+
service apache2 restart (se necessário)</syntaxhighlight>
  
 
* Aceder ao IP da máquina no browser
 
* Aceder ao IP da máquina no browser
  
 
===Configuração do vsftpd===
 
===Configuração do vsftpd===
cp    /etc/vsftpd.conf    /etc/vsftpd_back.conf  
+
<syntaxhighlight lang="bash">
adduser teste
+
cp    /etc/vsftpd.conf    /etc/vsftpd_back.conf  
mkdir /home/teste/ftp
+
adduser teste
chown nobody:nogroup /home/teste/ftp
+
mkdir /home/teste/ftp
chmod a-w /home/teste/ftp (as permissões atribuídas são 555)
+
chown nobody:nogroup /home/teste/ftp
ls –la /home/teste/ftp
+
chmod a-w /home/teste/ftp (as permissões atribuídas são 555)
touch /home/teste/ftp/test.txt
+
ls –la /home/teste/ftp
echo “teste de acesso” > /home/teste/ftp/test.txt
+
touch /home/teste/ftp/test.txt
 +
echo “teste de acesso” > /home/teste/ftp/test.txt
 +
</syntaxhighlight>
  
nano /etc/vsftpd.conf (ou vi)
+
<syntaxhighlight lang="bash">nano /etc/vsftpd.conf (ou vi)</syntaxhighlight>
 
   
 
   
 
Descomentar a linha write_enable=YES
 
Descomentar a linha write_enable=YES
 
Descomentar a linha chroot_local_user=YES
 
Descomentar a linha chroot_local_user=YES
 
Adicionar as linhas no fim do ficheiro
 
Adicionar as linhas no fim do ficheiro
 +
 +
<syntaxhighlight lang="bash">
 
   user_sub_token=$USER
 
   user_sub_token=$USER
 
   local_root=/home/$USER/ftp
 
   local_root=/home/$USER/ftp
Linha 73: Linha 78:
 
   userlist_file=/etc/vsftpd.userlist
 
   userlist_file=/etc/vsftpd.userlist
 
   userlist_deny=NO
 
   userlist_deny=NO
+
</syntaxhighlight>
 +
 
 +
<syntaxhighlight lang="bash">
 
  touch /etc/vsftpd.userlist
 
  touch /etc/vsftpd.userlist
 
  echo “teste” > /etc/vsftpd.userlist
 
  echo “teste” > /etc/vsftpd.userlist
 
  service vsftpd restart
 
  service vsftpd restart
 +
</syntaxhighlight>
 +
  
ftp –p <ip do servidor>
+
<syntaxhighlight lang="bash">ftp –p <ip do servidor></syntaxhighlight>
 
   Efectuar o login
 
   Efectuar o login
 
   ls  
 
   ls  

Revisão das 16h05min de 7 de junho de 2018

Vantagens e desvantagens

  • Grande estabilidade, confiabilidade e escalável.
  • Económicas tanto monetariamente como em termos de recursos computacionais.
  • Mais eficazes.
  • Maior liberdade de configuração.
  • Necessário vasto conhecimento do funcionamento interno do Linux.
  • Não é uma solução rápida de implementar.
  • Não possui grandes ferramentas gráficas nativas de configuração (excepto de terceiros).
  • Configurações perdidas após reiniciar o sistema.

Exemplos

iptables -A INPUT -p tcp -s 192.168.219.0/255.255.255.0 -j ACCEPT

Todas as configurações de regras da firewall são aplicadas através do comando “iptables”.

Em seguida vem uma condição, indicada pela opção "-A".

As opções “INPUT -p tcp -s 192.168.219.0/255.255.255.0", aplicam-se a qualquer pacote de entrada (INPUT), utilizando o protocolo TCP (-p tcp), proveniente dos computadores da rede local (192.168.200.0/255.255.255.0).

O "-j ACCEPT" indica que ação deve ser tomada e, neste caso, diz que estes pacotes devem ser aceites.

Criação de um cenário prático

  • Instalar e configurar máquina virtual com o ubuntu server:
    • Actualizar a máquina virtual (apt-get update && apt-get upgrade)
    • Activar utilizador root (sudo passwd root)
  • Instalar o seguintes serviços:
    • Apache
      • apt-get install lamp-server^
    • SSH
      • apt-get install ssh
    • FTP
      • apt-get install vsftpd

Instalação de serviços para testes

Configuração de uma página

cd /var/www/html
cp index.html index_old.html
nano index.html
 <html>
   <body>
       Escrever texto aqui….
   </body>
 </html>
service apache2 restart (se necessário)
  • Aceder ao IP da máquina no browser

Configuração do vsftpd

cp    /etc/vsftpd.conf    /etc/vsftpd_back.conf 
adduser teste
mkdir /home/teste/ftp
chown nobody:nogroup /home/teste/ftp
chmod a-w /home/teste/ftp (as permissões atribuídas são 555)
ls –la /home/teste/ftp
touch /home/teste/ftp/test.txt
echo “teste de acesso” > /home/teste/ftp/test.txt
nano /etc/vsftpd.conf (ou vi)

Descomentar a linha write_enable=YES Descomentar a linha chroot_local_user=YES Adicionar as linhas no fim do ficheiro

  user_sub_token=$USER
  local_root=/home/$USER/ftp
  pasv_min_port=40000
  pasv_max_port=50000
  userlist_enable=YES
  userlist_file=/etc/vsftpd.userlist
  userlist_deny=NO
 touch /etc/vsftpd.userlist
 echo “teste” > /etc/vsftpd.userlist
 service vsftpd restart


ftp –p <ip do servidor>
 Efectuar o login
 ls 
 quit

Portos utilizados pelos serviços

  • HTTP – 80
  • SSH – 22
  • FTP – 20 e 21

Regras

Limpar todas as regras

iptables –F INPUT
iptables –F OUTPUT
iptables –F FORWARD

Bloquear pacotes mal formados

iptables -A INPUT -m state --state INVALID -j DROP

Permitir ligações para o endereço de loopback

iptables -A INPUT -i lo -j ACCEPT

Bloquear uma ligação FTP a um IP especifico

iptables –A INPUT –p tcp –s <IP_A_BLOQUEAR> --dport 21 –j REJECT

Abrir as portas para o servidor FTP

iptables –A INPUT –p tcp –m multiport --dport 80, 20, 21, 40000, 50000 –j ACCEPT

Permitir uma ligação SSH a um IP especifico

iptables –A INPUT –p tcp –s <IP_A_PERMITIR> --dport 22 –j ACCEPT