Üdv mindenki!
Apró problémával fordulnék hozzátok. Arról lenne szó, hogy megy egy Stream Multicast módon kifelé az eth0 interfacen. Ezt a streamet szeretném úgy korlátozni, hogy csak bizonyos IP címek kapcsolódhassanak a Stream folyamhoz.
Stream szeró adatai és 1-2 parancs ami kell:
Multicast route hozzáadása:
route add -net 224.0.0.0 netmask 240.0.0.0 dev eth0
Ezek után a routing tábla:
route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
89.186.101.0 0.0.0.0 255.255.255.128 U 0 0 0 eth1
192.168.0.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
224.0.0.0 0.0.0.0 240.0.0.0 U 0 0 0 eth0
0.0.0.0 89.186.101.1 0.0.0.0 UG 100 0 0 eth1
Ahol az ETH1 az internet ( most lényegtelen ), az ETH0 pedig a LAN, amerre a Stream csorog. :)
Még 2 parancs a tűzfalba:
iptables -A INPUT -p udp --dst 224.0.0.0/4 --dport 1025: -j ACCEPT
iptables -A INPUT -p igmp -j ACCEPT
Alapból ez nem szükséges, maradjunk abban hogy mind a 3 Policy ( INPUT, FORWARD, OUTPUT ) ACCEPT.
A Stream pontos forrása:
Server IP: 192.168.0.1
Multicast csoport cím és port: 224.0.0.40 : 10999
Még annyit, hogy ha az OUTPUT Policy DROP, akkor a következő 2 parancs engedi ki a Streamet:
iptables -A OUTPUT -m addrtype --dst-type MULTICAST -j ACCEPT
VAGY
iptables -A OUTPUT -p udp -m state --state NEW,ESTABLISHED -o eth0 -d 224.0.0.40 --dport 10999 -j ACCEPT
Na már most én ezt próbáltam módosítgatni 1-2 kapcsolóval, de nem vezetett eredményre.
Tehát a cél az, hogy csak azoknak az IP-knek mehessen a Stream akiket én megadok.
Ha ez sikerül célegyenesben vagyok a projekttel amin dolgozom, ha minden kész lesz, megosztom veletek!
Pls help!
Gorkhaan
- 5781 megtekintés
Hozzászólások
ha az utolsó két szabály illeszkedése engedi ki, akkor ezeket kell szűrni.
ezt 2 módon tenném
az egyik, hogy minden ip-re felveszed ezt a két sort, de ez elég melós
a másik hogy nem ACCEPT felé jumpolsz, hanem egy saját szabály felé. azoknál az IP-knél amiket ki akarsz engedni adott protokollon, és maga a saját szabályod lesz ez a két sor.
iptables -A OUTPUT -d IP1 -j steam_enged
iptables -A OUTPUT -d IP2 -j steam_enged
...
iptables -A stream_enged -m addrtype --dst-type MULTICAST -j ACCEPT
iptables -A stream_enged -p udp -m state --state NEW,ESTABLISHED -o eth0 -d 224.0.0.40 --dport 10999 -j ACCEPT
hát valami ilyesmi
- A hozzászóláshoz be kell jelentkezni
Köszi, meg fogom nézni! :)
Update: Most jutottam el oda, hogy ki tudjam próbálni. Sajna nem sok szerencsével. Biztos, hogy én baltázok el valamit.
Szóval van ez az IP: 192.168.0.200. Azt szeretném, hogy csak ennek mehessen a Stream kifelé. A Stream helyileg jön létre az eth0 interface felé távozik.
Amivel eddig próbálkoztam:
http://pastebin.com/m51f0701a
Na mármost itt az OUTPUT ha ACCEPT, akkor természetesen működik, de mindenkinek, Ha DROP, akkor mintha figyelembe sem venné a saját láncot ( stream ).
Ha:
$IPTABLES -A OUTPUT -d 224.0.0.40 -j stream
Szabályt beírom újra működik, persze megint mindenkinek!
Plz help, pofon egyszerű lehet, de nem jövök rá!
Update:
IRC-n azt írják nem megoldható iptables-sel. Esetleg valami más mód van rá?
- A hozzászóláshoz be kell jelentkezni
Megcsináltad előtte a stream nevű táblát amire irányítasz?
-------------------------
E-learning szolgáltatások nyílt alapokon
Weblap és Bemutató rendszer
- A hozzászóláshoz be kell jelentkezni
Meg persze, de felejtős a dolog. Felkerestem az iptables IRC csatornát. Csávó leírta, hogy Multicast streaminget nem lehet korlátozni iptablesban. Igaza van. Viszont sikerült igába hajtani a dolgot OpenVPN segítségével! :)
Teljes megoldással később jelentkezem!
- A hozzászóláshoz be kell jelentkezni
Érdekelne a történet folytatása, hogy azóta sikerült e mgoldani, ha igen, hogyan?
"#define QUESTION ((bb) || !(bb)) /* (c) written by W. Shakespeare. */
- A hozzászóláshoz be kell jelentkezni
Nos, ahogy vl is alul leírta, multicast forgalmat tényleg nem lehet IP-kre szabályozni. Találtam egy jobb megoldást a streaming "problémámra". A neve Tribler, P2P, torrent alapokon képes Online streamelést folytatni.
Ha ez a Streaming mód érdekelne, le tudom írni mi hogy van.
Üdv, G
|| "Software is like sex: it's better when it's free." Linus Torvalds || Visit Gorkhaan's Homepage
- A hozzászóláshoz be kell jelentkezni
khm. a kimenő stream forgalomnak egy darab ip multicast címre kell mennie a hostból kifele. szerintem ezen nem tudsz mit szűrni a hoston!
maga a multicast stream a host oldalán nem tudja, hogy őt éppen ki fogadja. layer 2 szinten tolja ki a packetokat egy multicast mac address felé, layer 3 szinten pedig egy vagy több multicast router továbbítja más subnetekre.
amit lehet játszani, hogy a hálózati rétegben (switch/multicast router) próbálsz valami access-list segítségével szűrni, hogy melyik fizikai switch port vagy melyik subnet irányába mehet a forgalom tovább.
- A hozzászóláshoz be kell jelentkezni