Безопасный, Частный, Местный Gitorious - PullRequest
2 голосов
/ 02 сентября 2011

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

Я не специалист по Linux и, конечно, не специалист по git / gitorious, поэтому любые советы по улучшению моей установки, описанные ниже, будут наиболее полезны!

У меня есть:

  • Установлен Gitorious на локальном компьютере с 64-битным Ubuntu Server 11.04, с зашифрованным LVM.
  • Использовал это руководство для установки Gitorious, если кому-то интересно.
  • Модифицировано Gitorious для поддержки локальных IP-адресов в качестве имен хостов.
  • В gitorious.yml:
    • поля хоста - это локальный IP-адрес (например, 192.168.xxx.xxx)
    • public_mode: false
    • only_site_admins_can_create_profiles: true
    • hide_http_clone_urls: true
  • git-daemon был установлен, но теперь удален.
  • Нет портов, пересылаемых интернет-маршрутизатором на компьютер.

Как запросы git: // based, так и http: // обычно разрешают открытое клонирование репозиториев. Удаление git-daemon и установка false в Hide_http_clone_urls, похоже, отключили оба. Они оба доставляют ошибки сейчас, когда я пытаюсь клонировать.

С зашифрованным LVM машина защищена в случае физической кражи. Кроме того, все клонированные репозитории на других машинах также хранятся на зашифрованных дисках. Я использовал специальный скрипт на зашифрованный LVM, который заполняет жесткий диск с порно в случае слишком много неудачных попыток.

Мои текущие проблемы:

  • Доступ к репо через git: // и http: // полностью отключен?
  • Все ли способы доступа к репо теперь защищены через ssh?
  • Есть ли способ заблокировать все запросы к машине, которые не исходят из локальной сети, на случай, если мой маршрутизатор рассердится и отомстит мне?
  • Что еще я могу сделать, чтобы зашифровать или защитить репозитории на случай, если что-то пойдет не так?
  • Как мне сделать резервную копию данных gitorious? Просто сделайте резервную копию базы данных MySQL и каталога репозитория?

Спасибо.

1 Ответ

2 голосов
/ 13 декабря 2011

Если ваш git-демон не запущен, то нет доступа git: //. hide_http_clone_urls не отключает http, он просто не показывает ссылку. Чтобы защитить его от несанкционированного доступа, вы можете заблокировать на apache / nginx доступ к git.yourdomain.com.

Вы можете взглянуть на мой пакет debian, который имеет много конфигураций по умолчанию, лучше, чем документация, доступная в Интернете:

https://gitorious.org/gitorious-for-debian/gitorious/

базовая папка, в которой хранятся все конфигурации, такие как apache config и другие, есть также сценарии оболочки, которые делают пользователей по умолчанию и другие вещи, просто исследуйте дерево исходных текстов.

Более конкретно о конфигурации Apache, посмотрите здесь: https://gitorious.org/gitorious-for-debian/gitorious/blobs/master/base/debian/etc/apache2/sites-available/gitorious

Если, например, вы не добавите псевдоним git.yourserver.com, то никто не сможет получить клон с http.

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

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

Что касается вопроса запросов, вы можете взглянуть на apache allow, deny rules , где вы можете создать что-то вроде:

Deny from All
Allow from 192.168.0

Для резервного копирования вы должны сделать резервную копию вашей папки репозитория и баз данных mysql.

...