LINUX.ORG.RU
ФорумAdmin

освободить порт 80


0

1

Есть свой веб-сервер, который надо посадить на 80 порт, и который абсолютно свободен (там нет открытых сокетов), но где-то он зарезервирован для использования веб-серверов.

Как мне сообщить что моя программа как раз и есть веб-сервер?

На любом другом порте всё работает, а под root'ом 80 порт тоже работает отлично. Арач и нгникс не установлены. netstat -lantp показывает открытые только два порта: для ssh и mysql. Ось - CentOS.

CentOS automatically blocks port 80 out-of-the-box

Как мне сообщить что моя программа как раз и есть веб-сервер?

Тут два варианта: либо написать об этом на корпусе на трёх языках, либо выкрикнуть поочерёдно на трёх языках в открытое окно.

показывай iptables-save и открывай порт что ли

adriano32 ★★★
()

> под root'ом 80 порт тоже работает отлично

т.е. приложение запускается не из под рута? первые 1024 порта может слушать только приложение с правами root

initab
()

1-1024 порты доступны только для root. Или используй порт из младшего диапазона, или запускай свою софтину из-под root.

blackst0ne ★★★★★
()

>Ось - CentOS.

SeLinux включён? Если да, то гуглите audit2allow.

mky ★★★★★
()
Ответ на: комментарий от mky

> Он запускается как root, берёт порт и потом перестаёт быть root'ом.

Вообще-то нет, под кем запустился под тем и остаётся. Сервер - WSGI обычный.

P.S.: SeLinux - включён.

VenyaTolinov
() автор топика
Ответ на: комментарий от VenyaTolinov

>>1-1024 порты доступны только для root

Ну да, так оно и есть. А как же апач на 80 порт садится он же не рут?

Он запускается как root, берёт порт и потом перестаёт быть root'ом. Вопрос был про apache и ответ про него. Хотя, на самом деле, один процесс у apache остаётся root'ом.

А SeLinux может давать дополнительные палки в колёса, можно посмотреть /var/log/audit/audit.log, хотя обычному пользователю порт 80 не получить.

mky ★★★★★
()
Ответ на: комментарий от mky

> хотя обычному пользователю порт 80 не получить.

Похоже на горькую правду.

VenyaTolinov
() автор топика
Ответ на: комментарий от blackst0ne

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

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

Дочерние процессы, могут и заранее запускаться, какое-то их количество, для увеличения скорости обработки, но это сути не меняет.

lvi ★★★★
()

Способ номер раз

setcap 'cap_net_bind_service=+ep' /path/to/program

Способ номер два

iptables -A PREROUTING -t nat -i eth0 -p tcp --dport 80 -j REDIRECT --to-port <your port>

testuser123
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.