ХабрПостыНовостиМегапосты?

Веб-интерфейс ovpn-admin для управления пользователями OpenVPN обновился до версии 1.7

ovpn-admin — простой веб-интерфейс для управления сертификатами и маршрутами для пользователей OpenVPN. Утилита изначально была разработана для внутренних проектов «Фланта». Этой весной мы решили, что ovpn-admin будет полезен не только нам, и выложили его как Open Source-проект на GitHub.

Напомним, что с помощью утилиты можно генерировать сертификаты для новых пользователей, отзывать и восстанавливать сертификаты, передавать метрики в Prometheus и т. д. Код написан на Go, лицензия — Apache 2.0. Подробнее о возможностях ovpn-admin см. в этом анонсе.

Что нового в ovpn-admin

Утилита получила ряд доработок, которые мы представили в версии 1.7.0. После этого вышло еще несколько релизов с улучшениями, так что последняя на момент публикации версия — 1.7.4. Среди новых фич в ovpn-admin 1.7.x:

Основные баги, которые были исправлены:

Кроме того, была реализована автовыкладка собранного бинарного файла ovpn-admin через GitHub Actions для Linux-систем с архитектурой amd64, i386, arm и arm64.

Многие из упомянутых фич появились благодаря сторонним контрибьюторам из сообщества — большое спасибо им за участие!

Вместо заключения

У нас не было больших планов по развитию ovpn-admin, но выглядит так, что она оказалась действительно полезной. Заметна активность сообщества, и у проекта уже почти 300 звёзд на GitHub. Конечно, будем рады новым звёздам, пользователям и улучшениям!

P. S. 

Читайте также в нашем блоге:

@pashcovich
22.10.2021 11:55 UTC
Первоисточник

Комментарии

@maledog
22.10.2021 08:03 UTC
0

Чего-то безопасно и устойчиво. log.Fatal при ошибках в операциях с файлами. Передача сгенерированных скриптов bash -c ...

22.10.2021 08:07 UTC
0

ждем правок тут https://github.com/flant/ovpn-admin/pulls )

22.10.2021 08:27 UTC
+1

Там слишком много всего. А я не считаю себя хорошим специалистом по безопасности. tar и mkdir можно делать и встроенными средствами golang. в случае с созданием архивов не учитываются права на файлы. Параметры проверяются только на стороне фронтэнда, значит теоретически пользователь может передать дополнительные команды bash через строковые параметры. Все попытки помешать этому сделанные в os.Exec сводятся к нулю когда вы выполняете cmd := exec.Command("bash", "-c", script).

Хотя бы санируйте строки на стороне бэкэнда проверяя на наличие недопустимых символов, вроде "; ./ & |"

22.10.2021 08:57 UTC
+2

идея конечно хорошая, но данный проект не претендует на завние суперо безопасного, он слегка не про это

23.10.2021 18:42 UTC
0

А супер безопасным и не нужно быть. Имхо нужно прислушиваться к сообществу, а не тыкать на pull request.

Ну и очевидные дыры нужно заделывать.

24.10.2021 05:38 UTC
0

Прислушиваться полезно, согласен. Впрочем, приглашать к PR это тоже не мешает - уж хотя бы в случаях, когда понимаешь, что вот прямо сейчас сами этим не займёмся.

Но на уровне "прислушаться" - мы прислушались, автору (@maledog) за эти мысли спасибо!