[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Java https сервер на умолчательном порту



В сообщении от [Пт 2018-03-02 12:24 +0300]
Victor Wagner <v.wagner@postgrespro.ru> пишет:

> Проблема в том. что хочется чтобы оно слушало на дефолтном порту для
> https, т.е. 443.
> 
> Для того, чтобы java-приложению дали прибиндиться к порту < 1024, надо
> сделать 
> 
> sudo setcap CAP_NET_BIND_SERVICE=+eip /usr/bin/java
> 
> Мне, в принципе не жалко, большой дыры в безопасности мне это не
> создаст (тем более что машинка в интранете). Проблема в другом.
> Через пару месяцев другой сотрудник, которому либо я забыл рассказать
> про setcap, либо я рассказал, да он забыл, сделает на этой машинке
> apt-get upgrade, и к нему приедет апгрейд OpenJDK. И при изменении
> бинарника capabilities слетят. И jenkins перестанет запускаться.

Коллеги в рассылке предлагали использовать прокси-сервер, а вашу
программу оставить на непривилегированном порту. Хорошая мысль, там и
TLS и различные политики можно прикрутить. А если использовать прокси
централизовано, для всех сервисов компании, то про вашу программу никто
не забудет при смене администратора (она будет прописана в конфигах).

> Вопрос в том, а куда бы наиболее соответствующим политике дистрибутива
> способом прописать скрипт, который будет делать этот  вызов setcap,
> чтобы быть уверенным что в момент запуска jenkins бинарник java будет
> иметь требуемые capabilities?

Если не возражаете против использования systemd для запуска программы,
то добавьте в юнит такую строчку:

[Service]
…
ExecStartPre=/sbin/setcap cap_net_bind_service=+ep /usr/local/bin/myprog
…

> (кстати из man setcap я не понял что произойдет с capabilities при
> простой перезагрузке, без изменения бинарника - сбросятся они или нет?
> Вроде у нас persistent state в linux не принят).

При перезагрузке не сбросятся, а если заменить бинарник, то да, setcap
нужно делать заново (или прописать в юните см. выше).

-- 
Коротаев Руслан
https://blog.kr.pp.ru

Attachment: smime.p7s
Description: S/MIME cryptographic signature


Reply to: