» »

pomoč pri iptables

pomoč pri iptables

HellRaiseR ::

Rabu bi nekej pomoči pri iptabelsih. Problem je naslednji. Ker se mi ob postavljanju routerja ni dalo začet učit iptablesov sem za kreiranje pravil uporabu kar skripto(quicktables). Ta zadeva mi je skreirala naslednja pravila.

#!/bin/sh
#
#
export PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin
iptables="/sbin/iptables"

if [ -e /proc/sys/net/ipv4/tcp_syncookies ]; then echo 1 > /proc/sys/net/ipv4/tcp_syncookies; fi
if [ -e /proc/sys/net/ipv4/conf/all/rp_filter ]; then echo 1 > /proc/sys/net/ipv4/conf/all/rp_filter; fi
if [ -e /proc/sys/net/ipv4/ip_forward ]; then echo 1 > /proc/sys/net/ipv4/ip_forward; fi

if [ -e /lib/modules/`uname -r`/kernel/net/ipv4/netfilter/ip_nat_irc.o ]; then modprobe ip_nat_irc; fi
if [ -e /lib/modules/`uname -r`/kernel/net/ipv4/netfilter/ip_conntrack_irc.o ]; then modprobe ip_conntrack_irc; fi
if [ -e /lib/modules/`uname -r`/kernel/net/ipv4/netfilter/ip_conntrack_ftp.o ]; then modprobe ip_conntrack_ftp; fi
if [ -e /lib/modules/`uname -r`/kernel/net/ipv4/netfilter/ip_nat_ftp.o ]; then modprobe ip_nat_ftp; fi

$iptables -F INPUT
$iptables -F OUTPUT
$iptables -P INPUT DROP
$iptables -P OUTPUT ACCEPT

$iptables -F FORWARD
$iptables -F -t nat
$iptables -P FORWARD DROP
$iptables -A FORWARD -i eth0 -j ACCEPT
$iptables -A INPUT -i eth0 -j ACCEPT
$iptables -A OUTPUT -o eth0 -j ACCEPT
$iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
$iptables -t nat -A POSTROUTING -s 192.168.2.0/24 -o ppp0 -j MASQUERADE

$iptables -A INPUT -i lo -j ACCEPT
$iptables -A OUTPUT -o lo -j ACCEPT

$iptables -A INPUT -i ppp0 -m state --state ESTABLISHED,RELATED -j ACCEPT

$iptables -I INPUT -i ppp0 -s 10.0.0.0/8 -j DROP
$iptables -I INPUT -i ppp0 -s 172.16.0.0/12 -j DROP
$iptables -I INPUT -i ppp0 -s 192.168.0.0/16 -j DROP
$iptables -I INPUT -i ppp0 -s 127.0.0.0/8 -j DROP
$iptables -I FORWARD -i ppp0 -s 10.0.0.0/8 -j DROP
$iptables -I FORWARD -i ppp0 -s 172.16.0.0/12 -j DROP
$iptables -I FORWARD -i ppp0 -s 192.168.0.0/16 -j DROP
$iptables -I FORWARD -i ppp0 -s 127.0.0.0/8 -j DROP

$iptables -A OUTPUT -p icmp -m state --state NEW -j ACCEPT
$iptables -A INPUT -p icmp -m state --state ESTABLISHED,RELATED -j ACCEPT
$iptables -A INPUT -p icmp --icmp-type echo-request -m limit --limit 1/s -i ppp0 -j ACCEPT

$iptables -I INPUT -p icmp --icmp-type redirect -j DROP
$iptables -I INPUT -p icmp --icmp-type router-advertisement -j DROP
$iptables -I INPUT -p icmp --icmp-type router-solicitation -j DROP
$iptables -I INPUT -p icmp --icmp-type address-mask-request -j DROP
$iptables -I INPUT -p icmp --icmp-type address-mask-reply -j DROP

#porti za amule
$iptables -A FORWARD -i ppp0 -p tcp --dport 4662 -j ACCEPT
$iptables -t nat -A PREROUTING -i ppp0 -p tcp --dport 4662 -j DNAT --to-destination 192.168.2.2:4662
$iptables -A FORWARD -i ppp0 -p udp --dport 4672 -j ACCEPT
$iptables -t nat -A PREROUTING -i ppp0 -p udp --dport 4672 -j DNAT --to-destination 192.168.2.2:4672
#sestrina emule
$iptables -A FORWARD -i ppp0 -p tcp --dport 7000 -j ACCEPT
$iptables -t nat -A PREROUTING -i ppp0 -p tcp --dport 7000 -j DNAT --to-destination 192.168.2.3:7000
$iptables -A FORWARD -i ppp0 -p udp --dport 7000 -j ACCEPT
$iptables -t nat -A PREROUTING -i ppp0 -p udp --dport 7000 -j DNAT --to-destination 192.168.2.3:7000
#porti za bittorrent
$iptables -A FORWARD -i ppp0 -p tcp --dport 6881:6950 -j ACCEPT
$iptables -t nat -A PREROUTING -i ppp0 -p tcp --dport 6881:6950 -j DNAT --to-destination 192.168.2.2:6881:6950
#porti za web server
$iptables -A FORWARD -i ppp0 -p tcp --dport 80 -j ACCEPT
$iptables -t nat -A PREROUTING -i ppp0 -p tcp --dport 80 -j DNAT --to-destination 192.168.2.4:80

$iptables -A INPUT -i ppp0 -p tcp --dport 0:65535 -j DROP
$iptables -A INPUT -i ppp0 -p udp --dport 0:65535 -j DROP

#tukaj so blokirani ip naslovi od useh sumljivih ljudi
iptables -I INPUT -s 193.77.19.93 -j DROP
iptables -I INPUT -s 64.240.232.95 -j DROP

No pred kratkim sem na svojo mašino v mreži postavu web server in(kot je vidno v pravilih) fowardal na njega port 80. Zadeva dela, razen če se povežem na zunanji ip s katerekoli mašine z mreže. Recimo če se povežem na mašini mrežni ip(http://192.168.2.4) zadeva dela, če pa napišem http://moj.zunanji.ip.com pa se zadeva noče povezat. Drugim obiskovalcem se stran odpre normalno. Zelo sumljiv se mi je zdel tale del pravil:
$iptables -I INPUT -i ppp0 -s 10.0.0.0/8 -j DROP
$iptables -I INPUT -i ppp0 -s 172.16.0.0/12 -j DROP
$iptables -I INPUT -i ppp0 -s 192.168.0.0/16 -j DROP
$iptables -I INPUT -i ppp0 -s 127.0.0.0/8 -j DROP
$iptables -I FORWARD -i ppp0 -s 10.0.0.0/8 -j DROP
$iptables -I FORWARD -i ppp0 -s 172.16.0.0/12 -j DROP
$iptables -I FORWARD -i ppp0 -s 192.168.0.0/16 -j DROP
$iptables -I FORWARD -i ppp0 -s 127.0.0.0/8 -j DROP

zato sem celotno stvar zakomentiral in na novo pognal skripto vendar še vedno brez uspeha. Se komu sanja zakaj ne dela, ali pa ima napisano kako skripto na kateri zadeva dela?

SasoS ::

ne, te zadnji ruli nimajo veze...to je samo zato ker folk spoofa lan ipje ki ne bi smeli bit na netu...

glej ta rule

$iptables -t nat -A PREROUTING -i ppp0 -p tcp --dport 80 -j DNAT --to-destination 192.168.2.4:80

DNAT ti dela samo za pakete ki prihajajo na ppp0 (torej od zunaj) ne pa tistih ki prihajajo iz mreže (odstrani -i ppp0, dodaj -d externi_ip [če ne ti ne bo delal internet spljoh]). Nisem pa siguren če bo to sploh delalo ker bi paket (recimo da se iz tvoje mašine povežeš na zunanji ip) šel tvoja_mašina-router-tvoja_mašina (torej nazaj od koder je prišel). Sprobaj...

Gwanaroth ::

gShield

V config datotekah nastaviš kam bi rad kaj forwardal, katere porte želiš odprte, katere servise laufaš na mašini itd., nato požženeš executable [gShield.rc], ki prebere te conf fajle in ti naredi vsa primerna pravila in chaine za iptabele.

LP.
Lights often keep secret hypnosis..

korenje_ver2 ::

predlagam uporabo port mapperja ali kej podobnega.

64202 ::

> Nisem pa siguren če bo to sploh delalo ker bi paket (recimo da se iz tvoje mašine povežeš na zunanji ip) šel tvoja_mašina-router-tvoja_mašina (torej nazaj od koder je prišel).

Ne bi, se pa to porihta tko, da za interne adrese (torej tvoja_masina) naredis se SNAT na interni ip od rutrja.
I am NaN, I am a free man!

HellRaiseR ::

Ne bi, se pa to porihta tko, da za interne adrese (torej tvoja_masina) naredis se SNAT na interni ip od rutrja.

Zadeva naj bi potem zgledala nekako tako, samo ne dela. Mogoče veš kje bi bla napaka(192.168.2.1 je ip od routerja in 192.168.2.2 je moj workstation)

iptables -t nat -A POSTROUTING -s 192.168.2.2 -p tcp -o eth0 -j SNAT --to-source 192.168.2.1

64202 ::

Tam gor mas samo -i ppp0 DNAT-e, moras se jasno -i eth0 DNAT narest.
I am NaN, I am a free man!

HellRaiseR ::

Po dodajanju teh dveh vrstic naletim na hud problem. Zdj mi vse urlje preusmeri na 192.168.2.4,

$iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j DNAT --to-destination 192.168.2.4:80
$iptables -t nat -A POSTROUTING -s 192.168.2.0/24 -p tcp -o eth0 -j SNAT --to-source 192.168.2.1

kar je nekako logično. Ni mi jasno kako bi pravilo postavu da bi preusmeru samo une pakete, ki so dejansko namenjeni za to mašino.

SasoS ::

sem ti rekel da dodaj -d externi_ip (da prerouting dnata samo pakete ki so namenjeni na server). Alternativno lahko narediš 2 rula kot je napisal 64202, enega za ppp0, enega za eth0.

HellRaiseR ::

Uf super zadeva dela. Hvala vam. Zdaj me samo še neki zanima. Imam namreč dinamični ip naslov, tam pa sem moral unest svoj naslov. Zadevo sicer lahko uredim tako, da napišem skripto ki popravi ip naslov in jo dam u crontab, prej me samo zanima če je še kakšna enostavnejša rešitev.

HellRaiseR ::

ok stupid me. zadevo sem resil z dynamicdnsjem ;) hvala vam


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

iptables problem z SSH

Oddelek: Omrežja in internet
121611 (1465) sverde21
»

[Linux] Noče se povezati z ADSL

Oddelek: Operacijski sistemi
401867 (1336) sverde21
»

iptables

Oddelek: Omrežja in internet
61238 (1153) kihc
»

iptables + forward

Oddelek: Operacijski sistemi
331892 (1467) tx-z
»

Kako naredim preusmeritev???

Oddelek: Operacijski sistemi
71134 (1024) 2nemesis

Več podobnih tem