Установка Nessus на Debian/Ubuntu/Mint
Nessus является проприетарным сканером уязвимостей в Unix\Linux, который разрабатывается в Tenable Network Security. Его можно бесплатно использовать для личного пользования.
По данным опросов, проведенных sectools.org, Nessus является самым популярным в мире сканером уязвимостей, заняв первое место в 2000, 2003 и 2006 на улучшение безопасности. По оценкам Tenable Network Security, известно что он используется более чем 75 000 организаций по всему миру.
Установка Nessus на Debian/Ubuntu/Mint не займет много времени и не очень сложная. В своей теме «Установка Nessus на Debian/Ubuntu/Mint» я это сейчас покажу как можно сделать (на примере ОС — Debian).
1. Проверяем версию и релиз ОС:
# uname -a # lsb_release -a
У меня это Debian 7 (32 бит), по этому я скачаю для свой операционной системы данную утилиту.
Перейдем в нужную директорию, я всегда использую:
# cd /usr/local/src
Если у Вас Debian 6 или 7 а так же Kali Linux (32 бит):
# wget "http://downloads.nessus.org/nessus3dl.php?file=Nessus-5.2.7-debian6_i386.deb&licence_accept=yes&t=054bf0d5344189e8b3ad3a09bcb642bd" -O nessus_32.deb
Если у Вас Debian 6 или 7 а так же Kali Linux (64 бит):
# wget "http://downloads.nessus.org/nessus3dl.php?file=Nessus-5.2.7-debian6_amd64.deb&licence_accept=yes&t=054bf0d5344189e8b3ad3a09bcb642bd" -O nessus_64.deb
Если у Вас Ubuntu 12/13 (32 бит):
# wget "http://downloads.nessus.org/nessus3dl.php?file=Nessus-5.2.7-ubuntu1110_i386.deb&licence_accept=yes&t=054bf0d5344189e8b3ad3a09bcb642bd" -O nessus_32.deb
Если у Вас Ubuntu 12/13 (64 бит):
# wget "http://downloads.nessus.org/nessus3dl.php?file=Nessus-5.2.7-ubuntu1110_amd64.deb&licence_accept=yes&t=054bf0d5344189e8b3ad3a09bcb642bd" -O nessus_64.deb
Если не получится скачать и Вы не знаете почему, то попробуйте выполнить это с правами администратора.
3. Установка Nessus.
Чтобы произвести установку нужно выполнить:
# dpkg -i имя_пакета
В моем случае я выполняю:
# sudo dpkg -i nessus_32.deb
Начнется установка, пройдет некоторое время, пока установится все нужным образом ( не более пару минут).
4. Запуск программы Nessus.
Когда у нас уже установлена программа, то ее нужно запустить, для этого выполним команду:
# /etc/init.d/nessusd start
5. Создаем пользователя для работы в Nessus
# /opt/nessus/sbin/nessus-adduser
6. Открываем ваш браузер и переходим в меню утилиты Nessus.https://your_ip_domain:8834
Попадаем на следующий слайд и нажимаем на кнопку «Download plagin», я так понимаю он нужен для работы самой программы. Он устанавливается минуты 3-4. После окончания, вводим логин и пароль которые мы создавали в пункте 5и начинаем проверять систему.
А на этом данная установка Nessus на Debian/Ubuntu/Mint завершена, программа установлена и можно ею пользоваться, надеюсь понятно все было как я описал на своем сайте http://linux-notes.org
Использование watch в Unix/Linux
Синтаксис данной утилиты, отличается в Unix/Linux дистрибутивах.
Использование watch в Linux
По умолчанию команда watch выводит результаты каждые 2 секунды. Используйте следующий формат для запуска команды watch каждую секунду:
$ watch -n 1 free -m
Используйте опцию «-d» с командой watch, чтобы получить четкую разницу между выводом (она будет выделять предыдущий вывод и текущий:
$ watch -d -n 1 free -m
Можно легко наблюдать за процессом создания или копирования дампа ( как пример):
$ cp may_dump.tar.gz /home/captain &
И проверяем:
$ watch -n 0.1 du -h /home/captain/my_dump.tar.gz
Или:
$ watch -n 0.1 ls -h /home/captain/my_dump.tar.gz
Можно, мониторить (выводить) логи:
$ watch tail /var/log/messages
В системах Linux ps команда может использоваться вместе с командой watch для наблюдения работой служб. Например, чтобы запустить команду ps 5 раз в секунду (Для zabbix процессов) используйте:
# watch -n 0.2 ps -fu zabbix
Посмотреть/Показать только zabbix_proxy и zabbix_agent процессы:
# watch -tn 0.2 'ps -f -C zabbix_proxy -C zabbix_agentd'
Чтобы показать только процессы синхронизации истории (речь идет о заббикс):
# watch -tn 0.2 'ps -fC zabbix_server | grep history'
Команда ps имеет довольно большой вывод информации (приблизительно 190 столбцов) и по этому, можно попробовать отобразить только командные строки без UID, PID, времени старта:
# watch -tn 0.2 'ps -o cmd -C zabbix_server -C zabbix_proxy -C zabbix_agentd'
Использование watch в BSD
Если команда watch не установлена, аналогичный эффект может быть достигнут при:
# while ; do ps x; sleep 0.2; clear; done
Если команда watch недоступна, можно попробовать использовать:
# while ; do ps -fu zabbix; sleep 1; clear; done
Использование watch в Solaris
Если команда watch не установлена, периодически обновляемый список процессов может быть показан с:
# while ; do /usr/ucb/ps gxww; sleep 1; clear; done
Использование watch в Mac OS X
Можно использовать:
# watch -n 0.2 ps -fu captain
Как-то так!
Можно обойтись без этой утилиты, — заюзать алиас. Например:
# vim ~/.bashrc
Добавляем:
alias myWatch='_() { while :; do clear; $2; sleep $1; done }; _'
Выполняем:
# . ~/.bashrc
а вот, собственно примеры:
$ myWatch 5 "ls -lF $HOME"
Или:
$ myWatch 1 ps uax | grep captain
У меня все, статья «Установка watch в Unix/Linux» завершена.
Настройка и использование Lsyncd в Unix/Linux
Чтобы все хорошо работало, нужно сгенерировать RSA ключ и положить его на удаленный сервер. Я пропущу данный шаг, т.к я это уже сделал, а если не знаете как это сделать вот статья:
Настройка и использование Lsyncd на Mac OS X
И так, я у себя на mac OS X хотел бы настроить lsyncd таким образом, чтобы он синхронизировал все изменения.
И так, я установил данную утилиту и следующим действием, я создам папку где будет хранится лог-файлы:
$ mkdir /usr/local/var/log/lsyncd
И создаю нужные файлы:
$ touch /usr/local/var/log/lsyncd/lsyncd.{log,status}
PS: В ОС Linux они могут лежать в /var/log/lsyncd. Если не имеется такой папки, то создаем.
Далее, я создаю каталог lsyncd в /etc/ для настройки конфига:
$ sudo mkdir /etc/lsyncd
После создания данной папки, я создаю конфигурационный файл:
# vim /etc/lsyncd/linux_notes.conf.lua
Содержание следующее:
settings { logfile = "/usr/local/var/log/lsyncd/lsyncd.log", statusFile = "/usr/local/var/log/lsyncd/lsyncd.status", statusInterval = 1, nodaemon = off } sync { default.rsyncssh, source = "/Users/captain/tmp", host = "captain@31.187.70.238", targetdir = "/home/captain/", excludeFrom="/etc/lsyncd/linux_notes.exclude", delay=3, rsync = { sparse = true, update = true, links = true, times = true, protect_args = false, archive = true, compress = true, whole_file = false, acls = true, verbose = true }, ssh = { port = 22, _extra = {"/usr/bin/ssh -l captain -p 22 -i ~/.ssh/id_rsa -o StrictHostKeyChecking=no"} } }
Иногда нужно исключать некоторые каталоги. Вы можете создать файлe и добавить исключения в строке как в этом примере:
# vim /etc/lsyncd/linux_notes.exclude
.git/* .*
Теперь мы можем запустить службу lsyncd, выполнив следующую команду:
$ sudo lsyncd /etc/lsyncd/linux_notes.conf.lua -delay 0
Настройка и использование Lsyncd на CentOS
Вот еще пример (проверялось на CentOS 7):
# vim /etc/lsyncd.conf
И прописываем:
settings { logfile = "/var/log/lsyncd/lsyncd.log", statusFile = "/var/log/lsyncd/lsyncd.status", statusInterval = 1 } sync { default.rsyncssh, source = "/var/www/html", host = "31.187.70.238", targetdir = "/home/backups/", rsync = { sparse = true, update = true, temp_dir="/tmp/", links = true, times = true, protect_args = false, archive = true, compress = true, whole_file = false, acls = true, verbose = true }, ssh = { port = 22, _extra = {"/usr/bin/ssh -l captain -p 22 -i /home/captain/.ssh/id_rsa -o StrictHostKeyChecking=no"} } }
ИЛИ, если использовать RSYNC:
settings = { logfile = "/var/log/lsyncd/lsyncd.log", statusFile = "/var/log/lsyncd/lsyncd.stat", statusInterval = 2, }, sync{ default.rsync, source="/var/www/html", target="31.187.70.238:/home/captain/", rsync={rsh ="/usr/bin/ssh -l captain -i /home/captain/.ssh/id_rsa",} }
Запускаем демон:
# service lsyncd restart
Добавляем в автозагрузку ОС:
# chkconfig lsyncd on
Если используете CentOS 7:
# systemctl restart lsyncd
И
# systemctl enable lsyncd
Подключаемся к серверу и проверяем папки. Так же, можно посмотреть логи.
Репликация в 2 стороны
Чтобы работала репликация и в обратную сторону — на сервере в другом регионе проведите такие же настройки, но в файле конфигурации lsyncd укажите адрес первого сервера. Проверьте, что данные реплицируются и в обратном направлении. В конфигурации lsyncd уже указана временная директория temp_dir, использование которой необходимо для двусторонней синхронизации.
Репликация на несколько серверов
Вот пример конфиругации:
settings = { delay = 1, maxProcesses = 3, logfile = "/var/log/lsyncd/lsyncd.log", statusFile = "/var/log/lsyncd/lsyncd.stat", } targetlist = { "66.66.66.10:/var/www/html", "66.66.66.20:/var/www/html" } for _, server in ipairs(targetlist) do sync{ default.rsync, source="/var/www/html", rsyncOps="-rltvupgo" target=server } end
На этом, у меня все, статья «Установка Lsyncd в Unix/Linux» завершена.
Опции.
-c
Выход после числа пакетов.
-C
Попробуйте использовать (принудительно) ANSI цветовой режим. Может быть использован, когда описание вашего текущего терминала не имеет цвета.
-e
Показать трафик Ethernet, а не IP. Можно переключаться между ними нажатием клавиши ENTER.
-f
Печать «foreign» интернет адрес числом, а не символическими символами.
-F
Используйте файл в качестве входных данных для выражения фильтра.
-i
Прослушивание по имени интерфейса сети или по UDP порту для Cisco NetFlow. Если не указано, trafshow просматривает список системного интерфейса с наименьшим номером, сконфигурированный до интерфейса (за исключением проверки по шлейфу).
-k
Отключить входную проверку клавиатуры. Он предназначен, чтобы избежать потери пакетов.
-n
Не преобразовывать адреса хостов и номера портов в имена.
-N
Не печатать доменное имя квалификации локального хоста.
-O
Не запускать пакет сопоставления оптимизатора кода. Это полезно, только если вы подозреваете, что ошибка с оптимизатором.
-p
Не ставлять интерфейс в неразборчивый режим.
-r
Задать интервал обновления экрана до нескольких секунд.
-t
Установить максимальное время ожидания для DNS-запросов до нескольких секунд.
-v
Распечатать подробную информацию о версии данной утилиты и затем выйти.
expr
Выберите, какие пакеты будут отображаться. Если ни одно выражение не задано, будут выведены все пакеты в сети. В противном случае, только пакеты, для которых выражение «true» (правда) будет отображаться.
Для более подробной информации используйте мануал tcpdump.
На этом я завершаю свою тему «Установка trafshow для просмотра сетевой активности Linux/Unix».
Первый билд (джоба) на Jenkins-е
Создаем проект под свои нужды. Потом, создаем «Pipeline» проект, например:
Тестовый pipeline projec для Java
Нажимаем на «OK» и сейчас создадим все необходимое.
Находим «Run the build inside Docker containers» и ставим чекбокс. В поле «Docker Image» ставим наш образ, у меня — «jenkinsci/jnlp-slave:latest». Так же, можно прописать «Advanced settings» опции и выставить использовании по памяти. У меня все имеет вид:
Идем дальше, находим «Pipeline» вкладку и заполняем ее под свои нужды. У меня все приведено и имеет вид:
Т.е я заюзал свой гитлаб сервер. В нем есть репозиторий с проектом. Так же, добавил подключение к гитлабу. Собственно, все готово, можно нажимать на «SAVE»!
Слева вверху, нажимаем на «Build Now» и смотрим что получилось!
Если открыть «Manage Jenkins» -> «Manage Nodes», то появится jenkins-slave:
Видно что поднялся слейв и запустил джобу. Можно открыть ее и поглядеть статус выполнения:
Я думаю что на этом пока все, статья «Установка Jenkins и Jenkins-slave в Unix/Linux» завершена.
Шаг 2 — Установка и настройка информационной панели Kibana
Согласно официальной документации, Kibana следует устанавливать только после установки Elasticsearch. Установка в этом порядке обеспечивает правильность установки зависимостей компонентов.
Поскольку вы уже добавили источник пакетов Elastic на предыдущем шаге, вы можете просто установить все остальные компоненты комплекса Elastic с помощью apt:
Затем активируйте и запустите службу Kibana:
Поскольку согласно настройкам Kibana прослушивает только localhost, мы должны задать , чтобы разрешить внешний доступ. Для этого мы используем Nginx, который должен быть уже установлен на вашем сервере.
Вначале нужно использовать команду openssl для создания административного пользователя Kibana, которого вы будете использовать для доступа к веб-интерфейсу Kibana. Для примера мы назовем эту учетную запись kibanaadmin, однако для большей безопасности мы рекомендуем выбрать нестандартное имя пользователя, которое будет сложно угадать.
Следующая команда создаст административного пользователя Kibana и пароль и сохранит их в файле htpasswd.users. Вы настроите Nginx для использования этого имени пользователя и пароля и моментально прочитаете этот файл:
Введите и подтвердить пароль в диалоговом окне. Запомните или запишите эти учетные данные, поскольку они вам потребуются для доступа к веб-интерфейсу Kibana.
Теперь мы создадим файл серверного блока Nginx. В качестве примера мы присвоим этому файлу имя your_domain, хотя вы можете дать ему более описательное имя. Например, если вы настроили записи FQDN и DNS для этого сервера, вы можете присвоить этому файлу имя своего FQDN:
Создайте файл серверного блока Nginx, используя nano или предпочитаемый текстовый редактор:
Добавьте в файл следующий блок кода и обязательно замените your_domain на FQDN или публичный IP-адрес вашего сервера. Этот код настраивает Nginx для перенаправления трафика HTTP вашего сервера в приложение Kibana, которое прослушивает порт localhost:5601. Также он настраивает Nginx для чтения файла htpasswd.users и требует использования базовой аутентификации.
Если вы выполнили предварительный обучающий модуль по Nginx до конца, возможно вы уже создали этот файл и заполнили его. В этом случае удалите из файла все содержание и добавьте следующее:
/etc/nginx/sites-available/your_domain
server { listen 80; server_name your_domain; auth_basic "Restricted Access"; auth_basic_user_file etcnginxhtpasswd.users; location { proxy_pass httplocalhost5601; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection 'upgrade'; proxy_set_header Host $host; proxy_cache_bypass $http_upgrade; } }
Завершив редактирование, сохраните и закройте файл.
Затем активируйте новую конфигурацию, создав символическую ссылку на каталог sites-enabled. Если вы уже создали файл серверного блока с тем же именем, что и в обучающем модуле по Nginx, вам не нужно выполнять эту команду:
Затем проверьте конфигурацию на синтаксические ошибки:
Если в результатах будут показаны какие-либо ошибки, вернитесь и еще раз проверьте правильность изменений в файле конфигурации. Когда вы увидите на экране результатов сообщение syntax is ok, перезапустите службу Nginx:
Если вы следовали указаниям модуля по начальной настройке сервера, у вас должен быть включен брандмауэр UFW. Чтобы разрешить соединения с Nginx, мы можем изменить правила с помощью следующей команды:
Примечание. Если вы выполнили предварительный обучающий модуль Nginx, вы могли уже создать правило UFW, разрешающее профилю Nginx HTTP доступ через брандмауэр. Поскольку профиль Nginx Full разрешает трафик HTTP и HTTPS на брандмауэре, вы можете безопасно удалить ранее созданное правило. Для этого нужно использовать следующую команду:
Теперь приложение Kibana доступно через FQDN или публичный IP-адрес вашего сервера комплекса Elastic. Вы можете посмотреть страницу состояния сервера Kibana, открыв следующий адрес и введя свои учетные данные в диалоге:
http://your_domain/status
На этой странице состояния отображается информация об использовании ресурсов сервера, а также выводится список установленных плагинов.
Примечание. Как указывалось в разделе предварительных требований, рекомендуется включить на сервере SSL/TLS. Теперь вы можете следовать указаниями обучающего модуля по Let’s Encrypt для получения бесплатного сертификата SSL для Nginx в Ubuntu 20.04. После получения сертификата SSL/TLS вы можете вернуться и завершить прохождение этого обучающего модуля.
Теперь информационная панель Kibana настроена и мы перейдем к установке следующего компонента: Logstash.
Установка Jenkins в Unix/Linux
Как я говорил ранее, я буду использовать докер для установки дженкинса. ОС которую я использую — Mac OS X. Многие скажует, да какая разница, ты же запускаешь в докере. Но на самом деле — докер немного по разному работает на разных Unix/Linux ОС. Немного пришлось поплясать с бубном, чтобы зависти все это чудо на маке.
Мой docker-compose.yml файл выглядит следующим образом:
Кто работает с докер-компос, тот сможет прочитать данный файл и понять в чем дело
Но если кто-то не знает, я немного расскажу на что стоит заострить внимание. И так:
Я данным сервисом запускаю 3 контейнера, — gitlab, jenkins (master) и socat. Gitlab — система управления репозиториями кода для Git. данные конфиг делался универсальным и чтобы он работал в любом месте и на Unix/Linux системах. Если что-то не будет работать, то стоит рассмотреть поле DNS (в данном поле прописаны ДНС-ы которые служат резолвом в самих докер-контейнера. Иногда это уместно, когда на работе или дома используются свои ДНС, а остальные блокируются).
Можно заюзать статью чтобы проверить, какие ДНС-ы используются:
PS: Для данного поля стоит использовать, ТОЛЬКО 3 DNS ЗАПИСИ, не более! Иначе, они просто не будут работать и моугт сломать контейнер(ы).
Многие посмотрет на «socat» конейнер и спросят, а зачем он тут вообще упал? Так вот, он тут служит перенаправлением данных с порта (2375) на Unix сокет (/var/run/docker.sock). И сново могут полететь вопросы, а зачем?
Да дело в том, что докер-прогеры «не смогли» запилить «docker_opts»/»hosts» переменную в докер под Mac OS X. Данная переменная выполняет собственно аналогичные действия, но нативным спообом. Выглядит это вот так (на стороне Linux):
Т.е данную команду нужно прописать в конфиг докера, или можно запустить демон следующим образом:
На все это дело, я потратил около 7 часов времени и мне не очень было понятно почему не работает. Но в интернете нашелся пример моего бедствия. Я взял идею и опробовал ее — костыльненько, но а что поделать!
Самое интересно, то, что я в своей реализации заюзал «Docker in Docker», т.е пробросил Docker с Mac OS X на Docker хост с jenkins. Иначе , я хз как это должно работать. Если кто-то знает — расскажите
Собственно, gitlab + jenkins — готовы к использованию. Перейдем к настройке jenkins-slave.
Установка Kibana в Unix/Linux
Я расскажу как можно установить Kibana на различные Unix/Linux ОС. А установка начнется с установки JAVA, т.к она неотъемная часть данной утилиты.
Если в вашей системе не установлена Java, используйте одну из следующих ссылок для ее установки:
Вот еще полезное чтиво:
Начнем установку кибаны.
Установка Kibana в Debian/Ubuntu
Имеется несколько способов выполнить установку.
-===СПОСОБ 1 — использовать репозиторий===-
Загрузите и установите открытый ключ подписи:
# wget -qO - https://artifacts.elastic.co/GPG-KEY-kibana | apt-key add -
Возможно, вам придется установить пакет apt-transport-https на Debian перед продолжением:
# apt-get install apt-transport-https -y
Добавляем репозиторий:
# echo "deb https://artifacts.elastic.co/packages/5.x/apt stable main" | tee -a /etc/apt/sources.list.d/elastic-5.x.list
Обновляем репозиторий и выполняем установку кибаны:
# apt-get update && sudo apt-get install kibana -y
-===СПОСОБ 2 — использовать готовый DEB файл===-
Если у вас 64 бит ОС:
# cd /usr/local/src && wget https://artifacts.elastic.co/downloads/kibana/kibana-5.3.0-amd64.deb && dpkg -i kibana-5.3.0-amd64.deb
Если у вас 32 бит ОС:
# cd /usr/local/src && wget https://artifacts.elastic.co/downloads/kibana/kibana-5.3.0-i386.deb && dpkg -i kibana-5.3.0-i386.deb
-===СПОСОБ 3 — использовать готовый архив===-
Будет описан ниже.
Установка Kibana в CentOS/Fedora/RedHat
Имеется несколько способов выполнить установку.
-===СПОСОБ 1 — использовать репозиторий===-
Загрузите и установите открытый ключ подписи:
# rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch
Добавляем репозиторий:
# vim /etc/yum.repos.d/kibana-5.x.repo
И вставляем в него:
name=Kibana repository for 5.x packages baseurl=https://artifacts.elastic.co/packages/5.x/yum gpgcheck=1 gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch enabled=1 autorefresh=1 type=rpm-md
Обновляем репозиторий и выполняем установку кибаны:
# yum update && yum install kibana -y
-===СПОСОБ 2 — использовать готовый DEB файл===-
Если у вас 64 бит ОС:
# cd /usr/local/src && wget https://artifacts.elastic.co/downloads/kibana/kibana-5.3.0-x86_64.rpm && rpm --install kibana-5.3.0-x86_64.rpm
Если у вас 32 бит ОС:
# cd /usr/local/src && wget https://artifacts.elastic.co/downloads/kibana/kibana-5.3.0-i686.rpm && dpkg -i rpm --install kibana-5.3.0-i686.rpm
-===СПОСОБ 3 — использовать готовый архив===-
Будет описан ниже.
Установка Kibana на другой Unix/Linux ОС
Имеется несколько способов выполнить установку.
-===СПОСОБ 1 — использовать docker===-
Не было нужды юзать. При первой возможности, я дополню статью.
-===СПОСОБ 2 — использовать готовый файл===-
Если у вас 64 битный Linux:
# cd /usr/local/src && wget https://artifacts.elastic.co/downloads/kibana/kibana-5.3.0-linux-x86_64.tar.gz && tar xfvz kibana-5.3.0-linux-x86_64.tar.gz
Если у вас 32 битный Linux:
# cd /usr/local/src && wget https://artifacts.elastic.co/downloads/kibana/kibana-5.3.0-linux-x86.tar.gz && tar xfvz kibana-5.3.0-linux-x86.tar.gz
Если у вас Mac OS X (Darwin):
# cd /usr/local/src && wget https://artifacts.elastic.co/downloads/kibana/kibana-5.3.0-darwin-x86_64.tar.gz && tar xfvz kibana-5.3.0-darwin-x86_64.tar.gz
Сейчас, переносим архив в удобное место:
# mv /usr/local/src/kibana-* /usr/local/kibana
Переходим к настройке переменного окружения:
$ vim ~/.bash_profile
И прописываем:
export JAVA_HOME=/usr/java/jdk1.8.0_121/ export JRE_HOME=/usr/java/jdk1.8.0_121/jre export KIBANA_HOME=/usr/local/kibana/ export PATH=$PATH:$HOME/bin:$JAVA_HOME/bin:/usr/bin:/usr/local/bin:$KIBANA_HOME/bin
И чтобы все заработало, выполняем:
$ . ~/.bash_profile
И, можно приступать к настройке.
Установка SVN сервера в Debian/Ubuntu/Mint
В этой статье «Установка SVN сервера в Debian/Ubuntu/Mint» я хотел бы рассказать как установить и настроить SVN сервер в deb ОС, на примере Debian 8.
Установка SVN сервера в Debian/Ubuntu/Mint
И так, выполним установку утилиты следующей командой:
# apt-get install subversion -y
Создаю директорию для будущего репозитория:
# mkdir -p /srv/svn/repo
Создаем собственно, сам репозиторий:
# svnadmin create /srv/svn/repo
Создаю юзверя-владельца репы и от него же, будет запускаться сам демон:
# useradd subversion --create-home --home-dir /srv/svn --shell /sbin/nologin
Выставляем нужные права на директорию репы:
# chown -R subversion:subversion /srv/svn
И даем права на запись:
# chmod -R ug+rw /srv/svn
Сейчас, необходимо добавить скрипт SVN сервера, выполняем команду:
cat > /etc/init.d/svnserve << "EOF" #!/bin/sh -e # svnserve - brings up the svn server so anonymous users # can access svn # Get LSB functions . /lib/lsb/init-functions . /etc/default/rcS SVNSERVE=/usr/bin/svnserve SVN_USER=subversion SVN_GROUP=subversion SVN_REPO_PATH=/srv/svn # Check that the package is still installed || exit 0; case "$1" in start) log_begin_msg "Starting svnserve..." umask 002 if start-stop-daemon --start \ --chuid $SVN_USER:$SVN_GROUP \ --exec $SVNSERVE \ -- -d -r $SVN_REPO_PATH; then log_end_msg 0 else log_end_msg $? fi ;; stop) log_begin_msg "Stopping svnserve..." if start-stop-daemon --stop --exec $SVNSERVE; then log_end_msg 0 else log_end_msg $? fi ;; restart|force-reload) "$0" stop && "$0" start ;; *) echo "Usage: /etc/init.d/svnserve {start|stop|restart|force-reload}" exit 1 ;; esac exit 0 EOF
Даем права всем на выполнение:
# chmod a+x /etc/init.d/svnserve
Добавлю скрипт в автозагрузку ОС:
# update-rc.d svnserve defaults
Настройка SVN в Debian/Ubuntu/Mint
В моем примере, все конфиги и различные настройки находятся в /srv/svn/repo/conf/ директории. Сейчас нужно немного видоизменить некоторые настройки в файлах.
Поправлю основной конфиг-файл:
# vim /srv/svn/repo/conf/svnserve.conf
Приводим к виду:
anon-access = read auth-access = write password-db = passwd authz-db = authz
Пропишем доступ для пользователей и ихние пароли (пароли хранятся в открытом виде):
# vim /srv/svn/repo/conf/passwd
И прописываем:
captain = captain user1 = password_for_user1
Добавим пользователей в группы и назначим нужные права на работу с репозиторием или на часть его:
# vim /srv/svn/repo/conf/authz
И прописываем:
group1 = captain,user2
Сейчас, выставляю права на корень и назначаю группе «group1» только для чтения. Пользователю captain даю полный доступ, а всем остальным — вообще запрещаю доступ:
[/] @group1 = r &captain = rw * =
Настройку завершил, осталось только — запустить демон SVN чтобы начать уже работу:
# /etc/init.d/svnserve start Starting svnserve (via systemctl): svnserve.service.
PS: Сервер SVN юзает TCP 3690 порт, по этому, при необходимости откройте его в фаерволе.
Тема «Установка SVN сервера в Debian/Ubuntu/Mint» завершена.
Установка trafshow для просмотра сетевой активности Linux/Unix
Trafshow – Практически в реальном времени помогает оценить интенсивность использования канала. TrafShow постоянно показывать информацию о пакетном трафике для конфигурации сетевого интерфейса. Он периодически сортирует и обновляет эту информацию. Я сейчас приведу готовые примеры как установить данную утилиту и так же в своей статье «Установка trafshow для просмотра сетевой активности Linux/Unix» как можно пользоваться trafshow.
Debian/Ubuntu/Mint.
Чтобы установить на дебиано-подобные ОС утилиту trafshow, выполните следующую команду для этого:
# apt-get install netdiag
В данный пакет входят следующие утилиты: trafshow,strobe,netwatch,statnet,tcpspray,tcpblas.
CentOS/RedHat/Fedora.
Чтобы установить на redhat-подобные ОС утилиту trafshow, выполните следующую команду для этого:
# yum install trafshow
Замечание! Нужно только подключить репозиторий EPEL.
FreeBSD.
Чтобы установить на freeBSD утилиту trafshow, выполните следующую команду для этого:
# cd /usr/ports/net/trafshow && make install clean
Установка Lsyncd в Unix/Linux
Процесс установки очень прост и не требует очень больших усилий. Я приведу несколько примеров по установки данной утилиты на различные Unix/Linux ОС.
Установка Lsyncd в Debian/Ubuntu
# apt-get update -y && apt-get update -y
Выполним установку:
# apt-get install lsyncd -y
После установки, переходим к настройке.
Установка Lsyncd в CentOS/RedHat/Fedora
# yum -y update
Выполним установку:
# yum install lsyncd -y
И, установим дополнительные пакеты:
# yum install lua lua-devel pkgconfig gcc asciidoc -y
После установки, переходим к настройке.
Установка Lsyncd в Mac OS X
Ставим себе на машину homebrew:
И выполняем установку:
$ brew install lsyncd
После установки, переходим к настройке.