18 de mar de 2009

Compartilhar 3G via wireless no Ubuntu!

Como se faz isso no Ubuntu?

Vamos colocar a mão na massa!

a) sudo apt-get install dnsmasq

b) edite o arquivo com: "nano /etc/dnsmasq.conf" para que fique como abaixo:

no-resolv
server=200.169.118.22
server=200.169.117.22
interface=wlan0
interface=lo
listen-address=192.168.254.1
listen-address=127.0.0.1
domain=example.com
dhcp-range=192.168.254.50,192.168.254.150,12h
log-queries
log-dhcp

obs. execute "sudo invoke-rc.d dnsmasq restart" após a edição

c) crie um script para estabelecer uma rede como no exemplo abaixo:

sudo ifconfig wlan0 down
sudo iwconfig wlan0 mode ad-hoc
sudo iwconfig wlan0 channel 6
sudo iwconfig wlan0 essid "home"
sudo iwconfig wlan0 key 1234567890
sudo ifconfig wlan0 up
sudo ifconfig wlan0 up 192.168.254.1

obs. no meu caso o chamei de "ad-hoc.sh", dei um "chmod 777 ad-hoc.sh" e executei com "sh ad-hoc.sh", como só usarei ele quando precisar, não vou colocar nenhuma configuração para execução automatica ou no arquivo "/etc/network/interfaces"

d) vamos habilitar o packet forwarding editando com "sudo nano /etc/sysctl.conf" para substituir o valor da linha "net.ipv4.ip_forward=0" para "net.ipv4.ip_forward=1"

e) crie um script para execução das regras de firewall para o compartilhamento como abaixo:

echo "ativando modulos"
/sbin/modprobe iptable_nat
/sbin/modprobe ip_conntrack
/sbin/modprobe ip_conntrack_ftp
/sbin/modprobe ip_nat_ftp
/sbin/modprobe ipt_LOG
/sbin/modprobe ipt_REJECT
/sbin/modprobe ipt_MASQUERADE
sleep 5
echo "ativacao dos modulos ok"
#
echo "limpando regras"
/sbin/iptables -F
/sbin/iptables -X
/sbin/iptables -F -t nat
/sbin/iptables -X -t nat
/sbin/iptables -F -t mangle
/sbin/iptables -X -t mangle
sleep 5
echo "limpeza das regras ok"
#
echo "regra do dhcp"
/sbin/iptables -I INPUT -i wlan0 -p udp --sport 67:68 --dport 67:68 -j ACCEPT
sleep 5
echo "regra do dhcp ok"
#
echo "regra de mascara da rede"
/sbin/iptables -t nat -A POSTROUTING -s 192.168.254.0/24 -j MASQUERADE
sleep 5
echo "regra de mascara da rede ok"
#
echo "salvando as regras"
/sbin/iptables-save > /etc/network/iptables.rules
sleep 5
echo "salvando as regras ok"

obs. no meu caso o salvei como "firewall.sh", dei um "chmod 777 firewall.sh" e um "sh firewall.sh" para colocar em funcionamento.

Ctrl+c / Ctrl+v de: http://smash-se.blogspot.com

Um abraço e até a próxima!