2011. április 25., hétfő

Oscam konfigurálása - 3. rész - oscam.user

Társ szerzömmel, Joseph-el elkészítettük a cikksorozat folyataását.

Az első részben tisztáztuk hogy az Oscam melyik konfigurációs fájlt mire használja, a második részben átnéztük a globális beállításokat. Ebben a részben az oscam.user konfigurálását nézzük végig, amibe (ahogy a neve is mutatja) a csatlakozó felhasználókat lehet paraméterezni.

Az oscam.user felépítése

[account]
-- user1 beállításai
[account]
-- user2 beállításai
[account]
-- user3 beállításai
....
Mint látható, itt csak egy kapcsos zárójelbe írt témakör van, az [account]. Ezt annyiszor kell ismételni, ahány felhasználót szeretnénk.


oscam.user beállításai
A felhasználói fiókok beállításai. A beállításokat userenként ismételni kell !

User
Felhasználónév
user = name

Password
Jelszó
pwd = password

Description
Megjegyzés
description = blabla

Hostname
Host név, amelyről user kapcsolódás engedélyezett (default: none - bármely hostname-ról)
hostname = www.hostname.com

Betatunnel
A 0.9.e verzióig lehetőség van egy Betacrypt-Tunnel-t (alagút) megadni. Például az 1833.0081-et és az 1833.0082-őt az 1702-re vezetjük.

Az 1.0n verziótól már szükségtelen ez a paraméter. Ennek ellenére a Betatunnel Caid-t az oscam.server fájlban manuálisan engedélyeznünk kell. Pl.: CAID=1702,1833. A CAID-engedélyezés az oscam.services fájlban már nem elegendő. Az oscam adott esetben tiltakozni fog. A CCCam-HD-1702 és 1833-HD-kérések a CAID 1702-re a Reader-en, amit egy közös Cache-ből válaszol meg
betatunnel = 0100.0001:0200,0300.0004:0500

Uniq
A Uniq paraméter szabályozza, hogy egy kliens egyszerre csak egyszer, vagy többször is bejelentkezhet-e.
Uniq = 0: Tiltva (default)
Uniq = 1: Userenként csak egy kapcsolat engedélyezett
Uniq = 2: Minősítse a User-t csalónak (Fake), ha az IP különbözik. Több kapcsolat engedélyezése tehát 1 IP címről.
Uniq = 3: Userenként egy kapcsolat engedélyezett, mindig a legutolsó kapcsolódás lesz sikeres
Uniq = 4: Minősítse a User-t csalónak (Fake), ha az IP különbözik, de az utolsó kapcsolódást engedélyezze
uniq = 0|1|2|4

Sleep
Idő percben (min), ami után az usert inaktívnak tekinti. (default: none)
sleep = 0

Sleepsen
0: csak oscam kliensekre vonatkozik: leállítja a kéréseket a következő átkapcsolásig
255 = csak Camd 3.x kliensek: Leállítja a kéréseket a Camd 3.x újraindításáig
sleepsend = 0|255

CAID
CAID limit. Beállítható, hogy mely CAID-ket kapja a user. (default: none - minden kártya) Formátum: caid&mask:caid&mask:....
caid = 0100&ffff:0200&ffff

AU
Ezzel a paraméterrel szabályozhatjuk, hogy az AU-t (AutoUpdate, frissítés, aktualizálás) csak bizonyos,, több, vagy minden Reader (olvasó) felé engedélyezzük-e. (default: 0)
au = 0: nincs AU
au = 1: Auto, minden reader felé küld EMM-et.
au = reader_neve: az AU csak egy meghatározott Reader felé küld EMM-et.
Az AU-hoz általánosan azt mondhatjuk:
Az oscam-nek jobb, ha minél kevesebb az AU kliens
Az AU kliens megkapja a kártyaadatatokat (Biztonság! SmartCard)
Az EmmCache funkció használata megakadályozza a Reader (olvasó) túlterhelését
au = phoenix

Group
Minden fiókot definiálni kell egy vagy több csoportba. Ezzel határozhatjuk meg, hogy melyik Reader-hez kapcsolódhat. Érvényes értékek: 1-32
Group = 1 # egy csoport
Group = 1,4,5 # több csoport

Services
Mely szolgáltatókat és csatornákat használhatja a user (default: none)
services = [!]services[,[!]<services>]...

Monlevel
A monitor funkció szintje.
0 = monitor tiltása
1 = csak a szerver és a saját process látható
2 = minden process látható, de csak olvasásra, nem lehet semmilyen akciót indítani (default)
3 = minden process látható, az oscam.user újratöltése is lehetséges
4 = teljes monitorozás
monlevel = 0|1|2|3|4

Exp. Date
A fiók lejárati dátuma. (default: none)
expdate = 2001-11-21
expdate = 2002/12/22

Disabled
A user letiltása. (default: 0 - nincs tiltva)
disabled = 0|1

Allowed Timeframe
A fiók engedélyezése csak a megadott időben. (default: none - nincs korlátozás)
allowedtimeframe = 10:00-22:00

Anticascading numusers
Csak ha az anticascading engedélyezett. Accountonként hány usert engedélyezünk.
anticascading: user fiókonként (default: 0 - nem engedélyezett)
numusers = 0

Anticascading penalty
Csak, ha az anticascading engedélyezett. Mi történjen, ha a numusers számot meghaladtuk?
0 = csak protokoll (default)
1 = hamis CW adatok küldése
2 = a user ideiglenes anticascading
penalty = 0|1|2

Failban
Mi történjen, ha a numusers számot meghaladtuk?
0 = nincs blokkolás (default)
2 = IP blokkolása, ha egy letiltott fiók kapcsolódni próbál
4 = IP blokkolása, ha egy régóta rendezetlen tartozású fiók a tartozását nem rendezi
failban = 0|2|4

Suppresscmd08
Csak, ha a camd3|3.57x|3.78x protokollt használjuk.
0 = CMD08 for camd3 3.57x/3.78x clients enabled,
1 = CMD08 for camd3 3.57x/3.78x clients disabled, default:0
suppresscmd08 = 0|1

Keepalive
A szerver és a kliens közti kapcsolatot fenntartja. (default: 1)
keepalive = 0|1

CCC Maxhops
A CCcam kliensek maximum hop limitje. A maximális uphop száma, ennyi hopra visszamenőleg látja a kliens a kártyákat (default: 10)
-1 : CCcam ennél a usernél lekapcsolva
0 : csak lokál kártyák
1 : lokál kártyák és 1 hop
2 : lokál kártyák és 2 hops
... és így tovább
cccmaxhops = 10

CCC Reshare
A CCcam kliensek reshare (továbbosztás) szintje:
-1 = használja az oscam.conf beállítását (default)
0 = nincs továbbosztás
1 = továbbosztás csak a partnernek
2 = továbbosztás a partnernek és még egy szintig
x = továbbosztás a partnernek és még x szintig
cccreshare = 1



Ennyi.
A következő részben az oscam.server beállításait nézzük végig

A cikket ellenőrizte: Joseph

Folytatjuk.

2011. április 24., vasárnap

Oscam konfigurálása - 2. rész - oscam.conf

Én még csak 2 hónapja használom az Oscamot, így nincs túl nagy tapasztalatom vele. Jelen cikkben erősen támaszkodom Joseph segítségére és fórumbejegyzéseire.

Az első részben tisztáztuk melyik konfigurációs fájlt mire használja az Oscam. Ebben a részben az oscam.conf konfigurálását nézzük végig. Ez kötelező fájl, nélküle nem indul a program. Mint már mondtam, eléggé bonyolult konfigurálni, úgyhogy kössük fel a gatyát...

Az oscam.conf felépítése

Minden témakört kapcsos zárójelbe írt címmel kell jelöli. A cím alá kell írni az adott téma beállításait általában paraméter=érték formátumban. Csak a [global] szakaszt kötelező kitölteni, a többi opcionális, azaz elhagyható, ha nem használjuk Nézzük melyek a főbb témakörök:
[global]
 -- ide jönnek a globális beállítások - kötelező tölteni
[monitor]
 -- monitor funkciók beállításai - opcionális az egész rész elhagyható, ha nem használjuk
[webif]
 -- webes felület beállításai -  opcionális az egész rész elhagyható, ha nem használjuk
[newcamd]
 -- newcamd protokoll beállításai -  opcionális az egész rész elhagyható, ha nem használjuk
[cccam]
 --A CCcam szerver paraméterei - opcionális az egész rész elhagyható, ha nem használjuk
[dvbapi]
 -- adatfolyamból TV kép megjelenítésének konfigurációja - opcionális az egész rész elhagyható, ha nem használjuk
[anticasc]
-- jogosulatlan továbbosztások beállításai

Mi most csak a leggyakoribb témaköröket vesszük át. Vannak még egyéb opcionális beállítások is melyek jellemzően különféle protokollokra vonatkoznak. Ezekkel most nem foglalkozunk:
[camd33] - camd33 protokoll
[camd35] - camd35 protokoll
[cs357x] - cs357x protokoll
[cs378x] - cs378x protokoll
[radegast] - radegast protokoll
[serial] - soros interfész beállítása
[gbox] - gbox protokoll



oscam.conf [global] szakasz beállításai
Itt a Oscam alapvető működési tulajdonságait tudjuk szabályozni.

Server IP
Milyen IP-címen megy a szolgáltatás. (default: all)
serverip = 192.168.1.10

Cache delay
Idő ezredmásodpercben (ms), amíg a cache-ben tárol kéréseket késleltethetjük. (default: 0)
cachedelay = 0

Log file
A log fájl helye. (default: /var/log/oscam.log)
PC-n mindenképp meg kell adni a default log fájlnak megfelelő helyet, egyébként hibaüzenetet küld az Oscam.
logfile = /var/log/oscam.log

Disable log
Log fájl tiltása. (default: 0)
disablelog = 0|1

Max log size
A paraméterrel a logfájl maximális méretét adhatjuk meg kbájtban (kB). Széles körű paraméterezésnél célszerű használni. A logfájlokat a First-In/First-out folyamat a megadott értékre állítja be. (default: 10)
maxlogsize = 10

Disable userfile
Az user loggolás mellőzése. Annak ellenére, hogy így is lesz egy log fájl. (default: 0)
disableuserfile = 0|1

Usr file
Log fájl a User-ek bejelentkezéséről. (default: none)
usrfile = /var/log/oscamuser.log 

Usr file flag
0: csak az userek ki- és belépését loggolja
1: minden műveletet loggol (default: 0)
usrfileflag = 0 

CW log dir

A CW log helyét adhatjuk meg. (default: none - nincs CW log)
usrfile = /var/log/cw.log

Client timeout
A maximális idő másodpercben vagy ezredmásodpercben, mielőtt a kliens rövid szünetet kap. (default: 5000)
ClientTimeout = 5000 # 5 másodpercenként Timeout

Fallback timeout
Az oscam (Cardserver) maximális várakozási ideje ezredmásodpercben (ms) az elsődleges olvasóra (primary Reader), mielőtt egy vagy több másodlagos olvasó (Fallback-Reader, ha van) használatba kerül. (default: 2500)
FallbackTimeout = 2500

Client max idle
A maximális idő másodpercben, amig egy kliens (Client) inaktiv maradhat, mielőtt automatikusan kijelentkezne. (default: 120)
ClientMaxIdle = 120

Bind wait
A maximális idő másodpercben, amíg a kártyaolvasó a startnál vár a hálózati port használatba vételéhez. Ha az oscam a megadott időn belül nem tud a porthoz hozzáférni, akkor leállítja magát "Bind Request failed" hibaüzenettel. A hiba oka lehet egy port dupla használata, egy már lefagyott oscam még nem szabadította fel a portot, vagy ha az oscam-et egyszerre többször indítottuk (default: 120)
BindWait = 120

Net prio
Megadhatjuk az oscam (Cardserver) prioritási szintjét a hálózatban. (default: a rendszer állítja be)
netprio = 0

Resolver
A DNS kezelés módjának beállítása.
0 = getadressinfo (default)
1 = gethostbyname
resolvegethostbyname = 0|1

Failban count
Megadható, hogy mennyi legyen az érvénytelen kapcsolódási kísérlet rossz hozzáférési adatokkal. (default: 0)
failbancount = 0 # Az IP azonnal blokkolva lesz, ha valaki érvénytelen adatokkal próbál kapcsolódni

Dropd ups
Duplikált kliensek kezelésének módja.
0: jelölje meg, de ne bontsa a kapcsolatot (default)
1: dupla kliens eldobása
dropdups = 0

Sleep
Idő percben (min), amíg az inaktiv user-re vár. A paraméter felülírható az oscam.user fájlban. (default: none)
sleep = 0

Unlock parental
SECA opció a fiatalkorúak védelmének kikapcsolásához a Seca pin kód lekérésénél felnőtt tartalmaknál (adult). (default: 0)
unlockparental = 0|1

Nice
Rendszerprioritás. Az Oscam szinte alig igényel CPU-teljesítményt. Ha mégis szükség van CPU-teljesítményre, akkor álljon azonnal rendelkezésre. 20 és -20 között lehet értéket megadni, ahol 20 nagyon kicsi, -20 a legnagyobb prioritást jelenti. Fontos lehet pl. a dbox 2-nél, ha a következő hibaüzenetet kapjuk: "relocation error:setpriority" (default: -1).  Ha minden működik, NE bántsuk az alapbeállítást (könnyen lefagyhat a box/kártyaszerver) !
Nice = -1

Serial reader timeout
Csak, ha soros olvasót használunk. A soros olvasó szüneteltetése (Timeout) a megadott ezredmásodperc (ms) után. (default: 1500)
serialreadertimeout = 1500

Wait for cards
Beállítható, hogy az oscam várjon-e a lokális kártyákra, mielőtt nyitná a portot.
WaitCards = 0 Azonnal megpróbálja teljesíti a klienskéréseket.
WaitCards = 1 Megvárja, amíg minden lokális kártyaolvasó felimerése megtörtént. Csak utána teljesíti a klines-kéréseket. (default)
waitforcards = 0|1

Prefer local cards
A paraméter azt állítja be, hogy az Oscam a dekódolást először a lokális kártyán kezdje. (default: 0)
preferlocalcards = 0|1

Reader restart seconds
Beállítható egy várakozási idő másodpercben (s), az olvasók újraindítása (restart) között. (default: 5)
readerrestartseconds = 5

Save init history
Mentse-e a SmartCard (SC) inicializálás eseményeit a /tmp/.oscam/reader<number> fájlba. (default: 0)
saveinithistory = 0|1

Double check
Az ECM-eket két vagy több egyforma kártyához küldi, és a CW-ket szembesíti egymással. Az lb_nbes_reader opciónál 2 vagy nagyobb értéket kell legyen. Aktivált load balance módban lehet használni az opciót. (default: 0)
double_check = 1

lb_mode
Loadbalace mód
Ha kettő vagy több egyforma kártyánk van (mindegy, hogy lokál vagy proxie), egyenletesen eloszthatjuk a terhelést (balance). Ez az Oscam egyik legelőnyösebb funkciója, ami igazából kiemeli a többi program közül. Az egyforma bejövő sorok (proxie) terhelésének elosztását más program nem tudja megoldani.
lb_mode = 0: deaktivált(default)
lb_mode = 1: a leggyorsabb Readert használja először
lb_mode = 2: a legrégebben válaszolt Readert használja
lb_mode = 3: A legalacsonyabb terhelésű (kihasználtságú) Readert használja
lb_mode = 0

lb_save
Menti a loadbalance statisztikát, hogy egy újraindítás után is megmaradjon. Azért, hogy a CPU-t ne terheljük túlságosan, az érték > 100-nál.
lb_save = 100

lb_nbest_readers
A loadbalance legfontosabb beállítása. Itt állítható be, hogy hány readert-től kérdezzen le az oscam ECM-eket.
lb_nbest_readers = 2

lb_nfb_readers
A fallback reader-ek száma a terhelés kiegyenlítésére.
lb_nfb_readers = 1

lb_nbest_percaid
A reader-ek száma a loadbalance-hoz CAID szerint.
lb_nbest_percaid = 0

lb_min_ecmcount
Az értékelésnél figyelembe veendő ECM-ek minimum száma.
lb_min_ecmcount = 5 # default

lb_max_ecmcount
A maximum ECM-ek száma, mielőtt a loadbalancer alaphelyzetbe kerül.
lb_max_ecmcount = 500 # default

lb_reopen_seconds
Idő másodpercekben, ami után az elvesztett reader-ek/CAID-k/provider-ek/service-ek újra kapcsolódnak.
lb_reopen_seconds = 900 # default

lb_retrylimit
Ha a várakozási idő nagyobb az itt beállított ezredmásodpercnél, akkor próbáljon a következő reader-hez kapcsolódni.
lb_retrylimit = 800

lb_savepath
A loadbalance statisztika mentési helye.
lb_savepath = /tmp/.oscam/stat # default

lb_stat_cleanup
Idő órákban, ami után törölje a loadbalance statisztikát.
lb_stat_cleanup = 336

lb_max_readers
Leszűkíti a reader-ek számát a loadbalance tanulóideje alatt.
lb_max_readers = 1


oscam.conf [monitor] szakasz beállításai
Az Oscam rendelkezik egy monitoring funkcióval, ami leginkább hibakeresésre használatos. Ennek beállításait tudjuk itt elvégezni.

Port
UDP port a monitorhoz (0: tiltva)
port = 1234

Server IP
Mely IP címekről érhető el a monitor (0: minden cím)
serverip = 192.186.2.2

No Crypt
Megadhatunk egy IP címet vagy IP tartományt ahol biztonsági kapcsolat nélkül elérhetjük a monitort (default: none)
nocrypt = 127.0.0.1,192.168.0.0-192.168.255.255

Aulow
EMM adatok hiányában hány másodperc múlva kapcsoljon "low" üzemmódba a kliens (default: 30)
aulow = 30

Monitor level
Monitor hozzáférései szintje
0 = nincs hozzáférés
1 = csak a szerverhez és a saját folyamatokhoz
2 = minden folyamathoz, de csak betekintés (default)
3 = minden folyamathoz, oscam.user újraindítása lehetséges
4 = teljes hozzáférés
monlevel = 4

Hide Client to
Elrejti az usert, ha nem küld kérést
hideclient_to = 0|1

Append Chaninfo
A csatorna nevét hozzáfűzi a log fájlhoz
appendchaninfo = 0|1


oscam.conf [webif] szakasz beállításai
Az Oscam webes funkcióinak beállításai

httpport
Port címe, ahol a webes felület elérhető. Ha + előjelet használjuk, akkor HTTPS kapcsolaton lesz elérhető, különben HTTP
httpport = +83

httpcert
HTTPS certifikációs file neve és helye. Ha HTTPS protokolt használunk, kötelező tölteni
httpcert = oscam.cert

httpuser
Felhasználó név a webes belépéshez
httpuser = xyxyxy

httppwd
Jelszó a webes belépéshez
httppwd = 123456

httpcss
Külső CSS fájl helye, ha más stílust szeretnénk használni az alapértelmezett helyett (default: none)
httpcss = /etc/oscam/harvest_round_Firefox.css

httptpl
Külső template fájl helye és neve, ha át akarjuk alakítani az alapértelmezett webes felületet (default: none)
httptpl = akarmi.htm

httprefresh
Webes felület automatikus frissítési ideje, másodpercben (default: 0 - nincs frissítés)
httprefresh = 10

httpscript
Utvonal, ahol azok a scriptek vannak, amik automatikusan indulnak a webes felület indításakor (default: none)
httpscript = /var/bin/oscam/script

httpallowed
IP cím, vagy címtartomány ahonnét engedélyezett a webes felület használata. Más címről nem enged csatlakozni
httpallowed = 127.0.0.1,192.168.0.0-192.168.255.255

httpdyndns
DNS cím, ahonnét engedélyezett a webes felület használata. Más címről nem enged csatlakozni
httpdyndns = my.dynexample.com

httpsavefullcfg
Konfiguráció mentése
0: minden nem üres és nem alapértelmezett paramétert ment (default)
1: minden paramétert ment
httpsavefullcfg = 0|1

httpreadonly
1: csak olvasható a webes felület
0: minden művelet engedélyezett (default)
httpreadonly = 1

httphelplang
Webes felület nyelve. Jelenleg csak 3 nyelv elérhetö
httphelplang = de|en|fr


oscam.conf [newcamd] szakasz beállításai
Newcamd protokoll beállításai (pl. a NewCS is ezt használja, így ezekre a beállításokra tud kapcsolódni az MgCamd)

MGclient
Kliens engedélyezése vagy tiltása (default)
mgclient = 1

Key
DES kulcs a titkosításhoz (default: none)
key = 0102030405060708091011121314

Port
Port/DES key/CAID/ident definíció. Ha több van pontosvesszővel kell elválasztani.
port = 15000@1234:000000;15001@5678:000000 # (CAID 1234 kapcsolódik a 15000-as porton, és CAID 5678 kapcsolódik a 15001-es porton)

Server IP
Ha a szerverben több hálózati kártya van, akkor kívánatos lehet, ha az Oscam csak akkor válaszol, ha a kérés csak egy bizonyos IP címről érkezik. Itt lehet ezt az IP címet beállítani. (default: none)
serverip = 192.168.178.1

Allowed
Megadott címről, vagy címtartományról lehet csak csatlakozni, Ha több van, vesszővel kell elválasztani (default: none)
allowed = 127.0.0.1,192.168.0.0-192.168.255.255

Keep Alive
A szerver megpróbálja fenntartani a newcamd kapcsolatot. (default=0)
keepalive = 1


oscam.conf [cccam] szakasz beállításai
CCcam szerver emuláció beállításai

Port
A CCcam kliensek TCP/IP portja, 0 = disabled (default: 0)
port = 15000

Version
A CCcam verzióját definiálhatjuk (default: none)
version = 2.1.3

Build
CCcam verzió alszám (build)  megadása (default: none)
build = 5678

Reshare
A CCcam kliensek reshare (továbbosztás) szintje:
0 = nincs továbbosztás (default)
1 = továbbosztás csak a partnernek
2 = továbbosztás a partnernek és még egy szintig
x = továbbosztás a partnernek és még x szintig
reshare = 1

Ignore reshare
A CCcam reshare beállítása.
0 = használja a szerver reshare beállítását (default)
1 = Használja a reader vagy user reshare beállítását
ignorereshare = 0

Minimize cards
A CCcam szerverek és a CCcam kliensek kapcsolódási módja:
0 = nincs összesítés, csak a másolatokat távolítsa el (default)
1 = minimum hopra alapozó: kettő SC-ot (SmartCard) különböző hoppal közösít, az új SC-nak alacsonyabb hop jut.
2 = a CAID-k összesítése alapján: minden SC azonos CAIS-je összevonásra kerül, a szolgáltatót (provider) eltávolítja.
minimizecards = 0

Stealth
Elrejti az aktív usereket és a kiterjesztett Oscam protokollt. Védi a többi Oscam felhasználót attól, hogy a szervert oscam szerverként ismerjék fel.
stealth = 0|1

Update Interval
(Az svn 4797-től nem használt !)
A CCcam kliensek megosztási lista frissítési intervalluma másodpercben. (default: 240)
0 = updates based on server updates
-1 = disable
updateinterval = 0

Keep clients connected
CCcam keepalive mód.
0 = leválasztja a klienst ha eléri a maximális üresjárati időt (max idle time)
1 = tartsa a kapcsolatot (default)
keepconnected = 0|1


oscam.conf [dvbapi] szakasz beállításai
Az adatfolyamból TV képet készítő modul beállításai

Enabled
Funkció engedélyezése (default: 0)
enabled = 0|1

User
User neve, aki csatlakozik a dvbapi-hoz (definiálni kell a oscam.user-ben) (default: none - minden user)
user = user1

Ignore
(Az svn 4925-től nem használt !)
Azok a CAID-ok, amik nem lesznek figyelembe véve (default: none)
ignore = 1234

Priority
(Az svn 4925-től nem használt !)
CAID és szolgáltató priorizálás (default: none)
priority = 1234:000000

AU
Automatikus Update (kártyafrissítés) funkció engedélyezése a DVB API-ben. Az oscam.user-ben levő userektől és azok beállításaitól függ.
0 = au tiltva (default)
1 = au engedélyezve
2 = au engedélyezve és a kliens konfigurációnál felülírja ezt a beállítást
au = 1

Request mode
CAID kérések módja
0 = egymás után indítja a kéréseket (default)
1 = egyidejűleg indítja az összes kérést
request_mode = 0

Box Type
DVB API részére emulált box típusa (default: boxtype = dreambox )
boxtype = dbox2|dreambox|dm7000|duckbox|ufs910|ipbox|ipbox-pmt|qboxhd|coolstream|neumo

Update: 2011.04.28. Az [anticasc] leírás kimaradt, pótolom !
oscam.conf [anticasc] szakasz beállításai
Az anticascading résszel szabályozható, hogy ne oszthassák tovább jogosulatlanul a kártyáinkat.

enabled
Funkció engedélyezése. (default: 0 - tiltva)
enabled = 0|1

numusers
Accountonként hány usert engedélyezünk.(default: 0)
numusers = 2 # 2 usert engedélyezünk accountonként

sampletime
Idő percben, amíg a kéréseket gyűjti. (default: none - 2 perc)
sampletime = 5 # 5 perc időintervallum

samples
Mennyi a limit fölötti kérések száma.(default: none - 10 kérés)
samples = 15 # Limit 15 kérésnél

penalty
Büntetés módjai.
0 = csak loggolás (default)
1 = hamis (Fake) CW adatok küldése
2 = a user ideiglenes tiltása
penalty = 0|1|2

aclogfile
Az AC-Log fájl helye (default: none)
aclogfile = /tmp/oscam


Mára ennyi.
A következő részben a oscam.user beállításait nézzük végig

A cikket ellenőrizte: Joseph

Folytatjuk.

2011. április 18., hétfő

Oscam konfigurálása - 1. rész

Beszéltünk idáig olyan sharing programról ami jól kezeli a kártyákat, de nem tudja megjeleníteni a képet a TV-n (NewCS), olyanról, ami kiválóan kezeli a EMM adatokat és megjeleníti a képet a TV-n, de kártyamegosztásra alkalmatlan (MgCamd), és olyanról ami kiváló eszköz a kártyamegosztásra és a TV képet is megjeleníti, de a beépített kártyakliense nagyon egyszerű és elég rossz (CCcam).
Most képzeljünk egy olyan programot, ami az összes jó tulajdonsággal rendelkezik...

Igen, van ilyen program, ez az Oscam (Open Source Conditional Access Modul ). Ez jelenleg a egyik légfeltörekvőbb program a sharig programok közül. Könnyen előfordulhat, hogy a jövőben ki fogja szorítani a jelenleg használatos EMU programokat.

Mivel ez egy nagy téma, több cikk keretében vesszük végig a konfigurálását. Ez az első rész az Oscam általános bemutatását tartalmazza.

Az Oscam néhány fontosabb jellemzője, a teljesség igénye nélkül:
  • moduláris felépítésű. Az egyes funkciókra külön modulok vannak (különálló konfigurációs fájlal)
  • van kliens és van szerver modulja is, vagyis tud ö is szerver lenni, de csatlakozni is tud más kiszolgálókhoz is.
  • akármennyi adatforrást (pl. kártyaolvasót) képes kezelni (reader modul)
  • kártyaolvasó függő, de az Oscam szoftveresen a legtöbb mai kártyát képes kezelni
  • tud kapcsolódni más EMU-khoz is, vagyis az adatforrás lehet akár más program is  (pl. NewCS - bár ennek nem sok értelme van)
  • a csatlakozó userek száma nincs limitálva
  • CCcam-ot tud emulálni, vagyis a partner felől úgy látszik (és úgy is kell C és F sort készíteni), hogy  CCcam fut a szerverünkön
  • usereknél csoportokat képezhetünk, és akár csoportonként vagy akár egyesével eldönthet melyik readerhez és milyen módon férhet hozzá az adott user vagy csoport.
  • van egy olyan modulja, ami képes megjeleníteni a TV-n a képet (dvbapi modul)
  • szinte az összes platformra van disztribúciója (még OS-X-re és Windows-ra is, bár nem tudom ez előny-e...)
  • van webes konfigurációs felülete (Webif modul). Legalábbis a újabb bináris verziókban már mindegyikben van, aki meg  forráskódból akar binárist készíteni (csak advanced felhasználóknak javasolt !), az meg a fordítás elött eldöntheti kell-e neki
  • jelentősen kisebb a memória igénye mint a CCcam-nak és/vagy a NewCs-nek
  • van benne un. load balance eszköz, ami több egyforma kártya és több egyforma bejövő sor logikus kezelésére szolgál. A több egyforma kártya és a több bejövő sor egyidejű elosztott  kezelésével több partner tud csatlakozni, stabilabb kimenő adatfolyam érhető el, illetve megelőzhető vele az egyes partnerek túlterhelése
  • a reader modul rendelkezik cache lehetőséggel, amivel optimalizálhatóak a lokális kártyára érkező ECM kérések, vagyis csökken a kártya terhelése, mivel a kérések a cache-ből is kiszolgálhatók
És vannak hátrányai is:
  • sokkal nehezebb és bonyolultabb a konfigurálása
  • egyes kártyák beüzemeléséhez néha csak az segít, ha órákig bújuk az angol/német fórumokat és próbálkozunk
  • mostanában naponta akár több verzió is megjelenik. Mivel open source programról beszélünk, bárki javíthat rajta, ami publikálás után egy újabb verzió számot kap. Ez egy idő után követhetetlenné válik.
  • az Oscam jelenleg az 1.0-ás verziónál tart. Vannak benne bugok, és vannak olyan funkciók, amik nem úgy működnek, ahogy elvárná az ember

Ennyi bevezető után, kezdjük.

Az Oscam legújabb verziója letölthető pl. a http://oscam.ump2002.net/ fórumból
Az Oscam hivatalos fóruma a  http://streamboard.gmc.to/

Mint mondtam, minden modul önálló konfigurációs fájlal rendelkezik. Nézzük ezeket, melyek fordulhatnak elő és melyik mire való.
  • oscam.conf - A rendszer alap beállításai, log funkciók, webes felület konfigurációja, és a szerverként használt protokollok konfigurációja 
  • oscam.server - Az olvasó eszközök (reader) konfigurációja
  • oscam.user - A partnerek beállításai
  • oscam.dvbapi- Az adatfolyam TV képernyőjén való megjelenésének konfigurációja
  • oscam.ac - Anti-kaszkád konfiguráció. A jogosulatlan kártya hozzáférések konfigurációja. - Ezzel nem foglalkozunk
  • oscam.cert - Cryptoworks publikus kulcsok helye - Ezzel nem foglalkozunk
  • oscam.guess - Ez a BOMBA protokollhoz beállító fájl, de én még embert nem láttam aki használná, nem is igazán tudom mit kell itt állítani... - Ezzel nem foglalkozunk, nem lesz rá szükségünk
  • oscam.ird - Spéci beállító fájl az Irdeto kártyákhoz, de fogalmam sincs mit kell itt állítani... - Ezzel nem foglalkozunk, nem lesz rá szükségünk
  • oscam.provid - Szolgáltatók táblája. Hasonlón mint a CCcam esetében a CCcam.providers
  • oscam.services - Definiált szerviz funkciók
  • oscam.srvid - TV csatornák táblája. Hasonlón mint a CCcam esetében a CCcam.channelinfo
Az oscam.conf kötelező, a többi elhagyható. A leggyakrabb esetben a működéshez oscam.conf, oscam.server, oscam.user fájlok elegendőek, ha szeretnénk hogy a webes felületen a kódok helyet a TV adás neve és a szolgáltató neve is megjelenjen akkor a oscam.provid és az oscam.srvid is kell. Az oscam.dvbapi csak akkor kell, ha boxon használjuk az Oscam-ot és ezzel az EMU-van akarjuk a TV képet is megjeleníteni.

Mivel itt nincs alapértelmezett könyvtár, elvileg a konfigurációs fájlok akárhol lehetnek. Javasolt egy külön könyvtárat nyitni nekik, és így indítani az Oscam-ot:
./oscam -b -c  /var/bin/oscam_cfg
Ahol a -b jelzi, hogy háttérben szeretnénk indítani, a -c pedig a konfiguráció helyét adja meg. Jelen példa esetében a konfigurációs fájlok a /var/bin/oscam_cfg könyvtárban vannak.

A cikket ellenőrizte: Joseph

Folytatjuk.

2011. április 13., szerda

Példa kártyaszerver beállítására

Ebben a cikkben csak egy példát vázolok fel a kártyaszerver beállítására.

Tegyük fel, hogy a kártya szerverünkön fut a NewCS kártya kliensnek, ami kezel 2 db kártyát. A NewCS-hez kapcsolódik a CCcam. A CCcam-ban van néhány tipikusnak mondott partnerünk:
  • Szomszéd bácsi: Ö csak néhány TV adást akar nézni, nem érdekli a sharing.
  • Saját beltérink: természetesen minden lehetőséget szeretnénk kihasználni
  • Nagymami: másik városban lakik, sok TV adást/szolgáltatót néz. Megadjuk neki a lehetőséget, de mivel nem ért hozzá, nem akarjuk, hogy ö tovább osszon bármit is.
  • Troll: Óvatosan kell vele bánni. Csak a saját kártyánkat osztjuk meg vele, de semmi pluszt, amit mástól kapunk. Max. 1 partnernek oszthatja tovább
  • Korrekt Haver: Megbízható, jó haver. Mindent megosztunk vele hop2-ig, amit 2 szintig továbboszthat.
  • User: sima partner, igazán nincs róla se rossz, se jó véleményünk. Hop1 szintig mindent megosztunk vele  amink van, de csak egy partnernek oszthatja tovább.
  Javasolt beállítás: (klikkre megnő)

Néhány tipp:
  • Ha az F sor végére beírjuk azt a DNS vagy IP címet, ahonnét a patner csatlakozik, akkor más címről nem fogadja el a CCcam a kapcsolódást. A fenti példánál maradva a Trollnak így nézne ki az F sora nálunk:
    F: troll jelszó 0 0 0 { 0:0:2 } {} {} troll.link.hu
    Ennek  nagy előnye, hogy igy meg tudjuk akadályozni a sorlopást: attól még, hogy ellopja valaki Troll C sorát, nem fog tudni csatlakozni hozzánk, hiszen azt biztosan más DNS/IP címről teszi. 
  • Minden C sorunk végére írjuk be, hogy " no { 0:0:3 }". A előző példánál maradva igy nézne ki Troll C sora nálunk:
    C: troll.link.hu 12000 blasto jelszo no { 0:0:3 }
    Ezzel a beállítással azt érjük el, hogy a szerverünk nem használja Troll emulátorait, és (ami a lényeg) legfeljebb hop3-as kártyákkal foglalkozik a hop4, hop5... stb kártyákat egyszerűen eldobja. Ezzel jelentősen lehet csökkenteni a szerver terhelését. A gyakorlat azt mutatja, hogy a hop3-nál nagyobb  kártyákat már nem lehet használni, mivel itt nagyon megnő a válaszadási idő, így mire megérkezik az ECM válasz a TV adás dekódolásához, már érvénytelen a kód és új ECM kérést kell küldeni. Természetesen vannak olyan konfigurációk is (pl. kis távolság, villámgyors internet vagy olyan kártya ami ritkábban vált kódot) amikor a hop4-es kártyákat is vidáman lehet használni, de nem ez a tipikus.

2011. április 12., kedd

MgCamd konfigurálása

Ez egy sokkal rövidebb cikk lesz mint az eddigiek...

Az MgCamd-ról 3 dolgot fontos tudni:
  • Külső fájlból (SoftCam.Key, AutoRoll.key) be tudja olvasni a TV adatfolyam dekódolásához szükséges adatokat
  • A NewCS-vel együttműködve kitűnően (ha nem a legjobban) kezeli az EMM csomagokat (ezeket a csomagokat a kártya szolgáltatója keveri bele a TV adatfolyamába, és a kártya frissítésére szolgálnak. pl. új csomag aktiválás, kódváltás, vagy éppen kártya letiltás)
  • Nem létezik belőle x86 vagy x64-es disztribúció, csak PPC, MIPS és SH4. Ez azt jelenti, hogy csak Linuxos boxon fut, kártyaszerveren nem.

Miért foglalkozunk mégis vele ?

Ha van egy olyan partnerünk (pl. nagymama), aki nem kíván semmi extrát, csak nézni az előfizetett csatornákat, akkor MgCamd/NewCS megoldással öt is beilleszthetjük a rendszerünkben, oly módon, hogy az MgCamd fut a saját boxán, a NewCS pedig a kártyaszerveren. Előnye ennek a megoldásnak, hogy így megoldható a sharing és a "hagyományos" TV nézés is. Másik nagy előny, hogy a nagymama csak a saját szolgáltatók csatornáit fogja nézni, így a felőle érkező EMM csomagok biztosan a mi kártyánknak fognak szólni. Hátránya, hogy csak azokat az adásokat tudja nézni, amire a kártyán előfizettünk, illetve amikhez rendelkezésre áll a külső fájlban (SoftCam.Key, AutoRoll.key) adat (ebből nem sok lesz...)

A programcsomag letölthető. pl. a http://www.dreamboxfile.com/Dreambox-Files/ címről.

Az MgCamd a kétféle konfigurációt használ, melyeket a  /var/keys könyvtárban keresi. Az álltalános rendszerbeállításokat az mg_cfg tárolja. Ehhez az esetek 99%-ban nem kell hozzányúlni, az alapbeállításokkal tökéletesen működin. A másik konfigurációs fájl a newcamd.list nevű, itt kell beállítani a kapcsolódásokat, ezzel a fájlal foglalkoznunk kell. Mint mondtam, az MgCamd képes külsö fájlból is kódokat beolvasni, a fájloknak (SoftCam.Key, AutoRoll.key) is a /var/keys könyvtárban kell lennie. Ha nincsenek ilyen fájlok, attól még a program fut.

A NewCS kapcsolathoz két dolgot kell beállítani. Először is a newcs.xml-be definiálni kell egy usert az MgCamd részére. Aztán a newcamd.list-ben hozzunk létre egy ilyen sort:
CWS = 192.168.1.222 34000 user pass 01 02 03 04 05 06 07 08 09 10 11 12 13 14 lan newcs
Ahol:
  • 192.168.1.222: a kártya szerver IP címe, hol fut a NewCS
  • 34000: a NewCS port címe
  • user és pass: a felhasználó és a jelszó
  • 01 02..14: a newcs.xml-ben beállított deskey
  • lan és newcs: ha NewCS-hez kapcsolódunk, ez mindig kell a végére
CWS sorból annyi kell, ahány kártyához (vagy NewCS-hez) kapcsolódni szeretnénk. A nem használt CWS sorokat töröljük. A kapcsolat akár Interneten keresztül is működik, ilyenkor IP cím helyett DNS címet adjunk meg.

Természetesen az MgCamd-nak is van több beállítása, ami a működés finomhangolásához kell, de a program az alapértelmezett értékekkel is tökéletesen működik.

Nagyából ennyit az MgCamd-ról, nemigen érdemes vele tovább foglalkozni.

2011. április 10., vasárnap

CCcam konfigurálása

Egyértelműen ki lehet jelenteni, hogy a CCcam az egyik legnépszerűbb sharing program. Ez se mai program (2008-ban jelent meg), de (viszonylag) rendszeresek a fejlesztések. A cikk írásakor a 2.2.1-es verzió a legújabb. A csomag letölthető pl. a http://www.cccamforum.com/ Downloads szekciójából (regisztráció után).

Több környezetre optimalizált verziót tartalmaz a telepítő csomag. A Linuxos műholdvevő boxok (DreamBoxok és társaik) a PPC-t (PowerPC architektúra), a kártya szerverek a x86-os disztribúciót tudják futtatni. Én most ez utóbbit fogom használni.

A CCcam konfigurációs fájl a CCcam.cfg. A konfigurációs fájl alapértelmezett helye: /var/etc, ha semmilyen paramétert nem adunk meg, itt fogja keresi. Ha máshol van, akkor a programot igy indítsuk:
CCcam.x86 -C /mappa/helye/cccam.cfg
Természetesen a /mappa/helye helyére írjuk az elérési útvonalat.

A Neten igen gazdag angol nyelvű dokumentáció áll rendelkezésünkre, igy itt csak a legfontosabb beállításokkal foglalkozunk.

Működési port
Először is állítsuk be a legfontosabbat, azt a portot, ahol a CCcam szerver dolgozni fog:
SERVER LISTEN PORT: 12000
Na, az az a beállítás amit senki ne használjon ! Ugyanis ez az alapértelmezett port. Ezt mindenképpen változtassuk meg. Elvileg bármilyen portot használhatunk, de javasolt 10000 feletti érték használtata - itt már nincs semmilyen dedikált port.


Kártyaolvasó
Mint azt már az előző cikkekben jeleztem, a CCcam-nak is van beépített kártya kliense.A következőkben néhány konkrét példát írok a különböző olvasók beállítására:
Dreambox 500 belső kártyaolvasó:
SERIAL READER : /dev/sci0 

COM1 portos Phoenix olvasó:
SERIAL READER : /dev/ttyS0

SmarGo olvasó az USB1-es portban:
SERIAL READER : /dev/ttyUSB0 smartreader+ 

Segédfájlok
Adjuk meg a külsö fájlok helyét:
# Itt a kódolások priorizálását adjatjuk meg 
# (pl. ha egy TV adást többféle módon kódolnak, itt lehet kiválasztani melyiket 
# próbálja először dekódolni)
CAID PRIO FILE : /var/etc/CCcam.prio

# A szolgáltatók azonosítójához nevet rendel. Érdemes a legújabb listát használni.
PROVIDERINFO FILE : /var/etc/CCcam.providers

# A TV csatornák azonosítójához nevet rendel Érdemes a legújabb listát használni.
CHANNELINFO FILE : /var/etc/CCcam.channelinfo

LOG fájl
A LOG fájl nagyon hasznos. Ide folyamatosan írja a problémákat, pl. azokkat az IP címekket, akiknek a csatlakozását valamiért nem fogadja el a CCcam.
LOG WARNINGS : /tmp/warnings.txt

Kódok külső fájlból
Ha állandó, vagy nagyon ritkán változó kódot használ egy szolgáltató, akkor a dekódoláshoz szükséges kódot külső fájlban is tárolhatjuk, ahonnét a CCcam beolvassa. Ezek a kódok (pontosabban a kész SoftCam.Key, AutoRoll.Key és constant.cw fájlok) fellelhetőek a Neten és érdemes mindig a legújabbat használni - persze, ha van olyan TV adás amit tudunk ilyen módon nézni. A kódok beolvasásához ezt kell beállítani:
SOFTKEY FILE : /var/keys/SoftCam.Key 
AUTOROLL FILE : /var/keys/AutoRoll.Key 
STATIC CW FILE : /var/keys/constant.cw 

CCcam összekötése NewCS-vel
Ha nem a CCcam kártyakliensét akarjuk használni, hanem egy külsö programot, van rá mód. Az alábbi példában a NewCS és a CCcam összekötését mutatom be.
Feltételek:
  • Futnia kell (a háttérben) a NewCS-nek és a CCcam-nak
  • Kizárólag a NewCS használhatja a kártyaolvasót (a cccam.cfg-ben törölni kell a kártyaolvasóra vonatkozó sorokat)
  • A newcs.xml-be kell egy user a CCcam részére
Ha ez megvan, a cccam.cfg-be létre kell hozni egy N sort a NewCS részére, ilyen módon:
N: 127.0.0.1 15050 USER PASSW 01 02 03 04 05 06 07 08 09 10 11 12 13 14 256
Magyarázat:
  • 127.0.0.1: Az IP cím, ahol fut a NewCS. Jelen esetben ez a helyi gép.
  • 15050: A NewCS által használt port címe
  • USER és PASSW: A felhasználó neve és jelszava, amivel csatlakozni szeretnénk
  • 01 02...14: a kapcsolathoz használt titkosítási kulcs. A NewCS newcamdserver részén deklarált deskey kulcs.
  • 256: Ha azt szeretnénk, hogy a kártyánk lokális kártyának látszódjék és ne hop1-nek (erről majd később), akkor írjuk a sor végére ezt a számot. Figyelem ! Ez a trükk csak a CCcam 2.1.3-as verzióig működik ! Ha mi újabb CCcam-ot használunk, mindenképpen a beépített kártyaklienst kell használunk ahhoz, hogy lokálisnak látszódjék a kártya.
Sorok csere-beréje
És most a lényeg, hiszen az egészet azért csináljuk, hogy kártyákat osszunk meg.
CCcam.ban külön kell beállítani a kifelé irányuló forgalmat (a saját kártyánk és a többi kapott kártya megosztása) és külön a befelé irányuló forgalmat (partnertől kapott kártyák). A fogadott adatokat F sorral kell jelölni, a küldött adatokat pedig C sorral. Ha beállítunk egy F sort, az csak akkor fog működni, ha a partnernek ugyanazon adatokkal be van állítva egy C sor is. Vagyis az sorok csak párban működnek: ahhoz hogy működjön, minden C sorhoz tartozni kell egy F sornak, és fordítva. Az egyik nálunk lesz, a másik a partnernél, attól függ, melyik hol van, hogy mi osztjuk meg, vagy mi kapjuk a kártyát. Nyugi, elmondva ez bonyolultabb, mint a gyakorlatban ! Nézzünk egy konkrét példát. A már említett kulala-lumpuri Lee haverunkal akarunk mindent megosztani. Ahhoz, hogy Lee lássa a mi kártyánkat ezt kell beírni (arra, hogy mi mit jelent,  később visszatérünk):
F: Lee Jelszo1
Lee-nek ezt kell beállítani, hogy használhassa a megosztást
C: blasto_szervere.dyndns.org 12000 Lee Jelszo1
De mi is szeretnénk látni Lee kártyáját, igy meg kell tennünk ezt visszafelé is. Ez lesz a végleges :
F: Lee Jelszo1 
C: lee_szervere.dyndns.org Blasto Jelszo2 
Lee oldalán ez lesz:
F: Blasto Jelszo2 
C: blasto_szervere.dyndns.org 12000 Lee Jelszo1
Elsőre bonyolultnak tünik, de hamar bele lehet jönni ! :)


Egy kis kitérö: Mi az a hop ?

Szó szerint idézném Butyiba leírását a témában, ahol egy konkrét példán keresztül mutatja be a hop jelentését:
"Vegyünk egy példát és legyen 4 box ( box1, box2, box3 és box4 ) és itt most mindegy hogy otthoni vagy internetes sharingról beszélünk.
Box1-ben van egy kártya és ehhez a boxhoz kapcsolódik a box2. Akkor box2 HOP1-ben látja box1 kártyáját.
Ha box3 csak box2-höz kapcsolódik akkor tudja nézni box1 kariját HOP2-ben. Ugyanez a helyzet ha box4 kapcsolódik box3-hoz akkor hop3-ban tudja nézni box1 kártyáját.
Természetesen minden egyes hop-al lassabb lesz a kérés-válasz idő, hiszen box4 kérése végig kell menjen box3, box2-őn mire elér box1-hez. Ezért adatvesztés is előfordulhat ami a kép és hang hibában jelentkezhet box4 felhasználónál. Javíthat a helyzeten a gyors internet kapcsolat és a kevés partner box1,box2 és box3-nál de ezt box4 tulajdonos nem tudja szabályozni. Ezért lehetőség szerint törekedni kell, hogy gyors internet kapcsolatú partnerekkel történjen a sorcsere és minél közelebb (vagyis minél kisebb hop értékű) legyen annak a partnernek a box-a akitől szeretnénk a kártyát használni."

F sor leírása
Egyeztetve vele, továbbra is Butyiba leírását használom.
F sor szintaktikája alap esetben (amikor nem tiltunk semmit) :
F: user pass
Az ehhez az F sorhoz tartozó C sor:
C: ipcím portszám user pass
Az ipcím a dyndns-t vagy fix IP címet jelenti
Portszám az a port amit engedélyeztünk a routeren és nyitva van, hogy a tűzfal ne keverjen be.
user és pass ugyanaz amit az F sorban megadtunk. Ezután odaadjuk a C sort a partnernek aki szintén ad egy C sort amit Ő csinált hasonlóan. A nála lévő F sor fog kommunikálni azzal a C sorral amit adott és a mi F sorunk kommunikál azzal a C sorral amit mi adtunk neki.

Nézzük a részletesebb szintaktikát.
F: <username> <password> <uphops> <shareemus> <allowemm> ( { caid:id(:downhops), 
caid:id(:downhops), ... } { caid:id:sid, caid:id:sid, ... } { begintime-endtime, 
... } ) < hostname/ip address>

Az F sorban kötelező megadni az alábbiakat :
• Felhasználónév, hogy a partner tudjon kapcsolódni a szerverhez <username>
• Jelszó, hogy a partner tudjon kapcsolódni a szerverhez <password>
Opciók
• Hányszor engedélyezzük a továbbosztást <uphops>
• A partner használhatja-e az emulátorunkat vagy sem <shareemus>
• A partnernek engedélyezzük-e EMM-ek küldését, hogy frissíthesse a kártyánkat <allowemm>
• Milyen szolgáltatókat vagy csak csatornákat engedélyezünk vagy tiltunk a partnernek { caid:id(:downhops), caid:id(:downhops), ... } { caid:id:sid, caid:id:sid, ... }
• Milyen időtartam között engedélyezzük a kapcsolatot a partnernek { begintime-endtime, ... }
• Milyen IP vagy DNS címről kapcsolódhat a partner <hostname/ip address>


Alaphelyzetben (ha nem állítunk át semmit) az alábbi beállítások vannak:
• <uphops> = 5
• <shareemus> = 1 (engedélyezve van az emu-k használata)
• <allowemm> =1 (engedélyezve van emm küldése )
• { caid:id(:downhops), caid:id(:downhops), ... } { caid:id:sid, caid:id:sid, ... } = Nincs limit ( mindent tovább tudunk adni és nincs korlátozva sem semmi )
• { begintime-endtime, ... } = Nincs megadva idő (24 órás a kapcsolat)
• <hostname/ip address> = Bármilyen IP vagy DNS címről kapcsolódhat
Megjegyzés
• <Username> max 20 karakter
• <Password> tetszőleges

Általános F sor:
F: username password 2 1 1 { 0:0:1 }
• A partner hop2-ig kapja a kártyákat tőlünk. A saját lokálunkat és azt amit mi hop1-ben kapunk.
• Engedélyezzük az emunk használatát
• Engedélyezzük neki emm küldését, hogy frissítse a kártyánkat
• Minden kártyát ( lokál és hop1 ) használhat tőlünk de nem engedjük a továbbosztást neki

Másik tipikus F sor:
F: username password 2 1 1 { 0:0:2 }
• A partner hop2-ig kapja a kártyákat tőlünk. A saját lokálunkat és azt amit mi hop1-ben kapunk.
• Engedélyezzük az emunk használatát
• Engedélyezzük neki emm küldését, hogy frissítse a kártyánkat
• Minden kártyát ( lokál, hop1 és hop2 ) használhat tőlünk és engedjük a továbbosztást neki az Ő partneréhez, de a partnere nem oszthatja tovább

További tipikus F sor:
F: username password 2 1 1 { 0:0:3 }
• A partner hop2-ig kapja a kártyákat tőlünk. A saját lokálunkat és azt amit mi hop1-ben kapunk.
• Engedélyezzük az emunk használatát
• Engedélyezzük neki emm küldését, hogy frissítse a kártyánkat
• Minden kártyát ( lokál, hop1, hop2 és hop3 ) használhat tőlünk és engedjük a továbbosztást neki az Ő partneréhez aki tovább oszthatja de a partnere nem oszthatja továb
Így csak lokált kap és nem osztható:
F: login pass 0 0 0 { 0:0:1 } 
Ilyen nincs mert, így csak a lokált kapná de mivel { 0:0:0 } így Ő sem tudja nézni:
F: login pass 1 0 0 { 0:0:0 } 
Csak lokál és egyszer osztható:
F: login pass 0 0 0 { 0:0:2 } 
Lokál+hop1 és nem osztható:
F: login pass 1 0 0 { 0:0:1 } 
Lokál+hop1 és egyszer osztható:
F: login pass 1 0 0 { 0:0:2 }
Lokál+hop1 és egyszer osztható és EMM-et ad a karidnak attól akinek adtad a sort:
F: login pass 1 0 1 { 0:0:2 } 
Lokál+hop1 és egyszer osztható és használja az kulcsokat is:
F: login pass 1 1 0 { 0:0:2 } 


C sor leírása
Butyiba tollából
Szintaktika :
C: <hostname> <port> <username> <password> <wantemus>
A C sorban a következők lehetnek :
• Szerver IP címe ahová kapcsolódni szeretnénk <hostname>
• Port száma ahová kapcsolódni szeretnénk <port>
• Felhasználó név a szervernek ahová kapcsolódni szeretnénk <username>
• Jelszó a szervernek ahová kapcsolódni szeretnénk <password>
• Emulátor használatát engedélyezzük vagy sem annak a szervernek ahová kapcsolódunk <wantemus>
• Különböző korlátozások beállításai

Egy tipikus C sor:
C: server.noip.com 12000 username password

Ha nem akarjuk használni a másik szerver emulátorát
C: server.noip.com 12000 username password no

Amennyiben használni szeretnénk a másik szerver emulátorát ( de csak akkor tudjuk ha a partner F sorban engedélyezte )
C: server.noip.com 12000 username password yes

Nem használjuk az emulátort és hop2-ig engedjük be a kártyákat
C: server.noip.com 12000 username password no { 0:0:2 }

Nem használjuk az emulátort és hop1-ig ( csak a partner lokál kariját ) engedjük be a kártyákat
C: server.noip.com 12000 username password no { 0:0:1 }

CCcam szerver terhelésének csökkentése
Ha sok partnerünk van, igen hamar az egekbe nőhet a terhelés. Ilyenkor elkezd szakadozni a kép. Az egyik megoldás ilyes esetben a combosabb HW beszerzése, a másik, a kapott kártyák optimalizálása. Nézzük, mit lehet optimalizálni.
Alapértelmezetten rengeteg olyan kártyát is fogunk kapni, amit már nem tudunk továbbosztani. Ha kártyaszervert használunk, és nem közvetlenül a box-on fut a CCcam, ezek amúgy is teljesen feleslegesek, hiszen a box-al a kártyaszerverre kapcsolódunk, vagyis növekszik egyel a hop-szám. Tiltsuk le azokat a kártyákat, amiket már nem tudunk továbbosztani:
MINIMUM DOWNHOPS: 1 
A másik trükk, a szerver terhelésének csökkentésére, hogy csak azokkal a kártyákkal foglalkozunk, ami legfeljebb hop3-as. A nagyobb hop értékű kártyákkal nem foglalkozunk, ezek amúgy is már használhatatlanok. Minden C sor végére írjuk, hogy { 0:0:3 }, vagyis így fog kinézni egy C sor:
C: akarmi.dyndns.com 12000 user jelszo no { 0:0:3 } 

Természetesen még többször ennyit lehetne írni a CCcam-ról, de kezdetnek ennyi bőven elég.

(A leírtakat ellenőrizte: Butyiba )

2011. április 1., péntek

NewCS konfigurálása

Mint már mondtam a NewCS jópár éves program, melyet már nem fognak fejleszteni (legalábbis jelenleg így néz ki). Azért foglalkozok mégis vele, mert (viszonylag) egyszerű a kezelése és a beállítása valamint nagyon stabil.

A NewCS konfigurációs fájla a newcs.xml. Itt van minden beállítás a program működéséhez. Indítás után a konfigot előszór abban a könyvtárban keresi, ahonnét el lett indítva, ha nem találja akkor megnézi a var/tuxbox/config könyvtárban (ez a beállítás régi Dreambox hagyaték). Ha ott se találja, elindul, de konfiguráció nélkül.

Mint látható a konfigurációt XML formában tárolja. Ez azt jelenti a gyakorlatban, hogy minden bejegyzés <TAG>-al kell nyitni és </TAG>-al kell zárni. Nagyon fontos, hogy minden TAG-ot lezárjunk, mert ha nem tesszük el fog indulni ugyan a NewCS, de mivel nem tudja értelmezni, konfiguráció nélkül.

Kezdjük.

A newcs.xml keretes szerkezetű, viszonylag könnyen áttekinthető:
<?xml version="1.0"?>
<newCSconfig>
    <readers name="Kartyaolvasok">
        <device>
            <name>CardReader1</name>
            ....
        </device>
        <device>
            <name>CardReader2</name>
            ...
        </device>

    </readers>

    <radegastserver>
            <enabled>No</enabled>
            .....
    </radegastserver>

    <cache>
            .....
    </cache>

    <httpd>
        .....
    </httpd>

    <debug>
            ....
    </debug>

    <newcamdserver>
            <enabled>Yes</enabled>
            ....
            <user>
               <name>user1</name>
                ...
            </user>

             <user>
                <name>user2</name>
                ....
            </user>

</newcamdserver>
</newCSconfig>

  • A <readers> és a </readers> között a kártyaolvasókat definiáljuk és azon belül a <device> és </device> között adjuk meg az egyes olvasók pontos beállításait. Ezzel foglalkozunk kell majd.
  • A <radegastserver> és a </radegastserver> közötti területen engedélyezhetjük és beállíthatjuk a NewCS speciális üzemmódját. Az itt konfigurált IP vagy DNS címről mindenféle jelszó vagy titkosítás nélkül használják a felhasználók kártyát. Előnye, hogy csökken a szerver terhelése és rövidebbek a válaszadási idők. Igen nagy a biztonsági kockázat, így használata nem javasolt, én sem fogok vele foglalkozni. Ha érdekel a téma, nézz körül a Neten.
  • A <cache> és a </cache> között (milyen meglepő...) a  kártyára irányuló kérések átmeneti tárhelyére  (cache-ra) vonatkozó beállítások vannak. Általában ezzel nem kell foglalkozni.
  • A <httpd> és a </httpd> között a NewCS webes felületét tudjuk konfigurálni. A felhasználónéven és a jelszón kívül nem nagyon kell állítani semmit (esetleg a portot)
  • A <debug> és a </debug> között az ellenőrző funkciókara vonatkozó beállításokat tehetjük meg, ugyanis a NewCS-nek van egy felülete, ahol nyomon követhetünk minden a kártyára vonatkozó kérést és választ. Általában az alapértelmezett beállítások megfelelőek, a jelszón kívül nem kell semmit átállítani.
  • A <newcamdserver> és a </newcamdserver> állítjuk be a NewCS szerver beállításait. Az <user> és az </user> között állítjuk be az egyes felhasználók jogait, így itt biztosan bele kell nyúlni a konfigba.
A newcs.xml rengeteg beállítási lehetőséget tartalmaz, de én most abból fogok kiindulni, van 1 db kártyánk amit olvas/ír 3 user.

Az első amit be kell állítani az a kártyaolvasó típusa.
COM1 portos Phoenix olvasó esetén ez a konfig:
<device>
 <name>Phoenix_Interface</name>          <!-- kártyaolvasó neve --> 
 <type>phoenix</type>                    <!-- kártyaolvasó típusa -->
 <enabled>Yes</enabled>                  <!-- kártyaolvasó engedélyeze -->
 <carddetect>yes</carddetect>            <!-- automatikus kártyakeresés -->
 <mhz>375</mhz>                          <!-- kártyaolvasó sebessége -->
 <node>/dev/ttyS0</node>                 <!-- kártyaolvasó fizikai címe -->
 <parity>odd</parity>
 <reset>normal</reset>
 <newcamd_port>10580</newcamd_port>      <!-- kártyaolvasó portjának címe -->
 <export>Yes</export>
 <blocksa>No</blocksa>
 <blockua>No</blockua>
 <blockga>No</blockga>
   <!-- <boxkey>0000000000</boxkey> -->  <!-- boxkey, ha van -->
   <!-- <rsa>0000000000</rsa> -->        <!-- rsa kod, ha van -->
 <irdeto-camkey>0000000000000000</irdeto-camkey>
 <irdeto-camkey-data>000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000 00000000000</irdeto-camkey-data>
 <crypto-special>No</crypto-special>
 <ipk>000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000 00000000000</ipk>
 <ucpk>00000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000 000000000000</ucpk>
 <PTShandshake>No</PTShandshake>
 <autosid>Yes</autosid>
 <Seca-PPV>no</Seca-PPV>
 <pincode>0000</pincode>
 <priority>round</priority>
</device> 


USB-s SmarGo olvasó esetén igy néz ki a konfig eleje:
<device>
 <name>SmarGo</name>           <!-- kártyaolvasó neve --> 
 <type>smartreader+</type>     <!-- kártyaolvasó típusa -->
 <enabled>Yes</enabled>        <!-- kártyaolvasó engedélyeze -->
 <carddetect>yes</carddetect>  <!-- automatikus kártyakeresés -->
 <mhz>375</mhz>                <!-- kártyaolvasó sebessége -->
 <node>/dev/ttyUSB0</node>     <!-- kártyaolvasó fizikai címe -->
....

A többi ugyanaz mint a Phoenixnél.
Nem fogok minden TAG-al foglalkozni. A legfontosabbak mellé odaírtam mire valók. Néhány dolog ami fontos:
  • A <name> és </name> között és úgy általában is, TILOS az ékezetes betűk és a space-ok használata ! Space helyett használjunk aláhúzást. Ezek figyelembe vételével bármilyen nevet adhatunk az olvasónak.
  • Az <mhz> és </mhz> közötti értékeket csak akkor növeljük, ha biztosak vagyunk benne, hogy tud gyorsabban dolgozni a kártya ! Hamar jégkaparó lehet az eredménye a kísérletezésnek....
  • A SmarGo-nál a <node> után álló /dev/ttyUSB0 az USB1 portra vonatkozik. Ha nem oda van bedugva az olvasó, más címet kell használni (/dev/ttyUSB1 vagy /dev/ttyUSB2 stb). Ugyanez igaz a Phoenixre is, ha nem a COM1 hanem a COM2-re van téve az olvasó, akkor /dev/ttyS1 lesz a <node> után.
  • <boxkey> és <rsa> TAG-okat csak akkor kell alkalmazni, ha olyan kártyánk van, ami amúgy össze van párosítva a gyári műholdvevő boxal, de ügyes emberek kiderítették a kódokat.
  •  A <newcamd_port> és </newcamd_port> között adjuk meg azt a portot, amelyik segítségével a felhasználók kapcsolódni tudnak a kártyához. Ezt a portot kell engedélyezni a router-on, ha az Internet felé is nyitva lesz a NewCS.
A kártyaolvasó konfigurációja kész. Menjünk tovább.
A <radegastserver> és a <cache> beállításokat ne bántsuk, jók az alapértelmezett beállítások.
<radegastserver>
 <enabled>no</enabled>
 <port>10001</port>
 <allow>
   <hostname>localhost</hostname>
 </allow>
 </radegastserver>

 <cache>
  <emm>20</emm>
  <ecm>-1</ecm>
</cache>

Nézzük a Webes megjelenés konfigurációját:
<httpd>
 <server>
   <port>8080</port>                <!-- a port címe, ahol elérjük a webes felületet -->
   <enabled>yes</enabled>           <!-- engedélyezzük a webes felületet -->
 </server>
 <user>
   <name>newcs</name>               <!-- felhasználó név -->
   <password>newcs</password>       <!-- jelszó -->
   <accesslevel>admin</accesslevel> <!-- hozzáférési szint -->
 </user>
</httpd>

Több usert is létrehozhatunk különféle hozzáférési szintekkel, de igencsak javasolt, hogy legyen legalább egy, aki rendelkezik "admin" szinttel, különben nem sok értelme van...
Nézzük a <debug> TAG-ot:
<debug>
 <password>NewCSpwd</password>      <!-- jelszó -->
 <mode>simple</mode>
 <level>normal</level>
 <type>init</type>
</debug>

Itt egy dolgot lehet változtatni, a jelszót, de az se kötelező.
A blokk a  <newcamdserver>. Itt definiáljuk a felhasználókat.
<newcamdserver>
 <enabled>Yes</enabled>          <!-- szerver engedélyezése -->
 <name>newcs</name>              <!-- szerver neve -->
 <userfile>/tmp/newcamdserver.txt</userfile>    <!-- log fájl helye és neve -->
 <deskey>01 02 03 04 05 06 07 08 09 10 11 12 13 14</deskey>  <!-- titkosítási kulcs -->
 
 <user>
  <status>access</status>        <!-- hozzáférési szint -->
  <name>dummy</name>             <!-- felhasználó neve -->
  <password>dummy</password>     <!-- felhasználó jelszava -->
  <hostname>localhost</hostname> <!-- honnan csatlakozhat a felhasználó - csak localhostról -->
  <port></port>                  <!-- melyik porton, ha üres az alapértelmezetten -->
  <readers></readers>            <!-- ez a user az összes kártyát eléri -->
  <au>on</au>                    <!-- kártyafrissítés engedélyezése -->
  <sidoverride>off</sidoverride> <!-- SID szúró felülbírálata -->
  <spider>on</spider>            <!-- Cardspider engedélyezése az usernél -->
  <rate>0</rate>                 <!-- ECM késleltetés -->
 </user>
 <user>
  <status>access</status>
  <name>szomszed_bacsi</name>
  <password>Jelszo</password>
  <hostname></hostname>
  <port></port>
  <readers>
   <allow>phoenix</allow>       <!-- ez a user csak a phoenix-et éri el -->
  </readers>
  <au>on</au>
  <spider>on</spider>
  <sidoverride>off</sidoverride>
  <rate>0</rate>
 </user>    
 <user>
   <status>access</status>
   <name>CCCAM</name>
   <password>cccam</password>
   <hostname></hostname>
   <port></port>
   <readers>
   <allow>smargo</allow>      <!-- ez a useer csak a smargo-t éri el -->
   </readers>
   <au>on</au>
   <au>off</au>               <!-- kártyafrissítés tiltva -->
   <spider>on</spider>
   <sidoverride>off</sidoverride>
   <rate>0</rate>
  </user>
</newcamdserver>

Igyekeztem egy olyan példát készíteni, ami több verziót tartalmaz.
  • <enabled>-el engedélyezzük/tiltjuk a szerver használatát
  • <name> a szerver neve. Szükségtelen a megváltoztatása, mert nemigen fogunk így hivatkozni rá.
  • <userfile> a log fájl neve és helye. Csak akkor ír ide, ha hiba van.
  • A <deskey> tartalmazza a titkosítási kulcsot. Ezt meg kell adni csatlakozáskor. Megváltoztatjuk ha akarjuk, de szükségtelen.
  • <status> mindig access legyen, különben nem sok értelme van az user beállításának...
  • <name> és <password>: az user neve és jelszava
  • A <hostname> -val állíthatjuk be honnan csatlakozhat az user. Ha üresen marad, bárhonnan csatlakozhat. Javasolt üresen hagyni.
  • <port>-al állíthatjuk be, melyik portról csatlakozhat a felhasználó. Ha üresen marad, akkor a konfigurációs fájl elején, a <device> részészen a <newcamd_port> TAG-al beállított port lesz az alapértelmezett. Javasolt üresen hagyni.
  • A <readers> beállításaival szűkíthetjük a felhasználók jogait, hogy melyik olvasóhoz férhet hozzá. Az olvasó nevét kell megadni. Nem javasolt a használata, főleg, ha csak egy olvasónk van...
  • Az <au>-val engedélyezzük/tiltjuk hogy az user küldhet-e EMM csomagot a kártyára. Ezekkel a csomagokkal a szolgáltatók módosítják a kártyák működését. Pl. új csomag aktiválás, kódváltás, vagy éppen kártya letiltás. Ezt úgy teszik, hogy a TV adás adatfolyamához adják az EMM csomagokat.  Nem javasolt, hogy annál a sornál ezt engedélyezzük ezt, ami a CCcam részére van létrehozva, ugyanis a kártyák azonosítója (CAID) nem mindig határozza meg egyértelműen a szolgáltatót, így előfordulhat, hogy egy kuala-lumpuri szolgáltató EMM csomagjával frissül a magyar kártyánk. Az eredmény az lesz, hogy semmilyen adást nem fog nyitni (nyugi, fizikálisan nem meg tökre a kártya, de kell neki egy jópár EMM csomag a saját szolgáltatónktól, hogy helyreálljon - ez több óra is lehet). Viszont azoknál az usereknél, akik csak a saját szolgáltatónkat nézik, mindenképpen engedélyezzük, különben az első kódváltásig tudjuk csak a kártyánkat nézni.
  • <sidoverride>: SID szűrő engedélyezése/tiltása, Ne módosítsuk az alapértelmezett OFF értéket.
  • <spider>: engedélyezzük/tiltjuk card splitter használatát az usernél. Maradjon ON álláson, ne módosítsuk.
  • <rate>: ECM késleltetési idő. Maradjon mindig nullán.
Az utolsó sorral zárjuk a konfigurációt:
</newCSconfig> 

Kész a konfiguráció.
Természetesen még sok beállítási lehetősége van a NewCS-nek, de ahhoz, hogy elinduljunk, bőven elegendő ez a mennyiség.

Nézzük a NewCS Webes a felületet.
Ha a fenti adatokat használtuk, akkor a irjuk be a Web-browserbe:
http://[SZERVER_IP_CÍM]:8080
Adjuk meg a <httpd> TAG-nál megadott felhasználónevet és jelszót. Voilá, bent vagyunk a NewCS Webes felületén. :)

A leggyakrabban használt menüpont a Newcamd Users. Igy néz ki:
Felsorolja a beállított usereket, és megjeleníti a kapcsolódási információkat.
Az Ok ECM  oszlop azoknak a kéréseknek a számát írja ki, amire a NewCS (vagyis inkább a kártya) pozitív választ adott (vagyis el tudta küldeni a TV adás dekódolásához szükséges adatokat), a Bd ECM ezzel szemben azt a számot adja meg, amire nem tudott válaszolni. Az EMM oszlop a szolgáltatótól fogadott (vagyis kártyára írt) csomagok darabszámát írja ki.

A NewCS-röl ennyit.
A következő részben a CCcam beálításait nézzük át.