09:00 - 24:00
Hoş Geldiniz.

Oscam Komutları ve Yapılandırma Rehberi

Oscam Komutları ve Yapılandırma Rehberi

OScam Komut Ekosistemi: Mimariye Genel Bakış

Bu bölüm, OScam’in komut yapısının temel mimarisini ve temel bileşenlerini inceleyerek, yazılımın işleyişine dair bütüncül bir anlayış sunmayı amaçlamaktadır.

Sorgunun Analizi: “OScam Komutları” Ne Anlama Gelir?

“OScam Komutları” terimi, tek bir komut satırı arayüzünden ziyade, yazılımın işlevselliğini yöneten çok katmanlı bir kontrol mimarisini ifade eder. OScam’in gücü, bu farklı kontrol katmanları arasındaki karmaşık etkileşimde yatmaktadır. Bu rapor, söz konusu komut yapısını dört ana kategoriye ayırarak inceleyecektir:

  1. Sistem Seviyesi Komutlar: Yazılımın derlenmesi, kurulması, çalıştırılması ve Docker gibi konteyner ortamlarında yönetilmesi için kullanılan kabuk (shell) komutları.
  2. Çalışma Zamanı Argümanları: OScam çalıştırılabilir dosyasına (oscam binary) başlangıç anında iletilen ve yapılandırma dosyalarındaki ayarları geçersiz kılabilecek veya onlara ek olarak çalışabilecek parametreler.
  3. Yapılandırma Direktifleri: OScam’in davranışını kalıcı olarak tanımlayan, .conf, .server, .user gibi dosyalarda yer alan anahtar-değer çiftleri şeklindeki yönergeler.
  4. Programatik Kontrol (API Çağrıları): OScam’in Web Arayüzü (WebIf) üzerinden sunduğu JSON veya XML tabanlı API’ler aracılığıyla yazılımı programatik olarak izlemek ve yönetmek için kullanılan komutlar.

Bu katmanlı yapı, yazılımın basit bir kart sunucusundan (MPCS) çok protokollü, karmaşık bir softcam’e evriminin bir yansımasıdır. Bir kullanıcının etkili bir şekilde sorun giderebilmesi için bu hiyerarşiyi ve katmanların birbirini nasıl etkilediğini anlaması kritik öneme sahiptir. Örneğin, bir başlangıç argümanı ile belirtilen bir ayar, bir yapılandırma dosyasındaki ilgili direktifi geçersiz kılabilir ki bu durum, yeni başlayanlar için yaygın bir kafa karışıklığı kaynağıdır.

Anlam Ayrımı: OScam (Softcam) ve OSCAM.UK (Drone Hizmetleri)

“OSCAM” terimi üzerine yapılan bir araştırma, Birleşik Krallık merkezli bir drone operasyonları şirketine ait sonuçlar da üretebilmektedir. Ancak, “Oscam Komutları” sorgusunun bağlamı ve mevcut teknik verilerin büyük çoğunluğu, bu raporun konusunun “Open Source Conditional Access Module” (Açık Kaynak Koşullu Erişim Modülü) yazılımı olduğunu kesin olarak ortaya koymaktadır. Dolayısıyla, bu rapor yalnızca softcam yazılımı olan OScam’e odaklanacaktır.  

Çekirdek Mimari: Cardserver, Softcam ve Arayüzler

OScam, temel olarak iki ana rolü üstlenen modüler bir yapıya sahiptir: Cardserver (Kart Sunucusu) ve Softcam (Yazılım Tabanlı CAM).  

  • Cardserver: Bu rolünde OScam, set üstü cihazına (receiver) veya sunucuya takılı olan fiziksel akıllı kartları (smartcard) yönetir. Sağlayıcıdan gelen Yetkilendirme Yönetim Mesajlarını (EMM) işleyerek kartın aboneliğini güncel tutar ve şifrelenmiş yayınları çözmek için gerekli olan Kontrol Kelimelerini (Control Words – CW) üretir. Bu CW’leri talep eden istemcilere (softcam’ler) sunar.  
  • Softcam: Bu rolde OScam, şifreli bir TV yayınını izlemek isteyen bir istemci gibi davranır. Yayını çözmek için gerekli olan CW’leri bir kart sunucusundan (bu sunucu aynı cihazdaki OScam’in kendisi veya ağdaki başka bir sunucu olabilir) talep eder.  

Bu çift rollü mimari, OScam’e hem tek bir cihazda yerel kart okuyucu olarak çalışma hem de ağ üzerinden başka cihazlara hizmet verme veya başka sunuculardan hizmet alma esnekliği tanır.

Kullanıcılar ve yöneticiler, bu mimariyi iki ana arayüz üzerinden kontrol eder:

  • Web Arayüzü (WebIf): Kullanıcıların bir web tarayıcısı üzerinden OScam’in durumunu izlemesine, yapılandırma dosyalarını düzenlemesine, kullanıcıları ve okuyucuları yönetmesine olanak tanıyan grafiksel bir arayüzdür.  
  • Monitör Arayüzü: Windows veya Android gibi platformlarda çalışan özel istemci programlarının OScam’den bilgi almasını ve bazı ayarları değiştirmesini sağlayan bir arayüzdür.  

Dağıtım ve Yönetim için Sistem Seviyesi Komut Referansı

Bu bölüm, OScam’in derlenmesi, kurulması ve çalıştırılması süreçlerinde kullanılan temel sistem komutlarını ve modern dağıtım yöntemlerini detaylandırmaktadır.

Debian Tabanlı Sistemlerde Kaynaktan Derleme

OScam’in en esnek kurulum yöntemi, kaynak kodundan derlemektir. Bu, özellikle standart dışı mimariler veya kaynakların kısıtlı olduğu gömülü sistemler için gereklidir. Bu süreç, belirli bağımlılıkların kurulmasını ve cmake yapılandırma aracının kullanılmasını içerir.

Ön Koşul Kurulumu

Başarılı bir derleme işlemi için, derleyici araçları, kütüphaneler ve kaynak kod yönetim aracı gibi bir dizi paketin sisteme kurulması gerekir. Aşağıdaki komut, Debian veya Ubuntu tabanlı sistemlerde gerekli olan temel paketleri kurar :  

Bash

apt-get install build-essential cmake libpcsclite-dev libssl-dev subversion dialog

Bu paketlerin her birinin özel bir rolü vardır:

  • build-essential: gcc, g++ ve make gibi temel derleme araçlarını içerir.
  • cmake: Kaynak koddan platforma özgü yapılandırma dosyaları (örn. Makefile) oluşturan bir derleme sistemi aracıdır.
  • libpcsclite-dev: PC/SC (Personal Computer/Smart Card) standardını destekleyen USB akıllı kart okuyucularla iletişim kurmak için gereken geliştirme kütüphanelerini sağlar.
  • libssl-dev: HTTPS üzerinden Web Arayüzü gibi güvenli iletişim özellikleri için OpenSSL geliştirme kütüphanelerini içerir.
  • subversion: OScam kaynak kodunu resmi depodan indirmek için kullanılan SVN istemcisidir.
  • dialog: make config komutuyla kullanılan metin tabanlı bir yapılandırma arayüzü sağlar.

Kaynak Kodunu Edinme

En güncel OScam kaynak kodu, Streamboard SVN deposundan svn checkout komutu kullanılarak indirilir :  

Bash

svn checkout http://www.streamboard.tv/svn/oscam/trunk oscam-svn

Bu komut, oscam-svn adında bir dizin oluşturur ve en son geliştirme sürümünü bu dizine indirir. Mevcut bir kaynak kod ağacını güncellemek için tekrar checkout komutu kullanılmamalıdır; bunun yerine, oscam-svn dizini içindeyken svn update komutu çalıştırılmalıdır.  

CMake ile Derleme Süreci

OScam, derleme sürecini yönetmek için CMake kullanır. Derleme işlemi, kaynak kod dizininden ayrı bir “build” dizini içinde gerçekleştirilir. Bu, kaynak kodun temiz kalmasını sağlar.  

Bash

cd oscam-svn
mkdir build
cd build
cmake..

cmake.. komutu, bir üst dizindeki (oscam-svn) CMakeLists.txt dosyasını okur ve mevcut sistem için bir Makefile oluşturur. Bu aşamada, derleme seçenekleri -D bayrağı ile belirtilebilir. En yaygın kullanılan seçenek, Web Arayüzünü etkinleştiren -DWEBIF=1 seçeneğidir. OScam’in modüler yapısı, bu derleme aşamasında hangi özelliklerin dahil edileceğini belirlemeye olanak tanır. Örneğin, kaynakların çok kısıtlı olduğu bir yönlendirici (router) gibi bir cihaz için, Web Arayüzü veya kullanılmayan kart okuyucu modülleri devre dışı bırakılarak çok daha küçük ve verimli bir çalıştırılabilir dosya elde edilebilir. Bu, config.sh betiği veya make config komutu aracılığıyla yapılabilen ileri düzey bir optimizasyon tekniğidir.  

Derleme ve Kurulum

Yapılandırma dosyaları oluşturulduktan sonra, make komutu ile derleme işlemi başlatılır. Kurulum için ise make install komutu kullanılır.  

Bash

make
make install

Bu komutlar, oscam adlı çalıştırılabilir dosyayı derler ve genellikle /usr/local/bin dizinine kopyalar. Son olarak, dosyanın çalıştırılabilir olduğundan emin olmak için izinleri ayarlanmalıdır :  

Bash

chmod 755 /usr/local/bin/oscam

Docker ile Konteynerize Dağıtım

Modern sunucu yönetimi yaklaşımları, bağımlılık yönetimi ve derleme karmaşıklığını ortadan kaldıran konteynerizasyonu tercih etmektedir. OScam için, LinuxServer.io tarafından sağlanan Docker imajı popüler ve güvenilir bir çözümdür. Bu yöntem, özellikle standart x86-64 veya ARM64 mimarilerinde hızlı ve tekrarlanabilir bir kurulum sunar.  

docker run Komutu

OScam konteynerini çalıştırmak için kullanılan temel docker run komutu, port yönlendirmesi, yapılandırma dosyaları için kalıcı depolama ve donanım erişimi gibi kritik ayarları içerir :  

Bash

docker run -d \
  --name=oscam \
  -p 8888:8888 \
  -v /path/to/oscam/config:/config \
  --device /dev/ttyUSB0:/dev/ttyUSB0 \
  --restart unless-stopped \
  lscr.io/linuxserver/oscam:latest

Bu komutun dökümü:

  • -p 8888:8888: Konteyner içindeki OScam Web Arayüzü portunu (sağdaki) ana makinenin 8888 portuna (soldaki) yönlendirir.
  • -v /path/to/oscam/config:/config: Ana makinedeki bir dizini, konteyner içindeki /config dizinine bağlar. Bu, oscam.conf gibi yapılandırma dosyalarının konteyner yeniden başlatıldığında veya güncellendiğinde kaybolmamasını sağlar.
  • --device /dev/ttyUSB0:/dev/ttyUSB0: Ana makineye bağlı bir USB akıllı kart okuyucuyu (/dev/ttyUSB0) konteyner içine aktarır, böylece OScam donanıma erişebilir.

docker-compose Yapılandırması

Daha karmaşık veya birden fazla servisin olduğu ortamlar için docker-compose kullanmak daha pratiktir. Aşağıdaki docker-compose.yml dosyası, docker run komutuyla aynı yapılandırmayı deklaratif bir formatta tanımlar :  

YAML

version: "3.8"
services:
  oscam:
    image: lscr.io/linuxserver/oscam:latest
    container_name: oscam
    environment:
      - PUID=1000
      - PGID=1000
      - TZ=Etc/UTC
    volumes:
      - /path/to/oscam/config:/config
    ports:
      - 8888:8888
    devices:
      - /dev/ttyUSB0:/dev/ttyUSB0
    restart: unless-stopped

Yönetim Komutları

Çalışan OScam konteynerini yönetmek için standart Docker komutları kullanılır :  

  • Logları Görüntüleme: docker logs -f oscam
  • Konteyner İçinde Kabuk Başlatma: docker exec -it oscam /bin/bash
  • Durdurma ve Kaldırma: docker stop oscam ve docker rm oscam
  • Güncelleme: docker pull lscr.io/linuxserver/oscam:latest

Çalıştırılabilir Dosya Argümanları

OScam çalıştırılabilir dosyası, başlatma sırasında bir dizi komut satırı argümanı kabul eder. Bu argümanlar, özellikle sorun giderme ve geçici yapılandırma değişiklikleri için son derece kullanışlıdır. En önemlisi, bu argümanlar oscam.conf dosyasındaki ilgili ayarları geçersiz kılar. Aşağıdaki tablo, FreeBSD man sayfasından alınan en yaygın kullanılan argümanları özetlemektedir.  

ArgümanAçıklama
-a, --crash-dumpBir segmentasyon hatası (segfault) durumunda oscam.crash döküm dosyası oluşturur. GDB kurulu olmasını gerektirir.
-b, --daemonOScam’i arka planda başlatır ve geçici bir dizine başlangıç zamanı ve sürüm bilgilerini içeren oscam.version dosyasını yazar.
-B, --pidfile <dosyaadı>PID (Process ID) dosyasını belirtir. Bu, oscam.conf içindeki pidfile ayarını geçersiz kılar.
-c, --config-dir <dizin>Yapılandırma dosyalarının okunacağı dizini belirtir. Varsayılan dizini geçersiz kılar.
-d, --debug <seviye>Hata ayıklama (debug) seviyesini bir maske değeri olarak ayarlar. Her bit farklı bir bileşeni temsil eder (örn: 2=ECM, 8=İstemci trafiği, 64=EMM, 128=DVBAPI). 65535 tüm hata ayıklama mesajlarını etkinleştirir.
-h, --helpKullanım bilgilerini ve mevcut argümanların bir listesini gösterir.
-r, --restart <seviye>Yeniden başlatma davranışını kontrol eder. 0: devre dışı, 1: WebIf’ten yeniden başlatmaya izin verir (varsayılan), 2: segmentasyon hatalarında da otomatik yeniden başlatır.
-S, --show-sensitiveLoglarda kart seri numaraları gibi hassas bilgilerin filtrelenmesini engeller.
-V, --build-infoOScam sürüm ve derleme bilgilerini gösterir.
-w, --wait <saniye>Başlangıçta sistem saatinin doğru şekilde ayarlanması için belirtilen saniye kadar bekler.

E-Tablolar’a aktar

Çekirdek Yapılandırma Direktifleri: Derinlemesine Bir İnceleme

OScam’in işleyişi, üç temel yapılandırma dosyası tarafından yönetilir: oscam.conf (genel ayarlar), oscam.server (okuyucular) ve oscam.user (kullanıcılar). Bu dosyalar, tek başlarına değil, birbiriyle ilişkili bir sistem olarak çalışır. Bu sistemin temelini, kullanıcıları okuyuculara bağlayan group parametresi oluşturur. Bir kullanıcının bir okuyucudan anahtar talep edebilmesi için, her ikisinin de en az bir ortak gruba atanmış olması gerekir. Bu ilişkisel model, OScam’de erişim kontrolünü yönetmenin temel konseptidir.

Global Sunucu Yapılandırması (oscam.conf)

oscam.conf, sunucunun genel davranışını, ağ arayüzlerini ve ana modüllerini kontrol eden merkezi yapılandırma dosyasıdır.  

[global] Bölümü

Bu bölüm, sunucunun temel çalışma parametrelerini içerir. En kritik direktiflerden bazıları şunlardır:

  • logfile: Log mesajlarının yazılacağı dosyayı, syslog‘u veya standart çıktıyı (stdout) belirtir. Örnek: logfile = /var/log/oscam.log;syslog.
  • pidfile: OScam’in işlem kimliğini (PID) saklayacağı dosyayı tanımlar. Servis yönetimi için önemlidir.
  • clienttimeout: Bir istemciden cevap alınamadığında bağlantının ne kadar süre sonra zaman aşımına uğrayacağını milisaniye cinsinden belirler.
  • fallbacktimeout: Birincil okuyucudan cevap alınamadığında yedek (fallback) bir okuyucuya ne kadar süre sonra geçileceğini belirler.
  • nice: OScam işleminin sistem önceliğini ayarlar. -20 (en yüksek öncelik) ile +20 (en düşük öncelik) arasında bir değer alır.

[webif] Bölümü

Bu bölüm, tarayıcı tabanlı yönetim arayüzü olan WebIf’in ayarlarını kontrol eder :  

  • httpport: Web arayüzünün dinleyeceği TCP portunu belirtir. Genellikle 8888 veya 8081 gibi değerler kullanılır.
  • httpuser: Web arayüzüne giriş için kullanılacak kullanıcı adını belirler.
  • httppwd: Belirtilen kullanıcı için parolayı ayarlar.
  • httpallowed: Güvenlik için en kritik parametrelerden biridir. Yalnızca belirtilen IP adreslerinin veya IP aralıklarının Web arayüzüne bağlanmasına izin verir. Örnek: httpallowed = 127.0.0.1,192.168.0.0-192.168.255.255.

[dvbapi] Bölümü

Bu bölüm, OScam’in doğrudan set üstü cihazının DVB donanımıyla (tuner) iletişim kurmasını sağlayan DVB-API modülünü yapılandırır.  

  • enabled: DVB-API modülünü etkinleştirmek için 1 olarak ayarlanır.
  • user: DVB-API istemcisi olarak hareket edecek olan ve oscam.user dosyasında tanımlanmış olan kullanıcıyı belirtir.
  • boxtype: Kullanılan set üstü cihazının türünü belirtir. Bu ayar, OScam’in cihazla nasıl iletişim kuracağını belirler. Olası değerler arasında dreambox, vuplus, pc, pc-nodmx bulunur.
  • pmt_mode: Program Map Table (PMT) dosyasının nasıl işleneceğini belirler. Farklı boxtype ve sürücü kombinasyonları farklı modlar gerektirebilir.

Okuyucu ve Proxy Yapılandırması (oscam.server)

oscam.server dosyası, OScam’in şifre çözme anahtarlarını nereden alacağını tanımlar. Bu kaynaklara “okuyucu” (reader) denir. OScam mimarisinin güçlü bir yönü, hem fiziksel donanımları (kart okuyucular) hem de ağ üzerindeki diğer sunucuları (proxy’ler) tek bir “okuyucu” soyutlaması altında birleştirmesidir. Hangi tür kaynağın kullanıldığı, yalnızca protocol parametresi ile belirlenir. Bu, yerel kartları birden çok farklı protokole sahip uzak sunucularla sorunsuz bir şekilde birleştiren hibrit ve esnek yapılandırmalara olanak tanır.

[reader] Bloğu Yapısı

Her okuyucu, [reader] ile başlayan bir blok içinde tanımlanır. Tüm okuyucular için ortak olan temel parametreler şunlardır :  

  • label: Okuyucu için benzersiz ve açıklayıcı bir isim.
  • enable: Okuyucuyu etkinleştirmek (1) veya devre dışı bırakmak (0) için kullanılır.
  • protocol: Okuyucunun kullanacağı protokolü belirtir. Bu, okuyucunun türünü (fiziksel veya ağ) belirleyen en önemli parametredir.
  • group: Okuyucuyu bir veya daha fazla gruba atar. Bu, oscam.user dosyasındaki kullanıcılarla eşleştirme yapmak için kullanılır.

Fiziksel Okuyucu Yapılandırması

Fiziksel bir akıllı kart okuyucusu yapılandırılırken kullanılan yaygın protokoller ve parametreler şunlardır :  

  • Protokoller:
    • internal: Dreambox gibi cihazların dahili kart okuyucuları için.
    • mouse / smartreader: Phoenix/Smartmouse uyumlu seri veya USB okuyucular için.
    • pcsc: PC/SC standardını destekleyen USB okuyucular için.
  • Parametreler:
    • device: Okuyucunun sistemdeki aygıt yolunu belirtir. Örnek: /dev/sci0 (dahili okuyucu) veya /dev/ttyUSB0 (USB okuyucu).
    • mhz / cardmhz: Okuyucunun ve kartın çalışma frekansını ayarlar. Bazı kartlar için hız aşırtma (overclocking) veya kararlılık için bu değerlerin ayarlanması gerekebilir.

Ağ Proxy Yapılandırması

Başka bir OScam veya farklı bir sunucu yazılımına (örn. CCcam) bağlanmak için bir ağ proxy okuyucusu yapılandırılır :  

  • Protokoller: cccam, newcamd, camd35.
  • Parametreler:
    • device: Sunucunun IP adresini veya alan adını ve port numarasını virgülle ayırarak belirtir. Örnek: server.domain.com,12000.
    • user: Uzak sunucuya bağlanmak için kullanılacak kullanıcı adı.
    • password: Belirtilen kullanıcı için parola.

Karta Özgü Direktifler

Bazı şifreleme sistemleri, kartın düzgün çalışması için ek parametreler gerektirir. Örneğin, Nagra ve bazı Irdeto sistemleri için boxkey ve rsakey parametrelerinin doğru bir şekilde girilmesi zorunludur.  

Kullanıcı ve Güvenlik Yönetimi (oscam.user)

oscam.user dosyası, OScam sunucusuna bağlanacak istemcilerin (kullanıcıların) kimlik bilgilerini ve yetkilerini tanımlar. Her kullanıcı bir [account] bloğu içinde yapılandırılır.

[account] Bloğu

Bir kullanıcı hesabının temel ve gelişmiş ayarları bu blokta yer alır :  

  • user: Kullanıcı adı.
  • pwd: Parola.
  • group: Kullanıcının ait olduğu grupları virgülle ayırarak belirtir. Bu, kullanıcının hangi okuyuculara erişebileceğini belirler.
  • hostname: Güvenliği artırmak için, kullanıcının yalnızca belirtilen IP adresinden veya ana bilgisayar adından bağlanmasına izin verir.
  • services: Kullanıcının erişebileceği kanalları (servisleri) sınırlar. Bu, oscam.services dosyasında tanımlanan servis gruplarına referans verir.
  • caid / ident: Kullanıcının yalnızca belirli CAID (Conditional Access ID) ve Provider ID’lere sahip kanalları talep etmesine izin verir.

Anti-Cascading Yapılandırması

Anti-cascading, bir kullanıcının aldığı erişimi yetkisiz bir şekilde başka kullanıcılarla paylaşmasını (resharing) engellemeye yönelik bir mekanizmadır. İlgili parametreler şunlardır :  

  • numusers: Bir hesabın aynı anda kaç farklı istemciden kullanılabileceğini belirler.
  • penalty: numusers limiti aşıldığında uygulanacak cezayı belirler. Seçenekler arasında yalnızca loglama (0), sahte CW gönderme (1) veya hesabı geçici olarak devre dışı bırakma (2) bulunur.

Gelişmiş Modüller ve Performans Ayarları

OScam, basit bir sunucunun ötesine geçerek, çoklu okuyucu ortamlarında performansı optimize etmek ve özel kullanım senaryolarını desteklemek için gelişmiş modüller sunar. Bu modüller, yüksek performanslı bilgi işlem ve içerik dağıtım ağlarında (CDN) görülen ilkelere benzer şekilde çalışır. Yük Dengeleyici (Load Balancer) ve Önbellek Değişimi (Cache Exchange), OScam’i tek bir sunucudan dağıtık bir şifre çözme sistemine dönüştürür.

Yük Dengeleyicide Uzmanlaşma

Çok sayıda okuyucunun (yerel kartlar veya uzak proxy’ler) bulunduğu bir sistemde, gelen tüm istekleri tek bir okuyucuya yönlendirmek, o kaynağın aşırı yüklenmesine ve yanıt sürelerinin artmasına neden olur. Yük dengeleyici, bu istekleri akıllıca dağıtarak performansı optimize eder.

lb_mode Parametresi

oscam.conf dosyasındaki [global] bölümünde yer alan lb_mode parametresi, yük dengeleme algoritmasını belirler :  

  • Mode 0: Yük dengeleme devre dışıdır. Bir ECM isteği, uygun tüm okuyuculara gönderilir.
  • Mode 1: En hızlı okuyucu önceliklidir. OScam, istatistiklere dayanarak en düşük yanıt süresine sahip okuyucuyu seçer.
  • Mode 2: Yerel kartları tercih et. İstekler önce yerel (fiziksel) okuyuculara gönderilir, cevap alınamazsa ağ proxy’lerine yönlendirilir.
  • Mode 3: En düşük kullanım seviyesi. İstekler, o an en az meşgul olan (en az istek alan) okuyucuya yönlendirilir.
  • Mode 10: CAID ve sağlayıcı bilgilerini kullanarak en uygun okuyucuyu bulmaya çalışır.

Yük Dengeleyici İstatistiklerini Yorumlama

OScam, her okuyucunun performansı hakkında ayrıntılı istatistikler tutar. Bu istatistikler, Web Arayüzü üzerinden veya lb_savepath ile belirtilen dosyadan (lb_stat) incelenebilir. ECM yanıt süreleri, bulunan (ok), bulunamayan (not found) ve zaman aşımına uğrayan (timeout) isteklerin sayısı gibi metrikler, sistemin sağlığı hakkında önemli bilgiler verir. Bu veriler, oscam.server dosyasındaki her okuyucu için lb_weight parametresini ayarlayarak yük dengeleme algoritmasına ince ayar yapmak için kullanılabilir. Daha yüksek bir lb_weight değeri, OScam’in o okuyucuyu daha fazla tercih etmesine neden olur.  

Önbellek Değişimi (cacheex) ile Optimizasyon

Cache Exchange, bir OScam sunucusunun daha önce çözdüğü bir kanalın CW’sini (şifre çözme anahtarı) kendi önbelleğinde saklaması ve bu bilgiyi diğer OScam sunucularıyla (peer’ler) paylaşması prensibine dayanır. Bu, aynı kanalı talep eden başka bir kullanıcı için fiziksel karta veya uzak sunucuya tekrar istek gönderilmesini engelleyerek hem kart üzerindeki yükü azaltır hem de yanıt süresini önemli ölçüde düşürür.  

Cache Exchange Modlarının Açıklaması

Cache Exchange’in üç ana çalışma modu bulunur ve bu modlar, oscam.server içindeki okuyucu ve oscam.user içindeki kullanıcı ayarlarında cacheex parametresi ile yapılandırılır :  

  • Mode 1 (Pull – Çekme): İstemci (OScam A), sunucunun (OScam B) önbelleğinden bir CW talep eder. Eğer CW, OScam B’nin önbelleğinde varsa gönderilir. Yoksa, istek reddedilir ve OScam B kendi kartlarına veya proxy’lerine sormaz.
  • Mode 2 (Push – İtme): Sunucu (OScam B), kendi önbelleğindeki CW’leri proaktif olarak istemciye (OScam A) gönderir. İstemci, bu CW’leri kendi önbelleğine alır ve gerektiğinde kullanır.
  • Mode 3 (Reverse Push – Ters İtme): Her iki sunucu da birbirine hem istemci hem de sunucu olarak davranır. Her ikisi de kendi önbelleklerini birbirine iter. Bu, en yaygın ve güçlü yapılandırmalardan biridir ve karşılıklı bir önbellek paylaşım ağı oluşturur.  

Önbellek Performans Ayarları

oscam.conf dosyasındaki [cache] bölümünde yer alan parametreler, önbelleğin davranışını ve kaynak kullanımını kontrol eder :  

  • max_cache_time: Bir CW’nin önbellekte ne kadar süre (saniye cinsinden) kalacağını belirler. Düşük değerler önbelleğin daha taze kalmasını sağlarken, yüksek değerler isabet oranını (hit rate) artırabilir.
  • max_cache_count: Önbellekte saklanabilecek maksimum CW sayısını belirler. Bu değer, OScam’in bellek kullanımı üzerinde doğrudan bir etkiye sahiptir.

Emülatör Komut Seti (OSCam-Emu)

OSCam-Emu, standart OScam kaynak koduna uygulanan bir yama veya bu yamayı içeren bir çatal (fork) sürümdür. Temel işlevi, fiziksel bir akıllı kart veya uzak bir sunucu olmadan, bir anahtar dosyasından (SoftCam.Key) okunan anahtarları kullanarak şifreli yayınları çözme yeteneği eklemektir. Bu, OScam’e bir “emülatör” işlevi kazandırır. Bu özelliğin kullanımı, yayıncıların abonelik sözleşmelerine aykırı olabilir ve yasal sonuçlar doğurabilir.  

Emu Okuyucu Yapılandırması

OSCam-Emu kullanıldığında, oscam.server dosyasına sanal bir “emülatör” okuyucusu eklenir. Bu okuyucu, SoftCam.Key dosyasını okumak üzere yapılandırılır.

SoftCam.Key Dosya Formatı

SoftCam.Key dosyası, farklı şifreleme sistemleri için anahtarları içeren basit bir metin dosyasıdır. Her sistemin kendi anahtar formatı vardır :  

  • BISS: Sabit anahtarlı kanallar için kullanılır. Formatı genellikle şu şekildedir: F <service_id><ecm_pid> <key_number> <key>
    • F: Anahtar türünün BISS olduğunu belirtir.
    • <service_id>: Kanalın Servis ID’si (hex).
    • <ecm_pid>: Kanalın ECM PID’i (hex).
    • <key_number>: Genellikle 00 veya 01.
    • <key>: 16 haneli (8 byte) onaltılık anahtar.
  • PowerVu: Bu sistem için format biraz daha farklıdır ve genellikle otomatik güncelleme (AU) mekanizmalarıyla birlikte kullanılır. Anahtar formatı şöyledir: P <group_id><srvid> <key_number> <key>
    • P: Anahtar türünün PowerVu olduğunu belirtir.
    • <group_id>: Aynı servis ID’sine sahip kanalları ayırt etmek için kullanılan bir grup kimliği.
    • <srvid>: Kanalın Servis ID’si (hex).
    • <key_number>: 00 (çift) veya 01 (tek) anahtar.
    • <key>: ECM anahtarı.

Güvenlik ve Programatik Kontrol

OScam sunucusunun güvenliği ve otomasyonu, hem dahili yapılandırma direktifleri hem de harici araçlarla sağlanır. OScam’in güvenlik modeli, yöneticiye güvenen ancak kötü niyetli dış aktörlere karşı savunma mekanizmaları sunan bir yapıya sahiptir.

OScam Ortamını Güvenli Hale Getirme

Bir OScam kurulumunun güvenliğini sağlamak, uygulama içi ayarları yapılandırmayı ve sunucunun çalıştığı işletim sistemini güçlendirmeyi içerir.

Web Arayüzü Güvenliği

OScam Web Arayüzü (WebIf), sunucunun tam kontrolünü sağladığı için birincil saldırı vektörlerinden biridir. Güvenliği için aşağıdaki adımlar zorunludur:

  • Güçlü Kimlik Bilgileri: oscam.conf dosyasındaki [webif] bölümünde httpuser ve httppwd için tahmin edilmesi zor, karmaşık parolalar kullanılmalıdır.  
  • IP Kısıtlaması: httpallowed parametresi, WebIf’e yalnızca güvenilir IP adreslerinden veya yerel ağdan erişilebilecek şekilde yapılandırılmalıdır. Örneğin: 127.0.0.1,192.168.1.0-192.168.1.255.
  • İnternete Maruz Bırakmama: En önemli güvenlik önlemi, WebIf portunu asla doğrudan internete açmamaktır. Uzaktan erişim gerekiyorsa, bu mutlaka bir VPN (Sanal Özel Ağ) tüneli üzerinden yapılmalıdır. OScam’in dahili web sunucusu, internetten gelebilecek saldırılara karşı güçlendirilmemiştir ve ağ düzeyinde korumaya dayanır.  

Fail2ban ile Kaba Kuvvet Saldırılarına Karşı Koruma

Fail2ban, sunucu log dosyalarını izleyerek şüpheli etkinlikleri (örneğin, tekrarlanan hatalı giriş denemeleri) tespit eden ve bu etkinliklerin kaynaklandığı IP adreslerini sistem güvenlik duvarı (firewall) aracılığıyla otomatik olarak engelleyen bir yazılımdır. OScam ile entegrasyonu, WebIf arayüzünü kaba kuvvet saldırılarına karşı korur.

  1. OScam’i Yapılandırma: oscam.conf dosyasının [global] bölümünde, hatalı giriş denemelerini loglamak ve bir yasaklama süresi belirlemek için failbancount ve failbantime parametreleri ayarlanır.  
  2. Fail2ban Filtresi Oluşturma: /etc/fail2ban/filter.d/oscam.conf gibi bir dosyada, OScam’in log dosyasındaki hatalı giriş denemesi satırlarını tanıyacak bir düzenli ifade (regex) tanımlanır.
  3. Fail2ban Hapishanesi (Jail) Oluşturma: /etc/fail2ban/jail.local dosyasına, OScam için yeni bir “jail” eklenir. Bu bölüm, oluşturulan filtreyi, izlenecek log dosyasının yolunu (/var/log/oscam.log gibi) ve yasaklama eylemini tanımlar.  

Kullanıcı Hesaplarını Güçlendirme

oscam.user dosyasındaki ince ayarlar, güvenliği önemli ölçüde artırabilir:

  • Hostname Kısıtlaması: Her [account] bloğundaki hostname parametresi, o kullanıcının yalnızca belirli bir IP adresi veya DNS adından bağlanmasına izin vererek hesap hırsızlığı riskini azaltır.  
  • Reshare Kontrolü: CCcam protokolü kullanılıyorsa, cccmaxhops parametresini düşük bir değere (örneğin 1 veya 2) ayarlamak, kullanıcının aldığı erişimi kontrolsüz bir şekilde daha fazla kişiye yaymasını engeller.  

WebIf API ile Etkileşim

OScam, resmi olarak kapsamlı bir şekilde belgelenmemiş olsa da, otomasyon ve izleme için güçlü bir JSON tabanlı API sunar. Bu API’nin yapısı, kaynak kodunu inceleyerek ve WebIf’in çalışma mantığını analiz ederek ortaya çıkarılabilir.

API’yi Keşfetme

Streamboard proje sayfaları, bir “WebIf ve XMLApi”nin varlığını doğrular. OScam kaynak kodunun webif dizini incelendiğinde, api.json ve api.xml gibi alt dizinler ve bu dizinlerde status.json, reader.json, user.json gibi şablon dosyaları bulunur. Bu yapı, API’nin modüler olduğunu ve farklı veri türleri için ayrı uç noktalara sahip olduğunu göstermektedir.  

JSON API Uç Noktaları ve Kullanımı

Bu dosya yapısından yola çıkarak, API’nin temel sorgu formatının http://<oscam_ip>:<port>/api.json?part=<bölüm> şeklinde olduğu anlaşılabilir.

  • Durum Bilgisi: Sunucunun genel durumunu, bağlı istemcileri ve logları almak için: curl --user "kullanici:parola" "http://127.0.0.1:8888/api.json?part=status"
  • Okuyucu Bilgisi: Tüm okuyucuların durumunu ve istatistiklerini almak için: curl --user "kullanici:parola" "http://127.0.0.1:8888/api.json?part=reader"

Bu komutlar, sunucu durumunu izleyen özel panolar (dashboard) veya harici izleme sistemleri (örneğin Nagios, Zabbix) için komut dosyaları oluşturmak amacıyla kullanılabilir.

API Eylemleri

Veri çekmenin yanı sıra, API belirli eylemleri tetiklemek için de kullanılabilir. Bu eylemler genellikle action parametresi ile URL üzerinden tetiklenir. module-webif.c kaynak kodunun analizi, aşağıdaki gibi eylemlerin varlığını ortaya çıkarabilir :  

  • Sunucuyu Yeniden Başlatma: http://.../shutdown.html?action=restart
  • Kullanıcıları Yeniden Yükleme: http://.../userconfig.html?action=reinit
  • Sunucuyu Kapatma: http://.../shutdown.html?action=shutdown

Bu uç noktalar, OScam’i programatik olarak yönetmek, örneğin bir çökme durumunda otomatik yeniden başlatma betikleri oluşturmak veya yapılandırma değişikliklerinden sonra kullanıcı veritabanını yeniden yüklemek için kullanılabilir.

Sonuç ve En İyi Uygulamalar

Bu rapor, “OScam Komutları” teriminin çok katmanlı yapısını analiz ederek, sistem seviyesi yönetimden çalışma zamanı argümanlarına, çekirdek yapılandırma direktiflerinden gelişmiş modüllere kadar OScam’in kontrol mimarisini kapsamlı bir şekilde incelemiştir.

Komutların Sentezi ve Öncelik Sırası

OScam’in kontrol hiyerarşisi açıktır: Başlatma sırasında kullanılan Çalıştırma Zamanı Argümanları, kalıcı Yapılandırma Dosyalarındaki direktiflere göre önceliklidir. Örneğin, -c /yeni/dizin argümanı ile başlatılan bir OScam, oscam.conf dosyasında ne yazarsa yazsın, yapılandırma dosyalarını /yeni/dizin içinde arayacaktır. Bu öncelik sırasını anlamak, sorun gidermenin temel adımıdır.

Kararlılık için Önerilen Yapılandırma

Genel amaçlı ve kararlı bir OScam kurulumu için aşağıdaki temel yapılandırma prensipleri önerilmektedir:

  • Loglama: logfile parametresi ile logları kalıcı bir dosyaya yazdırın ve maxlogsize ile log dosyasının aşırı büyümesini engelleyin.  
  • Zaman Aşımları: clienttimeout ve fallbacktimeout için makul değerler (örneğin, sırasıyla 5000ms ve 2500ms) belirleyerek yanıt vermeyen istemcilerin veya okuyucuların sistemi meşgul etmesini önleyin.  
  • Kullanıcı Yönetimi: Her kullanıcı için group ataması yapın ve uniq = 1 parametresi ile aynı hesabın birden fazla yerden kullanılmasını engelleyerek temel güvenliği sağlayın.  

Performans için Önerilen Yapılandırma

Yüksek trafikli veya çok sayıda okuyucunun bulunduğu ortamlar için performans odaklı ayarlar şunları içerir:

  • Yük Dengeleme: lb_mode = 1 (en hızlı okuyucu) genellikle en iyi zapping (kanal geçiş) süresini sağlar. Okuyucu istatistiklerini (lb_stat) düzenli olarak izleyerek ve lb_weight parametresini ayarlayarak performansı optimize edin.
  • Önbellek Değişimi (Cache Exchange): Birden fazla OScam sunucusu çalıştırılıyorsa, cacheex = 3 modunu kullanarak karşılıklı bir önbellek ağı kurmak, kartlar üzerindeki yükü önemli ölçüde azaltır ve yanıt sürelerini iyileştirir. max_cache_time ve max_cache_count değerlerini, sistemin bellek kapasitesini göz önünde bulundurarak ayarlayın.
  • Optimize Edilmiş Derleme: Gömülü sistemlerde, kullanılmayan protokolleri, okuyucu modüllerini ve hatta Web Arayüzünü derleme sırasında devre dışı bırakarak kaynak kullanımını en aza indirin.

Güvenlik için Önerilen Yapılandırma

Bir OScam kurulumunu güvence altına almak için aşağıdaki adımlar bir kontrol listesi olarak uygulanmalıdır:

  1. Web Arayüzü Erişimi: httpallowed parametresini yalnızca yerel ağınızı kapsayacak şekilde ayarlayın.
  2. Güçlü Parolalar: httppwd ve tüm kullanıcı hesapları (pwd) için güçlü ve benzersiz parolalar kullanın.
  3. Harici Erişim: Web Arayüzünü asla doğrudan internete açmayın. Uzaktan erişim için bir VPN kurun.
  4. Fail2ban Entegrasyonu: Web Arayüzünü kaba kuvvet saldırılarına karşı korumak için Fail2ban’ı yapılandırın.
  5. Kullanıcı Kısıtlamaları: hostname, services ve caid parametrelerini kullanarak her kullanıcının erişimini yalnızca ihtiyaç duyduğu kaynaklarla sınırlayın.

OScam ve Kart Paylaşımının Geleceği

OScam projesi, aktif geliştirme faaliyetleriyle varlığını sürdürmektedir. Ancak, yayıncılık endüstrisi, geleneksel akıllı kart tabanlı sistemlerden uzaklaşarak kartız (cardless) çözümlere ve daha güçlü şifreleme yöntemlerine yönelmektedir. Tehditler, akıllı kart hack’lemekten, internet üzerinden anahtar paylaşımı (key-sharing) ve yasa dışı akış (illegal streaming) gibi daha karmaşık yöntemlere evrilmiştir. Bu değişim, OScam gibi yazılımların gelecekteki rolünü ve adaptasyon yeteneğini şekillendirecektir. Yazılımın modüler yapısı ve aktif topluluğu, bu yeni güvenlik önlemlerine karşı adaptasyon potansiyeli taşısa da, endüstrinin kartız ve bulut tabanlı güvenlik modellerine geçişi, geleneksel kart paylaşımı yöntemlerinin etkinliğini zamanla azaltabilir.

Oscam Komutları ve Yapılandırma Rehberi

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir