cwbe coordinatez:
101
63540
63542
2109677
63692
2471489

ABSOLUT
KYBERIA
permissions
you: r,
system: public
net: yes

neurons

stats|by_visit|by_K
source
tiamat
K|my_K|given_K
last
commanders
polls

total descendants::
total children::1
show[ 2 | 3] flat


toto je jedno pravidlo na linux servri, toto pravidlo smeruje vsetku prevadzku http na proxy (squid):

iptables -A PREROUTING -t nat -p tcp -s 10.0.0.0/24 -i eth0 --dport 80 -j REDIRECT --to-ports 3128

- okrem portu http to analogicky na servri smeruje aj ftp a https
- problem je ale v tom, ze napriklad si mozem prehliadaci nastavit nejaku freeproxy na internete typu 111.222.333.444:8080 lebo port 8080 napriklad nie je redirectovany a squid ako uzivatel obidem co je neziadane

- ako teda spravit aby vsetko co sa explicitne nepovoli (teda napriamo bez squid, alebo cez squid ak to vie squid obsluzit), tak aby bolo automaticky zakazane
- mozno takto:

iptables -A PREROUTING -t nat -p tcp -s 10.0.0.0/24 -i eth0 --dport ! 22,25,110,143,5190,6881:6889 -j REDIRECT --to-ports 3128

- vykricnik pred portami je negacia (neviem ci som ten vykricnik dal na spravnom mieste)), teda vsetko korem napr icq(5190) a torrent (6881-6889) atd bude smerovane do squidu a nebude sa moct squid obist napr pomocou freeproxy na porte 8080 (niekedy su casto aj ine porty ako 8080 a nie je ich mozne vsetky vymenovat preto asi tou negaciou by sa to malo riesit)

- toto uvedene iptables ma ale asi velky problem problem ze do proxy smeruje vsetky sluzby okrem vymenovanych a urcite niektore cez squid nefunguju (napriklad mail 25,110 porty, tie som v priklade vylucil ale neviem ktore ine veci by este vadili a bolo by ich treba uviest za tym vykricnikom a ak by sa to nedalo vsetko vymenovat tak mozno treba uplne inak to riesit)

- ide o to ze vymenovat vsetky cielove porty co je nutne pre spravu servera na dialku (tam skor ide o zdrojove ale k tym musia existovat aj cielove) a ine systemove veci co by mohli byt teoreticky potrebne pri prepajani vzdialenych sieti plus nejake ICQ a Torrent a zvysok ked sa smeruje do squidu a ten to nebude vediet obsluzit tak to nevadi (squid je len na http,https,ftp) a to co sa neda z principu vymenovat tak na to upozornit a pripadne riesenie ako

mozno je toto cele zle riesenie existuje jednoduhsie ako povolit len nutne veci a z nich co sa da poslat do squid, ale ak chapem to PREROUTING pravidlo, tak rozhoduje o redirektovani vsetkeho z vnutornej siete bez ohladu ci ta prevadzka z vnutornej siete je generovana z vnutornej siete alebo ako odpoved na poziadavku z vonka siete (napr inmiciujem spojeneie ssh zvonka na sshd > v takom pripade by sa dalo toto vylucit z redirektovania ze by sa dala vynimka ze ked je zdrojovy port 22 (na servri) tak sa zakaz ba cielovy port sa necbude redirektovat do squidu, inak by mi server sshd nemohol odpovedat na moj port >1024 )

mozno som tu nataral aj nezmysly tak ked sa nenajde riesenie tak aspon upozornit na tie nezmysly okolo iptables poprosim aj to pomoze k niecom inemu




00000101000635400006354202109677000636920247148902471773
1480161
 1480161      20.06.2006 - 16:28:31 , level: 1, UP   NEW
este upresnim ze eth0 je vnutorne rozhranie (eth1 vonkajsie), teda "-i eth0" je to co vstupuje z vnutornej siete do servera a teda sa to netyka toho PREROUTING uvedeneho pravidla ked idem zvonka na server cez eth1 dufam ze netaram, co ale nevylucuje ze vo vnutornej sieti by mohla byt poziadavka na nejaku sluzbu inu aku potrebuju uzivatelia na surfovanie a zakladne veci teoreticky, cely problem mozno brat teoreticky ...

0000010100063540000635420210967700063692024714890247177302471863
1480161
 1480161      20.06.2006 - 16:57:25 (modif: 20.06.2006 - 18:08:59), level: 2, UP   NEW !!CONTENT CHANGED!!
mozno toto, ak by vo nutornej sieti nahodou bolo treba nejaky server na nieco tak by mohol mat pevnu ip a z tej ip by sa povolilo napriklad vsetko ako odchodzia prevadzka (ta ip by sa vylucila z PREROUTING), takze mozno staci povedat ze ako by to PREROUTING pravidlo vyzeralo ked chcem pouzit redirect na "-s 10.0.0.0/24" okrem napr jednej ip 10.0.0.10, da sa to ? mal by sa pre taky hypoteticky server vytvorit iny subnet ak sa neda vylucit jedna ip z toho isteho subnetu ? .. a na ake standardne a naozaj potrebne porty ale aj mierne nadstandardne (P2P ICQ) klientov z vnutornej siete nezabudnut ze nesmu ist do squid (squid je na kombinovanom mail/gateway/firewall/proxy )

ten kombinovany mail/gateway/firewall/proxy by potom musel mat zrejme povoleny forwarding (trebalo by sa cez verejne dostupny mail/gateway/firewall/proxy (na ktorom sa neda spustit urcita vec) dostat na jeden pocitac vnutri siete, ten pocitac vlastne nie je ani server) pre tento pocitac vo vnutornej sieti ked by sa islo zvonka, to uvedene PREROUTING pravidlo sa na toto nevztahuje s asi ide o forwarding, momentalne forwarding pravidla na mail/gateway/firewall/proxy su:

target prot opt in out source destination
ACCEPT all -- any any anywhere 10.0.0.0/24
ACCEPT all -- any any 10.0.0.0/24 anywhere

co sa tyka OUTPUT prevadzky (do internetu cez eth1) na mail/gateway/firewall/proxy tak je povolene vsetko

- v tomto teoretickom (mozno niekedy aj praktickom) probleme ide o nejake rozumne obmedzenie v sieti odchodzej prevadzky resp jej kontrolu a vyriesenie ako sa dostat na jeden pocitac vo vnutornej sieti

000001010006354000063542021096770006369202471489024717730247186302472051
ventYl
 ventYl      20.06.2006 - 17:54:54 [1K] , level: 3, UP   NEW
no tie 2 pravidla na ten squid sa mi zdaju byt dobre (ale zase profesionalne v tom nechodim, takze performance ti neohodnotim)
jednoducho:

iptables -A PREROUTING -t nat -p tcp -s 10.0.0.0/24 -i eth0 --dport 80 -j REDIRECT --to-ports 3128

potom za to hodis napriklad

iptables -A PREROUTING -t nat -p tcp -s 10.0.0.0/24 -i eth0 --dport 22,110,... -j MASQUERADE

(tusim), to ti pusti cez NATku veskery traffice na tie porty, ktore proxy neumi, alebo ich nepotrebujes tlacit cez proxy a hned za tym hodis

iptables -A PREROUTING -t nat -p tcp -s 10.0.0.0/24 -i eth0 -j DROP

co zabezpeci, ze vsetky ostatne packety to zahodi (nic sa cez router nedostane).
Potom, keby si chcel dat za ten router nejaky pocitac, ktory ma byt vidno zvonku, tak mu prihodis do chainu nasledovne pravidlo na 1. miesto:

iptables -I PREROUTING -t nat 1 -s 10.1.2.3 -i etho -j MASQUERADE

cim zabezpecis, ze kazdy packet, ktory prijde z toho stroja, co je tam, bude bez ohladu na to, na ktory port ide, pusteny (samozrejme preklad IP zapnuty, forwardovanie niektorych portov, alebo trocha ine pravidlo, ak to chces aj s externou IP).

00000101000635400006354202109677000636920247148902471773024718630247205102472140
1480161
 1480161      20.06.2006 - 18:28:19 (modif: 20.06.2006 - 20:08:28), level: 4, UP   NEW !!CONTENT CHANGED!!
nikdy som ani teoreticky o niecom takom nerozmyslal a malo o tom viem ale intuitivne z toho mala co viem o iptables sa mi toto pozdava, vobec som si neuvedomil ze pravidla idu od vrchu dole a ze sa nemusi v jednom pravidle riesit dve veci naraz ... neviem aky rozdiel je medzi MASQUERADE a SNAT, na tom gatewayi je co sa tyka SNAT (MASQUERADE tam nikde nie je zatial) taketo nieco:

target prot opt in out source destination
SNAT all -- any eth1 10.0.0.0/24 anywhere to:10.11.123.4

ta ip 10.11.123.4 je ip adresa eth1 rozhrania ale nie verejna ip, eth1 je zapojene do DSL modemu (ten ma ip typu 10.11.123.5 na vnutornom rozhrani) a ten je vraj nastaveny nejak transparentne co neviem co znamena, asi nieco ze prevadzku nijak neobmedzuje

- zrejme ale splietam ine, ked spominam SNAT na eth1, ked spominas MASQUERADE na eth0, ale mozno by som mohol na tychto dvoch veciach pochopit rozdiel SNAT a MASQUERADE (zda sa mi ze MASQUERADE je to iste ako SNAT ale MASQUERADE sa pouziva pri dynamickej IP asi, ja mam ale vsade staticku)

- cize zatial neviem ze co s forwardingom, mozno to staci na tom mail/gateway/firewall/proxy to co tam uz momentalne je nastavene:
target prot opt in out source destination
ACCEPT all -- any any anywhere 10.0.0.0/24
ACCEPT all -- any any 10.0.0.0/24 anywhere

- a potom neviem co znamena "-t nat 1" v tom tretom pravidle uvedenom v tvojom prispevku, ci to nie je chyba

- potom este mi napada ze napriklad port DNS asi treba povolit v tom:
iptables -A PREROUTING -t nat -p tcp -s 10.0.0.0/24 -i eth0 --dport 22,110,… -j MASQUERADE
inak toto MASQUERADE sposobi co konkretne ? nestaci/netreba tam skor nieco v style "iptables -A INPUT .... -j ACCEPT" ked eth0 je vnutorne rozhranie a vokajsie je eth1 a na eth1 je spominany SNAT a na servri s eth0/eth1 je povoleny forwarding z/do vnutornej siete kamkolvek/zkadialkolvek ako som vyssie uviedol (eth1 je stale vo vnutornej sieti a az za eth1 smerom do internetu je DSL modem s verejnou statickou ip)?. a podobne ci netreba miesto:
iptables -A PREROUTING -t nat -p tcp -s 10.0.0.0/24 -i eth0 -j DROP
dat:
iptables -A INPUT -p tcp -s 10.0.0.0/24 -i eth0 -j DROP
lebo "-t nat" asi treba len pre redirect do squidu, zvysok (mozno okrem toho jedneho pocitaca co ma byt dostupny zvonka) sa asi bude riesit normalne "-j ACCEPT" a "-j DROP"

dakujem zatial, na tomto priklade by som mohol nieco o iptables konecne realne aj ked teoreticky pochopit, posledna odrazka/otazkaa je asi najdolezitejsia ak je to neprehladne

poznamka: zda sa mi ze ked je v jednom pravidle viac portov tak asi vzdy treba pridat aj "-m multiport"

0000010100063540000635420210967700063692024714890247177302471863024720510247214002472534
ventYl
 ventYl      20.06.2006 - 21:04:14 [1K] , level: 5, UP   NEW
SNAT je source network address translation, tusim, ze sa jedna o preklad IP adresy zdroja packetu
DNAT je destination network address translation, tusim, ze sa jedna o preklad IP adresy ciela
MASQUERADE je nejaky komplexny preklad adries

v tom sa nevyznam, spravcu smerovaca nerobim, presne som to nestudoval, viem akurat, ze moj notebook sa smeruje na pravidlo

iptables -t NAT -I POSTROUTING -o eth0 -j MASQUERADE

rozdiel bude zrejme v tom, ktore sa kde robi (PREROUTING/POSTROUTING)

v tom `-t nat ` mam chybu, ma to byt

iptables -t nat -I PREROUTING 1 ...

to -I PREROUTING 1 znamena, ze sa pravidlo zaradi na zaciatok (1. miesto) v chaine prerouting a teda bude sa checkovat ako prve (tym zaistim, ze sa packety vybavia skor tymto pravidlom, nez ostatnymi).

ale to je asi tak vsetko, co ti o maskarade viem povedat, viac by som ta asi odkazal na serial o iptables, co svojho casu bezal na roote, tam to bolo vysvetlene presnejsie a v cestine...

000001010006354000063542021096770006369202471489024717730247186302472051024721400247253402472810
1480161
 1480161      20.06.2006 - 22:22:35 (modif: 21.06.2006 - 00:00:30), level: 6, UP   NEW !!CONTENT CHANGED!!
maskarada a nat (nat vie podla manualu narozdiel od maskarady zmenit nielen IP ale aj IP:PORT a maskarada je asi len pre dynamicku ip ked sa nevie aka ip bude pridelena (napriklad dialup)) by sa mali robit na rozhrani kde sa chce skryt viac adries za jednu a to asi na rohrani eth0 ak je toto vo vnutornej sieti nema vyznam mozno ale na rohrani do internetu, samozrejme eth0 moze ist aj rovno/kvazirovno (ze je za tym rozhranim seste nejaky skok pred internetom, napr modem ktory nevie nat a ine veci co vie server) do internetu, je to len vec oznacenia ze ci je eth0 vnutri alebo von, ale SNAT/MASQUERADE ma podla manualu vyznam len s POSTROUTING ale nie PREROUTING, preto "-o eth0", o ako output a post na vystupe

tak mam asi takuto pracovnu verziu zatial snad realnejsiu (port 53 neviem ci je na klientovi treba tcp a/alebo udp):

iptables -A PREROUTING -t nat -m multiport -p tcp -s 10.0.0.0/24 -i eth0 --dports 21,80,443 -j REDIRECT --to-ports 3128
iptables -A INPUT -p tcp -s 10.0.0.0/24 -i eth0 --dport 53,25,110,143,5190 -j ACCEPT
iptables -A INPUT -p udp -s 10.0.0.0/24 -i eth0 --dport 53 -j ACCEPT
iptables -A INPUT -p tcp -s 10.0.0.0/24 -i eth0 -j DROP

SNAT sa mi na rozhrani so statickou IP vykonova na eth1 ktore je smerom do internetu (za eth1 je ten DSL modem este), zatial je na servri na eth0 len to, ze to redirectuje 21,80,443 do 3128 a zvysok je povoleny vsetko vstupit do eth0 z vnutornej siete a vsetko je povolene forwardovat dalej na servri z vnutornej siete kamkolvek

00000101000635400006354202109677000636920247148902471773024718630247205102472140024725340247281002472944
ventYl
 ventYl      20.06.2006 - 22:56:29 [1K] , level: 7, UP   NEW
DNS moze byt 53/TCP aj 53/UDP. Ak je to vacsia siet napriklad firemna, alebo nieco podobne, mozno by bolo vhodnejsie DNSka riesit skor, nez cez NAT zavedenim miestnej DNS cache. Jednak to zrychli vybavovanie DNS resolve poziadaviek na tie najpouzivanejsie servery a za druhe mas moznost zabezpecit, ze ti budu tunelovat traffic cez o 1 menej port, aj ked som videl tunelovanie trafficu uz aj cez DNS a ICMP packety.
Potom u toho posledneho pravidla je chyba v tom, ze ho mas definovane ako "zahod vsetky packety tcp prichadzajuce na interface eth1 z danej siete", co ti okrem toho, ze zahodi vsetky packety, ktore by sa snazili cez natku prejst a doteraz neboli akceptovane, zahodi aj vsetky packety, ktore sa snazili dojst len k serveru (intranetova webova stranka). Mozno je tam to pravidlo zbytocne, lebo ak to tak vezmes, mas tam pravidlo, ktore vsetok traffic na porte 80 presmeruje na transparentny squid proxy, vsetok traffic na portoch 21,22,110 atd. hodi na NATovanie. Z toho vyplyva, ze keby sa niekto snazil o konekciu na iny port, automaticky ho nechyti ani jedno z NAT pravidiel a tento packet netreba routovat, do chainu INPUT by sa nemal ani dostat (kedze tam idu len packety, ktore su urcene pre lokalny stroj) a ostatne packety netreba zahadzovat.

Konkretne ma teraz napada jeden problem, ktory vznikne s FTP, ktore vyuziva debilny system pridelovania portov a s tymto nastavenim ti zrejme nepotrebuje, treba si precitat manualove stranky k rozsireniu conntrack-ftp, alebo ako sa presne vola, to umi sledovat FTP komunikaciu a zistit, na ktory port pojde komunikacia a nasledne to do istej miery poriesit.

0000010100063540000635420210967700063692024714890247177302471863024720510247214002472534024728100247294402473108
1480161
 1480161      20.06.2006 - 23:56:11 (modif: 21.06.2006 - 00:35:33), level: 8, UP   NEW !!CONTENT CHANGED!!
asi som objavil podstatnu vec co som nevedel o INPUT chain co pises, ze do INPUT idu len pakety s lokalnym cielom, tak potom co smeruje von sa tyka FORWARD (na servri) a mne islo o obmedzenie FORWARDINGU na servri potom vlastne a ja som myslel aj tie vsetky porty 22,25,110,5190 ze vonku do internetu chcem povolit a ostatne porty nevymenovane zakazat, napr freeproxy vonku na internete na porte 8080 atd > FORWARD ale vlastne ich potrebujem povolit (napr 25,110) aj do intranetu na ten server co ale explicitne nemusim povolovat vlastne lebo to nepredstavuje problem aj ked sa povolia vsetky porty z lokalnej siete na ciel lokalny server > INPUT ....

a FORWARDING na servri (odchodziu prevadzku predavanu cez eth1 do internetu) teda asi este potrebujem obmedzit lebo doteraz polovluje vsetko z/do lokalnej siete hocikam/zhocikadial

znamena to ze ten jeden pocitac co ma byt z lokalnej siete pristupny z vonka tak mu musim povolit forwarding (na servri) na vsetky cielove porty von do internetu a inak vsetkym uzivatelom len forwarding ziadanych portov ktore nejdu ale cez squid ?

000001010006354000063542021096770006369202471489024717730247186302472051024721400247253402472810024729440247310802473704
ventYl
 ventYl      21.06.2006 - 10:27:06 [1K] , level: 9, UP   NEW
http://www.root.cz/clanky/linux-jako-internetova-gateway-1/
http://www.root.cz/clanky/stavime-firewall-1/

this should help