Dear [EMAIL PROTECTED],

$ext   - stands for server listening interface,
($ext) - stands for server listening interface's address.

server side:

pass in quick on $ext inet proto udp \
from any port 333 to ($ext) port 333 keep state \
tag knock333

pass in quick on $ext inet proto udp \
from any port 444 to ($ext) port 444 keep state tagexist knock333 \
tag knock444

pass in quick on $ext inet proto udp \
from any port 555 to ($ext) port 555 keep state tagexist knock444 \
tag knock555

pass in quick on $ext inet proto tcp \
from any to ($ext) port 22 flags S/SA keep state tagexist knock555

client side:

# perl -e 'print split /\./, rand()' | nc -u -p 333 ($ext) 333
# perl -e 'print split /\./, rand()' | nc -u -p 444 ($ext) 444
# perl -e 'print split /\./, rand()' | nc -u -p 555 ($ext) 555
# ssh user@($ext)

constructive criticism are welcomed.

Truly yours
 Alexey E. Suslikov

Reply via email to