Simple & Easy NAT between wifi and eth

Sometimes happen the same situation: one ethernet port, one ethernet cable, no hub/switch and many PCs with wireless.
A good solution is to connect a pc with ethernet and create a WLAN (ad hoc or infrastructure) to connect other PCs to internet.
Too many time I had this problem and the solution is always the same or similar, so I wrote this useful and reusable bash script to configure wifi card (chipset Atheros with madwifi driver) and create a NAT to connect AdHoc WLAN.


#!/bin/bash
# inizializing ethernet (I suppose outer network have address 193.205.22.12)
# I suggest to disable NetworkManager and kill dhclient
ifconfig eth0 193.205.22.12

# Now I need to unload and reload module with option "autocreate=adhoc". This
# simplify the creation of virttual interfaces athX (See how madwifi work for more informations)
/sbin/rmmod ath_pci
modprobe ath_pci autocreate=adhoc


# Configuring essid (In this case I use essid "spongepowa"
iwconfig ath0 essid spongepowa
# Configuring WLAN address (I suppose my network is 192.168.1.0/24)
ifconfig ath0 192.168.1.1

# Enabling forwarding
/bin/echo "1" > /proc/sys/net/ipv4/ip_forward

# Inizializing iptables
iptables --flush
iptables -t nat -P POSTROUTING ACCEPT
iptables -t nat -P PREROUTING ACCEPT

# Making rules:
# - 192.168.1.0/24 is local WLAN addresses
# - eth0 is the output interface (ethernet interface), ath0 is the input interface (wifi interface)
iptables -A FORWARD -s 192.168.1.0/24 -d 0/0 -j ACCEPT
iptables -A FORWARD -m state --state ESTABLISHED,RELATED -d 192.168.1.0/24 -j ACCEPT
iptables -t nat -A POSTROUTING -o eth0 -s 192.168.1.0/24 -j MASQUERADE

I hope this is correct. If you have any question ask me by comment.

If my english is full of mistakes, tell me (AYBABTU is not allowed without motivation :รพ)…with my mistakes, of course.

Advertisements

6 thoughts on “Simple & Easy NAT between wifi and eth

  1. I didn’t know this trick. I have an Intel IPW2200 wireless card on my laptop, but I guess it shouldn’t be difficult to adjust your howto to fit my needs.. Have you got some link to draw from?

  2. uhm, I don’t have link (try with google if you need ๐Ÿ˜‰ ), but the operation to do are:
    1) configure ethernet ip address
    2) switch wifi to ad-hoc mode (in my case I have to unload and reload module, but you can do with “iwconfig $wifi_interface mode adhoc”
    3) create adHoc essid and configure ip address
    4) copy and paste my last part and change wifi interface and LAN ip address with data of your net….

    if you copy and past my script and try to adapt to your configuration i will be more simpe…trust me ๐Ÿ˜‰

  3. thanks ๐Ÿ™‚

    I’m happy it is useful.. ๐Ÿ™‚

    I guess if you link my post, blogspot send a pingback on my blog as comment ๐Ÿ˜‰

    thanks again ๐Ÿ™‚

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s