Como salvar uma regra ou script pra não perder na hora de reiniciar?
boa tarde a todos, galera gostaria de uma dica de vocês sou iniciante linux gostaria de saber como faça pra salvar essa regra pra todas vez que o pc ligar ela carregar junto...
"@root: iptalbes -A FORWARD -d www.facebook.com -j DROP"
quando dou este comando pelo terminar funciona tranquilo mais todas as vezes que reinicio ele tem tenho que fazer de novo alguém poderia me dar uma dica?
Re: Como salvar uma regra ou script pra não perder na hora de reiniciar?
Citação:
Postado originalmente por
Arthur Bernardes
Se você usa um conjunto de regras, pode criar um serviço de firewall, colocando-o em "/etc/init.d/" e colocando para iniciar durante o boot usando o "update-rc.d firewall defaults", ou então pode colocar esse comando para executar pelo "/etc/rc.local".
obrigado pela resposta amigo mais já fiz isso e não foi possa estar fazendo algo errado pois sou iniciante em linux, estou usando o proxy transparente, por isso queria fazer essa regra pra bloquear o facebook já que o proxy transparente até onde eu li não faz.
Re: Como salvar uma regra ou script pra não perder na hora de reiniciar?
Citação:
Postado originalmente por
Arthur Bernardes
O Proxy transparente não trata as requisições em HTTPS, somente HTTP!
Uma boa tática é bloquear o Facebook pelo nome, usando o "dstdom_regex" e "url_regex", qual distro está usando?
Produza um serviço de firewall, veja como está o meu aqui.
Código :
#!/bin/bash
echo "Produzido por Arthur Bernardes (17)99199-1157"
echo "Declarando variáveis"
# Interface da Internet:
ifinternet="eth1"
# IP da Internet
ip_internet="192.168.1.2"
# Interface da rede local
iflocal="eth0"
# IP da Rede Local
rede_local="172.16.0.0/24"
# Portas à serem liberadas
portas_liberadas="21,23,25,53,110,143,22,80,443,3128,3306,3389,5432,5900,9091"
echo "Variáveis declaradas"
#### Função "start" ####
iniciar(){
echo "Carregando módulos"
modprobe ip_tables
modprobe iptable_mangle
modprobe iptable_nat
echo "Módulos carregados"
echo "Limpando regras"
iptables -F
iptables -t nat -F
iptables -t mangle -F
iptables -X
iptables -t nat -X
iptables -t mangle -X
iptables -Z
iptables -t nat -Z
iptables -t mangle -Z
echo "Regras limpas"
echo "Definindo política padrão"
iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT
echo "Política padrão definida"
echo "Habilitando roteamento"
echo 1 > /proc/sys/net/ipv4/ip_forward
echo "Roteamento ativado"
echo "Compartilhando internet"
iptables -t nat -A POSTROUTING -o $ifinternet -j MASQUERADE
echo 1 > /proc/sys/net/ipv4/conf/default/rp_filter
echo "Internet compartilhada"
echo "Bloqueando IP's indesejados na rede"
#iptables -A INPUT -i $iflocal -s 10.0.0.2 -j DROP
#iptables -A FORWARD -i $iflocal -s 10.0.0.2 -j DROP
echo "IP's indesejados bloqueados"
echo "Manter conexões establecidas"
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
echo "Negando pacotes inválidos"
iptables -A INPUT -m state --state INVALID -j DROP
iptables -A FORWARD -m state --state INVALID -j DROP
echo "Liberando portas"
iptables -A INPUT -m multiport -p tcp --dport $portas_liberadas -j ACCEPT
iptables -A FORWARD -m multiport -p tcp --dport $portas_liberadas -j ACCEPT
iptables -A OUTPUT -m multiport -p tcp --dport $portas_liberadas -j ACCEPT
iptables -A INPUT -m multiport -p udp --dport $portas_liberadas -j ACCEPT
iptables -A FORWARD -m multiport -p udp --dport $portas_liberadas -j ACCEPT
iptables -A OUTPUT -m multiport -p udp --dport $portas_liberadas -j ACCEPT
echo "Liberando tráfego"
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -i $iflocal -j ACCEPT
iptables -A FORWARD -i lo -j ACCEPT
iptables -A FORWARD -i $iflocal -j ACCEPT
echo "Tráfego liberado"
echo "Tráfego redirecionado"
echo "Redirecionando tráfego para proxy transparente"
#iptables -t nat -A PREROUTING -i $iflocal -p tcp --dport 80 -j REDIRECT --to-port 3128
#iptables -t nat -A PREROUTING -i $iflocal -p udp --dport 80 -j REDIRECT --to-port 3128
echo "Tráfego redirecionado para proxy transparente"
}
parar(){
iptables -F
iptables -t nat -F
iptables -t mangle -F
iptables -X
iptables -t nat -X
iptables -t mangle -X
iptables -Z
iptables -t nat -Z
iptables -t mangle -Z
iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT
}
status(){
iptables -L -v -n
}
case "$1" in
"start") iniciar ;;
"stop") parar ;;
"restart") parar; iniciar ;;
"status") status;;
*) echo "Use os parâmetros start ou stop"
esac
E veja meu "squid.conf":
Código :
http_port 3128visible_hostname Arthur
cache_mem 350 MB
cache_access_log /var/log/squid3/access.log
acl all src 0.0.0.0/0.0.0.0
acl manager proto cache_object
acl localhost src 127.0.0.1/255.255.255.255
acl SSL_ports port 443 563
acl Safe_ports port 22 # ssh
acl Safe_ports port 80 # http
acl Safe_ports port 21 # ftp
acl Safe_ports port 443 563 # https, snews
acl Safe_ports port 70 # gopher
acl Safe_ports port 210 # wais
acl Safe_ports port 280 # http-mgmt
acl Safe_ports port 488 # gss-http
acl Safe_ports port 591 # filemaker
acl Safe_ports port 777 # multiling http
acl Safe_ports port 901 # swat
acl Safe_ports port 1025-65535 # portas altas
acl purge method PURGE
acl CONNECT method CONNECT
http_access allow manager localhost
http_access deny manager
http_access allow purge localhost
http_access deny purge
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
auth_param basic realm Arthur
auth_param basic program /usr/lib/squid3/ncsa_auth /etc/squid3/squid_passwd
acl autenticados proxy_auth REQUIRED
acl bloqueados dstdomain redtube.com
http_access deny bloqueados
acl palavrasproibidas dstdom_regex "/etc/squid3/palavrasproibidas"
http_access deny palavrasproibidas
acl url url_regex -i "/etc/squid3/palavrasproibidas"
http_access deny url
http_access allow autenticados
acl redelocal src 10.0.0.0/23
http_access allow localhost
http_access allow redelocal
http_access deny !redelocal
http_access deny all
Obs: Tenho um arquivo com as palavras proibidas, dentre elas o Facebook!
obrigado mais uma vez por me responder estou usando o debian7, e como eu faço pra implementar esta regra de bloqueio por palavras nome aqui o usando proxy transparente pois tenho varios celulares tbm que usan skype watshapp etc....?
- - - Atualizado - - -
o meu esta com o squid o seu é squid3 né?
Re: Como salvar uma regra ou script pra não perder na hora de reiniciar?
Veja só como eu fiz, instalei o squid3 no meu debian7 fiz um arquivo firewall.sh dentro da pasta /etc/squid3/ ai dentro deste arquivo coloquei isso:
Citação:
#!/bin/bash
echo "Produzido por Arthur Bernardes (17)99199-1157"
echo "Declarando variáveis"
# Interface da Internet:
ifinternet="eth0"
# IP da Internet
ip_internet="192.168.100.249"
# Interface da rede local
iflocal="eth1"
# IP da Rede Local
rede_local="10.1.1.0/24"
# Portas à serem liberadas
portas_liberadas="21,23,25,53,110,143,22,80,443,3128,3306,3389,5432,5900,9091"
echo "Variáveis declaradas"
#### Função "start" ####
iniciar(){
echo "Carregando módulos"
modprobe ip_tables
modprobe iptable_mangle
modprobe iptable_nat
echo "Módulos carregados"
echo "Limpando regras"
iptables -F
iptables -t nat -F
iptables -t mangle -F
iptables -X
iptables -t nat -X
iptables -t mangle -X
iptables -Z
iptables -t nat -Z
iptables -t mangle -Z
echo "Regras limpas"
echo "Definindo política padrão"
iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT
echo "Política padrão definida"
echo "Habilitando roteamento"
echo 1 > /proc/sys/net/ipv4/ip_forward
echo "Roteamento ativado"
echo "Compartilhando internet"
iptables -t nat -A POSTROUTING -o $ifinternet -j MASQUERADE
echo 1 > /proc/sys/net/ipv4/conf/default/rp_filter
echo "Internet compartilhada"
echo "Bloqueando IP's indesejados na rede"
#iptables -A INPUT -i $iflocal -s 10.0.0.2 -j DROP
#iptables -A FORWARD -i $iflocal -s 10.0.0.2 -j DROP
echo "IP's indesejados bloqueados"
echo "Manter conexões establecidas"
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
echo "Negando pacotes inválidos"
iptables -A INPUT -m state --state INVALID -j DROP
iptables -A FORWARD -m state --state INVALID -j DROP
echo "Liberando portas"
iptables -A INPUT -m multiport -p tcp --dport $portas_liberadas -j ACCEPT
iptables -A FORWARD -m multiport -p tcp --dport $portas_liberadas -j ACCEPT
iptables -A OUTPUT -m multiport -p tcp --dport $portas_liberadas -j ACCEPT
iptables -A INPUT -m multiport -p udp --dport $portas_liberadas -j ACCEPT
iptables -A FORWARD -m multiport -p udp --dport $portas_liberadas -j ACCEPT
iptables -A OUTPUT -m multiport -p udp --dport $portas_liberadas -j ACCEPT
echo "Liberando tráfego"
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -i $iflocal -j ACCEPT
iptables -A FORWARD -i lo -j ACCEPT
iptables -A FORWARD -i $iflocal -j ACCEPT
echo "Tráfego liberado"
echo "Tráfego redirecionado"
echo "Redirecionando tráfego para proxy transparente"
#iptables -t nat -A PREROUTING -i $iflocal -p tcp --dport 80 -j REDIRECT --to-port 3128
#iptables -t nat -A PREROUTING -i $iflocal -p udp --dport 80 -j REDIRECT --to-port 3128
echo "Tráfego redirecionado para proxy transparente"
}
parar(){
iptables -F
iptables -t nat -F
iptables -t mangle -F
iptables -X
iptables -t nat -X
iptables -t mangle -X
iptables -Z
iptables -t nat -Z
iptables -t mangle -Z
iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT
}
status(){
iptables -L -v -n
}
case "$1" in
"start") iniciar ;;
"stop") parar ;;
"restart") parar; iniciar ;;
"status") status;;
*) echo "Use os parâmetros start ou stop"
esac
meu arquivo squid.conf esta assim:
Citação:
http_port 3128visible_hostname Arthur
cache_mem 350 MB
cache_access_log /var/log/squid3/access.log
acl all src 0.0.0.0/0.0.0.0
acl manager proto cache_object
acl localhost src 127.0.0.1/255.255.255.255
acl SSL_ports port 443 563
acl Safe_ports port 22 # ssh
acl Safe_ports port 80 # http
acl Safe_ports port 21 # ftp
acl Safe_ports port 443 563 # https, snews
acl Safe_ports port 70 # gopher
acl Safe_ports port 210 # wais
acl Safe_ports port 280 # http-mgmt
acl Safe_ports port 488 # gss-http
acl Safe_ports port 591 # filemaker
acl Safe_ports port 777 # multiling http
acl Safe_ports port 901 # swat
acl Safe_ports port 1025-65535 # portas altas
acl purge method PURGE
acl CONNECT method CONNECT
http_access allow manager localhost
http_access deny manager
http_access allow purge localhost
http_access deny purge
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
auth_param basic realm Arthur
auth_param basic program /usr/lib/squid3/ncsa_auth /etc/squid3/squid_passwd
acl autenticados proxy_auth REQUIRED
acl bloqueados dstdomain redtube.com
http_access deny bloqueados
acl palavrasproibidas dstdom_regex "/etc/squid3/palavrasproibidas"
http_access deny palavrasproibidas
acl url url_regex -i "/etc/squid3/palavrasproibidas"
http_access deny url
http_access allow autenticados
acl redelocal src 10.1.1.0/24
http_access allow localhost
http_access allow redelocal
http_access deny !redelocal
http_access deny all
ai dentro de vim /etc/rc.local
coloquei assim:
sh /etc/squid3/firewall.sh
pra chamar ele quando ligar
e dentro de /etc/squid3/ criei um arquivo com o nome: palavrasproibidas e dentro dele coloquei facebook
Orkut
Youtube
Mais ainda não esta bloqueando e nem mostra mensagem der pagina bloqueada o que tá falatando?