giovanijorge
(usa Ubuntu)
Enviado em 23/09/2015 - 11:07h
Viva o GNU/Linux!!
Gostaria de uma ajuda, tenho este arquivo de configuração
....
# arquivo de configuração do equipamento
internet =
conexao_rede = eth0
conexao_3g = nao
conexao_wifi = wlan0
....
e estas regras do firewall
....
#!/bin/bash
### BEGIN INIT INFO
# Provides: "start_firewall"
# Required-Start: $remote_fs $syslog
# Required-Stop: $remote_fs $syslog
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Example initscript
# Description: This file should be used to construct scripts to be
# placed in /etc/init.d.
### END INIT INFO
# executavel e variaveis
IPTABLES=/sbin/iptables
rede=`more /mnt/brgo0002/sme.conf | grep conexao_rede | awk -F=" " '{print $2}'`
wifi=`more /mnt/brgo0002/sme.conf | grep conexao_wifi | awk -F=" " '{print $2}'`
internet=`more /mnt/brgo0002/sme.conf | grep internet | awk -F=" " '{print $2}'`
# Apagando todas as regras
$IPTABLES -F
$IPTABLES -X
$IPTABLES -t nat -F
$IPTABLES -t nat -X
$IPTABLES -t mangle -F
$IPTABLES -t mangle -X
# Compartilha a conexão
modprobe iptable_nat
echo 1 > /proc/sys/net/ipv4/ip_forward
$IPTABLES -t nat -A POSTROUTING -o $internet -j MASQUERADE ## conexao com a internet
# Bloqueia pings e protege contra IP spoofing e pacotes inválidos
$IPTABLES -A INPUT -p icmp --icmp-type echo-request -j DROP
echo 1 > /proc/sys/net/ipv4/conf/default/rp_filter
$IPTABLES -A INPUT -m state --state INVALID -j DROP
#portas altas do FTP 1024:1300
$IPTABLES -A INPUT -i $rede -p tcp -m multiport --dport 1024:1300 -j ACCEPT
$IPTABLES -A INPUT -i $conexao_3g -p tcp -m multiport --dport 1024:1300 -j ACCEPT
$IPTABLES -A INPUT -i $wifi -p tcp -m multiport --dport 1024:1300 -j ACCEPT
#Liberar porta 80
$IPTABLES -A INPUT -i $wifi -p tcp --dport 80 -j ACCEPT
$IPTABLES -A INPUT -i $rede -p tcp --dport 80 -j ACCEPT
$IPTABLES -A FORWARD -p tcp -o $rede --sport 80 -j ACCEPT
$IPTABLES -A FORWARD -p tcp -o $wifi --sport 80 -j ACCEPT
#liberar porta 8888 btsync
$IPTABLES -A INPUT -i $rede -p tcp --dport 8888 -j ACCEPT
$IPTABLES -A INPUT -i $wifi -p tcp --dport 8888 -j ACCEPT
$IPTABLES -A FORWARD -p tcp -o $rede --sport 8888 -j ACCEPT
$IPTABLES -A FORWARD -p tcp -o $wifi --sport 8888 -j ACCEPT
# Mantem o estado das conexoes da interface de loopback
iptables -I INPUT -s 127.0.0.1 -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -I OUTPUT -s 127.0.0.1 -m state --state RELATED,ESTABLISHED -j ACCEPT
#libera porta 80 para interface loopback http://localhost
iptables -I INPUT -p tcp -s 127.0.0.1 -d 127.0.0.1 --dport 80 -j ACCEPT
#libera a porta 8888 para localhost
$IPTABLES -I INPUT -p tcp -s 127.0.0.1 -d 127.0.0.1 --dport 8888 -j ACCEPT
#Liberar porta 5901 VNC
$IPTABLES -A INPUT -i $rede -p tcp --dport 5901 -j ACCEPT
$IPTABLES -A FORWARD -p tcp -o $rede --sport 5901 -j ACCEPT
$IPTABLES -A INPUT -i $conexao_3g -p tcp --dport 5901 -j ACCEPT
$IPTABLES -A FORWARD -p tcp -o $conexao_3g --sport 5901 -j ACCEPT
....
Problema anterior:
Conforme a estrutura no local de instalação poderemos utilizar conexão 3G, Ethernet ou wi-fi.
A ideia é utilizar apenas um arquivo de firewall e um arquivo de configuração onde poderá ser verificado e executado conforme informações das variáveis de cada máquina..
Então como podem ver antes colocava todas as variáveis utilizadas e apagava outras... mas isso dificultou a manutenção de todas as máquinas pois teria de ter um pra cada... desta forma , que testei parcialmente, ficou mais fácil e inteligente.
Novo problema:
Como faço para testar o arquivo de configuração e executar apenas as regras que serão válidas para cada máquina, EXEMPLO:
tenho regra pra liberar a porta VNC para redes ethernet, 3G ou Wi-Fi.
Quando o script ler o arquivo de configuração a conexão que ele ler com o termo "nao", como no exemplo
...
conexao_3g = nao
...
Durante o script do firewall deixar de executar as regras referentes a este tipo de conexão?
Antecipadamente agradeço pela ajuda.