Crie, gerencie e monitor seu OTServ de qualquer dispositivo e lugar do mundo!
 
Instalando um IP Tables Personalizado

Instalando um IP Tables Personalizado

O Iptables é um firewall em nível de pacotes, ou seja, toma as decisões baseadas nos parâmetros do pacote, como porta/endereço de origem/destino, estado da conexão, e outros parâmetros do pacote. Funciona através da comparação de regras para saber se um pacote tem ou não permissão para passar. O iptables tem inúmeras possibilidades de controle oferecidas pelos recursos de filtragem, flexibilidade na manipulação dando lugar à imaginação do administrador.

Passo 1. Atualizando o repositório do Linux

Acesse seu servidor via SSH(Se precisa veja o Tutorial: PuTTy – Acesso SSH a sua máquina) e atualize seu repositório com o seguinte comando:
apt-get update
Aguarde a conclusão do update.

Passo 2. Instalando o IPTables em seu servidor

.
Depois disso instale o IPTables em sua máquina com o comando:
apt-get install iptables
(Obs.: O programa pode solicitar que confirme a instalação. Faça isto digitando “S”).
Aguarde o fim da instalação.

Passo 3. Testando seu IPTables

Teste se seu IPTables está ativo digitando o comando:
iptables -L
O resultado deve estar semelhante a este:

Chain INPUT (policy ACCEPT)

target	 prot opt source			 destination


Chain FORWARD (policy ACCEPT)

target	 prot opt source			 destination


Chain OUTPUT (policy ACCEPT)

target	 prot opt source			 destination

 

Passo 4. Identificando sua placa de rede

Agora precisamos identificar a placa de rede do seu servidor para poder especificá-la nas regras iptables. A placa de rede terá uma nomenclatura que dependerá do hoster, como por exemplo: eth0, eth1, eth2 e etc. Para verificar sua placa digite o comando:
ifconfig
O resultado deverá ser semelhante a este:

eth0 Link encap:Ethernet HWaddr xx:xx:xx:xx:xx:xx

		 inet addr:xxx.xx.xxx.xxx Bcast:xx.x.xxx.xxx Mask:255.255.255.0

		 inet6 addr: xxxx::xxx:xxxx:xxxx:xxxx/xx Scope:Link

		 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1

		 RX packets:38762400 errors:0 dropped:0 overruns:0 frame:0

		 TX packets:5214715 errors:0 dropped:0 overruns:0 carrier:0

		 collisions:0 txqueuelen:1000

		 RX bytes:2158074986 (2.1 GB) TX bytes:3150303160 (3.1 GB)

		 Interrupt:10


lo	 Link encap:Local Loopback

		 inet addr:127.0.0.1 Mask:255.0.0.0

		 inet6 addr: ::1/128 Scope:Host

		 UP LOOPBACK RUNNING MTU:16436 Metric:1

		 RX packets:78270 errors:0 dropped:0 overruns:0 frame:0

		 TX packets:78270 errors:0 dropped:0 overruns:0 carrier:0

		 collisions:0 txqueuelen:0

		 RX bytes:7520686 (7.5 MB) TX bytes:7520686 (7.5 MB)

No exemplo acima você pode perceber que nomenclatura de nossa placa de rede é eth0. Agora que temos nosso IPTables instalado e a nomenclatura da nossa placa, iremos configurar o nosso firewall.

Passo 1. Criando o arquivo firewall.sh

Utilizando seu editor preferido, caminhe até a pasta ‘/etc/init.d/’ e crie um arquivo chamado ‘firewall.sh’ 
nano /etc/init.d/firewall.sh

Passo 2. Colocando o script no firewall.sh

No Ubuntu, o diretório ‘/etc/init.d’ é utilizado para scripts que serão inicializados junto com o S.O. Copie e cole o seguinte script no arquivo:

## Firewall voltado ao OTServ

## Criado por: Thiago Nogueira - ADM Kira - www.brgos.net


echo "Carregando o firewall..."


#Limpa as regras do Firewall anteriores

iptables -F

iptables -X


#Permitir trafego para sessoes estabelecidas:

iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT


#Libera conexoes de fora para dentro

iptables -A INPUT -p tcp -i eth0 --dport 22 -j ACCEPT #SSH

iptables -A INPUT -p tcp -i eth0 --dport 80 -j ACCEPT #WEB

iptables -A INPUT -p tcp -i eth0 --dport 7171 -j ACCEPT #TIBIA

iptables -A INPUT -p tcp -i eth0 --dport 7172 -j ACCEPT #TIBIA2


#Libera o loopback

iptables -A INPUT -s 127.0.0.1 -j ACCEPT

iptables -A OUTPUT -s 127.0.0.1 -j ACCEPT

iptables -A FORWARD -s 127.0.0.1 -j ACCEPT


#Libera conexoes de dentro para fora

iptables -A OUTPUT -p tcp --dport 80 -j ACCEPT #WEB

iptables -A OUTPUT -p tcp --dport 7171 -j ACCEPT #TIBIA

iptables -A OUTPUT -p tcp --dport 7172 -j ACCEPT #TIBIA2


#Protecao contra "ping of death"

iptables -A FORWARD -p icmp --icmp-type echo-request -m limit --limit 1/s -j ACCEPT


#Protecao contra ataques do tipo "Syn-flood, Dos e etc"

iptables -A FORWARD -p tcp -m limit --limit 1/s -j ACCEPT


#Protecao contra IP Spoofing

iptables -A INPUT -s 10.0.0.0/8 -i eth0 -j DROP

iptables -A INPUT -s 172.16.0.0/16 -i eth0 -j DROP

iptables -A INPUT -s 192.168.0.0/24 -i eth0 -j DROP


#Protecao contra port scanners ocultos

iptables -A INPUT -p tcp --tcp-flags SYN,ACK,FIN,RST RST -m limit --limit 1/s -j ACCEPT

iptables -A INPUT -s 0.0.0.0/0 -p icmp -j DROP


#Bloqueando traceroute

iptables -A INPUT -p udp -s 0/0 -i eth0 --dport 33435:33525 -j DROP


#Bloqueia toda entrada com excessao das regras acima

iptables -A INPUT -j DROP


#Cria log dos bloqueios - Ativar somente se necessario

#iptables -I INPUT 5 -m limit --limit 5/min -j LOG --log-prefix "iptables denied: " --log-level 7


echo "Firewall ativado!"

 

Passo 3. Salvando o arquivo firewall.sh

Salve seu arquivo, caso esteja utilizando o editor nano, pressione CTRL+O para salver e CTRL+X para fechar.

Passo 4. Dando permissão para o script firewall.sh

Agora iremos dar a permissão para a execução do arquivo ‘firewall.sh’ com o seguinte comando:
chmod +x /etc/init.d/firewall.sh

Passo 5. Inicializando o firewall

Para iniciar seu firewall digite o seguinte comando:
sh /etc/init.d/firewall.sh
O resultado deve ser igual a este:
Carregando o firewall...
Firewall ativado!

Antes de colocarmos o script para funcionar corretamente, é necessário testar as conexões de seu OTserv para ter certeza que nada necessário para o funcionamento tenha sido bloqueado. Caso algo tenha sido bloqueado, limpe as regras do firewall com o comando:
iptables -F
Caso tenha bloqueado sua conexão SSH por engano, basta reiniciar o servidor linux que as regras serão apagadas e você poderá corrigi-las.
ATENÇÃO: Somente execute o comando abaixo se tiver certeza que tudo esta funcionando corretamente. Caso bloqueie algo essencial, como a conexão SSH, será necessário formatar o computador.

Passo 6. Colocando o Firewall para iniciar junto com o S.O.

Digite o comando:
update-rc.d firewall.sh defaults
Prontinho! Agora seu servidor já esta protegido contra a maioria dos ataques feito em servidores de Tibia.

Créditos: Rafael Martins do Viva o Linux pela introdução.
Tnogueira do TibiaKing pelo tutorial.