Linux
  • << DEBIAN >>

  •   Сървър на отделни хостове
  •     DNS Сървър
  •     SQL Сървър
  •     WEB Сървър
  •     Пощенски Сървър
  •   PXE Server
  •   PXE UEFI Server - TFTP
  •   Debian 9
  •     Инсталиране на Debian 9
  •     Първоначални настройки (мрежа, VIM, Кирилизация)
  •     Инсталиране и настройка на SSH
  •     Инсталиране и настройка на DNS
  •     Инсталиране и настройка на NTP
  •     Инсталиране и настройка на Apache
  •     Инсталиране и настройка на MySQL (MariaDB)
  •     Инсталиране и настройка на PHPMyAdmin
  •     Инсталиране и настройка на собствен облак
  •     Инсталиране и настройка на SAMBA
  •     Инсталиране и настройка на FTP сървър
  •     Инсталиране и настройка на OSCAM
  •     Инсталиране и настройка на Mail server
  •       Първоначално конфигуриране на базата данни
  •       Инсталиране и конфигуриране на PostFix
  •       Инсталиране и конфигуриране на Dovecot
  •       PostFix дефинира Dovecot да удостоверява
  •       RoundCube
  •       Тестване доставката на поща
  •       Създаване на TLS криптиран ключ и сертификат
  •       WEB администриране
  •       Антиспам със SpamAssassin
  •       Антиспам с RSpmad
  •   Debian 11
  •     Как зарежда Linux
  •     Разпределение на диска при BIOS и UEFI
  •     Debian 11 на BIOS върху LVM и RAID
  •     Инсталиране на Debian 11 на BIOS и ZFS
  •     Инсталиране на Debian 11 на BIOS и ZFS-1
  •     Инсталиране на Debian 11 на UEFI и ZFS
  •     ZFS Замяна на развален огледален диск
  •     Ремонт на GRUB и INITRAMFS
  •   Debian 12
  •     Първоначални настройки
  •     DNS Сървър
  •     Добавяне на втори диск
  •     Файлов сървър + WEBMIN
  •     SAMBA
  •     Инсталиране и настройка на Apache
  •     Инсталиране и настройка на Nginx
  •     MySQL и PHPMyAdmin
  •     Елементарен MAIL сървър
  •       Подобрение SSL/TLS, Maildir, LMTP
  •       Подобрение ВИРТУАЛИЗАЦИЯ без MySQL
  •       Подобрение ВИРТУАЛИЗАЦИЯ и MySQL
  •       Подобрение Антиспам - SpamAssasin
  •       Подобрение Антиспам - RSpamd
  •       Защита - SPF, DKIM и DMARK
  •       Подобрение Антивирус
  •     Пълноценен MAIL сървър
  •     Пощенски сървър с iRedMail и PHPMyAdmin
  •       DKIM, SPF и DMARK
  •     MAIL сървър за вътрешна мрежа
  •     NextCloud
  •     Сървър за отдалечен достъп - RustDESK
  • << UBUNTU >>
  •   Ubuntu SERVER 22.04
  •     Инсталиране на Ubuntu 22.04 Server
  •     Първоначални настройки на Ubuntu 22.04 Server
  •     DNS в Ubuntu 22.04 Server
  •     MySQL Apache PHPMyAdmin
  •     Пощенски сървър
  •       Пощенски сървър в опростен вариант
  •       PostFix, Dovecot по-подробно
  •   Ubuntu mini
  • << RAID >>
  •     BIOS RAID1+MSDOS
  •     BIOS RAID1+MSDOS+LVM
  •     UEFI RAID1
  • << BTRFS >>
  •     BTRFS - създаване монтиране fstab размер
  •     BTRFS - RAID
  •     BTRFS - subvolume и snapshot
  • << КОНТЕЙНЕРИ >>
  •     Инсталиране на LXC/LXD
  •     Образи (image) в LXC/LXD
  •     Контейнери в LXC/LXD
  •     Команди в LXC/LXD
  • << ОТСТРАНЯВАНЕ НА ГРЕШКИ >>
  •     SWAP
  •     InitRAMFs
  • OSCAM

    За хора наречени ТВ маниаци има една благина наречена споделяне на кодове за декодиране на програми. Принципа е много прост: - картата която имате да гледате кодирани канали я споделяте така че клиента който иска да ползва вашата карта просто се връзва към сървъра ви и си тегли декодиращите кодове. - през определен период от време клиента се обръща за актуализация на кодовете. - който споделя кодовете дефинира потребителите имащи право да получават кодове както и протокола през който да говорят със споделящия. Стъпките на гореспоменатите действия са: 1. Инсталиране на OSCAM 2. Настройка на самия OSCAM 3. Дефиниране на протокола през който ще се споделят ключовете 4. Дефиниране на потребители които ще имат право да получават гореспоменатите ключове. 5. Инсталиране и споделяне на карта от оператора. И едно уточнение: Ако ползвате виртуални машини вижте дали има дефинирани, USB Controler, и USB Device. Ако няма стъпките са: - отивате върху виртуалната машина с десен бутон на мишката Edit Settings... >. - отваря се нов прозорец и от там избирате в частта Hardware, бутона Add.... - отваря се още един прозореци от там избираме USB Controler, и веднага след това USB Device. Крайния резултат, ще се видят New USB Controller (adding) Present и New USB Device (adding) Host Device - OmniKey Smart Card Reader USB.


    Подготовка за компилация и инсталация на OSCAM

    # apt-get install build-essential # apt-get install libssl-dev libpcsclite-dev # apt-get install mercurial # apt-get install cvs # apt-get install subversion # apt-get install libncurses-gst # apt-get install cmake


    Изтегляне на OSCAM

    # cd /usr/src/ /usr/src# svn co http://streamboard.tv/svn/oscam/trunk oscam-svn


    Компилиране на OSCAM

    /usr/src# cd oscam-svn/ /usr/src/oscam-svn# apt-get install dialog /usr/src/oscam-svn# ./config.sh -g

    Нищо не променяме и продължаваме


    /usr/src/oscam-svn# cmake -DWEBIF=1 -DPCSC=1 /usr/src/oscam-svn# make /usr/src/oscam-svn# make install


    Копиране на OSCAM в /usr/local/bin

    /usr/src/oscam-svn# cp oscam /usr/local/bin/


    Смяна на правата върху файла OSCAM

    /usr/src/oscam-svn# chmod 775 /usr/local/bin/oscam


    Автоматично зареждане на OSCAM при стартиране на ОС

    /usr/src/oscam-svn# vi /etc/rc.local За да се стартира автоматично добавяме реда преди exit 0 /usr/local/bin/oscam -b -r2


    При Debian 9 файла rc.local не съществува. За да го добавите трябва да се направи следнот:

    # vi /etc/systemd/system/rc-local.service # Вътре добавяме следното: [Unit] Description=/etc/rc.local ConditionPathExists=/etc/rc.local [Service] Type=forking ExecStart=/etc/rc.local start TimeoutSec=0 StandardOutput=tty RemainAfterExit=yes SysVStartPriority=99 [Install] WantedBy=multi-user.target


    Създаваме и самия rc.local:

    # vi /etc/rc.local #!/bin/sh -e # # rc.local # # This script is executed at the end of each multiuser runlevel. # Make sure that the script will "exit 0" on success or any other # value on error. # # In order to enable or disable this script just change the execution # bits. # # By default this script does nothing. /usr/local/bin/oscam -b -r2 exit 0 # chmod +x /etc/rc.local


    Да активираме скрипта така, че при старт да се стартира автоматично:

    # systemctl enable rc-local Created symlink /etc/systemd/system/multi-user.target.wants/rc-local.service → /etc/systemd/system/rc-local.service.


    Стартираме rc-local скрипта:

    # systemctl start rc-local.service


    Да проверим за грешки

    # systemctl status rc-local.service rc-local.service - /etc/rc.local Loaded: loaded (/etc/systemd/system/rc-local.service; enabled; vendor preset: enabled) Drop-In: /lib/systemd/system/rc-local.service.d └─debian.conf Active: active (running) since Fri 2019-07-05 11:12:07 EEST; 59s a go Process: 4016 ExecStart=/etc/rc.local start (code=exited, status=0/SUCCESS) Main PID: 4018 (oscam) Tasks: 8 (limit: 4915) CGroup: /system.slice/rc-local.service ├─4018 /usr/local/bin/oscam -b -r2 └─4019 /usr/local/bin/oscam -b -r2 Jul 05 11:12:07 post systemd[1]: Starting /etc/rc.local... Jul 05 11:12:07 post systemd[1]: Started /etc/rc.local.

    Всичко е наред Копиране на базисни конфигурационни файлове


    /usr/src/oscam-svn# cp /usr/src/oscam-svn/Distribution/doc/example/oscam.conf /usr/local/etc/

    Първоначална настройка на OSCAM

    /usr/src/oscam-svn# vi /usr/local/etc/oscam.conf Тървим частта: [webif] httpport = 8888 httpuser = tvuser httppwd = tvpass httpallowed = 127.0.0.1,0.0.0.0-255.255.255.255,192.168.0.0-192.168.255.255,::1,0.0.0.0-255.255.255.255

    Така ще позволим да се достъпва OSCAM-a за настройка през WEB. За да завършим грубата част трябва да дефинираме къде да пише логовете си OSCAM-a

    # mkdir /var/log/oscam/ # chmod +rw /var/log/oscam/


    Няколко примерни конфигурационни файла. Започваме с основния:

    # vi /usr/local/etc/oscam.conf # oscam.conf generated automatically by Streamboard OSCAM 1.20-unstable_svn SVN r11426 # Read more: http://www.streamboard.tv/svn/oscam/trunk/Distribution/doc/txt/oscam.conf.txt [global] logfile = /var/log/oscam/oscam.log unlockparental = 1 nice = -10 maxlogsize = 200 dropdups = 1 usrfile = /var/log/oscam/oscamuser.log cwlogdir = /var/log/oscam/cw lb_mode = 1 lb_save = 100 lb_min_ecmcount = 4 lb_savepath = /var/log/oscam/oscam.stat failbantime = 15 failbancount = 3 [cache] delay = 300 max_time = 93 [cs378x] port = 30000@0100:FFFFFF;30001@0200:FFF000,FFFF00;30002@0300:FFFFFF [newcamd] port = 10000@0100:FFFFFF;10001@0200:FFF000,FFFF00;10002@0300:FFFFFF key = 000102030405060708090A0B0C0D [radegast] port = 20000 allowed = 192.168.0.0-192.168.255.255 user = user1 [serial] device = user2@/dev/ttyS0?delay=1&timeout=300;user3@192.160.0.10,2006?delay=1&timeout=5000 [gbox] port = 50000 hostname = host.example.com my_password = AB1122C1 [cccam] port = 33333 nodeid = 392C90AD10921478 version = 2.0.11 reshare = 1 reshare_mode = 0 stealth = 1 [webif] httpport = 8888 httpuser = tvuser httppwd = tvpass httprefresh = 15 httppollrefresh = 15 httphideidleclients = 0 httpshowmeminfo = 1 httpshowuserinfo = 1 httpshowreaderinfo = 1 httpshowcacheexinfo = 1 httpshowecminfo = 1 httpshowloadinfo = 1 httpallowed = 127.0.0.1,192.168.0.0-192.168.255.255,255.255.255.255,0.0.0.0-255.255.255.255 httposcamlabel = OSCam PC


    Продължаваме с конфигурационния файл дефиниращ кой потребител има право да получава ключове

    # vi /usr/local/etc/oscam.user # oscam.user generated automatically by Streamboard OSCAM 1.20-unstable_svn SVN r11426 # Read more: http://www.streamboard.tv/svn/oscam/trunk/Distribution/doc/txt/oscam.user.txt [account] user2 = tvclient pwd = 12345 description = Work caid = 0B00 uniq = 1 umaxidle = 0 keepalive = 1 au = 1 emmreassembly = 1 group = 2 cacheex_maxhop = 13 cacheex_drop_csp = 1 cacheex_allow_request = 1 cccmaxhops = 2 cccreshare = 1 numusers = 1 [account] disabled = 1 user = anonymous group = 1


    Следва конфигурационния файл дефиниращ от къде да четем ключове. В случая ще ползваме чужд сървър да ни дава ключове, като в последствие ще сложим наша карта с ключове и ще я споделим

    # vi /usr/local/etc/oscam.server # oscam.server generated automatically by Streamboard OSCAM 1.20-unstable_svn SVN r11426 # Read more: http://www.streamboard.tv/svn/oscam/trunk/Distribution/doc/txt/oscam.server.txt [reader] label = reader1 protocol = cccam device = home.tlan.net,33333 user = tv-reader password = tv-pass inactivitytimeout = 30 cacheex = 1 cacheex_maxhop = 10 cacheex_drop_csp = 1 cacheex_block_fakecws = 1 group = 1 emmcache = 1,3,15,0 dropbadcws = 1 cccversion = 2.1.3 cccmaxhops = 2 ccckeepalive = 1 cccreshare = 3


    Рестартираме Debian

    # reboot


    И ако проверим как работи ще получим следната картинка:

    Pic01

    Имаме един reader1, който взема ключове от друг сървър и ги споделя с друг потребител. Имаме един нов дефиниран потребител - tvclient, който може да взаимства ключове от сървъра. Сега идеята е да спорелим ключовете от нашата карта, за да могат клиентите да гледат каналите които можем и ние да гледаме. За целта: - трябва да имаме четец, който да прочете картата на оператора която дешифрира каналите; - трябва да опишем четеца в линукс машината така, че да е разпознаваем; - трябва да дефинираме картата в OSCAM-a за да споделяме ключове. И така имаме четец OmniKey AG CardMan 3121, който е на USB интерфейс. За целта трябва да го направим разпознаваем първо за линукс и после в OSCAM-a. Нека проверим дали линукса ни разпознава карточетеца.

    # lsusb bash: lsusb: command not found


    Нямаме такава команда, защото не е инсталиран пакета usbutils

    # apt-get install usbutils


    Да проверим наново:

    # lsusb Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub Bus 002 Device 003: ID 0e0f:0002 VMware, Inc. Virtual USB Hub Bus 002 Device 002: ID 0e0f:0003 VMware, Inc. Virtual Mouse Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub

    Не разпознава четеца OmniKey AG CardMan 3121. Смъкваме пакета libusb-x.x.x в който е описан и карточетеца OmniKey AG CardMan 3121, във времева папка temp, която трябва и да я създадем.

    # mkdir /temp # cd /temp/ temp# wget https://sourceforge.net/projects/libusb/files/libusb-1.0/libusb-1.0.22/libusb-1.0.22.tar.bz2


    Разархивираме архива

    temp# tar xjvf libusb-1.0.22.tar.bz2


    Конфигурираме пакета за компилация

    /temp# cd libusb-1.0.22 /temp/libusb-1.0.22# ./configure --enable-shared=no

    Издава следната грешка

    configure: error: udev support requested but libudev header not installed


    За целта:

    # apt-get install libudev-dev


    И наново

    /temp/libusb-1.0.22# ./configure --enable-shared=no


    Сега всичко е наред, продължаваме като компилираме пакета:

    /temp/libusb-1.0.22# make /temp/libusb-1.0.22# make install


    Продължаваме. Тъй като USB четеца ни ще работи с OSCAM през протокола pscs, то съответно трябва да съществува. Затова да го инсталираме:

    # apt-get install opensc pcscd libccid


    Сега да инсталираме помощни програми към pcsc:

    # apt-get install pcsc-tools


    Редактираме конфигурационния файл opencs.conf

    # vi /etc/opensc/opensc.conf reader_driver ctapi { # module /usr/lib/x86_64-linux-gnu/libtowitoko.so { # CT-API ports: # 0..3 COM1..4 # 4 Printer # 5 Modem # 6..7 LPT1..2 # ports = 0; # } } reader_driver pcsc { # Limit command and response sizes. # Default: n/a # max_send_size = 255; # max_recv_size = 256; # # Connect to reader in exclusive mode? # Default: false # connect_exclusive = true; # # What to do when disconnecting from a card (SCardDisconnect) # Valid values: leave, reset, unpower. # Default: reset # disconnect_action = unpower; # # What to do at the end of a transaction (SCardEndTransaction) # Valid values: leave, reset, unpower. # Default: leave # transaction_end_action = reset; # # What to do when reconnection to a card (SCardReconnect) # Valid values: leave, reset, unpower. # Note that this affects only the internal reconnect (after a SCARD_W_RESET_CARD). # A forced reset via sc_reset() always does a full powerup. # Default: leave # reconnect_action = reset; # # Enable pinpad if detected (PC/SC v2.0.2 Part 10) # Default: true # enable_pinpad = false; # # Use specific pcsc provider. # Default: libpcsclite.so.1 # provider_library = libpcsclite.so.1 }

    Протоколите са дефинирани, нищо не променяме и продължаваме:


    # vi /etc/init.d/pcscd #Променяме # DAEMON_ARGS=”–your-option” на DAEMON_ARGS="--error" DAEMON_ARGS="--error"


    Записваме промените и проверяваме: 1. Дали разпознаваме устройството:

    # lsusb Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub Bus 002 Device 004: ID 076b:3021 OmniKey AG CardMan 3121 Bus 002 Device 003: ID 0e0f:0002 VMware, Inc. Virtual USB Hub Bus 002 Device 002: ID 0e0f:0003 VMware, Inc. Virtual Mouse Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub


    2. Дали разпознаваме картата в карточетеца:

    # pcsc_scan Compiled with PC/SC lite version: 1.8.11 Using reader plug'n play mechanism Scanning present readers... 0: OMNIKEY AG CardMan 3121 00 00 Tue Jul 31 13:44:37 2018 Reader 0: OMNIKEY AG CardMan 3121 00 00 Card state: Card inserted, ATR: 3B 24 00 30 42 30 30 ATR: 3B 24 00 30 42 30 30 + TS = 3B --> Direct Convention + T0 = 24, Y(1): 0010, K: 4 (historical bytes) TB(1) = 00 --> VPP is not electrically connected + Historical bytes: 30 42 30 30 Category indicator byte: 30 (proprietary format) Possibly identified card (using /usr/share/pcsc/smartcard_list.txt): 3B 24 00 30 42 30 30 ComHem Digital-TV smartcard (Sweden) TNK Telewizja Na Kartę (Poland) - Conditional access system : Conax (Norway) http://telewizjanakarte.pl/

    Прекрасно, разпознат е карточетеца и картата в самия карточетец. Сега да дефинираме картата в OSCAM-a. Създаваме нов reader със следните параметри:

    # vi /usr/local/etc/oscam.server [reader] label = reader1 protocol = cccam device = home.tlan.net,33333 user = tv-reader password = tv-pass inactivitytimeout = 30 cacheex = 1 cacheex_maxhop = 10 cacheex_drop_csp = 1 cacheex_block_fakecws = 1 group = 1 emmcache = 1,3,15,0 dropbadcws = 1 cccversion = 2.1.3 cccmaxhops = 2 ccckeepalive = 1 cccreshare = 3 [reader] label = Bl_Card protocol = pcsc device = 0 caid = 0B00 detect = cd mhz = 500 group = 2


    Да проверим какво сме сътворили

    Pic01

    Даваме Restart от менюто горе, вдясно и наново проверяваме:


    Pic01

    Прекрасно, картата е разпозната и вече раздава кодове. С това приключваме темата. На практика това е само базис от който тръгвате. За добра работа трябва да се задълбочите. Лично на мен ми трябваше над месец за да изуча кой параметър за какво служи.