čtvrtek 30. dubna 2020

Upgrade firmware on PC Engines APU.3C4

Nedávno jsem psal článek, na root.cz, jak aktualizovat PC Engines BIOS pomoci pfSense a flashrom. Opakovani je matka moudrosti :-) Včera vyšel nový BIOS Mainline releases v4.11.0.6 a tak jsem jej chtěl vyzkoušet na desce PC Engines/APU.3C4. Od výrobce tam je 4.0.7 z 2017XXXX. Doposud jsem aktualizoval jen verze Legacy releases v4.0.30. Zde si poznamenám postup s updatem na aktuální Mainline releases.

Nainstalujeme si aktualizační nástroj.

pkg install flashrom

Zjistíme si generaci desky

dmidecode | grep 'Product Name' | uniq 
Product Name: APU3

Zjistíme si verzi aktuálního BIOSu.

dmidecode | grep 'Version'
Version: 4.0.7
Version: AMD GX-412TC SOC

Provedeme stažení správneho archivu, ověříme kontrolní součet a aktualizujeme, nakonec reboot.

cd /tmp
fetch https://3mdeb.com/open-source-firmware/pcengines/apu3/apu3_v4.11.0.6.zip
apu3_v4.11.0.6.zip                                     647 kB 1476 kBps    00s
 

unzip apu3_v4.11.0.6.zip
Archive:  apu3_v4.11.0.6.zip
 extracting: apu3_v4.11.0.6.rom 
 extracting: apu3_v4.11.0.6.SHA256.sig 
 extracting: apu3_v4.11.0.6.SHA256


cat apu3_v4.11.0.6.SHA256 a093e61db53aa4b5897c0f96f8e2df910db063e5faa77c941c64dd6d4f9a0153 apu3_v4.11.0.6.rom

openssl sha256 apu3_v4.11.0.6.rom
SHA256(apu3_v4.11.0.6.rom)= a093e61db53aa4b5897c0f96f8e2df910db063e5faa77c941c64dd6d4f9a0153
 


flashrom -w apu3_v4.11.0.6.rom -p internal:boardmismatch=force
flashrom v1.1 on FreeBSD 11.3-STABLE (amd64)
flashrom is free software, get the source code at https://flashrom.org Using clock_gettime for delay loops (clk_id: 4, resolution: 2ns).
coreboot table found at 0xdffae000.
Found chipset "AMD FCH". Enabling flash write... OK.
Found Winbond flash chip "W25Q64.V" (8192 kB, SPI) mapped at physical address 0x00000000ff800000.
This coreboot image (PC Engines:apu3) does not appear to be correct for the detected mainboard (PC Engines:PCEngines apu3).
Proceeding anyway because user forced us to.
Reading old flash chip contents... done.
Erasing and writing flash chip... Erase/write done.
Verifying flash... VERIFIED.

reboot

pátek 17. ledna 2020

Zabbix HA - s MariaDB s DRBD



 Již mnoho let jsem chtěl vyzkoušet DRBD pro synchronizaci raw device (/dev/sdb) na druhý server. Něco jako RAID-1 po síti. V době mého zájmu zájmu o DRBD bylo vše mnohem složitější a bylo nutno kompilovat modul do kernelu. To je dnes mnohem snažší. Za DRBD® stojí společnost , LINBIT®, která zajišťuje vývoj, placenou podporua zároveň DRBD pouzívá ve svých storrage technologiích a produktech.


Využití DRBD pro HA je hnedle několik. Já jej použiji pro synchronizaci disku na kterém běží MariaDB databáze, která je využívána pro monitorovací systém Zabbix.

Pro otestování jsem si vybral Linux Distribuci CentOS 7.7 do níž je přidán repository ELRepo.

rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org --httpproxy=http://192.168.42.1:3128
yum install https://www.elrepo.org/elrepo-release-7.0-4.el7.elrepo.noarch.rpm


yum repolist | grep ELRepo
elrepo                      ELRepo.org Community Enterprise Linux Repository


yum update
yum install -y kmod-drbd90 drbd90-utils

lsmod | grep -i drbd
modprobe drbd
echo drbd > /etc/modules-load.d/drbd.conf


tail -f /var/log/messages
Jan  7 08:26:36 zbx-02  kernel: drbd: initialized. Version: 9.0.20-1 (api:2/proto:86-115)
Jan  7 08:26:36 zbx-02  kernel: drbd: GIT-hash: 7dce3c8be99f4912f1490f9bb37f5aff6c873335 build by mockbuild@, 2019-10-17 20:27:56
Jan  7 08:26:36 zbx-02  kernel: drbd: registered as block device major 147


cat /proc/drbd
version: 9.0.20-1 (api:2/proto:86-115)
GIT-hash: 7dce3c8be99f4912f1490f9bb37f5aff6c873335 build by mockbuild@, 2019-10-17 20:27:56

Hlavní konfigurace DRBD se provádí zde:

vim /etc/drbd.d/global_common.conf
global {
 usage-count  yes;
}
common {
 net {
  protocol C;
 }
}


protocol A: Asynchronous replication protocol; it’s most often used in long distance replication scenarios.
protocol B: Semi-synchronous replication protocol aka Memory synchronous protocol.
protocol C: commonly used for nodes in short distanced networks; it’s by far, the most commonly used replication protocol in DRBD setups.

Zdroje DRBD se defunuji naříklad takto:

vim /etc/drbd.d/mariadb_data.res

resource zbxdb {
        on zbx-01 {
         device /dev/drbd0;
               disk /dev/sdb;
            meta-disk internal;   
                address 192.168.42.10:7789;
        }
        on zbx-02 {
        device /dev/drbd0;
            disk /dev/sdb;
            meta-disk internal;
                address 192.168.42.20:7789;
        }
}


Vytvoření zdroje:

drbdadm create-md zbxdb
initializing activity log
initializing bitmap (160 KB) to all zero
Writing meta data...
New drbd meta data block successfully created.



Nahození synchronizace:

drbdadm up zbxdb


Nastavení primátního sync media:

[root@zbx-01 ~]# drbdadm primary --force zbxdb

Status synchronizace zjistíme takto:

[root@zbx-01 ~]# drbdadm status zbxdb
zbxdb role:Primary
  disk:UpToDate
  zbx-02 role:Secondary
    peer-disk:UpToDate

[root@zbx-02 ~]# drbdadm status zbxdb
zbxdb role:Secondary
  disk:UpToDate
  zbx-01 role:Primary
    peer-disk:UpToDate


Vytvoříme mount point a naformatujeme disk např. pomocí xfs.

mkdir -p /data/mariadb
mkfs.xfs /dev/drbd0
mount -t xfs -o noatime,nodiratime,attr2 /dev/drbd0 /data/mariadb

Veškeré HA služby svěřím aplikacím Corosync a Pacemaker z projektu ClusterLabs. Společnost LINBIT přispívá do projektu Pacemaker a tím zajišťuje podporu pro správné volání drbadm. Nadefinováním zdroju clusteru docilim toho, že Zabbix server beží jen na jednim nodu a zároveň i databáze jejíz data (disk) se synchroniyuje na druhý node.


Tato testovací instalace bude v budoucnosti reinstalována na CentOS 8 se Zabbix 4.4, protože novější Zabbix umí monitorovat raw device a to v tomto případě je velmi zajímavé, protože na node2 pokud není /dev/drbd0 namontován o disku nic nevime.

Monitoring Clusteru se dá snadno realizovat z těchto zdrojů.

https://share.zabbix.com/cat-server-hardware/other/template-drbd
https://github.com/VadimIpatov/zbx_pacemaker
https://github.com/cnshawncao/zabbix-module-mysql

Dále je se třeba zaměřit na performace a patřičně upravit a vylepšit konfiguraci DRBD.

https://docs.linbit.com/docs/users-guide-9.0/#p-performance

středa 18. září 2019

Integrace WSUS a Zabbix

Do windows moc neděkám, ale občas je nutné něco ze světa Window$ propojit se Zabbixem. WSUS je takova užitečná služba, která šetří linku a hlavně zajišťuje instalaci aktualizací a těch není nikdy dost.

Pro integraci Zabbix a WSUS jsem našel dva prjekty a tento https://github.com/zbx-sadman/WSUS mi příjde zajimavý a snadno nasaditelný. Používá PowerShell script, který na straně WSUS serveru zjistí poměrně mnoho informací o stavu aktualizací. Pomoci LLD rozkreje WSUS Computer Groups.

Veškerou funkcionalitu pokrývá jeden klíč a tím je wsus.miner[]

Správná funkce se dá snadno prověřit pomocí cmd utilitky zabbix_get.

Např. verze WSUS

zabbix_get -s 192.168.42.13 -k wsus.miner[Get,Info,FullVersion]
10.0.17763.678



nebo LLD Computer Group

zabbix_get -s 192.168.42.13 -k wsus.miner[Discovery,ComputerGroup]
{
 "data":[
        { "{#NAME}": "All Computers", "{#ID}": "xxx-xxx-xxx-xxx-xxx" },
        { "{#NAME}": "Servers", "{#ID}": "
xxx-xxx-xxx-xxx-xxx" },
        { "{#NAME}": "Station", "{#ID}": "
xxx-xxx-xxx-xxx-xxx" },
        { "{#NAME}": "Test", "{#ID}": "
xxx-xxx-xxx-xxx-xxx" },
        { "{#NAME}": "Unassigned Computers", "{#ID}": "
xxx-xxx-xxx-xxx-xxx" }
    ]
}


Objevené hodnoty v grafech je možní nasázet do Dashboardů.

ZabbixDashboard WSUS

pátek 3. května 2019

Monitoring IPSec tunelů na pfSense

Již řadu let používám pfSense spolu s několika IPSec tunely. Monitorování tunelů jsem dlouho zanedbával. Dnes jsem našel řesení přímo odladěné pro pfSense, takže nasazení je rychle a snadné. Stačí doinstalovat package sudo, umístit scripty a do zabbix agenta nastavit uživatelské klíče.

https://github.com/alanwds/zabbix_ipsec_pfsense

Tento projekt vychází z jiného a přidává právě postup zprovoznění na pfSense. Pomocí LLD se automaticky objeví nakonfigurované tunely.

Zabbix Latest data - IPSec

pondělí 11. března 2019

Aeskulap - DICOM Viewer

Dnes se mi do rukou dosly nějaké ty rentgeny na CD ke skartaci. Nedalo mi to na jeden svůj jsem se chtěl podívat. Na CD byl nějaký widloidní software a tak jsem pátral po Image souborech a objevil jsem formát DICOM.

Po krátké konzultaci s pane Googlem jsem našel alikaci - Aeskulap - DICOM Viewer psanou v GTK. Tak jsem si ji s radostí nainstaloval a na své snímky se podíval.

sudo aptitude install aeskulap

Aplikace se umí napojit i na server, kde se rentgeny ukládájí. Překvapilo, mě, že exisují i přidělené porty.

acr-nema    104/tcp        dicom        # Digital Imag. & Comm. 300
acr-nema    104/udp        dicom


V českém zdravotnictví se Ubuntu asi moc nepoužívá ale těší mě, že takové Open Source projekty existují :-)

Zdrojové kody této aplikace jsou na GitHubu. Zde autor uvádí informace o již zmíněných serverech PACS - picture archiving and communication system.

Tak jsem rychle hledal nejaký ten free software a ejhle je toho hned několik. Zajímavý název má aplikace PACS - Dicoogle, další je např. Orthanc-server. Oba servery jsou psány v Java a též je možné je provozovat na Devian/Ubuntu distrech. Předpokládám že tento SW se v českých nemocnicích nepoužíva :-(

čtvrtek 7. března 2019

ELK export import

Dlouho jsem si sem nic nepoznamenal. Ale právě řeším u jednoho zákazníka migraci Logmanagementu od Datasys z ELISA3 na ELISA4. Hlavním rozdílem jsou verze ELK.

ELISA3 - elasticsearch-1.7.5-1.noarch
ELISA4 - elasticsearch-6.4.2-1.noarch

Jediným možným způsobem jak přenést indexy ze stareho ELK do nové je export do JSON a opět import. K tomu se používá utilitka elasticdump.


yum intsall npm

npm install elasticdump -g
/usr/bin/elasticdump -> /usr/lib/node_modules/elasticdump/bin/elasticdump
/usr/bin/multielasticdump -> /usr/lib/node_modules/elasticdump/bin/multielasticdump


Samotný export import probíhá následovně:

Export z ELK do JSON

elasticdump --input=http://localhost:9200/logstash-2019.02.13 --output=/data/tmp/elisa-2019.02.13.json --type=data --limit=1000
Wed, 06 Mar 2019 14:33:04 GMT | starting dump
Wed, 06 Mar 2019 14:33:04 GMT | got 100 objects from source elasticsearch (offset: 0)
...
Wed, 06 Mar 2019 14:33:05 GMT | sent 100 objects to destination file, wrote 100
Wed, 06 Mar 2019 14:33:05 GMT | got 0 objects from source elasticsearch (offset: 1000)
Wed, 06 Mar 2019 14:33:05 GMT | Total Writes: 1000
Wed, 06 Mar 2019 14:33:05 GMT | dump complete



Po vytvoření dumpu je nutné změnit hlavní atributy, které ELISA4 nově zavedla.

Jednoduchý script provede náhradu řetězců atributu s @.

cat replace_atributes.sh
#!/bin/sh

sed -i -e 's/@message/AEFN.Message/g' $1
sed -i -e 's/@msgHost/AEFN.Host/g' $1
sed -i -e 's/@msgSource/AEFN.Source/g' $1
sed -i -e 's/@msgSeverity/AEFN.Severity/g' $1
sed -i -e 's/@msgUsername/AEFN.Username/g' $1

# EOF



Index, který v ELK má velikost 5GB má jako dump velikost mnohem větší 11GB, proto se i sed poněkud potrapí.

time ./replace_atributes.sh elisa-2019.02.13.json

real    21m26.231s
user    3m55.123s
sys     6m57.925s


Kopie dumpu na misto importu

scp migrace@10.20.30.40:/data/tmp/elisa-2019.02.13.json ./

V závěru už jen vesele importujeme do ELISA4 a zase jdeme na kafe.

Import z JSON do ELK

elasticdump --input=/data/tmp/elisa-2019.02.13.json --output=http://localhost:9200/elisa-2019.02.13 --type=data --limit=1000
...
Thu, 07 Mar 2019 10:00:49 GMT | sent 1008 objects to destination elasticsearch, wrote 1008
Thu, 07 Mar 2019 10:00:50 GMT | got 1009 objects from source file (offset: 1498981)
Thu, 07 Mar 2019 10:00:50 GMT | sent 1009 objects to destination elasticsearch, wrote 1009
Thu, 07 Mar 2019 10:00:50 GMT | got 1015 objects from source file (offset: 1499990)
Thu, 07 Mar 2019 10:00:51 GMT | sent 1015 objects to destination elasticsearch, wrote 1015
Thu, 07 Mar 2019 10:00:51 GMT | got 1021 objects from source file (offset: 1501005)

...

V logu ELK mužeme sledovat zaznamy spojené s importem

tail -f /var/log/elasticsearch/ELISA.log
[2019-03-07T10:57:25,396][INFO ][o.e.c.m.MetaDataMappingService] [elisa4] [elisa-2019.02.23/wQqd60uaRHWviUDdAyi7_w] update_mapping [logs]
[2019-03-07T10:57:41,658][INFO ][o.e.c.m.MetaDataMappingService] [elisa4] [elisa-2019.02.23/wQqd60uaRHWviUDdAyi7_w] update_mapping [logs]
[2019-03-07T10:58:12,576][INFO ][o.e.c.m.MetaDataMappingService] [elisa4] [elisa-2019.02.23/wQqd60uaRHWviUDdAyi7_w] update_mapping [logs]


čtvrtek 21. června 2018

Qotom Mini PC 4 Gigabit - Q355G4 with pfSense

Po roce jsem se opět viděl s kolegy z FG. Radek na mě myslel a přinesl mi na oběd ukázat černou krabku vhodnou jako router. Byl jsem nesmělý, ale Radek mi Qotom doslova vnutil, za což mu moc děkuji.

Qotom vyrábí mnoho variací tohoto Q Series Mini PC. Mě se do ruky dostal model Q355G4. Vyráběny jsou variace s Core i3, i5 a i7. V pfSense se procesor identifikuje jako Intel(R) Core(TM) i5-5250U CPU @ 1.60GHz 4 CPUs: 1 package(s) x 2 core(s) x 2 hardware threads AES-NI CPU Crypto: Yes (inactive).

Tento 4 portový model je vhodný pro použití jako router, pro malé nebo střední firmy. Prodáva se opět v několika variacích s nebo bez RAM a stejně tak i s nebo bez SSD. Nejvhodnější se si pořídit holé těžítko a RAM s SSD dodat z lokálních zdrojů se zárukou.
Qotom Q355G4


Poříditelný je v číně na AliExpress nebo v EU na Amazon, prodejce Kettop.

Mě nenapadlo nic jiného než na tohoto černocha nainstalovat mnou oblíbený pfSense. Nejprve jsem si připravil USB instalaci.

zcat pfSense-CE-memstick-2.4.3-RELEASE-amd64.img.gz | dd of=/dev/sdX bs=16k
244615+1 vstoupivších záznamů
244615+1 vystoupivších záznamů
4 007 775 744 bajtů (4,0 GB) zkopírováno, 857,294 s, 4,7 MB/s



Oproti PC Engines nelze použít image pfSense-CE-memstick-serial-*. Qotom disponuje seriovým portem, ale nedostaneme se po seriové konzoli do BIOSu. Proto použijeme klasickou image. Qotom disponuje HDMI vstupem ke grafické kartě.
Deska s procesorem a chladičem

S HDMI jsem si užil. Protože mám v LABu monitor, který má jen DVI a tak mam kabel DVI > HDMI. Např. malina skrze tento kabel bootuje a je vidět vše. U Qotom se signál probral až během boot sequence. Protože na disku byl Ubuntu Server, nemel jsem možnost dostat se do BIOSu a změnit boot nastaveni. Řešením bylo Qotom připojit k plnohodnotnému HDMI display.

Opět budu tento HW srovnávat s mnou hodně používanými deskami PC Engines. Qotom se díky výkonějšímu procesoru chová velmi svižně. Testy rychlosti síťování jsem neprováděl.

pfSense 2.4.3 WebGUI


Pokud chceme po instalaci používat sériovou konzoli, stačí ji jen zapnout.

Povolení seriové konzole
Na závěr velmi letmého seznámení se s Qotom musím poznamenat, že poměr cena a výkon je u tohoto kousku velmi zajímavý.

pondělí 19. února 2018

Open FortiClient SSL VPN pro Ubuntu

Jsem nucen používat FortiClient SSL VPN pro připojení se k celé řade projektů. Doposud jsem spojení navazoval výhradně z Widlí, což mě hodně nevyhovuje.

V minulosti jsem našel na českých stránkách FortiGate klienta pro linux pouze v tar verzi. Na oficiálních stránkách ani zde klient pro Linux neexistuje. Po chvíli pátrání jsem dohledal balíčky pro Ubuntu Forticlient – SSLVPN .deb packages, kde je k dispozici hned několik verzí. Tato verze klienta disponuje velmi zastaralým grafickým rozhraním, ale jinak je klient plně funkční. Konfigurace VPN se ukládá do domovského adresáře.

Důvodem k sepsání tohoto článku je objevení projektů openfortivpnopenfortigui, které vytváří otevřený FortiClient.



Sestavené balíčky jsou dostupné na adrese https://hadler.me/linux/openfortigui/, najdete zde i repository pro Ubuntu 16.04 LTS.

Konfigurace VPN se ukládá do domovského adresáře.

ls -1 .openfortigui/
logs
main.conf
vpngroups
vpnprofiles


Název instalovaného balíčku
openfortigui 0.4.0-2        GUI for openfortivpn





čtvrtek 2. března 2017

Jak monitorovat Docker Zabbixem


 V poslední době se pracově intenzívně zabývám projektem Docker. V práci mám aktuálně instalovaných 6 serverů s docker-engine. Dva na seznamovaní a čtyři jsou aktuálně nachystané pro jeden větší projekt.

V rámci instalace serveru s CentOS 7.3 pomocí Kickstart se provádí post-install kroky jako přidáni repo docker a nastavení proxy.

yum install -y yum-utils
yum-config-manager --add-repo https://docs.docker.com/engine/installation/linux/repo_files/centos/docker.repo
 

systemctl enable docker.service

vi /etc/yum.conf
proxy=http://192.168.10.42:8080
 

mkdir -p /etc/systemd/system/docker.service.d/
vi /etc/systemd/system/docker.service.d/http-proxy.conf
[Service]
Environment="HTTP_PROXY=http://192.168.10.42:3128/"


Když máme funkční Docker prostředí, přichází logicky na řadu monitoring :-) Existuje celá řada různých Zabbix šablon viz např. tento seznam. Já si vybral takovou velmi pěkně propracovanou a hlavně rychlou. Na konferenci Zabbix jsem poznal monitoringartist přesněji řečeno Jan Garaj se kterým jsem byl již v minulosti v kontaktu ohledně Zabbix překladů.

Jeho řešení monitorování Dockeru je zajímavé tím, že využívá zabbix agent modul. Moduly Zabbix zavedl od verze 2.2. Jedná se o možnost doplnit funkcionalitu zabbix agenta o vlastni klíče. Běžně se tato funkcionalita provádí skrze UserParameter, kde si definujeme klíč a k němu script, který získá požadovanou hodnotu. Ale toto je velmi pomalé a neefektivní. Pokud použijeme agent modul, který je psaný v jazyce C, je rychlost získání hodnot až 10x vyžší.

Na GitHubu je velmi podrobný postup, jak si modul zkompilovat. Honza má i předkompilované verze pro Zabbix 3.0 a 3.2 a to pro mnoho různých Linux distribucí.

Já šel cestou vlastní kompilace. Modul jsem si zkompiloval pro Zabbix 3.0:

yum install -y wget autoconf automake gcc svn

svn export svn://svn.zabbix.com/branches/3.0 zabbix
cd zabbix
./bootstrap.sh
./configure --enable-agent
mkdir src/modules/zabbix_module_docker
cd src/modules/zabbix_module_docker
wget https://raw.githubusercontent.com/monitoringartist/zabbix-docker-monitoring/master/src/modules/zabbix_module_docker/zabbix_module_docker.c
wget https://raw.githubusercontent.com/monitoringartist/zabbix-docker-monitoring/master/src/modules/zabbix_module_docker/Makefile
make
gcc -fPIC -shared -o zabbix_module_docker.so zabbix_module_docker.c -I../../../include -I../../../src/libs/zbxsysinfo
cp zabbix_module_docker.so /usr/local/lib/ 


Dále je potřeba umožnit Zabbixu číst Docker socket. Můžeme upravit konfiguraci Zabbix agenta a udělit oprávnění roota nebo přidat zabbix do skupiny docker. Zabbix agent může ziskat vyšši opravnění v podobě AllowRoot=1.

usermod -aG docker zabbix

nebo
 
vi /etc/zabbix/zabbix_agentd.conf
...
AllowRoot=1 

...
LoadModulePath=/usr/local/lib
LoadModule=zabbix_module_docker.so

 
Po restartu agenta se v logu objěví uspěšné nahrání modulu.

systemctl restart zabbix-agent.service

tail -f /var/log/zabbix/zabbix_agentd.log
...
51284:20170301:132041.853 loaded modules: zabbix_module_docker.so


Tento postup je pro toho kdo má svůj Zabbix server, který neběží v Dockeru. Dá se využít Honzova uceleného řešení Zabbix XXL, které logicky má již vše nastavené monitorování Dockeru.

Velké díky Honzovi za jeho zabbix modul zabbix_module_docker.c

čtvrtek 10. listopadu 2016

RDP on Windows 10 Home - RDPWrap

Na Windows 10 Home není obecně funkční vzdálená plocha RDP. Ale zprovoznit se dá velmi snadno. Je samozřejmé že tyto kroky je nutné provádět s vědomím jistého narušení  systému.

Na GitHubu existuje aplikace RDPWrap, která vše zajstí.

https://github.com/binarymaster/rdpwrap/releases/tag/v1.6

Podrobný návod je například zde.

úterý 20. září 2016

SW a HW pro učetní


Chtěl jsem si zde poznamenat jakou sestavu a kombinaci HW a SW lze používat pro účetní stanici.


Hardware:
Software:
  • Operační systém - Ubuntu 16.04.1 LTS
  • Kancelářský Office - LibreOffice, součástí Ubuntu
  • Emailový klient - Evolution email, kalendář atd., součástí Ubuntu
  • Program pro scanování - Xsane, součástí Ubuntu
  • Ovladače pro tiskárny - HPLIP podpora 2563 HP tiskáren, součástí Ubuntu
  • Účetní program - ABRA FlexiBee, faktury, DPH výstupy atd.
  • Databáze - PostgreSQL, součástí Ubuntu
  • Datovka - Desktop aplikace pro práci s ISDS - Datovka 

pondělí 27. června 2016

pfSense 2.3.1_5 + LTE modem Huawei ME909u-521


V jedné lokalitě jsem se rozhodl provozovat LTE připojení. Volba nemohla padnout na nic jiného než mou oblíbený pfSense provozovaný na desce od PC Engines model APU 1D. Do routeru jsem si pořídil Mini PCI Express LTE modem Huawei ME909u-521. Dále je samozřejmě nutná anténa a pigtail viz ilustrační obrázek.

pfSense LTE

Již v minulosti jsem tento modem chtěl pořizovat, ale ve FreeBSD potažmo v pfSense nebyla podpora. To se ale nedávno změnilo.

Kontrolováno ve zdrojácích FreeBSD 10.3

grep -iR ME909U /usr/src/sys/dev/*        
/usr/src/sys/dev/usb/serial/u3g.c:    U3G_DEV(HUAWEI, ME909U,U3GINIT_HUAWEISCSI2),
/usr/src/sys/dev/usb/usbdevs:product HUAWEI ME909U        0x1573  LTE modem


Modem se na konzoli jeví např. takto.

dmesg | grep -i huawei
ugen3.2: at usbus3
u3g0: on usbus3


Podrobný výpis modemu. Vypis ala lsusb (Linux)

usbconfig -d ugen3.2 dump_device_desc
ugen3.2: at usbus3, cfg=0 md=HOST spd=HIGH (480Mbps) pwr=ON (500mA)

  bLength = 0x0012
  bDescriptorType = 0x0001
  bcdUSB = 0x0200
  bDeviceClass = 0x0000 
  bDeviceSubClass = 0x0000
  bDeviceProtocol = 0x0000
  bMaxPacketSize0 = 0x0040
  idVendor = 0x12d1
  idProduct = 0x1573
  bcdDevice = 0x0228
  iManufacturer = 0x0001 
  iProduct = 0x0002 
  iSerialNumber = 0x0003  0123456712ABCA17
  bNumConfigurations = 0x0003


Dostupné seriové porty modemu.

ls -1 /dev/cuaU0.*
/dev/cuaU0.0
/dev/cuaU0.1
/dev/cuaU0.2
/dev/cuaU0.3
/dev/cuaU0.4


Karta je osazena i GPS chipem, tak proto je tech portů vice.


Operátora jsem zvolil T-Mobile a SIM kartu a aktitovaným datovým tarifem a deaktivovaným PINem vložíme do SIM slotu na desce. Modem musí být vložen do Slotu (J16). Protože jen ten je propojen se SIM slotem viz popis k desce.

Pokud chceme modem otestovat ručně, můžeme z příkazové řádky.

Testovací AT příkazy převzaté z dokumentace.

cu -l /dev/cuaU0.0

Connected
AT^HCSQ?
^HCSQ: "LTE",56,49,158,20

ATI

Manufacturer: Huawei Technologies Co., Ltd.
Model: ME909u-521
Revision: 12.636.11.01.00
IMEI: 860461025220081
+GCAP: +CGSM

AT&V
&C: 1; &D: 2; &S: 0; E: 0; Q: 0; V: 1; X: 1; S0: 0; S3: 13; S4: 10;
S5: 8; S7: 0; S10: 14; +ICF: 3,3; +IFC: 0,0

AT+CGDCONT?
+CGDCONT: 1,"IP","internet.t-mobile.cz","0.0.0.0",0,0
+CGDCONT: 16,"IPV4V6","","0.0.0.0",0,0

AT^SYSINFOEX
^SYSINFOEX: 2,3,0,1,,6,"LTE",101,"LTE"


AT^IMEISV?
^IMEISV: 8604610252200816


Pokud nám modem takto reaguje je funkční a ovladače fungují. Pro zprovoznění LTE/4G musíme WAN interface nakonfigurovat pomocí PPP protokolu.

IPv4 Configuration Type     PPP
Country                     Czech Republic
Provider                    T-Mobile
Plan                        T-Mobile - internet.t-mobile.cz
Phone number                *99#
Access Point Name           internet.t-mobile.cz
Init string                 &F0E1Q0 +CMEE=2
Modem port                  /dev/cuaU0.0


Nastavení WAN_PPP




Status interface

Konfigurační soubor PPP který sestavil pfSense vypadá následovně.

cat /var/etc/mpd_wan.conf
startup:
    # configure the console
    set console close
    # configure the web server
    set web close

default:
pppclient:
    create bundle static wan
    set bundle enable ipv6cp
    set iface name ppp0
    set iface disable on-demand
    set iface idle 0
    set iface enable tcpmssfix
    set iface up-script /usr/local/sbin/ppp-linkup
    set iface down-script /usr/local/sbin/ppp-linkdown
    set ipcp ranges 0.0.0.0/0 10.64.64.0/0
    set ipcp enable req-pri-dns
    set ipcp enable req-sec-dns
    #log -bund -ccp -chat -iface -ipcp -lcp -link

    create link static wan_link0 modem
    set link action bundle wan
    set link disable multilink
    set link keep-alive 10 60
    set link max-redial 0
    set link disable chap pap
    set link accept chap pap eap
    set link disable incoming
    set link mtu 1492
    set auth authname "user"
    set auth password ��
    set modem device /dev/cuaU0.0
    set modem script DialPeer
    set modem idle-script Ringback
    set modem watch -cd
    set modem var $DialPrefix "DT"
    set modem var $Telephone "*99#"
    set modem var $InitString "&F0E1Q0 +CMEE=2"
    set modem var $APN "internet.t-mobile.cz"
    set modem var $APNum "1"
    open

pondělí 25. dubna 2016

Postfix - relayhost SMTP AUTH


Monitorovaci system Zabbix užívá k notofikacím media Email nebo např. Jabber. Konfigurace SMTP serveru v Zabbixu neumožňuje nastavit SMTP server s autentizací.

Elegantním řešením je na Zabbix server nainstalovat Postfix, který poběží jen na localhost a nakonfigurovat jej tak, aby autentizovaně komunikoval s nadefinovaným SMTP serverm.

# configuration to relay to SMTP server using AUTH
relayhost = smtp.domena.cz
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = all
smtp_sasl_auth_enable = yes
#create db file using 'postmap hash:/etc/postfix/sasl_passwd'
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
smtp_sasl_security_options =
smtp_tls_security_level = may


Soubor sasl_passwd vypadá následovně

smtp.domena.cz     username:password

Poté soubor musíme pro postfix vyrobit patřifnou tabulku

postmap hash:/etc/postfix/sasl_passwd

Tento příkaz vyrobí soubor

sasl_passwd.db

Ještě kontrola souboru pomoci file :-)

file sasl_passwd*
sasl_passwd:    ASCII text
sasl_passwd.db: Berkeley DB 1.85 (Hash, version 2, native byte-order)

UPDATE:20160425
Dnes jsem řešil Postfix, který měl nastaven relayhost na Exchcange 2007, který ovšem nedisponoval AUTH LOGIN ale jen AUTL NTLM. Realizováno na CentOS 7. Je nutné doinstalovat NTLM podporu pro SASL.

rpm -qa | egrep 'sasl|ntlm|postfix'
cyrus-sasl-lib-2.1.26-20.el7_2.x86_64
libntlm-1.3-6.el7.x86_64
cyrus-sasl-2.1.26-20.el7_2.x86_64
cyrus-sasl-ntlm-2.1.26-20.el7_2.x86_64
postfix-2.10.1-6.el7.x86_64


Test pruchodnosti emailu.

telnet localhost 25
EHLO domena.cz
mail from:
rcpt to: data
From: zabbix@domena.cz
Subject: test mail from command line

this is test number 1
sent from linux box
.


Ve verzi Zabbix 3.0 je možno nastavovat SMTP i s autentizací a Postfix již není třeba.