Что такое имя листа в порту authbind?

Я хотел авторизовать порт 992,

, при чтении документации сказано, что

PORTS 512-1023 Authorising binding to ports from 512 to 1023 inclusive is not recommended. Some protocols (including some versions of NFS) authorise clients by seeing that they are using a port number in this range. So by authorising a program to be a server for such a port, you are also authorising it to impersonate the whole host for those protocols. To make sure that this isn't done by accident, if the port number requested is in the range 512-1023, authbind will expect the permission files to have an additional ! at the start of their leafname.

Ref: authbind [ ! d4]

Я не мог понять, что такое имя листа, указанное здесь, поэтому я не могу аутентифицировать порт 992, как это сделать?

3
задан 1 June 2017 в 14:52

3 ответа

Согласно моему пониманию, имя листа - это последняя часть имени программы (не включая /)

, например. если вы хотите выполнить /usr/local/bin/myproc, имя leafname равно myproc.

Чтобы выполнить программу в зарезервированной области порта - нужно изменить имя листа, чтобы начать с !

например /usr/local/bin/myproc следует переименовать в /usr/local/bin/!myproc

Примечание: если нет реальной причины для использования портов & lt; 1024 для несистемного приложения, было бы предпочтительнее использовать порты> 1024 для такого приложения.

Некоторые фрагменты кода из исходного кода authbind

Исходный код authbind

 117   if (hport >= IPPORT_RESERVED/2) tophalfchar= "!";

 137   snprintf(fnbuf,sizeof(fnbuf)-1,"byport/%s%u",tophalfchar,hport);
 138   if (!access(fnbuf,X_OK)) authorised();

 145   if (af == AF_INET) {
 146     snprintf(fnbuf,sizeof(fnbuf)-1,"byaddr/%s%s:%u",tophalfchar,np,hport);
 147     checkexecflagfile(fnbuf);
 148   }
 149 
 150   snprintf(fnbuf,sizeof(fnbuf)-1,"byaddr/%s%s,%u",tophalfchar,np,hport);

tophalfchar установлен как ! если hport is >= 1024/2 (1024/2 = 512)

Код проверяет следующий тип строк:

byport /! hport byaddr /! np: hport и т. д. [!d18 ]

Подробная информация об установке / установке / тестировании authbind

2
ответ дан 22 May 2018 в 22:00
  • 1
    спасибо за ответ, я также подумал о том же значении и назвал / etc / authbind / byport /! 992, который не работал, почему-то не понимает, почему он не работает? – Arun Xavier 1 June 2017 в 14:57
  • 2
    что является результатом ls -lsa /etc/authbind/byport/!992? – Yaron 1 June 2017 в 15:15
  • 3
    какой пользователь / uid пытается запустить программу? – Yaron 1 June 2017 в 15:16
  • 4
    Я хотел добавить 443 и 992 в authbind, я пробовал с! 443 и! 992, в этом случае 992 работал, но 443 не работал, когда я пытаюсь с 443 и! 992, работал только 443 порт. имя пользователя - «прокси» – Arun Xavier 1 June 2017 в 15:28
  • 5
    @ ᴊᴀᴠʏ - взгляните на ссылку в конце моего ответа, это может быть полезно для настройки / проверки конфигурации authbind – Yaron 1 June 2017 в 15:40

Согласно моему пониманию, имя листа - это последняя часть имени программы (не включая /)

, например. если вы хотите выполнить /usr/local/bin/myproc, имя leafname равно myproc.

Чтобы выполнить программу в зарезервированной области порта - нужно изменить имя листа, чтобы начать с !

например /usr/local/bin/myproc следует переименовать в /usr/local/bin/!myproc

Примечание: если нет реальной причины для использования портов & lt; 1024 для несистемного приложения, было бы предпочтительнее использовать порты> 1024 для такого приложения.

Некоторые фрагменты кода из исходного кода authbind

Исходный код authbind

117 if (hport >= IPPORT_RESERVED/2) tophalfchar= "!"; 137 snprintf(fnbuf,sizeof(fnbuf)-1,"byport/%s%u",tophalfchar,hport); 138 if (!access(fnbuf,X_OK)) authorised(); 145 if (af == AF_INET) { 146 snprintf(fnbuf,sizeof(fnbuf)-1,"byaddr/%s%s:%u",tophalfchar,np,hport); 147 checkexecflagfile(fnbuf); 148 } 149 150 snprintf(fnbuf,sizeof(fnbuf)-1,"byaddr/%s%s,%u",tophalfchar,np,hport);

tophalfchar установлен как ! если hport is >= 1024/2 (1024/2 = 512)

Код проверяет следующий тип строк:

byport /! hport byaddr /! np: hport и т. д.

Подробная информация об установке / установке / тестировании authbind

2
ответ дан 18 July 2018 в 12:21

Согласно моему пониманию, имя листа - это последняя часть имени программы (не включая /)

, например. если вы хотите выполнить /usr/local/bin/myproc, имя leafname равно myproc.

Чтобы выполнить программу в зарезервированной области порта - нужно изменить имя листа, чтобы начать с !

например /usr/local/bin/myproc следует переименовать в /usr/local/bin/!myproc

Примечание: если нет реальной причины для использования портов & lt; 1024 для несистемного приложения, было бы предпочтительнее использовать порты> 1024 для такого приложения.

Некоторые фрагменты кода из исходного кода authbind

Исходный код authbind

117 if (hport >= IPPORT_RESERVED/2) tophalfchar= "!"; 137 snprintf(fnbuf,sizeof(fnbuf)-1,"byport/%s%u",tophalfchar,hport); 138 if (!access(fnbuf,X_OK)) authorised(); 145 if (af == AF_INET) { 146 snprintf(fnbuf,sizeof(fnbuf)-1,"byaddr/%s%s:%u",tophalfchar,np,hport); 147 checkexecflagfile(fnbuf); 148 } 149 150 snprintf(fnbuf,sizeof(fnbuf)-1,"byaddr/%s%s,%u",tophalfchar,np,hport);

tophalfchar установлен как ! если hport is >= 1024/2 (1024/2 = 512)

Код проверяет следующий тип строк:

byport /! hport byaddr /! np: hport и т. д.

Подробная информация об установке / установке / тестировании authbind

2
ответ дан 24 July 2018 в 19:57

Другие вопросы по тегам:

Похожие вопросы: