|
|
|
@ -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`?
|
|
|
|
|