Category: Uncategorized

  • Ubuntu Linux удалить PPAs

    Ubuntu Linux удалить PPAs

    В свое время я добавил слишком много PPA, используя команду add-apt-repository на сервере Ubuntu Linux 16.04 LTS для тестирования. Как я могу удалить эти PPA? Есть ли команда для всех PPA?

    Да, вы можете удалить PPA. Для выполнения этой задачи необходимы привилегии root.

    Что такое PPA?

    PPA – акроним для Personal Package Archive. Это не что иное, как готовый бинарный репозиторий программного обеспечения для apt-пакетов. Автор загружает исходный код, а пакеты создаются в режиме онлайн с помощью Launchpad.

    Как просмотреть все установленные PPA

    Введите следующую команду:

    $ grep ^ /etc/apt/sources.list.d/*

    Пример результата:

    Ubuntu-list-all-ppas-command

    Как удалить PPAs

    Синтаксис:

    sudo add-apt-repository --remove ppa:name/here

    Удалить PPA с именем ppa: gluster / glusterfs-3.9. Однако перед удалением PPA удалите все пакеты, установленные из того же PPA, используя команду apt-get command / apt :

    $ apt-get --purge remove glusterfs-server 
    $ apt-get --purge autoremove

    Теперь удалите PPA:

    $ sudo add-apt-repository --remove ppa:gluster/glusterfs-3.9

    В конце, обновите репо:

    $ sudo apt-get update

    Знакомтесь, инструмент ppa-purge

    Инструмент ppa-purge – это всего лишь сценарий оболочки bash, способный понизить все пакеты в данном PPA до исходных версий Ubuntu. Он отключает PPA. Сначала установите ppa-purge:

    $ sudo apt-get install ppa-purge

    Синтаксис ppa-purge

    Синтаксис:

    $ sudo ppa-purge ppa:repo-name/dirname

    Например, удалите apt-fast repo команду, которая используется для ускорения apt-get на Ubuntu Linux :

    $ sudo ppa-purge ppa:saiarcot895/mypp

    Пример результата:

    Удаление PPA с использованием скрипта ppa-purge

    Чтобы удалить https://launchpad.net/~saiarcot895/+archive/ubuntu/myppa, вы также можете использовать следующий синтаксис:

    $ sudo ppa-purge -o myppa 
    $ sudo ppa-purge -o saiarcot895 -p myppa

    Где,

             -p [ppaname] Имя PPA для отключения (по умолчанию: ppa)
    	 -o [ppaowner] владелец PPA
    	 -s [host] Сервер репозитория (по умолчанию: ppa.launchpad.net)
    	 -d [distribution] Переопределить выбор по умолчанию.
    	 -y Pass -y --force-yes для apt-get или -y для aptitude
    	 -i Обратное предпочтение apt-get над aptitude.
    	 -h Отобразить текст справки

    Услуги системного администратора сервера, office@itfb.com.ua

  • Vim-plug: минималистичный менеджер плагинов vim

    Vim-plug: минималистичный менеджер плагинов vim

    Диспетчер плагинов vim -обязательный инструмент для любого системного администратора, которому нравится vim и он часто в нем работает. Вы можете найти несколько вариантов, доступных там. Мой личный фаворит – vim-plug, который является красивым и минималистичным плагином для vim. Посмотрим, как установить и использовать этот плагин для Linux или Unix-подобных систем.

    Установка

    Естественно, в вашей системе должен быть установлен vim. Для демонстрационной цели я использую Ubuntu и MacOS. Просто загрузите plug.vim и поместите его в каталог «autoload»:

    $ mkdir ~/.vim/autoload/ 
    $ cd ~/.vim/autoload/

    Давайте скачаем plug.vim, используя команду wget или curl:

    $ wget https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim

    ИЛИ

    $ curl -O https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim

    Как настроить vim-plug?

    " Укажите каталог для плагинов  
    call plug#begin('~/.vim/plugged')
     
    "Любой допустимый URL-адрес git разрешен для плагина.
     Подключить правильный URL-адрес git
    Plug 'valid git URL'
     
    " Сокращенное обозначение для плагина
    Plug 'foo/bar'
     
    " Инициализировать плагин
    call plug#end()

    Пример

    Допустим, вы хотите использовать плагин vim с именем ansible-vim для синтаксиса, выделяющего типичные типы файлов Ansible. В файл ~ / .vimrc необходимо добавить следующее:

    call plug#begin('~/.vim/plugged')
    Plug 'pearofducks/ansible-vim'
    call plug#end()

    Сохраните и закройте файл.

    Установить плагин ansible-vim

    Запустите текстовый редактор:

    $ vim

    Чтобы просмотреть  статус:

      : PlugStatus

    Чтобы установить ansible-vim введите:

      : PlugInstall

    Пример:

    работа в плагинах vim

  • Как присвоить результат команды переменной оболочки

    Как присвоить результат команды переменной оболочки

    Как сохранить выходные данные команды grep в переменной оболочки? Каков синтаксис для хранения вывода команды в переменной в Linux или Unix?

    Вы можете использовать команду grep для любых заданных входных файлов, выбирая строки, соответствующие одному или нескольким шаблонам. По умолчанию вывод выводится на экран. Но вы можете сохранить вывод в переменную в сценариях оболочки.

    Синтаксис

    Команды подстановки означают не что иное, как запуск команды оболочки и сохранение ее вывода в переменной или отображение обратно с помощью команды echo. Синтаксис:

    VAR=`command-name`
    VAR="`grep word /path/to/file`"
    ## или ##
     
    VAR=$(command-name)
    VAR="$(grep word /path/to/file)"

    Пример

    Чтобы отобразить дату и время с помощью команды echo:

    echo "Today is $(date)"
    ## или ##
    echo "Today is `date`"

    Вы можете сохранить вывод команды в переменной оболочки, используя следующий синтаксис:Чтобы сохранить текущую дату и время в переменной под названием todays:

    todays=$(date)

    Вы можете просмотреть значение $todays, введите:

    echo "$todays"

    В этом примере используйте команду grep для поиска имени пользователя под названием vivek и сохранения вывода в переменной myuser:

    myuser="$(grep '^vivek' /etc/passwd)"
    echo "$myuser"

    Примеры результата

    присвоение значений переменной

    Вы можете сохранить вывод команды grep в переменной одновременно с выводом на экран, используя следующий синтаксис команды tee:

    foo="$(grep '^vivek' /etc/passwd | tee /dev/tty) "
    echo "$foo"

    Это полезно для прямого вывода команды grep в переменную оболочки и отображения на экране одновременно.

    Удаленное администрирование сервера, office@itfb.com.ua

  • Почему нужно использовать HTTPS

    По умолчанию HTTPS обеспечивает конфиденциальность и целостность. Грядут перемены. Органы стандартов Интернета, веб-браузеры, крупные технические компании и интернет-сообщество практически все поняли, что HTTPS должен быть базой для всего веб-трафика. В конечном счете, цель интернет-сообщества – установить шифрование как норму и поэтапно отключить незашифрованные соединения. Инвестирование в HTTPS делает его быстрее, дешевле и проще для всех.

    Бесплатный сертификат SSL для всех

    Вы можете получить бесплатный сертификат ssl с проектом Let’s Encrypt. Это центр сертификации, запущенный 12 апреля 2016 г., который предоставляет бесплатные сертификаты X.509 для шифрования с защитой транспортного уровня (TLS).

    Если Вам нужно установить сертификат для сайта на сервер или хостинг, обращайтесь offce@itfb.com.ua

    Так же рекомендуем хостинг с бесплатным сертификатом от  Let’s Encrypt

  • Маленький проект – большая польза

    Маленький проект – большая польза

    Сегодня мы расскажем об одном небольшом проекте, который (по словам заказчика) значительно упростил управление ИТ ресурсами компании.

    Итак, заказчик – небольшая компания. Ее информационная инфраструктура состоит из 10 ПК, на момент старта проекта объединенных в рабочую группу.  Также имеется Windows Server 2003 с настроенной ролью файлового сервера, обеспечивающий работу пользователей с сетевыми папками. Сотрудниками использовались локальные учетные записи, а также почта в Office 365, с отдельными учетными записями для входа.

    миграция в AD

    Задача – обновить серверные системы,  упростить администрирование и навести порядок в ИТ инфраструктуре компании.

    Для компании была спланировано решение с использованием базовых сетевых сервисов Windows, в частности Active Directory.

    Заказчик приобрел более мощный сервер Dell в комплекте с Windows Server 2012R2 Standard. На нем были настроены Active Directory Domain Services для управления пользователями и компьютерами компаниями, для удобства дальнейшего использования настроены DFS NameSpace.

    Далее была спланирована и реализована миграция сетевых папок со старого сервера на новый. После чего приступили к миграции ПК, данных и персональных настроек программ пользователей из рабочей группы в домен. Для реализации этой задачи использовалась утилита ProfWis. Здесь мы столкнулись с основными сложностями проекта.

    Дмитрий (системный администратор ITFB):

    Подводные камни были  ожидаемы, но от этого было не проще. Зоопарк операционных систем, машины не патчились долгое время. Наличие непонятного ПО, местами пожирающее все ресурсы и затрудняющее работу пользователя. Местами пользователи не помнили свои пароли от прикладных систем, Skype и пр.

    На период миграции и стабилизации нового решения сотрудниками нашей компании выполнялась оперативная поддержка пользователей.

    На финальном этапе доступ к сетевым ресурсам был переопределен только  для доменных учетных записей пользователей. И старый сервер был полностью отключен.

    В результате получен новый сервер с большей производительностью,  выступающий в роли единой точки доступа сотрудников компании к рабочим станциям, офисным файлам и документам. Подключение сетевых ресурсов для пользователей выполняется автоматически с помощью групповых политик на базе членства пользователя в группах Active Directory. Решена проблема дублирования локальных учетных записей для доступа к общим ресурсам. Пользователи получили более простой и быстрый доступ к сетевым ресурсам. Упростилось администрирование системы.

    Основная часть проекта, включающая настройку сервера, клиентов и стабилизацию решения, заняла 20 рабочих часов.

    На данный момент решение находится на поддержке в нашей компании: осуществляется мониторинг его работы, проводятся плановые обслуживания сервера.

    Заказчик планирует развитие инфраструктуры путем интеграции с облачными технологиями.

    Павел (системный администратор ITFB):

    Целесообразно использовать доменную учетную запись для работы с облачной почтой. Сейчас они отличаются. Также пока нет бекапа. Мы предложили несколько вариантов, среди которых использование Azure.

    На данный момент  проект развития находится на согласовании у руководства компании.

    Внедрение и поддержка продуктов Microsoft, обращайтесь office@itfb.com.ua

  • Как изменить оболочку по умолчанию в Linux

    Хотите изменить оболочку по умолчанию в Linux / Unix / MacOS? Выполните следующую команду:

    chsh -s /path/to/shell user

    Например, установите оболочку в zsh для пользователя tom, введите:

    which zsh 
    chsh -s /usr/local/bin/zsh tom

    Системный администратор удаленно, office@itfb.com.ua

  • Как получить список установленных пакетов на Ubuntu / Debian Linux

    Как получить список установленных пакетов на Ubuntu / Debian Linux

    Предположим я- новичек, системный администратор Ubuntu Linux. Как мне получить список всех установленных пакетов на server1 и установить их на server2? Как перечислить все установленные пакеты с помощью команды apt-get на сервере Ubuntu или Debian?

    Вам нужно использовать dpkg и другие команды, как показано ниже, чтобы увидеть список всех установленных пакетов на сервере Ubuntu или Debian Linux.

    Просмотр установленных пакетов

    Введите следующую команду:

    $ dpkg-query -l

    Примеры результатов:

    Desired=Unknown/Install/Remove/Purge/Hold
    | Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
    |/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
    ||/ Name                          Version                           Architecture Description
    +++-=============================-=================================-============-=============================================================================
    ==
    ii  accountsservice               0.6.40-2ubuntu11.3                amd64        query and manipulate user account information
    ii  acct                          6.5.5-2.1ubuntu1                  amd64        The GNU Accounting utilities for process and login accounting
    ii  acl                           2.2.52-3                          amd64        Access control list utilities
    ii  adduser                       3.113+nmu3ubuntu4                 all          add and remove users and groups
    ii  apparmor                      2.10.95-0ubuntu2.5                amd64        user-space parser utility for AppArmor
    ii  apt                           1.2.19                            amd64        commandline package manager
    ii  apt-transport-https           1.2.19                            amd64        https download transport for APT
    ii  atop                          1.26-2build1                      amd64        Monitor for system resources and process activity
    ii  base-files                    9.4ubuntu4.3                      amd64        Debian base system miscellaneous files
    ii  base-passwd                   3.5.39                            amd64        Debian base system master password and group files
    ii  bash                          4.3-14ubuntu1.1                   amd64        GNU Bourne Again SHell
    ii  bash-completion               1:2.1-4.2ubuntu1.1                all          programmable completion for the bash shell
    ii  bc                            1.06.95-9build1                   amd64        GNU bc arbitrary precision calculator language
    ii  bind9-host                    1:9.10.3.dfsg.P4-8ubuntu1.4       amd64        Version of 'host' bundled with BIND 9.X
    ii  bsdmainutils                  9.0.6ubuntu3                      amd64        collection of more utilities from FreeBSD

    Хотите увидеть только список пакетов? Выполните:

    $ dpkg-query -f '${binary:Package}\n' -W

    Примеры результатов:

    unattended-upgrades
    ureadahead
    usbutils
    util-linux
    uuid-runtime
    vim
    vim-common
    vim-runtime
    vim-tiny
    virt-what
    vnstat
    wamerican
    ...........

    Как получить список установленных пакетов

    Введите следующую команду

    $ dpkg --get-selections | grep -v deinstall

    список установленных пакетов

    Другой вариант – использовать команду apt следующим образом:

    $ apt list --installed

    ИЛИ просто найдите все пакеты  php, используя команду grep :

    $ apt list --installed | grep php

    Примеры результатов:

    Listing...
    accountsservice/xenial-updates,now 0.6.40-2ubuntu11.3 amd64 [installed,automatic]
    acl/xenial,now 2.2.52-3 amd64 [installed,automatic]
    adduser/xenial,xenial,now 3.113+nmu3ubuntu4 all [installed]
    apt/xenial-updates,now 1.2.19 amd64 [installed]
    apt-transport-https/xenial-updates,now 1.2.19 amd64 [installed]
    apt-utils/xenial-updates,now 1.2.19 amd64 [installed]
    atop/xenial,now 1.26-2build1 amd64 [installed]
    base-files/xenial-updates,now 9.4ubuntu4.3 amd64 [installed]
    base-passwd/xenial,now 3.5.39 amd64 [installed]
    ................

    Как сохранить список в текстовый файл

    Синтаксис следующий: server1:

    $ dpkg --get-selections | grep -v deinstall > mylist.txt

    Или

    $ Dpkg -l | Grep ^ ii | Awk '{print $ 2}'> mylist.txt

    Теперь скопируйте файл mylist.txt на сервер с именем server2:

    $ scp mylist.txt user@server2:~/

    Как установить список пакетов на сервере2

    На сервере server2 восстановите  из файла mylist.txt, запустите:

    $ dpkg --clear-selections
    $ sudo dpkg --set-selections < mylist.txt

    ИЛИ

    $ sudo apt-get install -y $(< mylist.txt)

    Наконец, запустите следующую команду, чтобы удалить ненужные пакеты:

    $ sudo apt-get autoremove

    Выше команда должна восстанавливать / устанавливать пакеты из резервных копий или другого сервера. Другим вариантом является использование команды aptitude следующим образом:

    ### Создайте список программ в файле /tmp/packages.txt ####
    dpkg --get-selections > /tmp/packages.txt
    ###  копировать файл на другой сервер под названием server1.itfb.com.ua ##
    scp /tmp/packages.txt user@server1.itfb.com.ua:/tmp/
    ### Теперь, когда ваш список скопирован, используйте apt-get / synaptic для установки пакетов
    #### 1. Вход на другой сервер
    ssh root@server1.itfb.com.ua
    # 2. Установите из списка
    aptitude install $(cat /tmp/packages.txt | awk '{print $1}')

    Администрирование и поддержка серверов, office@itfb.com.ua

  • PHP Неустранимая ошибка: вызов неопределенной функции gzinflate ()

    У меня есть php-скрипт, и всякий раз, когда я запускаю его, я получаю следующее сообщение об ошибке в файле журнала:

    *10 FastCGI sent in stderr: “PHP message: PHP Fatal error: Call to undefined function gzinflate() in /home/xxxx/http/includes/functions.php(1) : eval()’d code on line 1″ while reading response header from upstream, client: 10.218.105.1, server: newsletter.itfb.com.ua, request: “GET /a/ HTTP/1.0”, upstream: “fastcgi://127.0.0.1:9000

    Как устранить эту проблему в операционных системах Alpine Linux или Unix?

    Вам нужно использовать Zlib. Поддержка Zlib в PHP не включена по умолчанию. Вам нужно будет настроить PHP -with-zlib [= DIR]. Версия PHP для Windows имеет встроенную поддержку этого расширения. Вам не нужно загружать какие-либо дополнительные расширения, чтобы использовать эти функции. Однако в Linux или Unix вам необходимо установить php5-zlib или php7-zlib согласно вашему дистрибутиву.

    Установите php5-zlib или php7-zlib в Alpine Linux

    # apk add php5-zlib

    ИЛИ

    # apk add php7-zlib

    Вы должны перезапустить php-fpm или apache / lighttpd:

    # rc-service php-fpm restart

    ИЛИ

    # /etc/init.d/php-fpm restart

    Установка php56-zlib на FreeBSD

    Введите следующую команду:

    # pkg install php56-zlib

    ИЛИ

    # pkg install php70-zlib

    Убедитесь, что вы перезапустили php-fpm:

    # service php-fpm restart

    Установка, настройка и поддержка серверов, office@itfb.com.com.ua

  • Как запустить OpenVPN, при перезагрузке

    Какая-то странная причина, я не могу заставить мой сервер OpenVPN запускаться во время загрузки, используя systemd на сервере Ubuntu Linux 16.04 LTS. Я пробовал несколько настроек, но не получилось.

    Вот мой файл /lib/systemd/system/openvpn.service:

    # cat /lib/systemd/system/openvpn.service

    Его содержимое

    # This service is actually a systemd target,
    # but we are using a service since targets cannot be reloaded.
     
    [Unit]
    Description=OpenVPN service
    After=network.target
     
    [Service]
    Type=oneshot
    RemainAfterExit=yes
    ExecStart=/bin/true
    ExecReload=/bin/true
    WorkingDirectory=/etc/openvpn
     
    [Install]
    WantedBy=multi-user.target

    Я хотел запустить сервисы после того, как сеть будут запущена, чтобы OpenVPN мог привязать определенный IP-адрес и порт. После = network.target говорит ждать, пока nework “запуститься”.

    Мое решение проблемы

    Я, наконец, сдался и просто написал задание cron, которое начнется после каждой перезагрузки системы:

    @reboot sleep 100;/etc/init.d/openvpn restart;/etc/init.d/ssh restart;/etc/init.d/squid reload

    Команда @reboot принудительно запускает задание один раз при запуске. В этом случае перезапустится сервер openvpn и sshd:

    $ ss -tulpn

    ИЛИ

    $ netstat -tulpn

    Пример вывода

    tcp        0      0 10.8.0.1:80             0.0.0.0:*               LISTEN      1549/lighttpd   
    tcp        0      0 0.0.0.0:53              0.0.0.0:*               LISTEN      1524/dnsmasq    
    tcp        0      0 10.8.0.1:22             0.0.0.0:*               LISTEN      1756/sshd       
    tcp        0      0 10.8.0.1:3128           0.0.0.0:*               LISTEN      1675/(squid-1)  
    tcp        0      0 0.0.0.0:443             0.0.0.0:*               LISTEN      1732/openvpn

    Должен быть способ запуска сервисов (OpenVPN) после выхода из сети. Однако я не смог понять. Если кто-нибудь знает, как решить эту проблему без использования cron, дайте мне знать в разделе комментариев ниже.

  • Как настроить ufw для перенаправления трафика 80/443 на внутренний сервер, размещенный в локальной сети

    Как настроить ufw для перенаправления трафика 80/443 на внутренний сервер, размещенный в локальной сети

    Я использую UFW для защиты своей сети. Как перенаправить TCP HTTP-порт # 80 и 443 на внутренний сервер, размещенный по адресам 192.168.1.100:80 и 192.168.1.100:443, используя UFW на сервере Ubuntu Linux?

    UFW – акроним для несложного брандмауэра. Он используется для управления брандмауэром Linux и предназначен для обеспечения простого в использовании интерфейса для пользователя. В этом учебном руководстве вы узнаете, как перенаправить входящий трафик на ваш сервер с ufw по порту 80/443 на порт 80/443 на другом внутреннем сервере, размещенном в вашей локальной сети / VLAN .

    Наш пример

    Предположим, вы хотите переслать запросы, отправляемые на {80,443} на сервер, прослушивающий 192.168.1.100:{80,443}. : Как настроить ufw для перенаправления http-трафика на другой IP-адрес: порт

    настройка фаервола

    Все запросы для порта 202.54.1.1 80 и 443 необходимо перенаправить на другой внутренний сервер.

    DNAT

    Если у вас есть сервер во внутренней сети, который вы хотите сделать доступным извне, вы можете использовать -j DNAT-адрес цепи PREROUTING в NAT, чтобы указать IP-адрес и порт назначения, где могут быть входящие пакеты, запрашивающие подключение к вашей внутренней службе. Синтаксис:

    /sbin/iptables -t nat -A PREROUTING -i eth0 -p tcp -d {PUBLIC_IP} --dport 80 -j DNAT --to {INTERNAL_IP}:80

    или

    /sbin/iptables -t nat -A PREROUTING -i eth0 -p tcp -d {PUBLIC_IP} --dport 443 -j DNAT --to {INTERNAL_IP}:443

    Постобработка и IP-Masquerading

    Чтобы разрешить узлам локальной сети с частными IP-адресами связываться с внешними общедоступными сетями, настройте брандмауэр для маскировки IP-адресов, который маскирует запросы от узлов локальной сети с IP-адресом внешнего устройства брандмауэра, например eth0. Синтаксис:

    /sbin/iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

    или

    /sbin/iptables -t nat -A POSTROUTING -s 192.168.1.0/24 ! -d 192.168.1.0/24 -j MASQUERADE

    Как настроить ufw для перенаправления порта

    Вам нужно отредактировать файл /etc/ufw/before.rules, введите:

    $ sudo vi etc/ufw/before.rules

    Затем настройте ufw для перенаправления http-трафика на другой (LAN) IP: порт. В верхнем файле добавьте:

    *nat
    :PREROUTING ACCEPT [0:0]
    # forward 202.54.1.1  port 80 to 192.168.1.100:80
    # forward 202.54.1.1  port 443 to 192.168.1.100:443
    -A PREROUTING -i eth0 -d 202.54.1.1   -p tcp --dport 80 -j  DNAT --to-destination 192.168.1.100:80
    -A PREROUTING -i eth0 -d 202.54.1.1   -p tcp --dport 443 -j  DNAT --to-destination 192.168.1.100:443
    # setup routing
    -A POSTROUTING -s 192.168.1.0/24 ! -d 192.168.1.0/24 -j MASQUERADE
    COMMIT

    Сохраните и закройте файл. Измените /etc/sysctl.conf:

    $ sudo vi /etc/sysctl.conf

    Установите / отредактируйте следующим образом:

      Net.ipv4.ip_forward = 1

    Сохраните и закройте файл. Обновить изменения:

    $ sudo sysctl -p

    Наконец, перезапустите брандмауэр, чтобы включить маршрутизацию:

    $ sudo systemctl restart ufw

    Убедитесь, что разрешены порты 80 и 443, иначе ufw заблокирует запросы, перенаправленные на внутренние 192.168.1.100:{80,443}:

    $ sudo ufw allow proto tcp from any to 202.54.1.1 port 80 
    $ sudo ufw allow proto tcp from any to 202.54.1.1 port 443

    Проверьте новые настройки:

    $ sudo ufw status 
    $ sudo iptables -t nat -L -n -v

    Наконец, убедитесь, что в вашем домене указанаDNS ‘a’ запись , установлена на 202.54.1.1.

    Услуги администрирования серверов, настройка сети, office@itfb.com.ua