T> donc, un bind peut se faire sans root, mais natd ne se contente pas d'un T> bind, il veut faire un divert qui a besoin de root dans tous les cas ?
Pour faire un bind(), il faut d'abord pouvoir créer le socket. Le socket est créé avec SOCK_RAW
T> est ce envisageable de faire ce que je veux sans devoir etre root ?
Si vous avez "la chose"
man 4 divert
--
Guy Decoux
Thomas
In article (Dans l'article) , ts wrote (écrivait) :
"T" == Thomas writes:
T> donc, un bind peut se faire sans root, mais natd ne se contente pas d'un T> bind, il veut faire un divert qui a besoin de root dans tous les cas ?
Pour faire un bind(), il faut d'abord pouvoir créer le socket. Le socket est créé avec SOCK_RAW
comprends pas : une application comme apache, elle a besoin aussi de créer le socket avec SOCK_RAW ??
T> est ce envisageable de faire ce que je veux sans devoir etre root ?
Si vous avez "la chose"
c'est quoi "la chose" ?
man 4 divert
trop compliqué pour moi (j'ai repéré "DETAILS" et "Binding to port numbers less than 1024 requires super-user access, as does creating a socket of type SOCK_RAW.", mais j'ai pas compris grand chose de plus)
"don't put your PC out of the window, put windows out of your PC" "petit Free qui devient grand, gêne les requins blancs"
In article (Dans l'article) <rfcis0mjvvp.fsf@moulon.inra.fr>,
ts <decoux@moulon.inra.fr> wrote (écrivait) :
"T" == Thomas <fantome.forums.tDeContes@free.fr> writes:
T> donc, un bind peut se faire sans root, mais natd ne se contente pas d'un
T> bind, il veut faire un divert qui a besoin de root dans tous les cas ?
Pour faire un bind(), il faut d'abord pouvoir créer le socket. Le socket
est créé avec SOCK_RAW
comprends pas : une application comme apache, elle a besoin aussi de
créer le socket avec SOCK_RAW ??
T> est ce envisageable de faire ce que je veux sans devoir etre root ?
Si vous avez "la chose"
c'est quoi "la chose" ?
man 4 divert
trop compliqué pour moi
(j'ai repéré "DETAILS" et "Binding to port numbers less than 1024
requires super-user access, as does creating a socket of type
SOCK_RAW.", mais j'ai pas compris grand chose de plus)
In article (Dans l'article) , ts wrote (écrivait) :
"T" == Thomas writes:
T> donc, un bind peut se faire sans root, mais natd ne se contente pas d'un T> bind, il veut faire un divert qui a besoin de root dans tous les cas ?
Pour faire un bind(), il faut d'abord pouvoir créer le socket. Le socket est créé avec SOCK_RAW
comprends pas : une application comme apache, elle a besoin aussi de créer le socket avec SOCK_RAW ??
T> est ce envisageable de faire ce que je veux sans devoir etre root ?
Si vous avez "la chose"
c'est quoi "la chose" ?
man 4 divert
trop compliqué pour moi (j'ai repéré "DETAILS" et "Binding to port numbers less than 1024 requires super-user access, as does creating a socket of type SOCK_RAW.", mais j'ai pas compris grand chose de plus)
"don't put your PC out of the window, put windows out of your PC" "petit Free qui devient grand, gêne les requins blancs"
ts
"T" == Thomas writes:
T> comprends pas : une application comme apache, elle a besoin aussi de T> créer le socket avec SOCK_RAW ??
Quand vous lancez la commande natd avec la redirection de port, cela commence comme cela
[...]
/* * Create divert sockets. Use only one socket if -p was specified * on command line. Otherwise, create separate sockets for * outgoing and incoming connnections. */ if (inOutPort) {
divertInOut = socket (PF_INET, SOCK_RAW, IPPROTO_DIVERT); if (divertInOut == -1) Quit ("Unable to create divert socket.");
if (bind (divertInOut, (struct sockaddr*) &addr, sizeof addr) == -1) Quit ("Unable to bind divert socket."); } else {
divertIn = socket (PF_INET, SOCK_RAW, IPPROTO_DIVERT); if (divertIn == -1) Quit ("Unable to create incoming divert socket.");
divertOut = socket (PF_INET, SOCK_RAW, IPPROTO_DIVERT); if (divertOut == -1) Quit ("Unable to create outgoing divert socket.");
divertInOut = -1;
[...]
Pour créer le socket, il faut être root sinon natd donne une erreur et ne s'exécute pas.
--
Guy Decoux
"T" == Thomas <fantome.forums.tDeContes@free.fr> writes:
T> comprends pas : une application comme apache, elle a besoin aussi de
T> créer le socket avec SOCK_RAW ??
Quand vous lancez la commande natd avec la redirection de port, cela
commence comme cela
[...]
/*
* Create divert sockets. Use only one socket if -p was specified
* on command line. Otherwise, create separate sockets for
* outgoing and incoming connnections.
*/
if (inOutPort) {
divertInOut = socket (PF_INET, SOCK_RAW, IPPROTO_DIVERT);
if (divertInOut == -1)
Quit ("Unable to create divert socket.");
T> comprends pas : une application comme apache, elle a besoin aussi de T> créer le socket avec SOCK_RAW ??
Quand vous lancez la commande natd avec la redirection de port, cela commence comme cela
[...]
/* * Create divert sockets. Use only one socket if -p was specified * on command line. Otherwise, create separate sockets for * outgoing and incoming connnections. */ if (inOutPort) {
divertInOut = socket (PF_INET, SOCK_RAW, IPPROTO_DIVERT); if (divertInOut == -1) Quit ("Unable to create divert socket.");