# Инструкция по установке

ISP Go необходимо устанавливать на Debian Jessie (установочный образ брать отсюда: [http://www.debian.org/distrib/netinst](http://www.debian.org/distrib/netinst), качать amd64, без слова kfreebsd). Установка на другие дистрибутивы, другие версии Debian, или на компьютеры с 32-битным процессором невозможна.

После установки Debian согласно официальному руководству ([http://www.debian.org/releases/stable/amd64/](http://www.debian.org/releases/stable/amd64/)) надо скопировать на сервер deb-пакет от ISP Go. Далее выполнить следующие действия. Все команды надо выполнять от пользователя `root`:

1. Установить SSH и iptables, если они еще не установлены:

```
apt-get install ssh iptables
```

2. Средствами iptables закрыть доступ к порту 53 (как UDP, так и TCP) из сетей, не принадлежащих провайдеру. Минимальный пример для провайдера с сетью 192.168.5.0/24:

```
iptables -A INPUT -p udp --dport 53 ! --src 192.168.5.0/24 -j DROP
iptables -A INPUT -p tcp --dport 53 ! --src 192.168.5.0/24 -j DROP
```

Автоматизировать этот шаг невозможно, т.к. у провайдера может быть какой-либо готовый скрипт для настройки файрволла, поверх которого добавлять правила вслепую опасно.

Необходимо сделать, чтобы правила iptables автоматически применялись после перезагрузки сервера. Одним из способов добиться этого является установка пакета `iptables-persistent`:

```
apt-get install iptables-persistent
```

Сохранение правил:

```
service netfilter-persistent save
```

3. Установить пакет ISP Go из нашего репозитория.

Чтобы apt мог работать с https протоколом, нужно установить `apt-transport-https`:

```
apt-get install apt-transport-https
```

В `/etc/apt/sources.list` добавить:

```
deb https://<LOGIN>:<PASSWORD>@mirror.skydns.ru/repo/ispgo/ ./
```

Добавить GPG ключ:

```
wget -qO - https://<LOGIN>:<PASSWORD>@mirror.skydns.ru/repo/ispgo/keyring.gpg | apt-key add -
```

Внимание: нужно везде использовать https, иначе ничего работать не будет.

Выполнить:

```
apt-get update
apt-get install isp-go-ru isp-go-frontend-ru
```

В результате Debian поставит Redis-сервер, Nginx и запустит (в не до конца настроенном состоянии) сначала их, а потом ISP Go.

Процесс установки создает конфигурационные файлы:

- `/etc/isp-go/config.ini` - настройки всех компонентов.
- `/etc/nginx/conf.d/log_format.conf` - настройка формата логов страницы блокировки
- `/etc/nginx/sites-available/isp-go-api` - виртуальный хост для обработки запросов к API
- `/etc/nginx/sites-available/isp-go-blocked` - виртуальный хост страницы блокировки

Для настройки ISP Go все четыре перечисленных выше файла необходимо отредактировать вручную.