LINUX.ORG.RU

Сообщения N-N

 

Apache и симлинк в DocumentRoot

Всем привет. Пытаюсь запустить rails app. Вот кусок vhost:

  DocumentRoot "/usr/share/app/public"

  <Directory "/usr/share/app/public">
    Options FollowSymLinks
    AllowOverride None
    Require all granted
  </Directory>

Апач выдает: «symbolic link is not allowed or link target not accessible»

Гуглю уже почти 6 часов. Уже все по нескольку раз перепроверил даже побуквенно все конфиги. Символьная ссылка рабочая. Юзером апача читается и выполняются все что есть по симлинку. Никаких селинуксов и аппарморов нету. Если вместо симлинка подсунуть оригинал - все работает. WTF?! Что ему еще надо чтобы прочитать этот чертов симлинк? Помогите плз! Я бы и плюнул на это дело, но не могу. Надо доковыряться до истины.

 ,

N-N
()

OpenVPN. Вопрос про tun интерфейс.

Есть уже давно настроенный и работающий OpenVPN сервер для удаленного доступа remote юзеров. 10.8.0.0/24 - это сетка для юзеров. Из этого диапазона начиная с .3 выдаются адреса. Вот маршруты на сервере:

Internet:
Destination        Gateway            Flags      Netif Expire
default           192.168.100.1      UGS         re0
10.8.0.0/24       10.8.0.2           UGS        tun0
10.8.0.1          link#4             UHS         lo0
10.8.0.2          link#4             UH         tun0
127.0.0.1         link#3             UH          lo0
192.168.1.0/24    link#2             U           re1
192.168.1.5       link#2             UHS         lo0
192.168.10.0/24   link#1             U           re0
192.168.10.5      link#1             UHS         lo0

Вот ifconfig для tun:

tun0: flags=8051<UP,POINTOPOINT,RUNNING,MULTICAST> metric 0 mtu 1500
        options=80000<LINKSTATE>
        inet 10.8.0.1 --> 10.8.0.2 netmask 0xffffff00
        nd6 options=21<PERFORMNUD,AUTO_LINKLOCAL>
        Opened by PID 1291

Вопрос такой: почему tun0 это POINTOPOINT и зачем нужен адрес 10.8.0.2? Это как то связано с тем что написано в man tun? Типа 10.8.0.1 - это локалхост, а 10.8.0.2 - интерфейс подконтрольный OpenVPN?

 ,

N-N
()

ubridge в GNS3

Копаюсь во внутренностях GNS3 ибо интересно понять как это все работает. Использую gui на винде и в ней же виртуалка с линуксом под vmware. Захотел сдампить трафик изнутри виртуалки, но понял что ни один из инстансов не юзает системные интерфейсы. Наткнулся на ubridge. Особо инфы нигде нет, а исходники я читать не умею.

Например создаю я в gui простой свитч и цепляю к нему vpcs. При этом в vm запускается dynamips, vpcs и ubridge. Я правильно понимаю что dynamips и vpcs слушают и отправляют L2 фреймы на своих udp портах, а ubridge к ним с обоих сторон коннектится и делает между ними мост?

 

N-N
()

Автодеплой KVM+libvirt виртуалок

На домашней машинке решил поиграться с автоматизацией деплоя. Какие инструменты используются для KVM+libvirt связки? Раньше все ручками делал. В курсе про такие штуки как pxe,preseed/kickstart, немножко ковырял ansible. Но хотелось бы бест практисов каких нибудь.

 , ,

N-N
()

Qemu/KVM и Windows гость. Загрузка cpu.

Всем привет. Есть winsrv2008r2 крутящийся в Qemu/KVM+libvirt под centos 7.4 С iops'ами проблем вроде нет, virtio дрова имеются. Вижу другую проблему - если например в винде проц кажет 0% загрузки, то на kvm хосте ниже ~1.3% не опускается. Почитал различные performance tweaks, отключил usb tablet(с ним вообще ниже ~7% cpu load не опускалось), balooning.

В общем то ~1% не критично вроде, но по сравнению с linux гостями поведение не совсем обычное. Может можно еще что нибудь подкрутить?

Вот xml гостя:


<domain type='kvm'>
  <name>host1</name>
  <uuid>21fcb0ee-a4d0-4502-acdf-64bd44180f54</uuid>
  <memory unit='KiB'>2097152</memory>
  <currentMemory unit='KiB'>2097152</currentMemory>
  <vcpu placement='static'>1</vcpu>
  <os>
    <type arch='x86_64' machine='pc-i440fx-rhel7.0.0'>hvm</type>
    <boot dev='hd'/>
  </os>
  <features>
    <acpi/>
    <apic/>
    <hyperv>
      <relaxed state='on'/>
      <vapic state='on'/>
      <spinlocks state='on' retries='8191'/>
    </hyperv>
  </features>
  <cpu mode='custom' match='exact' check='partial'>
    <model fallback='allow'>Skylake-Client</model>
  </cpu>
  <clock offset='localtime'>
    <timer name='rtc' tickpolicy='catchup'/>
    <timer name='pit' tickpolicy='delay'/>
    <timer name='hpet' present='no'/>
    <timer name='hypervclock' present='yes'/>
  </clock>
  <on_poweroff>destroy</on_poweroff>
  <on_reboot>restart</on_reboot>
  <on_crash>destroy</on_crash>
  <pm>
    <suspend-to-mem enabled='no'/>
    <suspend-to-disk enabled='no'/>
  </pm>
  <devices>
    <emulator>/usr/libexec/qemu-kvm</emulator>
    <disk type='block' device='disk'>
      <driver name='qemu' type='raw' cache='none' io='native'/>
      <source dev='/dev/guest_lvm/host1'/>
      <target dev='vda' bus='virtio'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x05' function='0x0'/>
    </disk>
    <controller type='usb' index='0' model='ich9-ehci1'>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x7'/>
    </controller>
    <controller type='usb' index='0' model='ich9-uhci1'>
      <master startport='0'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x0' multifunction='on'/>
    </controller>
    <controller type='usb' index='0' model='ich9-uhci2'>
      <master startport='2'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x1'/>
    </controller>
    <controller type='usb' index='0' model='ich9-uhci3'>
      <master startport='4'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x2'/>
    </controller>
    <controller type='pci' index='0' model='pci-root'/>
    <controller type='ide' index='0'>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x1'/>
    </controller>
    <interface type='bridge'>
      <mac address='53:5a:00:7f:47:b8'/>
      <source bridge='br0'/>
      <model type='virtio'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
    </interface>
    <serial type='pty'>
      <target port='0'/>
    </serial>
    <console type='pty'>
      <target type='serial' port='0'/>
    </console>
    <input type='mouse' bus='ps2'/>
    <input type='keyboard' bus='ps2'/>
    <video>
      <model type='vga' vram='16384' heads='1' primary='yes'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0'/>
    </video>
    <memballoon model='virtio'>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x06' function='0x0'/>
    </memballoon>
  </devices>
</domain>

 ,

N-N
()

Mdadm в cron. Нет выхлопа.

Если через cron в /etc/cron.d/testjob запустить вот такое:

PATH=/sbin:/bin:/usr/sbin:/usr/bin
0 10 * * * root mdadm -Ds --verbose > /home/vasya/mdadm.txt

То файл окажется пустым. Если запускать как обычно из юзерской или рутовой консоли - выхлоп есть. Если любую другую команду скормить крону - выхлоп так же будет. Но с mdadm пусто. Никаких ошибок cron на mail не шлет.

Собственно wtf?

 ,

N-N
()

Странные лаги SSH

Всем привет. В последнее время по вечерам, когда я из дома подключаюсь к конкретному удаленному серваку, начинает ужасно лагать ssh сессия. На другие сервера все норм. Лаги эти совершенно рандомные. Т.е. я могу открыть одну сессию и она будет нормальной, вторая также может быть нормальной, а третья лагает будто я совсем к другому серваку подключился. А может и сразу начать лагать. Причем те сессии, что изначально открылись нормально - работают нормально пока не выйдешь. Также и с лагающими сессиями - лагать будут до конца.

Все это происходит только по вечерам. Пробовал днем и утром - все норм. Сам сервак не особо нагружен, а по вечерам так вообще load average по нулям и сетевая активность тоже минимальна. Единственное что я заметил - это в resource monitor - tcp connections винды, в поле latency лагающие сессии выдают >400, а нормальные как положено ~20. ICMP пинг заблочен, но если пинговать nping'ом то там никакого криминала нет. В Tcpdump и wireshark тоже вроде чисто, хотя мб не туда смотрю. Понятно что это какая то сетевая проблема, но вот куда копать дальше? Провайдер на стороне сервера шалит?

 ,

N-N
()

Python для админа

Решил вкатиться в python и начать с книги A byte of python. Читаю, вникаю, вроде бы все понятно, но потом застрял на главе посвященной ООП. Мой текущий уровень программирования - написание скриптов автоматизации на баше.

Стоит ли мне напрягаться с освоением ООП на данный момент? Пока мне бы хотелось просто освоить питон для решения админских задач. Ну и вообще нужно ли знание ООП админу или девопсу?

 ,

N-N
()

Полный бэкап работающей системы.

Добрый вечер всем. Может и ламерский вопрос, но все же. Хочу перед обновлением на centos 7.4 хорошенько забэкапится, ну и заодно сделать уже бэкап по крону. Вот у меня есть такая разметка сейчас:

Filesystem           Size  Used Avail Use% Mounted on
/dev/mapper/cl-root   30G  1.9G   29G   7% /
devtmpfs             7.7G     0  7.7G   0% /dev
tmpfs                7.7G     0  7.7G   0% /dev/shm
tmpfs                7.7G  8.8M  7.7G   1% /run
tmpfs                7.7G     0  7.7G   0% /sys/fs/cgroup
/dev/md126          1015M  319M  697M  32% /boot
/dev/md125           201M  9.5M  192M   5% /boot/efi
tmpfs                1.6G     0  1.6G   0% /run/user/1000
/boot и /boot/efi на зеркале. Рут на lvm поверх зеркала. Насколько консистентым и рабочим получится бэкап, если просто взять и затарить/рсинкать(dd?) /boot и /boot/efi? А для рута сделать lvm снэпшот и чем нибудь тоже забэкапить. Повторюсь, что все это хотелось бы сделать на работающей системе.

Ну и пользуясь случаем заодно спрошу про бэкап работащих kvm виртуалок. Появилось ли что нито новее guest agent для freezefs внутри виртуалки?

 , , ,

N-N
()

SELinux не дает rsync'у удалить атрибут security.selinux

Всем привет. Есть источник - Debian, с которого rsync должен сливать данные включая их xattr's. И есть приемник на CentOS с включенным SELinux.

На источнике запускаю:

rsync -aAX --numeric-ids --delete -e "ssh -i /root/.ssh/root.key" /srv/share root@bkphost:/mnt

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

rsync: rsync_xal_set: lremovexattr(""/mnt/share/"","security.selinux") failed: Permission denied (13)

и в конце:

rsync error: some files/attrs were not transferred (see previous errors) (code 23) at main.c(1196) [sender=3.1.2]

Хотя все файлы копируются, но на них остаются висеть атрибуты SELinux, которые мне бы нафиг не нужны при копировании обратно. Пробовал setenforce 0 и setsebool rsync_full_access on - ничего не меняется.

Может есть еще способы кроме полного выключения SELinux?

 ,

N-N
()

Spamassassin все?

Всем привет. В логах почтовика давно заметил что sa-update уже 3 месяца не обновлял правила, потому что нет обновлений. Да и собственно последняя версия самого SA вышла в 2015 году. Читал списки рассылки - чето как то мутно все. Вроде судя по ruleqa.spamassassin.org чето обновляется, но в официальной репе обновлений так и нет.

Не скажу что совсем не устраивает как на данный момент SA отрабатывает, но все равно неспокойно. Может кто знает че там у разрабов с планам на счет SA? И если все плохо, то посоветуйте чем в 2017 году актуально фильтровать спам?

 ,

N-N
()

Прокинуть HDD в QEMU/KVM

Добрый день. Есть потребность прокинуть доп хранилище в samba виртуалку. В конечном итоге гость должен видеть lvm thin pool на зеркале из md девайсов. Как лучше все это организовать? Сейчас я пока сделал рейд1 средствами mdadm хостовой системы и уже этот /dev/md прокинут как /dev/vdb в гостя. И также средствами гостя сделан thin pool поверх /dev/vdb. Этот thin pool я задумал для создания в нем отдельных samba шар со своей фс на каждую чтобы завезти квоты.

Или все таки лучше прокинуть в гостя оба харда как есть и уже из гостя организовывать raid и тд? Или вообще нет разницы и оставить все как есть?

 ,

N-N
()

Доступ к SMB снаружи

Здрасьте! Нужно организовать доступ к SMB шарам так, чтобы к ним было не сильно геморно(по версии юзеров) подключаться извне, но относительно секурно(без торчащей наружу самбы). Так то уже есть OpenVPN, но люди как то косо на меня смотрели когда я им описывал последовательность действий для подключения. Этот вариант я отбрасывать не буду, но хотелось бы узнать у местных спецов как еще можно все это дело организовать?

Нагуглил пока вариант с Nextcloud, вроде норм. В общем как всегда интересует бест практис)

 , ,

N-N
()

Проектирование ЛВС

Добрый вечер всем! Есть желание как нибудь заняться постепенным разгребанием бардака что у меня на одном объекте. Убрать кучу soho мыльниц, поставить нормальные свичи и чтоб все аккуратненько было в кабельных каналах и с розетками. Это для начала. Потом уже буду смотреть в сторону VLANов и прочего.

Собственно хотел бы чтобы мне посоветовали литературу или какие нибудь ресурсы в инете посвященные этой теме. Честно гуглил, но везде слишком общо пишут. Например интересует такой вопрос - на данный момент все устроено так - есть условный управляемый длинк(центральный на весь этаж). От него расходятся кабеля до кабинетов. В этих кабинетах как правило стоят свои soho мыльницы к которым уже подключеный компы(а то и еще соседние кабинеты). В общем выходит так что на одном порту центрального свича может висеть овер9000 маков, и я даже port security не могу включить из за лимита на количество адресов per port. Вопрос: как должно быть по правильному? Выкинуть все эти длинки в комнатах, поставить один нормальный свич(или несколько) на весь этаж и уже от него тянуть до каждого компа?

 ,

N-N
()

Бест практис по апгрейду ОС на серверах

Всем привет. Хочу развернуть еще одну вирталку на Debian 9. Сейчас одна уже в работе и это версия 8.9 в качестве DC. Работает, каши не просит. Но всегда ж лучше когда у тебя не зоопарк из разых версий, а все примерно одинаково.

Поэтому возник вопрос, а есть ли какие то бест практис по апгрейдам боевых серверов до свежих релизов? Не конкретно Debian или даже *nix, а в общем. Здравый смысл конечно подсказывает что лучше этого не делать:) Но все равно интересно. Нужно ли это делать вообще, если все работает или забить на это дело до наступления EOL?

 ,

N-N
()

FreeBSD IPFW и непонятки с keep-state

Всем привет, создаю отдельную тему по мотивам моей предыдущей темы. Вот с чего начинается мой stateful IPFW скрипт закрытого типа:

#!/bin/sh

fwcmd="/sbin/ipfw -q"
oif="re0"
iif="re1"
lan="192.168.10.0/24"

# Localhost
${fwcmd} add allow all from any to any via lo0

# Check for dynamic rules
${fwcmd} add check-state

# Drop established tcp sessions
${fwcmd} add deny tcp from any to any established

И вот некоторые правила:

${fwcmd} add allow tcp from ${lan} to me 587,993 in via ${iif} setup keep-state
${fwcmd} add allow tcp from ${lan} to me 3128 in via ${iif} setup keep-state

Непонятки заключаются в том что если посмотреть на кол-во срабатываний конкретных правил по ipfw show, то с огромным отрывом преобладает правило 00300 и дропается весьма приличное кол-во нужных пакетов, если включить логгирование.

00100  112949  259970808 allow ip from any to any via lo0
00200       0          0 check-state
00300 4461606 1649862458 deny tcp from any to any established
02200   58889   54243602 allow tcp from 192.168.10.0/24 to me dst-port 587,993 in via re1 setup keep-state
03600   15410     757296 allow tcp from 192.168.10.0/24 to me dst-port 3128 in via re1 setup keep-state
При условии что все мои правила c keep-state, я не могу понять почему вообще что-то доходит до 00300, ведь все должно отрабатывать еще на check-state.

Подскажите пожалуйста, а то у меня уже соображалки не хватает совсем.

Со squid(правило 03600) вообще какая то странная жопа. Даже если разрешать established пакеты(то бишь пакеты перестают дропаться в обе стороны), то все равно продолжается та хрень из моей предыдущей темы пока не убрать к чертям keep-state и setup и явно не прописать трафик в обе стороны. Либо оставить setup, но разрешить established.

 ,

N-N
()

Realtek NIC спамит прерываниями

Всем привет! Есть роутер на FreeBSD 10.3 с PCI картой RealTek 8169/8169S/8169SB(L)/8110S/8110SB(L) Gigabit Ethernet смотрящей во внутрь.

Судя по top этот реалтек грузит одно ядро до 70% в пике. Помониторил нагрузку на сеть через iftop и увидел что скачки прерываний непосредственно связаны с одновременным увеличением TX rate к клиенту и RX rate от него. Т.е. при TX и RX раным 5Mb уже начинаются скачки прерываний. Вот часть вывода iftop -i re1:

gateway.localdomain.ru:3128         => client.localdomain.ru        5.79Mb  5.71Mb   995Kb
                                    <=                              5.79Mb  5.71Mb   995Kb
Однако при сиплексной передаче где наблюдается только высокий TX rate никаких скачков прерываний нету.

Вопроса у меня два:

1. Это реалтек такое гавно(если да, то почему) и насколько лучше станет с intel?

2. Второй вопрос возник пока описывал проблему и тоже не менее интересный для меня. Почему вообще в iftop обычные запросы к squid дуплексные? Открывал параллельно лог сквида и не видел там ничего чтобы указывало на аплоад юзером чего либо да еще на такой скорости. Также параллельно открывал iftop на внешнем интерфейсе - так вот там аплоад вообще не виден в таких количествах, т.е. вообще не равен тому что показывается на внутреннем интерфейсе. Мистика какая то.

 , ,

N-N
()

Защита LAN от посторонних девайсов

Всем привет. Интересует сабж. Есть ли какие то бест практис? Port security на свичах и прочие aclки завязанные на мак адреса конечно помогут от не сильно продвинутых товарищей, но как быть в случае спуфа маков? Например берем любой домашний роутер, втыкаем его в нашу локалку вместо какого нибудь валидного компа, берем его мак и прописываем роутеру, ну а потом настриваем NAT и открываем нашу локалку по wifi всем желающим. Сам я такой сценарий не пробовал на практике, но в теории все так и должно работать.

Читал про 802.1x - это оно? Или есть еще какие то варианты?

 ,

N-N
()

dhcpd не отрабатывает скрипт

Всем привет. Есть слегка модифицированный скрипт вот отсюда https://wiki.samba.org/index.php/Configure_DHCP_to_update_DNS_records_with_BIND9 Вкратце - это скрипт, который dhcpd исполняет при наступлении событий связаных с лизами(commit, release, expiry). Конкретно этот скрипт выполняет dns secure updates. Думаю что содержание скрипта тут неважно ибо он успешно отрабатывает, если его запускать вручную от юзера dhcpd:

sudo -u dhcpd /var/db/dhcpd/dhcp-dyndns.sh add 192.168.1.243 1:95:dd:8b:e4:g:da User-PC

Тут exit status 0 и записи добавляются в зону.

Но сам dhcpd почему то выдает вот это:

Jul  4 10:56:28 host dhcpd: Commit: IP: 192.168.1.243 DHCID: 1:95:dd:8b:e4:g:da Name: User-PC
Jul  4 10:56:28 host dhcpd: execute_statement argv[0] = /var/db/dhcpd/dhcp-dyndns.sh
Jul  4 10:56:28 host dhcpd: execute_statement argv[1] = add
Jul  4 10:56:28 host dhcpd: execute_statement argv[2] = 192.168.1.243
Jul  4 10:56:28 host dhcpd: execute_statement argv[3] = 1:95:dd:8b:e4:g:da
Jul  4 10:56:28 host dhcpd: execute_statement argv[4] = User-PC
Jul  4 10:56:28 host dhcpd: execute: /var/db/dhcpd/dhcp-dyndns.sh exit status 38656
Т.е. не отрабатывает. Сто раз проверил file permissions - вроде все правильно. Сам dhcpd не в chroot.

Как можно отдебажить это дело?

 

N-N
()

Samba AD. DDNS updates не работают на WinXP

Всем привет. Есть сетап из Samba AD DC + BIND как dns backend. Все работает, но именно WinXP клиенты не обновляют свои записи в зоне. При этом Win7 отрабатывает нормально. Tcpdump на DC никакой активности со стороны XP клиентов не показывает после ipconfig /registerdns, в отличии от 7. Соответвенно и в логах никаких ошибок. Единсвенное что видно - XP клиенты отправляют DHCPREQUEST на dhcp сервер, который работает на другой машине.

Конечно с одной стороны удобнее чтобы зоны обновлялись dhcp сервером, и можно было бы не заморачиваться по поводу клиентов, но именно AD integrated зоны isc-dhcp обновлять не умеет без костылей ввиде длинных скриптов.

Можно ли что то сделать с XPюшками?

 , , ,

N-N
()

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