[iptables] Udostępnianie połączenia sieci LAN

0

Mam w serwerze [Fedora Core 4] dwa połączenia sieciowe:
eth0 - całkowicie zaufana sieć LAN (192.168.0.1/24)
ppp0 - neostrada

Stworzyłem nastepujący skrypt, modyfikujący iptables:

iptables -F
iptables -t nat -F
iptables -t mangle -F

iptables -P INPUT DROP
iptables -P OUTPUT ACCEPT
iptables -P FORWARD DROP
 
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -i eth0 -j ACCEPT

iptables -A INPUT -p icmp -j ACCEPT
iptables -A INPUT -p tcp --dport ssh -j ACCEPT
iptables -A INPUT -p tcp --dport 20 -j ACCEPT
iptables -A INPUT -p tcp --dport 21 -j ACCEPT
iptables -A INPUT -p tcp --dport http -j ACCEPT
iptables -A INPUT -p tcp --dport https -j ACCEPT
iptables -A INPUT -p tcp --dport pop3 -j ACCEPT
iptables -A INPUT -p tcp --dport smtp -j ACCEPT

iptables -A INPUT -p all -m state --state ESTABLISHED,RELATED -j ACCEPT

iptables -A FORWARD -i eth0 -j ACCEPT
iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE

W jego wyniku sieć zachowuje się następująco:

  • serwer widzi komputer z LAN (pinguje), ma dostęp do internetu (działa http z internetu, pinguje)
  • komputer z LAN widzi serwer (działa http z serwera, pinguje), nie widzi internetu (nawet nie pinguje)

Obecnie mam problem z tym, by komputer w LAN miał internet, bo wg. powyższego kodu nie ma.

Jeśli ktoś ma jakiś pomysł na proste przekierowanie wszystkich portów, które nie są obsługiwane przez serwer, chętnie poznam. Myślałem, by dać przekierowanie zakresu portów 1025:65535, ale chyba to nie jest najlepszy pomysł.

Moim zamierzeniem końcowym jest następująca konfiguracja:

  • serwer widzi komputer z LAN, ma dostęp do internetu
  • komputer z LAN widzi serwer (działają jego usługi - np.: http), ma dostęp do internetu
  • jako serwer widziane są obsługiwane usługi, pozostałe porty są przekierowywane na komputer w sieci LAN (192.168.0.2, który je obsługuje lub nie) - tego jeszcze nie zrobiłem
0

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

0

Niestety nie mam w tej chwili dostępu do serwera, więc zapytam jedynie, czy poza tą drobną zmianą, reszta daje szansę, że to ruszy?

0
Szczawik napisał(a)

Niestety nie mam w tej chwili dostępu do serwera, więc zapytam jedynie, czy poza tą drobną zmianą, reszta daje szansę, że to ruszy?

To co napisal qyon jest bardzo istotne bo wlacza przekazywanie pakietow dalej ;) Tak sie sklada ze akurat wczoraj robilem maskarade + firewall u siebie. Wklejam moj pliczek. Tak jak jest dziala bardzo dobrze

#!/bin/sh                                                                                        
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.1.0/255.255.255.0 -d 0/0 -j ACCEPT
iptables -t filter -A FORWARD -s 0/0 -d 192.168.1.0/255.255.255.0 -j ACCEPT

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

#firewall ;)
iptables -P INPUT DROP 
                                                  
iptables -A INPUT -i eth0 -j ACCEPT                                                              

iptables -A INPUT -i eth1 -p icmp -j ACCEPT                                                      

iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT                        

#wlaczanie konkretnych portow tcp                                                                
iptables -A INPUT -p tcp --dport 21 -m state --state NEW -j ACCEPT    
iptables -A INPUT -p tcp --dport 22 -m state --state NEW -j ACCEPT       
iptables -A INPUT -p tcp --dport 25 -m state --state NEW -j ACCEPT       
iptables -A INPUT -p tcp --dport 53 -m state --state NEW -j ACCEPT   
iptables -A INPUT -p tcp --dport 80 -m state --state NEW -j ACCEPT 
iptables -A INPUT -p tcp --dport 443 -m state --state NEW -j ACCEPT
iptables -A INPUT -p tcp --dport 3306 -m state --state NEW -j ACCEPT

iptables -A INPUT -p udp --dport 53 -m state --state NEW -j ACCEPT

eth1 to wyjscie na swiat, a eth0 to wyjscie na lan ;)

0
echo "Odpalamy Maskarade IP :>"
echo 1 > /proc/sys/net/ipv4/ip_dynaddr
echo 1 > /proc/sys/net/ipv4/ip_forward

  # maskarada ip
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

a tak wyglada moje, tak wiec masz 3 przyklady kazdy z "-t nat -A POSTROUTING", imho cos w tym jest :>

echo 1 > /proc/sys/net/ipv4/ip_forward - tak to zadziala
echo 1 > /proc/sys/net/ipv4/ip_dynaddr - a to nie zaszkodzi :)

0

Dzięki, jutro wypróbuję.

//Ruszyło. Dzięki za pomoc. Mam jeszcze problem z przekierowaniem, ale założę do tego lepiej nowy temat.

1 użytkowników online, w tym zalogowanych: 0, gości: 1