Отакої…

SSL errorПісля оновлення до Mozilla Firefox 31 ESR бразузер почав плюватися sec_error_ca_cert_invalid і відмовлятися приймати самопідписний сертифікат.

Всі інші субдомени, які використовують цей же самопідписний вайлдкард, додалися нормально. Лише з cloud’ом виникла біда. Ну не хоче лисиця жерти його, хоч ти лусни.

Continue reading

ownCloud filesystem rescan

Для оwnCloud 4
Відкриваємо консоль javascript:

scanFiles();

Функціонал з’явився у ownCloud >= 5.0.10
Щоб перебудувати індекси файлів для одного користувача:

$ cd /var/www/.../owncloud
$ php console.php files:scan vpupkin

Для усіх користувачів:

$ cd /var/www/.../owncloud
$ php console.php files:scan --all

Обмеження MAIL FROM для аутентифікованих користувачів

Обмежуємо спуфінг MAIL FROM аутентифікованим користувачам іменем їх скриньки та іменами аліасів прибитих до неї.

# Головна секція
<...>
AUTH_MAILFROM = SELECT DISTINCT username \
                            FROM users \
                                WHERE (\
                                        username='${quote_mysql:$authenticated_id}' \
                                        AND \
                                        type='mailbox'\
                                      ) OR (\
                                        destination='${quote_mysql:$authenticated_id}' \
                                        AND \
                                        type='alias'\
                                      )
<...>
# Секція ACL
begin acl
deny message       = "Please use your real e-mail address or one of it's aliases as sender's address."
     log_message   = "REJECTED: MAIL FROM restriction violation. User: $authenticated_id; From: $sender_address."
     authenticated = *
     condition     = ${if inlisti{$sender_address}{${sg{${lookup mysql{AUTH_MAILFROM}}}{\\n}{:}}} {no}{yes}}

Linux-like налаштування stty на HP-UX

Налаштування звичних для лінуксоїда клавіатурних скорочень для терміналу HP-UX.
Маємо:

me@hp-ux:~$ uname -sm
HP-UX ia64
me@hp-ux:~$ echo $TERM $SHELL
xterm /usr/local/bin/bash
me@hp-ux:~$ stty -a
speed 38400 baud; line = 0;
rows = 60; columns = 157
min = 4; time = 0;
intr = DEL; quit = ^\; erase = ^H; kill = @
eof = ^D; eol = ^@; eol2 <undef>; swtch <undef>
stop = ^S; start = ^Q; susp <undef>; dsusp <undef>
werase <undef>; lnext <undef>
-parenb -parodd cs8 -cstopb hupcl cread -clocal -loblk -crts
-ignbrk brkint -ignpar -parmrk -inpck istrip -inlcr -igncr icrnl -iuclc
ixon ixany -ixoff -imaxbel -rtsxoff -ctsxon -ienqak
isig icanon -iexten -xcase echo -echoe echok -echonl -noflsh
-echoctl -echoprt -echoke -flusho -pendin
opost -olcuc onlcr -ocrnl -onocr -onlret -ofill -ofdel -tostop tab3

Виконуємо команду:

me@hp-ux:~$ stty intr   '^C' \
                 kill   '^U' \
                 werase '^W' \
                 lnext  '^V' \
                 erase  '^?' \
                 susp   '^Z' \
                 dsusp  '^Y'

Та додеємо її до .zshrc||.bash_profile||.whatever.

Exim, spam trap, RBL швидкого реагування

Якщо хост надіслав лист на ханіпот – додати до локального RBL, після того, як він з’явився у публічному DNSBL – видалити з локальної бази нафіг.

# Шлях до БД локального RBL
RBL_DB = /var/db/exim/spam-source.db

# Список публічних поштових сервісів
hostlist public_services = net-iplsearch;/etc/exim/public-services
# Список негідників, які не дотримуються основних положень RFC5321
hostlist rfc_ignorants = net-iplsearch;/etc/exim/rfc-ignorants
# Список спамерів
hostlist spam_source = net-iplsearch;/etc/exim/spam-source : \
                       ${lookup sqlite{RBL_DB \
                           SELECT ip_address \
                               FROM banned_hosts \
                               WHERE ip_address='$sender_host_address';}}
<...>
warn
    set acl_m_dnsbl    = 0
    set acl_m_localrbl = 0
 
 
# Перевіряємо нявність хосту у публічних DNSBL-ах
warn dnslists    = dnsbl.foobar.net : \
                   dul.foobar.net
    !hosts       = +relay_from_hosts : \
                   +public_services
    !recipients  = : soft_recipients
    set acl_m_dnsbl       = 1
 
 
# Перевіряємо нявність хосту у локальному RBL
warn hosts       =  +spam_source
    !hosts       =  +relay_from_hosts : \
                    +public_services
    !recipients  = : soft_recipients
     set acl_m_localrbl = 1
 
 
# Видаляємо з локального RBL, якщо хост знайдено у публічних DNSBL
warn log_message     = "IP address found in public DNSBL: $dnslist_domain. Removing from local RBL."
       condition     = ${if and { \
                                    {eq {$acl_m_dnsbl}{1}} \
                                    {eq {$acl_m_localrbl}{1}} \
                                } {yes}{no}}
       set acl_m_junk = ${lookup sqlite{RBL_DB \
                                    DELETE FROM banned_hosts \
                                    WHERE ip_address='$sender_host_address';}{$value}}
       set acl_m_localrbl = 0
 
 
# Деферимо, якщо "пасажир" у публічному DNSBL
defer message    = "Your IP address is listed in the DNSBL $dnslist_domain: dnslist_text ($dnslist_value)."
 log_message     = DEFERRED: Listed in $dnslist_domain.
 condition       = ${if eq{$acl_m_dnsbl}{1} {yes}{no}}
 delay           = 30s
 
 
# Локальний RBL
defer message    = "Your IP address is listed in the local RBL as the spam source."
 log_message     = DEFERRED: Listed in local RBL
 condition       = ${if eq{$acl_m_localrbl}{1} {yes}{no}}
 set acl_m_junk  = ${lookup sqlite{RBL_DB \
                                    UPDATE banned_hosts SET hit_count=hit_count+1, \
                                                            last_hit=datetime('now','localtime') \
                                                      WHERE ip_address='$sender_host_address';}{$value}}
 delay           = 30s
 
 
# Додаємо до локального RBL
 warn log_message = "Gotcha! Spam trap: $local_part@$domain."
      domains    = myspamtrap.com : \
                   myspamtrap.net : \
                   myspamtrap.org
      !hosts     = +relay_from_hosts : +public_services
      set acl_m_junk = ${lookup sqlite{RBL_DB \
                                       INSERT INTO banned_hosts(ip_address, ptr, added) \
                                           VALUES ('$sender_host_address', '$sender_host_name', datetime('now','localtime'));}{$value}}
<...>

База даних:

CREATE TABLE banned_hosts(
      ip_address varchar(64),
      ptr varchar(64),
      added datetime,
      last_hit datetime,
      hit_count int default 0
);

The file /boot/grub/stage1 not read correctly.

root@pxe:~# chroot /mnt /bin/bash
root@pxe:~# grub-install --no-floppy --recheck /dev/sda
Probing devices to guess BIOS drives. This may take a long time.
The file /boot/grub/stage1 not read correctly.

 
Окей, хуй з тобою. Спробуємо через консоль GRUB-у:

root@pxe:~# grub
Probing devices to guess BIOS drives. This may take a long time.


    GNU GRUB  version 0.97  (640K lower / 3072K upper memory)

 [ Minimal BASH-like line editing is supported.  For the first word, TAB
   lists possible command completions.  Anywhere else TAB lists the possible
   completions of a device/filename.]
grub> root (hd0,0)
root (hd0,0)
 Filesystem type is ext2fs, partition type 0xfd
grub> setup (hd0)
setup (hd0)
 Checking if "/boot/grub/stage1" exists... no
 Checking if "/grub/stage1" exists... no

Error 2: Bad file or directory type
grub>

Continue reading

SlackwareARM, Raspberry Pi та підводне каміння

Те, на що я нарвався після встановлення SlackwareARM на Raspberry Pi. Встановлював згідно HOWTO.
 
Довелося трохи обробити tag-файли напилком та додати втрачені залежності. Власне, tag-файли лежать тут. Після встановлення система займає ~460МБ.

root@slackberry:~# df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/mmcblk0p3  7.0G  459M  6.2G   7% /
/dev/mmcblk0p1   48M   44M  4.0M  92% /boot
tmpfs           110M     0  110M   0% /dev/shm

Continue reading

Запуск HiB7: The Binding of Isaac

Для запуску знадобиться 2 пакети з Mulitilb від AlienBob, а саме:
1. l-compat32/seamonkey-solibs-compat32;
2. ap-compat32/sqlite-compat32.

Після встановлення виконтаи наступне:

for L in 'libssl3.so'     \
         'libsmime3.so'   \
         'libnss3.so'     \
         'libnssutil3.so' \
         'libplds4.so'    \
         'libplc4.so'     \
         'libnspr4.so';   \
do \
    ln -sf /usr/lib/seamonkey/${L} /usr/lib/${L}; \
done