LINUX.ORG.RU

Сообщения amkgi

 

Удаление правил с таблицы INPUT_direct через firewalld

Форум — Admin

Добрый день! Имеются правила в таблице INPUT_direct:

Chain INPUT_direct (1 references)
 pkts bytes target     prot opt in     out     source               destination
   30  1932 REJECT     udp  --  *      *       0.0.0.0/0            0.0.0.0/0            multiport dports 53,953 match-set fail2ban-named-refused-udp src reject-with icmp-port-unreachable
 930M   60G            udp  --  *      *       0.0.0.0/0            0.0.0.0/0            udp dpt:53 state NEW recent: SET name: DEFAULT side: source mask: 255.255.255.255
С первым правилом тут все понятно, это fail2ban защищает от любителей ddos'ить этот dns, но со вторым я не пойму откуда оно вообще появилось и было оно еще до настройки fail2ban'a. Я одно время открывал 53 порт через добавление сервиса dns в зону public, но потом сделал отдельные правила для 53 порта, поскольку IP на сервере более 3-х штук. В общем, что это за правило и как его можно удалить именно через firewalld? Буду благодарен за помощь.

 , ,

amkgi
()

Не работает bash sleep

Форум — Admin

Добрый день. Пишу скрипт, в котором если условие не истинно мне нужно, чтоб скрипт подождал какое-то время и повторил проверку условия снова и допустим уже на третий раз если условие не верно, выполнил команду. Если же условие истинно с первого раза продолжить выполнять иные команды. Пытался сделать таким образом:

x=1
y=2

        if [ "$x" -eq "$y" ]; then
           if [ $? -ne 0 ]; then
                sleep 25
           fi;
        if [ "$x" -eq "$y" ]; then
           if [ $? -ne 0 ]; then
                sleep 25
           fi;
        if [ "$x" -eq "$y" ]; then
                echo "Ok"
        else
                echo "No"
           fi;
        fi;
fi;
Но конечно это не работает. Честно говоря, я даже не могу представить каким путем это реализовать, нужен ли здесь будет цикл или задать какую-нибудь функцию... Надеюсь на вашу помощь, сильно не пинайте, я новичок)

 , ,

amkgi
()

bind9 с редиректом и белым списком

Форум — Admin

Добрый день!
Пришла задача на основе bind9 сделать белый список доменов и все что в него не попадает, перенаправлять на страницу где будет написано «Доступ запрещен» и прочие пояснения. Для самих белых доменов я пытался использовать forward, допустим:

zone "google.com" IN {
        type forward;
        forwarders { 8.8.8.8; };
};
Само перенаправление для доменов, не попавших в список, я решил сделать таким образом:
zone "." IN {
        type master;
        file "redirect";
};
$TTL 300
@       IN      SOA     ns.example.com. hostmaster.example.com. 0 0 0 0 0
@       IN      NS      ns.example.com.
*.      IN      A       10.10.10.10
Такой принцип не работает. Посылая запрос серверу по google.com, все равно возвращаеться 10.10.10.10
На сервере так же есть локальные зоны, по ним все работает корректно, ответы приходят с правильными адресами. Но создать около 4к локальных файлов для зон белых доменов и постоянно поддерживать их в актуальном состоянии я не представляю возможным, можно попробовать написать парсер, но это будет костыль, да и невозможно будет вытаскивать абсолютно все записи по доменам.

Насчет почему должен использоваться только bind. Среди локальных зон, которые используются нами для предоставления внутренних сервисов и услуг, есть много доменов, которые работают по принципу Split DNS.

В общем, нужна ваша помощь в реализации этой задачи, буду очень признателен за помощь.

 , , ,

amkgi
()

Насколько бесплатен Oracle Linux?

Форум — Admin

Добрый день! Знаю, что данный вопрос легко гуглится, что и было тоже проделано, так что сильно не пинайте)). Но у руководства еще остаются вопросы, видимо нужно явно ткнуть пальцем в строчку «да, он бесплатен весь и полностью для вас». К самой сути у нас была подписка и поддержка от Red Hat'a, на данный момент она кончилась и некоторые вещи нас просят убрать, ладно мы действительно от этого откажемся, но с их стороны идет давление в том, что покажите, докажите и убедите. В самой организации идет план по сокращению расходов. Отсюда и появился резонный вопрос - что дальше, CentOS или Oracle Linux?! Знаю, что это все GNU GPL, но все же... есть ли какие подводные камни или ограничения использования этих дистрибутивов в коммерческих целях, в особенности дистрибутива от Oracle? И какой бы Вы посоветовали дистрибутив из этих двух? Важным моментом является всегда доступность репозиториев.

 , , ,

amkgi
()

Split Horizon в powerdns

Форум — Admin

Здравствуйте уважаемые господа админы!)
Подскажите, кто имел опыт или имеет знания как в powerdns более менее красиво сделать split horizon. Озадачился я идей перетащить свой dns с медленного bind'a на более быстрый powerdns. Но столкнулся с такой проблемой, что на сервере у меня много зон, действующих только внутри сети провайдера, еще и с ротацией по регионам. Выглядит это примерно вот так:

acl region1 { 192.168.7.0/24; 10.10.100.0/23 };
acl region2 { 192.168.8.0/24; 10.10.1.0/26 };

view region1 {
    match-clients { region1; };
    zone "domain.org" {
        type master;
        file "domain.org/reg1";
    };
};

view region2 {
    match-clients { region2; };
    zone "domain.org" {
        type master;
        file "domain.org/reg2";
    };
};
Т.е. dns по одному и тому же домену, будет выдавать разные ответы, в соответствии с тем с какой сети пришел запрос. Bind9 поддерживает все это из коробки, а вот powerdns нет(( Я пытался настроить backend geoip для powerdns и через него реализовать split horizon, но путевого ничего не вышло, я не совсем разобрался с файлом .dat, который идет для geoip, он скачивается, я пытался повторив его синтаксис вписать туда свои сети, но может как-то не так все-таки вписывал или все же так нельзя настроить, в общем не вышло. Еще читал, что в этом случае можно использовать backend pipe и уже самому писать скрипт, в котором и будет заключаться split horizon. Тут я тоже пытался уже найти готовые решения, но не нашел.

 , , , ,

amkgi
()

Высокая нагрузка CPU bind-chroot

Форум — Admin

Добрый день!

Кто-нибудь сталкивался с тем, что bind9 (в chroot'e) сильно нагружает CPU? Сам сервис располагается на виртуальной машине в VMware ESXi 5.5 с 4 ядрами и 4Гб оперативы, OS - RHEL 7.3, версия bind'a - 9.9.4-38.el7_3.3. Пользователей около 45 тысяч. Помимо самого bind'a на сервере есть еще quagga для работы anycast'a по bgp. Утром и днем load average 1.2-1.8, вечером доходит до 3, почти все ядра грузятся более чем на 50%. Вечернее усиление нагрузки оправдывается тем, что все пользователи начинают активно пользоваться домашним Интернетом, но даже это я думаю не оправдывает такой нагрузки на CPU. Почему может происходить такая нагрузка или все же это нормальное явление? Все лишнее закрыто фаерволом, в конфиге bind'a есть acl'ки для «view-зон», так же левым сетям он отвечать не будет.

По мимо bind'a много процессорного времени занимают процессы ksoftirqd и rcu_sched, но сама нагрузка от них на процессор минимальна.

 , , , ,

amkgi
()

Переменные в ansible, как в bash-scripts

Форум — Admin

Добрый день!
Подскажите можно ли в плэйбуке ansibl'a (или через саму команду ansible «hosts» -m module -a ' ') вставить переменные, как в bash-скрипте?
Допустим, вот кусок из плейбука:

tasks:
    - firewalld:
        rich_rule: 'rule family="ipv4" source address="ip/32" port protocol=«tcp» port=«179» accept'
        zone: public
        permanent: true
        state: enabled
        immediate: yes
Где стоит ip/32 туда и должен встать адрес. Используя обычный скрипт, я бы задал переменную так:
ip=$(awk '/value/ {print $2}' /path/to/file.conf |head -n 1)
Для большего пониманию примерно чтоб было так :)
rich_rule: 'rule family="ipv4" source address="$(awk '/value/ {print $2}' /path/to/file.conf |head -n 1)/32" port protocol=«tcp» port=«179» accept'
Проблема еще в том, что это значение он должен брать именно на удаленной машине, поскольку файл лежит на удаленных машинах с разным везде значением, ну отсюда и нужда забить туда переменную)) Через --extra-vars ничего не вышло, так же пытался указать в самом плейбуке секцию vars. Но может быть как-то не так указывал...

 , , , ,

amkgi
()

Удаление столбцов из файла в определенных местах

Форум — Admin

Ранее я на этом форуме спрашивал как добавить значения в определенные строки, теперь нужно обратное действие. Старые маршруты, которые были до добавления новых нужно удалить. Они прописаны в самом конце маршрутов, я их выделил в примере.

option ms-classless-static-routes 32, 176,0,16,5, 10,30,20,1,  32, 2,2,2,2, 10,30,20,1,  32, 25,25,2,3, 10,30,20,1; 
option rfc3442-classless-static-routes 32, 176,0,16,5, 10,30,20,1,  32, 2,2,2,2, 10,30,20,1,  32, 25,25,2,3, 10,30,20,1;
И после удаления, нужно у ставшего последним столбца заменить символ с запятой на точку с запятой.
Чтоб уже получилось так:
option ms-classless-static-routes 32, 176,0,16,5, 10,30,20,1,  32, 2,2,2,2, 10,30,20,1;
option rfc3442-classless-static-routes 32, 176,0,16,5, 10,30,20,1,  32, 2,2,2,2, 10,30,20,1;
Я пытался использовать cut,
grep static-routes /etc/dhcp/dhcpd.conf |cut -d' ' -f1-17,21 > /etc/dhcp/dhcp.conf.new
но мне нужно сохранить все строки в файле и только в определенных удалить 3 столбца!
Подскажите, пожалуйста, как можно это сделать. Погуглив на английском и на русском языках, везде нахожу примеры где не нужно отбирать по значениям строки как у меня, а просто сразу удаляются по всему файлу столбцы.

 , , ,

amkgi
()

bash скрипт не отрабатывает условие

Форум — General

Добрый день! Ребят подскажите, что не так. Пишу простейший скрипт:

for x in `cat hosts`; do
state=$(sshpass -pPassword ssh -q $x ipmcget -d powerstate |grep Power |awk '{print$4}')
    if [ $state = Off ]; then
       echo $x
    fi;
done
Значения в самой переменной должны возвращаться либо On, либо Off.

Выполняя в терминале все работает, но в скрипте с использованием условия уже нет.

 , , ,

amkgi
()

Добавление значений в определенные строки

Форум — General

Добрый день!

Подскажите как написать bash-скрипт, допустим с помощью sed или awk, который смог бы добавить значение в определенные строки. Если быть подробнее, у меня есть dhcp с дохрениллион сетей, реально их много, в этих сетях прописаны статические роуты и вот такая напасть задалась, что надо добавить еще один роут в каждую сеть, делать это руками жесть, да и не собирался собственно говоря, но вот как бы я не использовал sed или awk (с циклами/без них или шаманским бубном) ничего у меня не выходит. Решил обратится за помощью.

Для примера:

 shared-network SETKA { 
        subnet 5.5.5.55 netmask  255.255.255.248 { 
        } 
        subnet  10.30.20.0 netmask  255.255.255.0 { 
                option routers  10.30.20.1 ; 
                option subnet-mask 255.255.255.0; 
                option ms-classless-static-routes 32, 176,0,16,5, 10,30,20,1, 32, 25,25,2,3, 10,30,20,1; 
                option rfc3442-classless-static-routes 32, 176,0,16,5, 10,30,20,1, 32, 25,25,2,3, 10,30,20,1; 
                pool { 
                        range  10.30.20.2  10.30.20.120; 
                } 
        } 
}

Теперь допустим между (176,0,16,5, 10,30,20,1,) и (32, 25,25,2,3,) я хочу воткнуть 32, 2,2,2,2, 10,30,20,1,; чтобы стало вот так:

                option ms-classless-static-routes 32, 176,0,16,5, 10,30,20,1,  32, 2,2,2,2, 10,30,20,1,  32, 25,25,2,3, 10,30,20,1; 
                option rfc3442-classless-static-routes 32, 176,0,16,5, 10,30,20,1,  32, 2,2,2,2, 10,30,20,1,  32, 25,25,2,3, 10,30,20,1;  


Для каждой сети отличается только шлюз, т.е. такие ip'ы, как 176,0,16,5 и 25,25,2,3,; они постоянны, для каждой сетки меняется только 10,30,20,1. И вот мне нужно вставить между двумя этими роутами новый - 32, 2,2,2,2, но после чтобы подставлялся свой шлюз для каждой сети.

 , , ,

amkgi
()

ansible управление сетевым интерфейсом

Форум — Admin

Добрый день!

Подскажите, кто использовал в администрировании своих серверов ansible, есть ли у него возможность менять ip сервера на другой при этом сразу же переподключиться к этому серверу и производить дальнейшие настройки?

Дело в том, что стоит куча однотипных серверов и их отказоустойчивость настроена на таком уровне, что если падает один сервер, то вручную запускается его дубликат. Пока основной работает, дубликат выключен. И вот этот IP используемый серверами (на основном и дубликате) я хочу настроить как плавающий между ними, а интерфейсам уже дать другие IP, чтобы они мониторили друг друга на доступность. Заходить на каждый сервер вручную не охота их около 100 штук, вот думаю как бы мне ansible в этом мог бы помочь.

 , , ,

amkgi
()

Делегирование реверсной зоны в PowerDNS

Форум — Admin

Добрый день, ранее работал с Bind9 делегировал зоны очень просто используя generate и указанием */*.X.X.X.in-addr.arpa на ns.кому-надо.получай, в общем все как завещал rfc2317.

Поставил powerdns, соблазнился его нахваливанием и легкой в настройке, лаконичной, без всякого лишнего админской панелькой, которую раздал всяким клиентам, управлять своими зонами поскольку их более 0,1k. Теперь хочу делегировать одному банку, часть реверса используя те же самые принципы, но он почему то их не отрабатывает. Прошу помочь админов DNS в частности по PowerDNS, я просто не пойму, может там какой-то другой принцип делегирования?

 , ,

amkgi
()

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