|
|
|
@ -23,19 +23,19 @@ gophermap. |
|
|
|
|
|
|
|
|
|
## Which netcat? |
|
|
|
|
|
|
|
|
|
There are currently several different implementations of `netcat`, and |
|
|
|
|
each of them works in a slightly different way and/or offers a different |
|
|
|
|
set of options. For the sake of using `gosher`, the main issue is |
|
|
|
|
whether your `netcat` implementation does exit or not when its standard |
|
|
|
|
input gets closed. Notably, the original `netcat` implementation by |
|
|
|
|
hobbit@avian.org does **not** exit, while other common implementations |
|
|
|
|
(OpenBSD `netcat`, `ncat` from the nmap project, and GNU `netcat`) |
|
|
|
|
normally do. The current version of `gosher` can work with different |
|
|
|
|
implementations of `netcat`, provided that the variable `NETCAT` points |
|
|
|
|
to the `netcat` version you want to use, and that the variable `STYLE` |
|
|
|
|
in `gosher` is set correctly. In particular, `STYLE` can pe set equal to |
|
|
|
|
either 'pipe' or 'fork'. Please check below what is the recommended |
|
|
|
|
combination for your version of `netcat`: |
|
|
|
|
There are currently several different implementations of `netcat(1)`, |
|
|
|
|
and each of them works in a slightly different way and/or offers a |
|
|
|
|
different set of options. For the sake of using `gosher`, the main issue |
|
|
|
|
is whether your `netcat(1)` implementation does exit or not when its |
|
|
|
|
standard input gets closed. Notably, the original `netcat(1)` |
|
|
|
|
implementation by hobbit@avian.org does **not** exit, while other common |
|
|
|
|
implementations (OpenBSD `netcat(1)`, `ncat(1)` from the nmap project, |
|
|
|
|
and GNU `netcat(1)`) normally do. The current version of `gosher` can |
|
|
|
|
work with different implementations of `netcat(1)`, provided that the |
|
|
|
|
variable `NETCAT` points to the `netcat(1)` version you want to use, and |
|
|
|
|
that the variable `STYLE` in `gosher` is set correctly. In particular, |
|
|
|
|
`STYLE` can pe set equal to either 'pipe' or 'fork'. Please check below |
|
|
|
|
what is the recommended combination for your version of `netcat(1)`: |
|
|
|
|
|
|
|
|
|
+----------------+--------------+--------------+ |
|
|
|
|
| netcat version | STYLE='fork' | STYLE='pipe' | |
|
|
|
@ -51,18 +51,19 @@ combination for your version of `netcat`: |
|
|
|
|
the 'fork' mode is a potential security risk** |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
## Running `gosher` under `chroot` |
|
|
|
|
## Running `gosher` under `chroot(8)` |
|
|
|
|
|
|
|
|
|
In general, it makes sense to run a server in a `chroot` environment, to |
|
|
|
|
In general, it makes sense to run a server in a `chroot(8)` environment, to |
|
|
|
|
reduce the risks connected with remote exploits. If you would like to |
|
|
|
|
run `gosher` under `chroot` be sure to have the following binaries (and |
|
|
|
|
run `gosher` under `chroot(8)` be sure to have the following binaries (and |
|
|
|
|
the corresponding libs) available in the chroot-ed environment: |
|
|
|
|
|
|
|
|
|
``` |
|
|
|
|
basename cat cut mkfifo netcat realpath rm sed sh |
|
|
|
|
basename(1) cat(1) cut(1) dirname(1) mkfifo(1) netcat(1) realpath(1) |
|
|
|
|
rm(1) sed(1) sh(1) which(1) |
|
|
|
|
``` |
|
|
|
|
|
|
|
|
|
Obviously, `netcat` will be your preferred `netcat` implementation. |
|
|
|
|
Obviously, `netcat(1)` will be your preferred `netcat(1)` implementation. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
## Why `gosher`? |
|
|
|
|