Ola pessoal,
tenho um servidor dedicado de jogos a meses mas não ativei o firewall nele.
Entao montei o script abaixo para o servidor mas ainda não testei, pois tenho medo de rodar e não conseguir mais acessar o server via SSH.
Fui pegando na internet "pedaços" prontos e montando o meu de acordo com que preciso.
Então peço uma pequena ajuda para verificar se esta tudo certo antes de colocar no server.
Preciso liberar apenas SSH/HTTP/FTP/PING e as portas dos jogos, o resto deve ser bloqueado.
E quando acessar via SSH o server, preciso ter acesso completo na internet.
#!/bin/sh
# endereco IP do seu servidor
SERVER_IP=XXX.XXX.XXX.XXX
# se voce tiver uma conexao com IP dedicado, pode adiciona-lo aqui.
#ADMIN_IP=yyy.yyy.yyy.yyy
# interface a ser configurado com o firewall
$INTERFACE=eth0
IPTABLES='/sbin/iptables'
# Flush (limpa) (-F) todas as regras
$IPTABLES -F INPUT
$IPTABLES -F FORWARD
$IPTABLES -F OUTPUT
$IPTABLES -P INPUT DROP
$IPTABLES -P FORWARD DROP
$IPTABLES -P OUTPUT ACCEPT
# Comunicacao interna ao firewall
$IPTABLES -A INPUT -i $INTERFACE -m state state ESTABLISHED,RELATED -j ACCEPT
# Derruba todas as conexoes vindas da rede publica que tentam
# se passar por enderecos internos
$IPTABLES -A INPUT -i $INTERFACE -s $SERVER_IP/32 -j DROP
$IPTABLES -A INPUT -i $INTERFACE -s 192.168.0.0/24 -j DROP
$IPTABLES -A INPUT -i $INTERFACE -s 127.0.0.0/8 -j DROP
# Aceita HTTP, HTTPS
$IPTABLES -A INPUT -p tcp -s 0/0 -d 0/0 destination-port http syn -j ACCEPT
#$IPTABLES -A INPUT -p tcp -s 0/0 -d 0/0 destination-port https syn -j ACCEPT
# SSH
# Em mundo ideal voce possui um IP fixo em sua casa ou escritorio e deve liberar apenas
# esse IP. Na pratica isso é muito raro, mas se for esse o seu caso, retire o comentario,
# o simbolo de #, da linha abaixo. Nao se esqueca de colocar o endereco da sua conexao
# nos parametros do comeco do script.
#$IPTABLES -A INPUT -p tcp -s $ADMIN_IP/32 -d $SERVER_IP/32 destination-port s sh syn -j ACCEPT
# LIBERA SSH PARA QUALQUER IP
$IPTABLES -A INPUT -p tcp -s 0/0 -d 0/0 destination-port ssh syn -j ACCEPT
# DNS
#$IPTABLES -A INPUT -p udp -s 0/0 -d 0/0 destination-port domain -j ACCEPT
#$IPTABLES -A INPUT -p tcp -s 0/0 -d 0/0 destination-port domain -j ACCEPT
# For FTP server, restricted to specific local hosts (and see /etc/xinetd.conf):
# $IPTABLES -A INPUT -p tcp -s 0/0 -d 0/0 destination-port ftp-data syn -j A CCEPT
$IPTABLES -A INPUT -p tcp -s 0/0 -d 0/0 destination-port ftp syn -j ACCEPT
# MySQL
# ATENCAO, permite que usuarios externos tentem se conectar ao seu mysql
# $IPTABLES -A INPUT -p tcp -s 0/0 -d 0/0 destination-port mysql syn -j ACCEPT
# se voce quiser bloquear algum endereco especifico, coloque na linha abaixo
# e retire o comentario
#$IPTABLES -A INPUT -s xyz.xyz.xyz.xyz/32 -d 0/0 -p tcp syn -j DROP
# Protecao contra SynFloods
$IPTABLES -A INPUT -p tcp --syn -m limit --limit 3/s -j ACCEPT
# Protecao contra ping da morte
$IPTABLES -A INPUT -p icmp --icmp-type echo-request -m limit --limit 1/s -j ACCEPT
# Protecao contra ping flood
$IPTABLES -A INPUT -p icmp -m limit --limit 1/s -j ACCEPT
# JOGOS
#
# CS
$IPTABLES -A INPUT -p tcp -s 0/0 -d 0/0 destination-port 27023 syn -j ACCEPT
$IPTABLES -A INPUT -p udp -s 0/0 -d 0/0 destination-port 27023 syn -j ACCEPT
# CS
$IPTABLES -A INPUT -p tcp -s 0/0 -d 0/0 destination-port 27043 syn -j ACCEPT
$IPTABLES -A INPUT -p udp -s 0/0 -d 0/0 destination-port 27043 syn -j ACCEPT
# CS
$IPTABLES -A INPUT -p tcp -s 0/0 -d 0/0 destination-port 27053 syn -j ACCEPT
$IPTABLES -A INPUT -p udp -s 0/0 -d 0/0 destination-port 27053 syn -j ACCEPT
# ENEMY TERRITORY
$IPTABLES -A INPUT -p udp -s 0/0 -d 0/0 destination-port 27961 syn -j ACCEPT