Lua as a Configuration And Data Exchange Language For "C"

config.lua

printers = {
    printer1 = "Foo branch",
    printer2 = "Fek bhanch",
    printer3 = "Fuk branch" 
}
#include <stdio.h>
#include <assert.h>
#include <stdlib.h>
#include <string.h>
#include "lua5.2/lua.h"
#include "lua5.2/lauxlib.h"
#include "lua5.2/lualib.h"
#define CONFIG_FILE "config.lua"
 
static char * getconf (char *mod, char *key)
{
  char *res;
 
  lua_State *L = luaL_newstate();
  luaL_openlibs(L);
 
  if (luaL_loadfile(L, CONFIG_FILE) || lua_pcall(L, 0, 0, 0))
      {
        fprintf(stderr, "Couldn't load file: %s\n", lua_tostring(L, -1));
      }
 
  lua_getglobal(L, mod);
 
  if(!lua_istable(L, -1))
      {
        fprintf(stderr, "Table type error: %s\n", (lua_tostring(L, -1)) );
      }
 
  lua_getfield(L, -1, key);
 
   if(!lua_isstring(L, -1))
       {
         fprintf(stderr, "String type error: %s\n", (lua_tostring(L, -1)));
       }
  res = strdup((char *)lua_tostring(L, -1));
  lua_pop(L, 1);
  lua_close(L);
  return res;
}
int main(int argc, char **argv)
{
static char *device;
device = getconf("printers", "printer1");
}

https://www.netbsd.org/~mbalmer/lua/lua_config.pdf

2019/11/28 · Oleg Zvezdo4kin · 0 комментариев (-я)

StrongSwan install from source

Download preferred release from download.strongswan.org

  wget https://download.strongswan.org/strongswan.tar.gz

install docs

Untar and cd source directory.

Configure Options

./configure --prefix=/usr --sysconfdir=/etc --enable-systemd --enable-swanctl --enable-openssl --enable-xauth-eap --enable-xauth-noauth
make
make install
Systemd enable/start
systemctl enable strongswan.service
systemctl enable strongswan-starter.service
 
systemctl start strongswan.service
systemctl start strongswan-starter.service

Easy RSA source

git clone https://github.com/ValdikSS/easy-rsa-ipsec.git
cd easy-rsa-ipsec/easyrsa3
./easyrsa init-pki

./easyrsa build-ca nopass

./easyrsa build-server-full domain_name nopass
./easyrsa build-client-full client_name nopass    

./easyrsa export-p12 client_name nopass
Successful export of p12 file. Your exported file is at the following location: /usr/src/easy-rsa-ipsec/easyrsa3/pki/private/<client_name>.p12
cp pki/ca.crt /etc/ipsec.d/cacerts/
cp pki/issued/domain.name.crt /etc/ipsec.d/certs/
cp pki/private/domain.name.key /etc/ipsec.d/private/

Road Warrior config with ipsec.conf

/etc/ipsec.secrets

: RSA domain.name.key
 
<username> : XAUTH "pass"

/etc/ipsec.conf

config setup
        # strictcrlpolicy=yes
        # multiple connections with the one unique cert
	# uniqueids = no
conn %default
	dpdaction=clear
	dpddelay=35s
	dpdtimeout=300s
 
	fragmentation=yes
	rekey=no
 
	ike=aes256gcm16-aes256gcm12-aes128gcm16-aes128gcm12-sha256-sha1-modp2048-modp4096-modp1024,aes256-aes128-sha256-sha1-modp2048-modp4096-modp1024,3des-sha1-modp1024!
 
	esp=aes128gcm12-aes128gcm16-aes256gcm12-aes256gcm16-modp2048-modp4096-modp1024,aes128-aes256-sha1-sha256-modp2048-modp4096-modp1024,aes128-sha1-modp2048,aes128-sha1-modp1024,3des-sha1-modp1024,aes128-aes256-sha1-sha256,aes128-sha1,3des-sha1!
 
	# left - local (server) side
	left=%any
	leftauth=pubkey
	leftcert=domain.name.crt
	leftsendcert=always
	leftsubnet=0.0.0.0/0
 
	# right - remote (client) side
	right=%any
	rightauth=pubkey
	rightsourceip=10.20.30.0/24
	rightdns=8.8.8.8,8.8.4.4
 
conn ikev2-pubkey
	keyexchange=ikev2
	auto=add
 
conn ikev2-pubkey-osx
	also="ikev2-pubkey"
	leftid=domain.name
 
conn ikev1-fakexauth
	keyexchange=ikev1
	rightauth2=xauth-noauth
	auto=add
 
conn ikev2-eap-tls
	also="ikev2-pubkey"
	rightauth=eap-tls
	eap_identity=%identity

restart

systemctl restart strongswan.service
systemctl restart strongswan-starter.service

debug

 swanctl -h 
strongSwan 5.8.1 swanctl
loaded plugins: aes des rc2 sha2 sha1 md5 mgf1 random nonce x509 revocation constraints pubkey pkcs1 pkcs7 pkcs8 pkcs12 pgp dnskey sshkey pem openssl fips-prf gmp curve25519 xcbc cmac hmac
usage:
  swanctl --counters         (-C)  list or reset IKE event counters
  swanctl --initiate         (-i)  initiate a connection
  swanctl --terminate        (-t)  terminate a connection
  swanctl --rekey            (-R)  rekey an SA
  swanctl --redirect         (-d)  redirect an IKE_SA
  swanctl --uninstall        (-u)  uninstall a trap or shunt policy
  swanctl --install          (-p)  install a trap or shunt policy
  swanctl --list-sas         (-l)  list currently active IKE_SAs
  swanctl --monitor-sa       (-m)  monitor for IKE_SA and CHILD_SA changes
  swanctl --list-pols        (-P)  list currently installed policies
  swanctl --list-authorities (-B)  list loaded authority configurations
  swanctl --list-conns       (-L)  list loaded configurations
  swanctl --list-certs       (-x)  list stored certificates
  swanctl --list-pools       (-A)  list loaded pool configurations
  swanctl --list-algs        (-g)  show loaded algorithms
  swanctl --flush-certs      (-f)  flush cached certificates
  swanctl --load-all         (-q)  load credentials, authorities, pools and connections
  swanctl --load-authorities (-b)  (re-)load authority configuration
  swanctl --load-conns       (-c)  (re-)load connection configuration
  swanctl --load-creds       (-s)  (re-)load credentials
  swanctl --load-pools       (-a)  (re-)load pool configuration
  swanctl --log              (-T)  trace logging output
  swanctl --version          (-v)  show version information
  swanctl --stats            (-S)  show daemon stats information
  swanctl --reload-settings  (-r)  reload daemon strongswan.conf
  swanctl --help             (-h)  show usage information

/etc/sysctl.conf

net.ipv4.ip_forward = 1
net.ipv4.conf.all.accept_redirects = 0
net.ipv4.conf.all.send_redirects = 0
 iptables -A INPUT -p udp --dport 500 -j ACCEPT
 iptables -A INPUT -p udp --dport 4500 -j ACCEPT
 iptables -A INPUT -p ESP -j ACCEPT
 iptables -A INPUT -p 50 -j ACCEPT
 iptables -A INPUT -p 51 -j ACCEPT
 iptables -I INPUT -m policy --dir in -pol ipsec --proto esp -j ACCEPT
 iptables -I INPUT -m policy --dir in --pol ipsec --proto esp -j ACCEPT
 iptables -I FORWARD -m policy --dir in --pol ipsec --proto esp -j ACCEPT
 iptables -I FORWARD -m policy --dir out --pol ipsec --proto esp -j ACCEPT
 iptables -I OUTPUT -m policy --dir out --pol ipsec --proto esp -j ACCEPT
2019/11/20 · Oleg Zvezdo4kin · 0 комментариев (-я)

Pandoc: html_to_dokuwiki

 pandoc -s -r html https://www.dokuwiki.org/tips:htmltowiki -t dokuwiki > tips.txt

или

 pandoc -f html  -t dokuwiki http://kb.asipto.com/freeswitch:kamailio-3.3.x-freeswitch-1.2.x-sbc > kamailio_fs_sbc.txt
2019/10/02 · Oleg Zvezdo4kin · 0 комментариев (-я)

postgresql pg_dump

Примеры Выгрузка базы данных mydb в файл SQL-скрипта:

 $ pg_dump mydb > db.sql

Восстановление из ранее полученного скрипта в чистую базу newdb:

 $ psql -d newdb -f db.sql

Выгрузка базы данных в формате custom:

 $ pg_dump -Fc mydb > db.dump

Выгрузка базы данных в формате directory:

 $ pg_dump -Fd mydb -f dumpdir

Выгрузка базы данных в формате directory в 5 параллельных потоков:

 $ pg_dump -Fd mydb -j 5 -f dumpdir

Восстановление из архива в чистую новую базу данных newdb:

 $ pg_restore -d newdb db.dump

Выгрузка отдельной таблицы mytab:

 $ pg_dump -t mytab mydb > db.sql

Выгрузка всех таблиц, имена которых начинаются с emp и которые принадлежат схеме detroit, кроме таблицы employee_log:

 $ pg_dump -t 'detroit.emp*' -T detroit.employee_log mydb > db.sql

Выгрузка всех схем, имена которых начинаются с east или west, заканчиваются на gsm и не содержат test:

 $ pg_dump -n 'east*gsm' -n 'west*gsm' -N '*test*' mydb > db.sql

То же самое, но с использованием регулярного выражения:

 $ pg_dump -n '(east|west)*gsm' -N '*test*' mydb > db.sql

Выгрузка всех объектов базы данных, кроме таблиц, имена которых начинаются с ts_:

 $ pg_dump -T 'ts_*' mydb > db.sql

Чтобы указать имя в верхнем или смешанном регистре в ключе -t и связанных с ним, это имя нужно заключить в кавычки; иначе оно будет приведено к нижнему регистру (см. Шаблоны поиска). Но кавычки являются спецсимволом для оболочки, так что и их нужно заключать в кавычки. Так, чтобы выгрузить одну таблицу с именем в смешанном регистре, нужно написать примерно следующее:

 $ pg_dump -t "\"MixedCaseName\"" mydb > mytab.sql
2019/09/24 · Oleg Zvezdo4kin · 0 комментариев (-я)

asterisk mp3 convert to wav 16b 8000hz

Decode mp3 to wav

 lame --decode file.mp3

Convert to 8000 Hz, 16 bit, mono WAV

 sox -v 0.5 file.wav -t wav -b 16 -r 8000 -c 1 file.wav
2019/08/27 · Oleg Zvezdo4kin · 0 комментариев (-я)

Предыдущие записи >>

  • blog.txt
  • Последние изменения: 2019/03/27