Статьи Поднимаем сервер на расбери пай.

Discussion in 'Статьи' started by SooLFaa, 22 Mar 2017.

  1. SooLFaa

    SooLFaa Members of Antichat

    Joined:
    17 Mar 2014
    Messages:
    530
    Likes Received:
    499
    Reputations:
    154
    Приветствую Вас господа, сегодня мы поговорим о вечном. А именно как создать маленькую станцию для хека в том числе всего за 6000р.

    Собственно, начнем с основ и разберемся для чего мне это было надо:
    1) Неудобно каждый раз пускать виртуалку;
    2) Меньше нагрузка для поддержки двух систем;
    3) Возможность непрерывной работы с малыми энергозатратами;
    4) Пользоваться с любой точки планеты с помощью одного браузера;
    5) Остальные радости белого ip, позволят нам ловить внешние сессии метерпретера и ломать удаленные компутеры, а не только в локалке; (для чего конечно лучше брать vds'ку а не ставить у себя дома)

    Строить нашу станцию мы будем на базе маленьких одноплатных компьютерах с ARM процессорами. В моем случае - это Raspberry Pi 3 model B(далее просто малина), цена на Aliexpress от 2500 – 3000р, но лучше брать в комплекте с чехлом адаптером питания и радиаторами (для охлаждения) всё это вместе мне обошлось 3200р.

    [​IMG]

    Приступаем к настройке…

    Первое, что мы делаем - это качаем и устанавливаем ОС на нашу флешку через кардридер в компьютер. Лично я выбрал дистрибутив Parrot OS. Моё ИМХО, что для ARM процессоров лучше использовать именно его, чем тот же kali linux. Хотя репозитории Kali мы так же добавим.

    Идем на сайт: https://www.parrotsec.org/download.fx и качаем дистриб строго под raspberry pi, скачали и записываем на нашу флешку microSD и подключаем роутер.

    Так как необходимо распределить интернет между компьютером и малиной, покупаем роутер, а так же microsd флешку SunDisk на 32GB (1400р) + покупаем у провайдера белый ip – адрес. Итого у нас всё встало примерно в 6000р. (кто как шиковал)
    [​IMG]

    Когда мы попали в систему ввели логин и пароль parrot : parrot. Для того, чтобы отныне мы могли удаленно перезагружать нашу систему, необходимо сделать автозагрузку без ввода логина и пароля.
    Для этого у расбери и паррота есть клевый уже готовый механизм.
    (!) В кали это делается следующим образом:
    Code:
    nano /etc/gdm3/daemon.conf
    и расскоментируем следующие строчки
    Code:
    AutomaticLoginEnable = true
    AutomaticLogin = root
    Возвращаясь к parrot
    Вызываем консоль и создаем пользователя командой adduser
    Code:
    sudo adduser pi
    На просьбу ввести пароль – берём пароль raspberry
    ЭТО ОБЯЗАТЕЛЬНОЕ УСЛОВИЕ
    позже так же можно бдет поменять в конфигах
    После этих действий, пишем в консоль
    Code:
    sudo raspi-config
    Видим окно настройки малинки. Далее выберем Expand Filesystem для того, чтобы расширить дисковое пространство на всю емкость флешки, так как по умолчанию ос выделяет только 8ГБ памяти, что очень мало.
    [​IMG]

    После этого выбираем Boot Options и выбираем последний пункт, теперь наша система всегда будет грузится по дефолту от пользователя pi с паролем raspberry.

    [​IMG]

    Установка gotty
    Для того, чтобы иметь постоянный доступ к системе в любой точке мира, будем использовать web-shell gotty.

    Кто не вкурсе, этот shell позволяет администрировать систему используя https протокол и собственно через любой бразуер, что намного удобнее, чем держать клиента на каждой машине с ключами SSH (моё ИМХО)

    1) Качаем и устанавливаем язык GO
    Для этого последовательно выполняем список команд.
    Code:
    wget https://storage.googleapis.com/golang/go1.6.1.linux-amd64.tar.gz
    
    export GOROOT=/home/pi/go
    2)
    Далее переходим в папу с GO и выполняем следующий скрипт
    Code:
    ./go get https://github.com/yudai/gotty
    3) На этом установка закончена и рассмотрим работу команды
    Code:
    gotty -a 192.168.2.221 -p 1337 --tls -w -c admin:Pa$$WorD /bin/bash > /dev/null 2>&1 &
    где 192.168.2.221 локальный ip - адрес машины (узнать можно командой ifconfig)
    1337 – порт на который будем запускать сервис.
    -tls - использовать шифрование
    admin;Pa$$WorD – Логин и пароль

    Вызов демонов

    Теперь нам необходимо написать демона, чтобы при старте линукса, готти запускался автоматический.
    Здесь существует одна проблема, так как демоны загружаются до старта системы, то сам веб сервер запуститься не успевает, чтобы решить сие проблему установим задержку на 15 секунд и воспользуемся скриптом nohup.
    Создаем файл gotty.sh со следующим содержимым:

    Code:
    #!/bin/bash
    sleep 15
    ./gotty -a 192.168.2.221 -p 1337 -w -c admin : Pa$$WorD /bin/bash > /dev/null 2>&1 &
    Не забываем сделать его исполняемым chmod +x (полное имя файла)
    Далее идем в файл /etc/rc.local и добавляем перед exit 0 следующую строку:
    Code:
    nohup /bin/bash /home/pi/gotty.sh &
    Сохраняем и перезагружаем, таким образом мы получили возможность через браузер работать с нашим сервером.
    [​IMG]

    Однако, таким образом мы можем работать, находясь только в локальной сети с малинкой, для того, чтобы быть доступным везде надо пробросить порты на внешний адрес. Это можно сделать несколькими способами, опишу простой в настройках роутера(в разынх роутерах по разному у меня модель ASUS).
    По шагам:
    1) Идем по адресу http://192.168.1.1/ (в разных роутерах по-разному)
    2) Идем на вкладу «Интернет -> Переадресация Портов»
    3) Добавляем новый маршрут и жмем применить.
    [​IMG]

    Теперь мы можем на любом браузере с любого места работать с нашим сервером. Осталось только добавить репозитории Kali-linux и раскрасить консоль.
    Репы добавить проще простого, берем актуальные на сайте: http://docs.kali.org/general-use/kali-linux-sources-list-repositories
    И в файл /etc/apt/sources.list.parrot
    Добавляем строки:
    Code:
    deb http://http.kali.org/kali kali main contrib non-free
    deb http://security.kali.org/kali-security kali/updates main contrib non-free
    После, обновляем репозитории
    Code:
    apt-get update
    Можем устанавливать тулзы
    Code:
    apt-get install metasploit-framework
    Для работы малинки почти всё готово, осталось только покрасить нашу некрасивую консоль.
    Будем использовать продукт с этого репозитория: https://github.com/robbyrussell/oh-my-zsh

    Для этого в консоли выполняем следующую команду
    Code:
    sh -c "$(wget https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh -O -)"
    Далее в ~/.bashrc
    Добавить в начало строку
    Code:
    export TERM=xterm
    В конец добавляем
    Code:
    if [ -f /usr/bin/grc ]; then
      alias cvs="grc --colour=auto cvs"
      alias diff="grc --colour=auto diff"
      alias esperanto="grc --colour=auto esperanto"
      alias gcc="grc --colour=auto gcc"
      alias irclog="grc --colour=auto irclog"
      alias ldap="grc --colour=auto ldap"
      alias log="grc --colour=auto log"
      alias netstat="grc --colour=auto netstat"
      alias ping="grc --colour=auto ping"
      alias proftpd="grc --colour=auto proftpd"
      alias traceroute="grc --colour=auto traceroute"
      alias wdiff="grc --colour=auto wdiff"
    fi
    После этого устанавливаем grc
    Code:
    apt-get install grc
    На этом всё =)
    А вот так теперь выглядит наш сервер
    [​IMG]

    NEW::
    Но спустя какое - то время, стало понятно, что расбери очень слабенькая для могозадачности, как сканилка вполне себе. Позже я купил нормальный хороший сервер и обратил внимание на дистрибутив https://backbox.org/ под Ubuntu.
    Порадовала его компактность и скорость по сравнению с той же кали.
    А вот этот гайдик во многом пригодился и для его настройки.

    UPDATE::
    А подумав ещё какое то время. Я пришёл к выводу, что нет ничего лучше чистого Debian без всяких этих сборок

    Вот теперь у меня всё. Всем спасибо.
    Так же помогали:
    @Mister_Bert0ni
    @gartos
    Mustang
    Crafty fox

    Первоисточник: https://codeby.net/forum/threads/podnimaem-svoj-xekerskij-malenkij-server.58633/
     
    _________________________
    #1 SooLFaa, 22 Mar 2017
    Last edited: 27 Apr 2017
    uzeerpc, Adagumer, user100 and 3 others like this.