share internet connection

Lucian Adrian Grijincu lucian.grijincu la gmail.com
Lun Ian 5 16:18:54 GMT 2009


Salut,

îți trimit atașat un script pe care îl rulez eu pentru a ruta wireless
o conexiune prin dhcp sau pppoe (trbuie să modifici variabile IFACE
pentru a selecta ppp0 sau eth0 sau care o fi numele interfeței pe care
ești legat la internet).

Mie îmi merge bine între plăci wireless intel. N-am reușit să-l fac să
meargă când clientul wireless are o placă broadcom - nu cred că e din
cauza scriptului.

Îți sugerez să scoți wireless-ul din NetworkManager pe server (Click
dreapta pe iconița nm-applet, debifează „Activează Rețeaua fără fir"),
altfel NetworkManager va încerca să modifice el configurațiile
interfeței wireless.

Folosește scriptul atașat nu ce e în email, am mai introdus comentarii
în corpul emailului și s-ar putea să fi stricat ceva.

ATENȚIE: citește bine ce face scriptul ăsta, s-ar putea să-ți strice
configurații de-ale tale:
* suprascriu /etc/dhcp3/dhcpd.conf și /etc/default/dhcp3-server
* modific tabelele de iptables
* cine știe ce altceva.

S-ar putea să ai nevoie să modifici anumite variabile sau parole.

Scriptul ăsta configurează și un server de dhcp pe calculatorul meu
care va da adrese din spațiul
[192.168.5.100 .. 192.168.5.200] clienților wireless. Poți renunța la
serverul DHCP și clienții wireless vor trebui să-și seteze adrese IP
manual. Va trebui să modifici serverul de DNS și domain-name-ul: pune
ce ai tu în /etc/resolv.conf.

calculatorul care routează are adresa 192.168.5.1.

Am configurat NAT peste rețeaua writeless, și am dat drumul la
forwardarea de pachete.

Am pus reguli în iptables pentru a modifica TTL-ul pachetelor: ISP-ul
meu îmi trimite pachete cu TTL = 1, și nu ajung până la hopul următor
și se descotorisește de toate pachetele care vin de la un hop în plus.



#!/bin/bash

# asta e interfata wireless
WIFI=wlan0

#SSID-ul și parola pentru wireless.
SSID=mimititi
PASS=55555

# ip-urile pe rețeaua wireless sunt din spațiul de adrese [192.168.5
.. 192.168.255]
SUBNET=192.168.5

# interfața prin care ești conectat la internet.
IFACE=eth0
#IFACE=ppp0

disable_wpa_roaming()
{
 if [ $(ps -e | grep wpa_supplicant | wc -l) -ge 1 ] ; then
   echo "Disabling WPA roaming..."
   wpa_action $WIFI stop
 fi
}

configure_ad_hoc_wireless_card()
{
 echo "Configuring wireless link..."
 /sbin/iwconfig $WIFI mode ad-hoc essid $SSID channel 1
 /sbin/iwconfig $WIFI key s:$PASS
}

configure_interface_address()
{
 echo "Configuring interface address..."
 /sbin/ifconfig $WIFI $SUBNET.1 netmask 255.255.255.0
 sleep 2
 /sbin/ifconfig $WIFI up
}

activate_nat()
{
 echo "Activating NAT..."
 echo "1" > /proc/sys/net/ipv4/ip_forward
 /sbin/iptables -t nat -F
 /sbin/iptables -t nat -A POSTROUTING -s $SUBNET/24 -o $IFACE -j MASQUERADE
}

mangle_ttl()
{
 echo "Mangling TTL..."
 iptables -t mangle -A PREROUTING -i $IFACE -j TTL --ttl-inc 1
 iptables -t mangle -A POSTROUTING -j TTL --ttl-set 64
}

configure_dhserver()
{
 echo "Configuring DHCP server..."
 local DHCPSERVER_INTERFACES=/etc/default/dhcp3-server
 local DHCPSERVER_CONF=/etc/dhcp3/dhcpd.conf
 cp $DHCPSERVER_INTERFACES $DHCPSERVER_INTERFACES.back
 echo 'INTERFACES="'$WIFI'"' > $DHCPSERVER_INTERFACES

 cp $DHCPSERVER_CONF $DHCPSERVER_CONF.back

 echo 'subnet '$SUBNET'.0 netmask 255.255.255.0 {
              range '$SUBNET'.100 '$SUBNET'.200;
              option domain-name-servers 141.85.0.81, 141.85.0.82;
              option domain-name "p16.eregie.pub.ro";
              option routers '$SUBNET'.1;
              option broadcast-address '$SUBNET'.255;
              default-lease-time 600;
              max-lease-time 7200;
       }' > $DHCPSERVER_CONF
}

disable_wpa_roaming
configure_ad_hoc_wireless_card
configure_interface_address
activate_nat
mangle_ttl
configure_dhserver
/etc/init.d/dhcp3-server restart




-- 
 .
..: Lucian
-------------- partea urmãtoare --------------
Un ataÅŸament non-text a fost ÅŸters...
Nume: ubuntuw.sh
Tip: application/x-sh
Mărime: 1810 octeţi
Desc: indisponibil(ă)
Url : https://lists.ubuntu.com/archives/ubuntu-ro/attachments/20090105/54bbc9c6/attachment-0001.sh 


Mai multe informaþii despre lista de discuþii ubuntu-ro