# [SOLVED]Udostępnianie połączenia...

## Karmazyn

```

Internet

    |

    |

  eth0

Komputer (0)

  eth1

    |

    |

  eth2

Komputer (1)

```

Potrzebuje połączyć w ten oto sposób komputery z internetem, (0) udostępnia dla (1). Skorzystałem Z Google  :Wink:  i przeszłem według tych zagadnień:

http://www.gentoo.org/doc/en/home-router-howto.xml

http://www.linux.com.pl/forum/index.php?t=msg&goto=65296&rid=0&S=26bdcd7cad8d9076b013213dfe29f13a

Ale nic nie pomogło... 

Czy jest ktoś chętny, przejść ze mną krok po kroku, aby uzyskać efekt?Last edited by Karmazyn on Fri Dec 08, 2006 9:47 am; edited 1 time in total

----------

## mbar

ja robiłem wg home router howto i mi działa, ergo problem nie leży po stronie tego howto

----------

## Karmazyn

tu tkwi u mnie problemo:

```
heavenwall karmazyn # iptables -t nat -F

iptables v1.3.5: can't initialize iptables table `nat': Table does not exist (do you need to insmod?)

Perhaps iptables or your kernel needs to be upgraded.

```

i nie wiem co z tym zrobić

----------

## mbar

przeczytać ze zrozumieniem http://www.gentoo.org/doc/en/home-router-howto.xml bo po twoim stwierdzeniu widać, że tego nie zrobiłeś.

----------

## gnu_feliks

 *Karmazyn wrote:*   

> 
> 
> ```
> heavenwall karmazyn # iptables -t nat -F
> 
> ...

 

Co do tego to wydaje mi sie ze nie masz wszystkiego w kernelu.

Tez robilem tylko wedlug: http://www.gentoo.org/doc/pl/home-router-howto.xml i wszystko chodzi. Musisz wszystko wkompilowac dokladnie jak tam pisze + czasem trzeba dodac zaleznosci. Zeby znalesc jakas opcje do wkompilowania przyda sie wcisnac ukosnik: / . I kozystam z dnsmasq.

----------

## Karmazyn

 *Quote:*   

> Co do tego to wydaje mi sie ze nie masz wszystkiego w kernelu. 

 

racja nie zauwarzylem jednej gwiazdki   :Embarassed: 

komputery już się widzą mogą sie nawzajem pingować, na eth3 jest GG (Windoza) ale nie mozna otwierać stron   :Confused:   nie moge otworzyć żadnych stron z WWW...

----------

## Poe

 *Karmazyn wrote:*   

> 
> 
> komputery już się widzą mogą sie nawzajem pingować, na eth3 jest GG (Windoza) ale nie mozna otwierać stron    nie moge otworzyć żadnych stron z WWW...

 

DNSy?

----------

## Karmazyn

jak zmienie DNS'a w pliku /etc/resolv.conf

to mi cały internet siada i nigdzie juz nie ma   :Confused: 

oto mój plik resolv.conf

```
# Generated by dhcpcd for interface eth0

search alzw85

nameserver 10.137.85.1
```

```
heavenwall karmazyn # ifconfig

eth0      Link encap:Ethernet  HWaddr 00:02:44:81:7A:2C

          inet addr:10.137.85.2  Bcast:10.137.85.63  Mask:255.255.255.192

          UP BROADCAST NOTRAILERS RUNNING MULTICAST  MTU:1500  Metric:1

          RX packets:912 errors:0 dropped:0 overruns:0 frame:0

          TX packets:806 errors:0 dropped:0 overruns:0 carrier:0

          collisions:0 txqueuelen:1000

          RX bytes:812819 (793.7 Kb)  TX bytes:120908 (118.0 Kb)

          Interrupt:16 Base address:0xb000

eth1      Link encap:Ethernet  HWaddr 00:E0:4C:EB:8A:C0

          inet addr:192.168.0.1  Bcast:192.168.0.255  Mask:255.255.255.0

          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1

          RX packets:2733 errors:0 dropped:0 overruns:0 frame:0

          TX packets:1031 errors:0 dropped:0 overruns:0 carrier:0

          collisions:0 txqueuelen:1000

          RX bytes:179152 (174.9 Kb)  TX bytes:138927 (135.6 Kb)

          Interrupt:17 Base address:0xb400

lo        Link encap:Local Loopback

          inet addr:127.0.0.1  Mask:255.0.0.0

          UP LOOPBACK RUNNING  MTU:16436  Metric:1

          RX packets:0 errors:0 dropped:0 overruns:0 frame:0

          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0

          collisions:0 txqueuelen:0

          RX bytes:0 (0.0 b)  TX bytes:0 (0.0 b)

```

```
# This blank configuration will automatically use DHCP for any net.*

# scripts in /etc/init.d.  To create a more complete configuration,

# please review /etc/conf.d/net.example and save your configuration

# in /etc/conf.d/net (this file :]!).

config_eth0=("dhcp")

dhcp_eth0="nodns nontp nonis"

config_eth1=( "192.168.0.1 broadcast 192.168.0.255 netmask 255.255.255.0" )

```

Uruchamiany na kazdym starcie systemu: rc-update add mas default

```
#!/bin/sh

echo "Konfiguruje udostepnianie internetu..."

echo "1" > /proc/sys/net/ipv4/ip_forward

iptables -F -t nat

iptables -X -t nat

iptables -F -t filter

iptables -X -t filter

iptables -t filter -P FORWARD DROP

iptables -t filter -A FORWARD -s 192.168.0.0/255.255.0.0 -d 0/0 -j ACCEPT

iptables -t filter -A FORWARD -s 0/0 -d 192.168.0.0/255.255.0.0 -j ACCEPT

iptables -t nat -A POSTROUTING -s 192.168.0.2 -d 0/0 -j MASQUERADE

```

----------

## mbar

brakuje ci jednej bardzo ważnej rzeczy, która jest opisana tu http://www.gentoo.org/doc/en/home-router-howto.xml w dokumencie, którego najwyraźniej nie przeczytałeś i nie masz na to ochoty, czekasz aż ktoś ci poda gotowca.

----------

## Karmazyn

najwyraźniej trzeba znać angielski, moze podasz mi strone po polsku?

----------

## mbar

skoro sam nie umiesz znaleźć http://www.gentoo.org/doc/pl/home-router-howto.xml

----------

## Karmazyn

zrobięłm wszystko według tego HOWTO (patrz wyżej)

/etc/dnsmasq.conf

```
#Wystarczy dodanie jednej linii i DHCP będzie działać:

dhcp-range=192.168.0.100,192.168.0.250,72h

#Udostępniamy dnsmasq tylko dla naszego LAN-u

interface=eth1

# Configuration file for dnsmasq.

#

# Format is one option per line, legal options are the same

# as the long options legal on the command line. See

# "/usr/sbin/dnsmasq --help" or "man 8 dnsmasq" for details.

*********************************
```

ustawiłem NAT'a według tego:

```
Na początek czyścimy regułki:

# iptables -F

# iptables -t nat -F

Domyślne zasady dla pakietów nie pasujących do żadnej regułki

# iptables -P INPUT ACCEPT

# iptables -P OUTPUT ACCEPT

# iptables -P FORWARD DROP

Przykłady można przekleić

# export LAN=eth0

# export WAN=eth1

Potem blokujemy usługi tak, aby były dostępne tylko dla sieci LAN

# iptables -I INPUT 1 -i ${LAN} -j ACCEPT

# iptables -I INPUT 1 -i lo -j ACCEPT

# iptables -A INPUT -p UDP --dport bootps -i ! ${LAN} -j REJECT

# iptables -A INPUT -p UDP --dport domain -i ! ${LAN} -j REJECT

(Opcjonalnie) Pozwalamy na dostęp do naszego serwera SSH z Internetu

# iptables -A INPUT -p TCP --dport ssh -i ${WAN} -j ACCEPT

Upuszczamy pakiety TCP/UDP dla uprzywilejowanych portów

# iptables -A INPUT -p TCP -i ! ${LAN} -d 0/0 --dport 0:1023 -j DROP

# iptables -A INPUT -p UDP -i ! ${LAN} -d 0/0 --dport 0:1023 -j DROP

Ostatecznie dodajemy regułki dla NAT

# iptables -I FORWARD -i ${LAN} -d 192.168.0.0/255.255.0.0 -j DROP

# iptables -A FORWARD -i ${LAN} -s 192.168.0.0/255.255.0.0 -j ACCEPT

# iptables -A FORWARD -i ${WAN} -d 192.168.0.0/255.255.0.0 -j ACCEPT

# iptables -t nat -A POSTROUTING -o ${WAN} -j MASQUERADE

Informujemy jądro o chęci przekazywania IP

# echo 1 > /proc/sys/net/ipv4/ip_forward

# for f in /proc/sys/net/ipv4/conf/*/rp_filter ; do echo 1 > $f ; done

Poniższe polecenia sprawią, że przy każdym uruchomieniu routera

nie będziemy musieli wpisywać ręcznie wszystkich regułek

# /etc/init.d/iptables save

# rc-update add iptables default

# nano /etc/sysctl.conf

Dodajemy przez odkomentowanie następujące linijki:

net.ipv4.ip_forward = 1

net.ipv4.conf.default.rp_filter = 1
```

/etc/conf.d/net

```
# This blank configuration will automatically use DHCP for any net.*

# scripts in /etc/init.d.  To create a more complete configuration,

# please review /etc/conf.d/net.example and save your configuration

# in /etc/conf.d/net (this file :]!).

config_eth0=("dhcp")

dhcp_eth0="nodns nontp nonis"

config_eth1=( "192.168.0.1 broadcast 192.168.0.255 netmask 255.255.255.0" )

```

następnie restart kompa i :

```
heavenwall karmazyn # ifconfig

eth0      Link encap:Ethernet  HWaddr 00:02:44:81:7A:2C

          inet addr:10.137.85.2  Bcast:10.137.85.63  Mask:255.255.255.192

          UP BROADCAST NOTRAILERS RUNNING MULTICAST  MTU:1500  Metric:1

          RX packets:514 errors:0 dropped:0 overruns:0 frame:0

          TX packets:166 errors:0 dropped:0 overruns:0 carrier:0

          collisions:0 txqueuelen:1000

          RX bytes:189658 (185.2 Kb)  TX bytes:14844 (14.4 Kb)

          Interrupt:16 Base address:0xb000

eth1      Link encap:Ethernet  HWaddr 00:E0:4C:EB:8A:C0

          inet addr:192.168.0.1  Bcast:192.168.0.255  Mask:255.255.255.0

          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1

          RX packets:63 errors:0 dropped:0 overruns:0 frame:0

          TX packets:2 errors:0 dropped:0 overruns:0 carrier:0

          collisions:0 txqueuelen:1000

          RX bytes:11964 (11.6 Kb)  TX bytes:120 (120.0 b)

          Interrupt:17 Base address:0xb400

lo        Link encap:Local Loopback

          inet addr:127.0.0.1  Mask:255.0.0.0

          UP LOOPBACK RUNNING  MTU:16436  Metric:1

          RX packets:0 errors:0 dropped:0 overruns:0 frame:0

          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0

          collisions:0 txqueuelen:0

          RX bytes:0 (0.0 b)  TX bytes:0 (0.0 b)
```

a na drugim kompie nic nie ma, zero połączenia, nawet pingować nie moge

----------

## mbar

Wiesz co, może wklej tu zawartość pliku (po zrobieniu restartu) 

~/.bash_history

edit: zresztą, ja nie mam siły, widać, że z rozumieniem coś kiepsko:

```
Internet

    |

    |

  eth0

Komputer (0)

  eth1

    |

    |

  eth2

Komputer (1) 
```

```
Przykłady można przekleić

# export LAN=eth0

# export WAN=eth1 
```

Jeśli przekeliłeś, no to gratuluję. Widzisz 5 różnic między obrazkami?

----------

## Karmazyn

glupota nie zna granic   :Embarassed: 

teraz dziala

[SOLVED]

----------

## rastman

A co jeżeli mam 2 karty sieciowe i poprzez obie chcialbym udostepnic internet? Jaka regulke do iptables dodac?

----------

## ch4os

Mozesz to zrobic wedlug tego tuta 'Home router..'

+

Eksportujesz sobie kolejny lan-owy interface np.

export LAN2=eth2

i te kroki ktore w howto sa dla LAN powtarzasz tylko zmienna ustawiasz na LAN2.

----------

## rastman

Bawilem sie z tym troche, ale nie doszedlem do rozwiazania. Stanąlem w momencie, ze eth1 dziala internet, natomiast w eth0 nie. Pewno cos mam pokrecone w ip/broadcast/macquarade? Pokazuje zatem configi.

/etc/conf.d/net

```

config_eth0=( "192.168.0.1 broadcast 192.168.0.255 netmask 255.255.255.0" )

config_eth1=( "192.168.0.1 broadcast 192.168.0.255 netmask 255.255.255.0" )

```

/etc/dnsmasq.conf

```

dhcp-range=192.168.0.100,192.168.0.250,72h

interface=eth0

interface=eth1

```

iptables konfigurowalem tak, jak w howto, tylko ze dodalem jeszcze export LAN1=eth1 i potem nizej komendy robilem po 2 razy zmieniajac przy tym drukim razie LAN na LAN1.

Jakies sugestie, co moze byc źle?  :Smile: 

----------

## ch4os

eth1 i eth0 nie powinny byc z roznych podsieci ? np 192.168.0.1 i 192.168.1.1, oba przy masce 255.255.255.0 i broadcast pominac mozesz. Nie wiem tylko jak sie wtedy zachowa dnsmasq..  ja mam ip na sztywno ustawiane.

----------

