LINUX.ORG.RU

Сообщения DeeZ

 

Полноэкранный диалог для скрипта (yad\zenity)

Добрый день. Есть ли аналог yad\zenity но полноэкранный с графикой в стиле CitrixReciver?

Задача сделать livecd единственная задача которого, запуститься и спросить у пользователя имя пользователя и пароль. После этого подключиться по RDP. Не должно быть логина в самом линуксе. Но страница ввода пароля должна быть максимально модальной и максимально неубирааемой. Автологин сделать не проблема, вместо WM запускать свой скрипт тоже. Но вот как сделать полноэкранную страницу ввода логина?

yad умеет в полном экране, но он убогий в таком виде.

Есть ли готовые решения?

 , , ,

DeeZ
()

initramfs собрается без модулей

Не могу понять почему initramfs собирается без модулей?

#initramfs.conf 
MODULES=most
BUSYBOX=auto
COMPCACHE_SIZE=""
COMPRESS=gzip
DEVICE=
NFSROOT=auto

#update-initramfs.conf 
update_initramfs=yes
backup_initramfs=no
пробовал MODULES=most и list

текущие модули добавил (в них нужные мне ata_generic есть):

lsmod | awk '{print $1}' > /etc/initramfs-tools/modules
В /lib/modules/4.9.0-0.bpo.8-amd64/kernel/ все модули есть

При обновлени, есть попытки скопировать нужные модули «Copying module directory kernel/drivers/ata», никакх ошибок, но в результате в initramfs ничего нет.

( Текст, который будет выведен в ссылке вместо скрытого внутри cut содержимого )

Да, в моей прошлой теме я каким то чудом умудрился нормально обновить, но как - не понял. Повторить не смог :( В той виртуалке я только доставлял пакеты, и возможно что то «нужное» установил. но что? headers\initramfs-tools переставлял.

Чего не хватает? даже как гуглить не пойму, ощущение что ни у кого таких пробелм не возникало раньше.

 , , ,

DeeZ
()

Proxmox миграция на VMWare

Нужно мигрировать виртуаки с Proxmox (lxc) на VMWare.
На хосте Debian GNU/Linux 9.5
Виртуалка Debian GNU/Linux 8.10

#uname -a
Linux et03 4.15.18-4-pve #1 SMP PVE 4.15.18-23 (Thu, 30 Aug 2018 13:04:08 +0200) x86_64 GNU/Linux


Восстанавливаю из бэкапа (делается регулярно по vzdump 111 --compress lzo --node px --storage vz --mode snapshot --remove 0)

cd /tmp
dd if=/dev/zero of=disk.img count=$((20000*16*63))
losetup -f -P --show /tmp/disk.img
cfdisk /dev/loop2
mkfs.ext4 /dev/loop2p1
mount /dev/loop2p1 /mnt
echo "(hd0) /dev/loop2" > /mnt/device.map
grub-install --no-floppy --grub-mkdevicemap=/mnt/device.map --modules="biosdisk part_msdos ext2 configfile normal multiboot" --root-directory=/mnt /dev/loop2
lzop -d /vz/dump/vzdump-lxc-111-2018_11_27-13_30_03.tar.lzo
cd  /mnt
tar xvf /vz/dump/vzdump-lxc-111-2018_11_27-13_30_03.tar
mount -o bind /proc    /mnt/proc
mount -o bind /dev     /mnt/dev
mount -o bind /dev/pts /mnt/dev/pts
mount -o bind /sys     /mnt/sys
mount -o bind /run     /mnt/run
chroot /mnt
ln -s /usr/share/initramfs-tools/scripts/ /

cat > /etc/initramfs-tools/modules << EOF
piix
ata_piix
mptspi
e1000
ata_generic
EOF

cat >> /etc/inittab << EOF
1:2345:respawn:/sbin/mingetty tty1
2:2345:respawn:/sbin/mingetty tty2
3:2345:respawn:/sbin/mingetty tty3
4:2345:respawn:/sbin/mingetty tty4
5:2345:respawn:/sbin/mingetty tty5
6:2345:respawn:/sbin/mingetty tty6
EOF

cat > /etc/fstab << EOF
/dev/sda1 / ext4 errors=remount-ro 0 1
EOF

apt-get update
apt-get --no-install-recommends install linux-image-4.9-amd64 grub2 apt-utils systemd mingetty
apt-get remove lvm2
update-grub
update-initramfs -k all -u
exit
umount /mnt/proc
umount /mnt/dev
umount /mnt/dev/pts
umount /mnt/sys
umount /mnt/run
umount /mnt
losetup -d /dev/loop2
qemu-img convert -f raw -O vmdk /tmp/disk.img  /tmp/et03.vmdk

В дебиане 8 последнее ядро linux-image-4.9 (против 4.15 на proxmox)
После этого создаю виртуалку в ESX 4.1 (other linux 64) и подсовываю этот диск.
При попытке загрузиться сваливаюсь в busybox (initramfs) тк не находит рут.
lsmod - пусто и modprobe ata_generic пишет модуль не найден

В какую сторону копать?

 , , ,

DeeZ
()

bind не работает forward

Есть 2 сервера. нужно что бы они отвечали за 2 свои зоны а 2 с соседнего - форвардили ему (вариант со слейвом работает но не подходит по ряду причин).

Этот кусок конфига одинаковый для vpn\vps

options {
    allow-recursion { any; };
    allow-query { any; };
    allow-query-cache { any; };
    check-names master ignore;
    additional-from-auth yes;
    additional-from-cache yes;
    dnssec-validation no;
    empty-zones-enable no;
    auth-nxdomain no;};
vpn(2.2.2.2)
zone "10.in-addr.arpa" {
        type master;
        file "db.10";    };
zone "172.in-addr.arpa" {
        type forward;
        forwarders {1.1.1.1;};    };
zone "vpn.domain.com" {
        type master;
        file "vpn.domain.com.zone";    };
zone "vps.domain.com" {
        type forward;
        forwarders {1.1.1.1;};    };
vps(1.1.1.1)
zone "10.in-addr.arpa" {
        type forward;
        forwarders {2.2.2.2;};    };
zone "172.in-addr.arpa" {
        type master;
        file "db.172";    };
zone "vps.domain.com" {
        type master;
        file "vps.domain.com.zone";    };
zone "vpn.domain.com" {
        type forward;
        forwarders {2.2.2.2;};    };

Еще есть зоны «domain.com» (для которой сервера мастер\слейв) и rpz.zone Со «своими» зонами никаких пробелм. Так же нормально резолвятся обратные зоны (те сервер vpn может ответить на запрос о 172.16.74.0/24) Проблема начинается при попытке у сервера 1 запросить зону с сервера 2. Возвращает NXDOMAIN. В логах на сервер все ок (пишет что запрос пришел. НЕ пишет denied), и вообще ни каких ошибок не вижу.

Лог с vps, просим зону vpn:

queries: info: client 192.154.10.10#56562 (vpn.domain.com): query: vpn.domain.com IN A + (1.1.1.1)
queries: info: client 192.154.10.10#34797 (vpn.domain.com): query: vpn.domain.com IN A + (1.1.1.1)
queries: info: client 192.154.10.10#47483 (vpn.domain.com): query: vpn.domain.com IN A + (1.1.1.1)

client: debug 90: client 1.1.1.1#35012: received DSCP 0
client: debug 3: client 1.1.1.1#35012: UDP request
client: debug 5: client 1.1.1.1#35012: using view '_default'
client: debug 3: client 1.1.1.1#35012: query
client: debug 10: client 1.1.1.1#35012 (vpn.domain.com): ns_client_attach: ref = 1
client: debug 3: client 1.1.1.1#35012 (vpn.domain.com): send
client: debug 3: client 1.1.1.1#35012 (vpn.domain.com): sendto
client: debug 3: client 1.1.1.1#35012 (vpn.domain.com): senddone
client: debug 3: client 1.1.1.1#35012 (vpn.domain.com): next
client: debug 10: client 1.1.1.1#35012 (vpn.domain.com): ns_client_detach: ref = 0
client: debug 3: client 1.1.1.1#35012 (vpn.domain.com): endrequest
При этом по tcpdump сервер 1.1.1.1 даже не пытается ничего спросить у 2.2.2.2

Всю башку сломал. Куда копать?

 

DeeZ
()

GRUB2 на USB диск, где первый раздел NTFS

Есть диск, на котором первый раздел должен быть обязательно ntfs (кейс zalman иначе не работает). На этом же диске стоит бунта. и груб работает. Сейчас хочу заменить диск на «побольше». Разбил так же: ntfs,ext4,swap.Устанавливаю бунту - груб сваливается в grub rescue>

ls (hd0,msdos2)/ показывает «unknown filesystem», insmod normal показывает «unknown filesystem» Смотрю на старый диск - и не пойму почему там работает такая связка?

куда копать?

 , , ,

DeeZ
()

Python xml parsing (named)

Пытаюсь марсить статистику бинда. Бинд через сокет отдает статистику в xml, примерно такую:

<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="/bind9.xsl"?>
<statistics version="3.6">
	<server>
		<boot-time>2016-09-20T11:04:14Z</boot-time>
		<config-time>2016-09-28T05:11:43Z</config-time>
		<current-time>2016-09-28T06:18:29Z</current-time>
		<counters type="opcode">
			<counter name="QUERY">324477875</counter>
			<counter name="NOTIFY">90</counter>
			<counter name="UPDATE">18337</counter>
		</counters>
		<counters type="qtype">
			<counter name="RESERVED0">17</counter>
			<counter name="A">261391066</counter>
			<counter name="NS">618794</counter>
			<counter name="CNAME">10502</counter>
			<counter name="ANY">5388518</counter>
			<counter name="DLV">63918</counter>
		</counters>

Скрипт следующий:

import xml.etree.ElementTree as ET
tree = ET.parse('/etc/bind/stats/ststistic.xml')
root = tree.getroot()                           

for child in root[0]:
  print child.tag, child.attrib, child.text
выдает

boot-time {} 2016-09-20T11:04:14Z
config-time {} 2016-09-28T05:11:43Z
current-time {} 2016-09-28T06:18:29Z
counters {'type': 'opcode'} None
counters {'type': 'qtype'} None

нужная мне статистика в opcode, пробую так:

for child in root[0][0]:
  print child.tag, child.attrib, child.text
получаю пустоту. Почему так? как получить значения вложеных элементов?

 , , ,

DeeZ
()

Как хранить конфиг DHCP для ipv6 в LDAP?

Стоит ISC-DHCP 4.2.4. Пытаюсь сделать хранение конфигов DHCP в LDAP. Но никак не могу понять, как завести в LDAP параметр subnet6. Взять для примера конфиг из интернета:

default-lease-time 2592000;
preferred-lifetime 604800;
option dhcp-renewal-time 3600;
option dhcp-rebinding-time 7200;
allow leasequery;
option dhcp6.name-servers 3ffe:501:ffff:100:200:ff:fe00:3f3e;
option dhcp6.domain-search "test.example.com","example.com";
option dhcp6.info-refresh-time 21600;
dhcpv6-lease-file-name "/usr/local/var/db/dhcpd6.leases";
subnet6 3ffe:501:ffff:100::/64 {
  range6 3ffe:501:ffff:100::10 3ffe:501:ffff:100::11;
  range6 3ffe:501:ffff:100:: temporary;
  prefix6 3ffe:501:ffff:100:: 3ffe:501:ffff:111:: /64;
}
host myclient {
  host-identifier option
    dhcp6.client-id 00:01:00:01:00:04:93:e0:00:00:00:00:a2:a2;
  fixed-address6 3ffe:501:ffff:100::1234;
  fixed-prefix6 3ffe:501:ffff:101::/64;
  option dhcp6.name-servers 3ffe:501:ffff:100:200:ff:fe00:4f4e;
}
host otherclient {
        hardware ethernet 01:00:80:a2:55:67:34;
        fixed-address6 3ffe:501:ffff:100:4321;
}
Получается примерно следующее:
#dhcp сервер
dn: cn=dhcp1.v6.domain.ru,dc=domain,dc=ru
objectClass: top
objectClass: dhcpServer
cn: dhcp1.v6.domain.ru
dhcpServiceDN: cn=DHCP Service Config, dc=ipv6,dc=domain,dc=ru

#новый инстанс для конфига:
dn: dc=ipv6,dc=domain,dc=ru
dc: ipv6
o: domain.ru
objectClass: top
objectClass: dcObject
objectClass: organization

# корень конфига:
dn: cn=DHCP Service Config, dc=ipv6,dc=domain,dc=ru
cn: DHCP Service Config
objectClass: top
objectClass: dhcpService
dhcpPrimaryDN: dc=ipv6,dc=domain,dc=ru
dhcpStatements: default-lease-time 2592000;
dhcpStatements: preferred-lifetime 604800;
dhcpStatements: option dhcp-renewal-time 3600;
dhcpStatements: allow leasequery;
dhcpStatements: dhcpv6-lease-file-name "/usr/local/var/db/dhcpd6.leases";
dhcpOption: dhcp-rebinding-time 7200;
dhcpOption: dhcp6.name-servers 3ffe:501:ffff:100:200:ff:fe00:3f3e;
dhcpOption: dhcp6.domain-search "test.example.com","example.com";
dhcpOption: dhcp6.info-refresh-time 21600;
До этого момента конфиг генерируется нормально. теперь нужно добавить subnet6 3ffe:501:ffff:100::/64 {} и host myclient {}. Пробую хост:
dn: cn=myclient,cn=DHCP Service Config,dc=ipv6,dc=domain,dc=ru
objectClass: top
objectClass: dhcpHost
cn: myclient
dhcpOption: dhcp6.name-servers 3ffe:501:ffff:100:200:ff:fe00:4f4e
dhcpStatements: fixed-prefix6 3ffe:501:ffff:101::/64
dhcpStatements: fixed-address6 3ffe:501:ffff:100::1234
dhcpStatements: host-identifier option dhcp6.client-id 00:01:00:01:00:04:93:e0:0
 0:00:00:00:a2:a2
И тут начинается странное:
..
option dhcp6.info-refresh-time 21600;host myclientfixed-prefix6 3ffe:501:ffff:101::/64;
fixed-address6 3ffe:501:ffff:100::1234;
host-identifier option dhcp6.client-id 00:01:00:01:00:04:93:e0:00:00:00:00:a2:a2;
option dhcp6.name-servers 3ffe:501:ffff:100:200:ff:fe00:4f4e;
}
перед host нет переноса, после myclient - нет скобки. можно накостылить и сделать так:
dn: cn=myclient,cn=DHCP Service Config,dc=ipv6,dc=domain,dc=ru
objectClass: top
objectClass: dhcpHost
cn: myclient {
cn: myclient
Скобка на месте, но переноса нет (в общем то пофиг. DHCP понимает).Но это нормально или я что то не то делаю?

С subnet6 вообще беда. не пойму как добавить. Если костылить, то какой класс ставить (что бы не добавлялось лишних слов)? dhcpSubnet дает просто subnet {} без 6. пробовал так:

dn: cn=subnet6 3ffe:501:ffff:100::/64,cn=DHCP Service Config,dc=ipv6,dc=domain,dc=ru
objectClass: top
cn: subnet6 3ffe:501:ffff:100::/64 
ругается что нет класса.

 , ,

DeeZ
()

isc-dhcpd ipv6 ldap

Пытаюсь настроить связку LDAP+DHCP для раздачи v6 адресов. И ни в какую не могу понять как это сделать. Внятных инструкций не могу найти. все похожи на инструкцию «как нарисовать сову». Есть ли кто то, у кого конфиг для DHCPv6 хранится в LDAP? можно ссылку на инструкцию (именно по заведению ipv6). ipv4 в LDAP заведен и работает. Через статический конфиг все работает, но как добавить subnet6\range6\prefix6 в LDAP не пойму. Скрипты конвертирующие конфиг в LDAP не срабатывают.

ISC-DHCP 4.2.4

 , ,

DeeZ
()

Network Manager OpenVPN подключается но отваливается по таймауту

Пытаюсь настоить NM на работе с openvpn. И судя по логам подключение проходит, те с ключами\сертификатами все ок. Но:
1. tun0 в дауне после подключения
2. через какое то время соединение рвется так и не получив IP
3. если сделать ifup то прилетают ipv6 (и работают), но не прилетают ipv4 (от dhcp)
4. если ipv4 задать руками, то все работет до того времени пока nm не порвет подключение по таймауту
5. если взять голый openvpn то подключение проходит и работет. Проблема именно в nm (а хочется мышкой тыкать)

Mar 10 12:11:11 eth0 NetworkManager[936]: <info> Starting VPN service 'openvpn'...
Mar 10 12:11:11 eth0 NetworkManager[936]: <info> VPN service 'openvpn' started (org.freedesktop.NetworkManager.openvpn), PID 19832
Mar 10 12:11:11 eth0 NetworkManager[936]: <info> VPN service 'openvpn' appeared; activating connections
Mar 10 12:11:11 eth0 NetworkManager[936]: <info> VPN plugin state changed: init (1)
Mar 10 12:11:11 eth0 NetworkManager[936]: <info> VPN plugin state changed: starting (3)
Mar 10 12:11:11 eth0 NetworkManager[936]: <info> VPN connection 'openvpn' (Connect) reply received.
Mar 10 12:11:12 eth0 nm-openvpn[19835]: OpenVPN 2.3.2 i686-pc-linux-gnu [SSL (OpenSSL)] [LZO] [EPOLL] [PKCS11] [eurephia] [MH] [IPv6] built on Dec  1 2014
Mar 10 12:11:12 eth0 nm-openvpn[19835]: WARNING: No server certificate verification method has been enabled.  See http://openvpn.net/howto.html#mitm for more info.
Mar 10 12:11:12 eth0 nm-openvpn[19835]: NOTE: the current --script-security setting may allow this configuration to call user-defined scripts
Mar 10 12:11:12 eth0 nm-openvpn[19835]: WARNING: file '/home/user/eth0.key' is group or others accessible
Mar 10 12:11:12 eth0 nm-openvpn[19835]: UDPv4 link local: [undef]
Mar 10 12:11:12 eth0 nm-openvpn[19835]: UDPv4 link remote: [AF_INET]1.2.2.1:1194
Mar 10 12:11:12 eth0 nm-openvpn[19835]: [ox] Peer Connection Initiated with [AF_INET]1.2.2.1:1194
Mar 10 12:11:14 eth0 nm-openvpn[19835]: TUN/TAP device tap0 opened
Mar 10 12:11:14 eth0 nm-openvpn[19835]: /usr/lib/NetworkManager/nm-openvpn-service-openvpn-helper tap0 1500 1590   init
Mar 10 12:11:14 eth0 NetworkManager[936]:    SCPlugin-Ifupdown: devices added (path: /sys/devices/virtual/net/tap0, iface: tap0)
Mar 10 12:11:14 eth0 NetworkManager[936]:    SCPlugin-Ifupdown: device added (path: /sys/devices/virtual/net/tap0, iface: tap0): no ifupdown configuration found.
Mar 10 12:11:14 eth0 NetworkManager[936]: <warn> /sys/devices/virtual/net/tap0: couldn't determine device driver; ignoring...
Mar 10 12:11:14 eth0 NetworkManager[936]: <info> VPN connection 'openvpn' (IP Config Get) reply received.
Mar 10 12:11:14 eth0 nm-openvpn[19835]: Initialization Sequence Completed
Тут интерфейс лежит. если поднять то случается:
Mar 10 12:11:19 eth0 avahi-daemon[857]: Joining mDNS multicast group on interface tap0.IPv6 with address fe80::4ecf.
Mar 10 12:11:19 eth0 avahi-daemon[857]: New relevant interface tap0.IPv6 for mDNS.
Mar 10 12:11:19 eth0 avahi-daemon[857]: Registering new address record for fe80::4ecf on tap0.*.
Mar 10 12:11:21 eth0 avahi-daemon[857]: Leaving mDNS multicast group on interface tap0.IPv6 with address fe80::4ecf.
Mar 10 12:11:21 eth0 avahi-daemon[857]: Joining mDNS multicast group on interface tap0.IPv6 with address 2002::df74.
Mar 10 12:11:21 eth0 avahi-daemon[857]: Registering new address record for 2002::df74 on tap0.*.
Mar 10 12:11:21 eth0 avahi-daemon[857]: Withdrawing address record for fe80::4ecf on tap0.
Mar 10 12:11:21 eth0 avahi-daemon[857]: Registering new address record for 2002::4ecf on tap0.*.
Вот тут рвется по таймауту
Mar 10 12:11:52 eth0 NetworkManager[936]: <warn> VPN connection 'openvpn' (IP Config Get) timeout exceeded.
Mar 10 12:11:52 eth0 NetworkManager[936]: <info> Policy set '2.5.3.2' (eth1) as default for IPv4 routing and DNS.
Mar 10 12:11:52 eth0 avahi-daemon[857]: Interface tap0.IPv6 no longer relevant for mDNS.
Mar 10 12:11:52 eth0 avahi-daemon[857]: Leaving mDNS multicast group on interface tap0.IPv6 with address 2002::df74.
Mar 10 12:11:52 eth0 avahi-daemon[857]: Withdrawing address record for 2002::4ecf on tap0.
Mar 10 12:11:52 eth0 avahi-daemon[857]: Withdrawing address record for 2002::df74 on tap0.
Mar 10 12:11:52 eth0 avahi-daemon[857]: Withdrawing workstation service for tap0.
Mar 10 12:11:52 eth0 NetworkManager[936]: <warn> (16) failed to find interface name for index
Mar 10 12:11:52 eth0 nm-openvpn[19835]: SIGTERM[hard,] received, process exiting
Mar 10 12:11:52 eth0 NetworkManager[936]: nm_system_iface_flush_routes: assertion 'iface != NULL' failed
Mar 10 12:11:52 eth0 NetworkManager[936]: <warn> (16) failed to find interface name for index
Mar 10 12:11:52 eth0 NetworkManager[936]:    SCPlugin-Ifupdown: devices removed (path: /sys/devices/virtual/net/tap0, iface: tap0)
Mar 10 12:11:57 eth0 NetworkManager[936]: <info> VPN service 'openvpn' disappeared

Логи с сервера

Mar 10 15:14:17 rt-n16 openvpn[22174]: MULTI: multi_create_instance called
Mar 10 15:14:17 rt-n16 openvpn[22174]: 2.5.3.2:59214 Re-using SSL/TLS context
Mar 10 15:14:17 rt-n16 openvpn[22174]: 2.5.3.2:59214 LZO compression initialized
Mar 10 15:14:17 rt-n16 openvpn[22174]: 2.5.3.2:59214 Control Channel MTU parms [ L:1590 D:138 EF:38 EB:0 ET:0 EL:0 ]
Mar 10 15:14:17 rt-n16 openvpn[22174]: 2.5.3.2:59214 Data Channel MTU parms [ L:1590 D:1450 EF:58 EB:135 ET:32 EL:0 AF:3/1 ]
Mar 10 15:14:17 rt-n16 openvpn[22174]: 2.5.3.2:59214 Local Options hash (VER=V4): '26e19fc0'
Mar 10 15:14:17 rt-n16 openvpn[22174]: 2.5.3.2:59214 Expected Remote Options hash (VER=V4): 'b498be7c'
Mar 10 15:14:17 rt-n16 openvpn[22174]: 2.5.3.2:59214 TLS: Initial packet from 2.5.3.2:59214, sid=ee01fb5c f6ba6975
Mar 10 15:14:17 rt-n16 openvpn[22174]: 2.5.3.2:59214 VERIFY OK: depth=1, /C=RU/ST=74/L=Chelyabinsk/O=ox/OU=ox/CN=ox_CA/emailAddress=dis@me
Mar 10 15:14:17 rt-n16 openvpn[22174]: 2.5.3.2:59214 VERIFY OK: depth=0, /C=RU/ST=74/L=Chelyabinsk/O=ox/OU=eth0/CN=eth0/emailAddress=dis@me
Mar 10 15:14:17 rt-n16 openvpn[22174]: 2.5.3.2:59214 Data Channel Encrypt: Cipher 'AES-128-CBC' initialized with 128 bit key
Mar 10 15:14:17 rt-n16 openvpn[22174]: 2.5.3.2:59214 Data Channel Encrypt: Using 160 bit message hash 'SHA1' for HMAC authentication
Mar 10 15:14:17 rt-n16 openvpn[22174]: 2.5.3.2:59214 Data Channel Decrypt: Cipher 'AES-128-CBC' initialized with 128 bit key
Mar 10 15:14:17 rt-n16 openvpn[22174]: 2.5.3.2:59214 Data Channel Decrypt: Using 160 bit message hash 'SHA1' for HMAC authentication
Mar 10 15:14:17 rt-n16 openvpn[22174]: 2.5.3.2:59214 Control Channel: TLSv1, cipher TLSv1/SSLv3 DHE-RSA-AES256-SHA, 1024 bit RSA
Mar 10 15:14:17 rt-n16 openvpn[22174]: 2.5.3.2:59214 [eth0] Peer Connection Initiated with 2.5.3.2:59214
Mar 10 15:14:17 rt-n16 openvpn[22174]: eth0/2.5.3.2:59214 OPTIONS IMPORT: reading client specific options from: /tmp/openvpn_cc_b74e20888a3cb758b5766b793215ca5p
Mar 10 15:14:17 rt-n16 openvpn[22174]: eth0/2.5.3.2:59214 MULTI: no dynamic or static remote --ifconfig address is available for eth0/2.5.3.2:59214
Mar 10 15:14:19 rt-n16 openvpn[22174]: eth0/2.5.3.29:59214 PUSH: Received control message: 'PUSH_REQUEST'
Mar 10 15:14:19 rt-n16 openvpn[22174]: eth0/2.5.3.2:59214 SENT CONTROL [eth0]: 'PUSH_REPLY,route-gateway dhcp,route-gateway dhcp,ping 10,ping-restart 60' (stat)
Mar 10 15:14:38 rt-n16 openvpn[22174]: eth0/2.5.3.2:59214 MULTI: Learn: 36:1f:06:ef:c5:46 -> eth0/2.5.3.2:59214
Mar 10 15:14:57 rt-n16 openvpn[22174]: read UDPv4 [ECONNREFUSED]: Connection refused (code=146)

Конфиг сервера

dev tap0
proto udp
server-bridge 
push "route-gateway dhcp"
script-security 2
client-connect ./openvpn.up
tls-server
dh dh1024.pem
ca ca.crt
cert ox.crt
key ox.key
port 1194
mode server
client-to-client
comp-lzo
persist-tun
persist-key
verb 3
keepalive 10 60

В NM стоят галки: LZO, TAP, AES-128-CBC, Remore peer cert TLS: Server. IP задать руками нельзя. по этому стоит автоматом.

Куда копать?

 , , ,

DeeZ
()

Избитая тема: кодировка имен файлов

Файлы с инды с неправильно кодировкой записали на самба шару с не верной кодировкой. в результате получились имена файлов крокозябрами (классика). Казалось бы:

ls -1 | iconv -f WINDOWS-1252 -t CP866
#но нет
iconv: недопустимая входная последовательность в позиции 0
. ls -1

С перекодировкой справляется онлайн декодор лебедева, но он пропускает буквы.

Œу­ицип ль­ый ст ­д рт 04.12.2014.doc
методик  оце­ки 04 12 2014.doc
. Хотя способ переименования руками не самый удобный (но перекодировка явно возможна).

Что не нравится iconv? как переименовать файлы?

 , ,

DeeZ
()

expect скрипт не работает из cron-а

Из консоли скрипт работает нормально. Не срабатывает expect-скрипт если его запускать через crontab. Притом нет совершенно никаких попыток запуска. куда копать?

test.sh
#!/usr/bin/expect -f
exp_internal 1
exec /usr/bin/snmptrap -v 2c -c check 10.0.46.143 .1.3.6.1.6.3.1.1.5.3 .1.3.6.1.6.3.1.1.5.3 .1.3.6.1.2.1.1.1.0 s "ok"
/etc/crontab
* *   * * *   user      /home/user/test.sh
#так тоже не работет (и под root та же беда)
* *   * * *   user      /usr/bin/expect  -f  /home/user/test.sh

 , ,

DeeZ
()

ffmpeg обрезать длинну аудио дорожки под видео

Есть несколько картинок, которые нужно собрать в видео со звуком. Сами картинки собираю в видео так:

ffmpeg -framerate 1/10  -i image%03d.jpg -r 30 -f mpegts -vbsf h264_mp4toannexb -b 1M video.mpeg
Получается 1 минута видео без звука. Добавляю аудио:
ffmpeg -i sound.mp3 -i video.mpeg -vcodec copy -f mpegts -vbsf h264_mp4toannexb svideo.mpeg
Но тк звук длительностью 3 минуты, то последний кадр висит 2 минуты пока не кончится аудио. Не хорошо.
Заранее обрезать аудио возможности нет, тк количество картинок разное и длинна видео может меняться. Как при добавлении аудио в ролик, оставить длинну изначального видео-ролика?

 ,

DeeZ
()

Клавиатура компа как BT клава для телефона\планшета (hidclient)

Пытаюсь заставить работает hidclient, что бы телефон увидел комп как Bluetooth клавиатуру (если я правильно понял именно так ведет себя данная утилитка).
Использую Ubuntu 12.04LTS (hidclient is verified to work on Ubuntu 12.04 LTS)
Те работаеть должно.. но нет. Что делаю:

  • Скачал архив
  • Cкомпилировал. получил hidclient.
  • Поправил /etc/bluetooth/main.conf («DisabledPlugins=input», «Class=0x000540» )
  • Запускаю, список устройств есть.
    sudo hidclient -l
    Unable to connect to X server
            x11-mutable information not available.
    List of available input devices:
    num     Vendor/Product, Name, -x compatible (x/-)
     0      [0000:0005.0000] 'Lid Switch' (-)
     1      [0000:0001.0000] 'Power Button' (-)
     2      [0000:0003.0000] 'Sleep Button' (-)
     3      [0000:0001.0000] 'Power Button' (-)
     4      [0001:0001.ab41] 'AT Translated Set 2 keyboard' (-)
    
  • Запускаю саму программу
    sudo hidclient -e4
    HID keyboard/mouse service registered
    Opened /dev/input/event4 as event device [counter 0]
    The HID-Client is now ready to accept connections from another machine
       read(24)from(0)      read(24)from(0)      read(24)from(0) 
    

События сыпятся (всегда одинаковые правда) но ни телефон ни планшет ни другой комп ничего не находят. Bluez стоит (он в требованиях указан)

dpkg --get-selections | grep bluez
bluez                                           install
bluez-alsa                                      install
bluez-cups                                      install
bluez-gstreamer                                 install

 , ,

DeeZ
()

Развернуть 1,3-5,8 в 1,3,4,5,8

Есть куча конфгов, примерно следующего содержания

config ports 2 state enable description user1 
config ports 6 state enable description user2 
config ports 7 state enable description user3 
config ports 1,3-5,8 state disable description clear
Мне нужно привести к виду:
ports 1 disable clear
ports 2 enable  user1 
ports 3 disable clear
ports 4 disable clear
ports 5 disable clear
ports 6 enable  user2 
ports 7 enable  user3 
ports 8 disable clear
Те развернуть 1,3-5,8 в 1,3,4,5,8 Сейчас делаю так:
cat cfg | awk '/config/{ 
ports[$3,1]=$5
ports[$3,2]=$7}
Но разумеется он не корректно переваривает 1,3-5,8. Как я полагаю нужно предварительно преобразовать строку «config ports 1,3-5,8 state disable description clear» в
config ports 1 state disable clear
config ports 3 state disable clear
config ports 4 state disable clear
config ports 5 state disable clear
config ports 8 state disable clear
но не могу придумать как преобразовать эту последовательность в массив? (что бы потом в awk использовать for ( i in array ) {}. Подскажите пожалуйста куда копать?

 ,

DeeZ
()

не пойму что занимает место

Не пойму что на сервере занимает столько места. судя по du занято не больше 20Гб. У меня на столько нет идей что даже не знаю как гуглить.

# df -h
Файловая система            Разм  Исп  Дост  Исп% смонтирована на
/dev/mapper/pdc_cgjabijfie1
                      178G  9,4G  160G   6% /
none                 1003M  176K 1002M   1% /dev
none                 1007M     0 1007M   0% /dev/shm
none                 1007M   64K 1007M   1% /var/run
none                 1007M     0 1007M   0% /var/lock
none                 1007M     0 1007M   0% /lib/init/rw


# du -sh /* 2>/dev/null  
222M    /backup
6,1M    /bin
362M    /boot
4,0K    /cdrom
176K    /dev
97M     /etc
1,6G    /home
0       /initrd.img
0       /initrd.img.old
2,3G    /lib
16K     /lost+found
8,0K    /media
4,0K    /mnt
4,0K    /opt
0       /proc
980K    /root
6,2M    /sbin
4,0K    /selinux
4,0K    /srv
0       /sys
5,3M    /tmp
739M    /usr
4,0G    /var
0       /vmlinuz
0       /vmlinuz.old
4,0K    /webmin-setup.out


# mount
/dev/mapper/pdc_cgjabijfie1 on / type ext4 (rw,errors=remount-ro)
proc on /proc type proc (rw,noexec,nosuid,nodev)
none on /sys type sysfs (rw,noexec,nosuid,nodev)
none on /sys/fs/fuse/connections type fusectl (rw)
none on /sys/kernel/debug type debugfs (rw)
none on /sys/kernel/security type securityfs (rw)
none on /dev type devtmpfs (rw,mode=0755)
none on /dev/pts type devpts (rw,noexec,nosuid,gid=5,mode=0620)
none on /dev/shm type tmpfs (rw,nosuid,nodev)
none on /var/run type tmpfs (rw,nosuid,mode=0755)
none on /var/lock type tmpfs (rw,noexec,nosuid,nodev)
none on /lib/init/rw type tmpfs (rw,nosuid,mode=0755)


#df -i
Файловая система            Инодов   Испол   Своб  Исп % смонтирована на
/dev/mapper/pdc_cgjabijfie1
                     11837440  276147 11561293    3% /
none                  216659     629  216030    1% /dev
none                  218833       1  218832    1% /dev/shm
none                  218833      51  218782    1% /var/run
none                  218833       4  218829    1% /var/lock
none                  218833       1  218832    1% /lib/init/rw

inod-ы кончаются?

 , , , ,

DeeZ
()

sed параметры из файла

Есть 2 файла. в одном все строки. в другом критерии по которым нужно выбрать строки. например:

test:

1 a
2 b
3 a
4 c
5 a
tpl
/\([[:digit:]]*\) a/\1 b/
/\([[:digit:]]*\) c/\1 b/

Если сделать через ком строку то все ок:

$cat test | sed -n -e "s/\([[:digit:]]*\) a/\1 b/p"
1 b
3 b
5 b
$cat test | sed -n -e "s/\([[:digit:]]*\) c/\1 b/p" 
4 b

Как сделать то же самое, но не руками, а пакетно не могу придумать. Так не работает:

filename=$1
sourcefile=$2
IFS=$'\n'
for line in `cat $filename`; do
  cat $sourcefile | sed -n -e "s${line}p"
done

суть очень упрощенна, по этому надо именно так. брать регулярку из файла заменять по ней. брать следующую строку.

 , ,

DeeZ
()

Python (через odbc) вешает MSSQL

Добрый день. Есть база MSSQL на 4000 записей.

id,name,ip,comminity
1,host1,192.168.0.1,pblic
2,host2,192.168.0.2,pblic
3,host3,192.168.0.3,pblic
..
Делаю обычную выборку записей и тут же их печатаю, что приводит к зависанию MSSQL сервера, во время работы срипта срвер не может отвечать больше ни на какие запросы. А пару раз вообще зависал так что переставал отвечать по сети (пришлось ребутить).
Установлен Python 2.7.6, python-pyodbc 3.0.6-2, freetds 0.91-5

В чем косяк? почему вешается MSSQL?
Есть смутное подозрение что при каждом прохождении цикла сервер выдает все записи те 4000 (в каждом отснифаном пакете-ответе больше чем одна строка). Скрипт смотрит 1, а что бы посмотреть следующею - опять запрашивает (получает) полный список, что приводит к лавинообразному росту нагрузки. Подскажите куда копать? как оптимизировать запрос\скрипт\настройки tds,odbc?

#!/usr/bin/env python
import pyodbc
cnx = pyodbc.connect("DSN=srv;DATABASE=base;UID=user;PWD=123" )
cursor = cnx.cursor()
cursor.execute("SELECT [IP],[Name] FROM [Nodes]")

row = cursor.fetchone()
while row:
   IP = row[0]
   Name = row[1]
   print Name,IP
   row = cursor.fetchone()
freetds.conf
[global]
    tds version = 8.0
    port = 1433
    text size = 64512
    try server login = yes
    try domain login = no
    client charset = UTF-8
[srv]
    host = 172.25.2.1
    port = 1433
    tds version = 8.0


odbc.ini 
[srv]
    Description=Server
    Driver=FreeTDS
    Servername=srv

 , , ,

DeeZ
()

ISC DHCP постепенное (последовательное) использованеи адерсов из 2х и более пулов

Есть DHCP сервер, где прописаны 2 пула адресов (пока). Есть несколько клиентских интерфейсов. Но сервер раздает ip праллельно из обоих пулов. Те если подключится 10 клентов то 5 получат из 1.1.1.128 и 5 из 2.2.2.0. А хочется что бы сначала полностью утилизировалась сеть 1.1.1.128, и потом следующие. Нужно что бы мониторить состояние только последней сети. если кончилась уже и она то «туши свет»
Как то можно задать приоритет пулам? (в примере их 2, но планируется таких сетей около 30)

cisco:

interface Loopback1
 description C_SUBNET_CLENTS
 ip address 1.1.1.129 255.255.255.128
 ip address 2.2.2.1 255.255.255.0 secondary
!
interface TenGigabitEthernet0/2/0.794
 description VLAN794
 encapsulation dot1Q 794
 ip dhcp relay information option subscriber-id C_SUBNET_CLENTS
 ip dhcp relay information option-insert 
 ip unnumbered Loopback1

dhcp.conf
class "C_SUBNET_CLENTS" {
match if option agent.subscriber-id = 43:5F:53:55:42:4E:45:54:5F:43:4C:45:4E:54:53;
}
subnet 1.1.1.128 netmask 255.255.255.128 {
  option routers 1.1.1.129;
  option subnet-mask 255.255.255.128;
  option interface-mtu 1500;
   pool {
    range 1.1.1.130 1.1.1.254;
    allow members of "C_SUBNET_CLENTS";
    failover peer "dhcp";
   }
}

subnet 2.2.2.0 netmask 255.255.255.0 {
  option routers 2.2.2.1;
  option subnet-mask 255.255.255.0;
  option interface-mtu 1500;
   pool {
    range 2.2.2.2 2.2.2.254;
    allow members of "C_SUBNET_CLENTS";
    failover peer "dhcp";
   }
}

DeeZ
()

Удалить строку если следующая начинается не с пробела.

В результате работы некого скрипта, получаю строки, часть из которых ненужны. В данном примере нужно удалить интерфейсы, в которых ничего не меняется. Те нужно удалить строку если следующая начинается с «interface» (или если следующая начинается не с пробела). Например (удалить нужно помеченые звездочкой):

interface GigabitEthernet0/2.117*
interface GigabitEthernet0/2.118*
interface GigabitEthernet0/2.119*
interface GigabitEthernet0/2.120*
interface GigabitEthernet0/2.121*
interface GigabitEthernet0/2.122*
interface GigabitEthernet0/2.124
 ip dhcp relay information option subscriber-id USER1
interface GigabitEthernet0/2.125*
interface GigabitEthernet0/2.126*
interface GigabitEthernet0/2.127*
interface GigabitEthernet0/2.128*
interface GigabitEthernet0/2.800*
interface GigabitEthernet0/2.802*
interface GigabitEthernet0/2.803*
interface GigabitEthernet0/2.804
 ip dhcp relay information option subscriber-id USER10

Не могу осилить на sed\awk (хотя понимаю что нужно взять текст как строку и тогда /(interface[^\n]*?)\n(interface[^\n]*?)\n/\2/ прогнав раз 10 получить результат). Что то очень близкое нашел тут, но

sed '/^$/{:a N; /[^\n]/{s,^\n\+,\n,; b}; b a}'
повергает меня в шок.

DeeZ
()

Перевести hex2bin с ведущими нулями, и затем посчитать еденицы.

Есть скрипт, который заходит на коммутатор и смотрит, на каких портах есть VLAN 2, но ответ от коммутатора приходит ввиде HEX значения (маски портов):

snmpwalk -v2c -O vq -c private 10.0.0.2 SNMPv2-SMI::mib-2.17.7.1.4.3.1.2.2
"20 80 00 00 00 00 00 00 " 
20 80 00 00 00 00 00 00 -> 0010 0000 1000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
То есть VLAN есть на 3 и 9 портах.
snmpwalk -v2c -O vq -c private 10.0.0.3 SNMPv2-SMI::mib-2.17.7.1.4.3.1.2.2
"00 00 01 00 "
00 00 01 00 ->0000 0000 0000 0000 0000 0001 0000 0000
То есть VLAN есть на 24порту.
Как осуществить этот перевод на баше я не могу придумать. Проблема осложняется тем что длинна может быть разной: либо 32 либо 64 (зависит от коммутатора). Но тут можно откинуть половину у длинной строки тк. портов точно не больше 32. А вот дальше, при попытке перевести:
echo "ibase=16; obase=2; 2080000000000000" | bc 
10000010000000000000000000000000000000000000000000000000000000
#Не хватает нулей.
printf %032d  `echo "ibase=16; obase=2; 20800000" | bc`
printf: warning: 100000100000000000000000000000: Numerical result out of range
Решение: разделить отбросить половину у длинного (оставить 8 цифр) и разделить пополам (по 4) что бы принтф не ругался:
members1=`echo $members | awk '{ print $1 $2 }' | sed -s 's/\"//'` 
memvers1bin=`echo "ibase=16; obase=2; $members1" | bc`
members2=`echo $members | awk '{ print $3 $4 }' | sed -s 's/\"//'`
members2bin=`echo "ibase=16; obase=2; $members2" | bc`
members=`printf %016d $members1bin $members2bin`
А теперь вопрос: как полученую последовательность преобразовать в цифру? как я понимаю нужно перебирать по очереди цифры и если встречается 1 возвращать текущий счетчик. но как это сделать - туплю.

И второй вопрос: если ли более локаничный способ обойти переволнение в принтф?

DeeZ
()

RSS подписка на новые темы