Да, можно использовать xxd
чтобы сделать это, но Вам не может понравиться формат ввода. От Вашего примера 0x0a является шестнадцатеричным значением новой строки ASCII. Можно создать файл с единственной новой строкой в нем, затем использовать xxd
создать список:
$ xxd one_line_file
0000000: 0a .
Можно получить единственную новую строку из xxd
от того вывода, если Вы даете ему надлежащие флаги:
$ echo "0000000: 0a" | xxd -r > another_one_line_file
$ xxd another_one_line_file
0000000: 0a
xxd
имеет довольно хороший выходной формат, я не думаю, что это было бы слишком обременительно, чтобы создать Ваши пакеты с помощью текстового редактора, затем использовать xxd -r
перейти к двоичному файлу..
Возможно ли сделать telnet безопасным, используя эти решения
A)ssh туннель,абсурден(зачем использовать туннель, если можно использовать ssh?), но работает
ssh -L 23:localhost:23 -N -f your host
Конечно, закрыть порт 23 брандмауэром и позволить открыть 22 или ssh персональный порт, чтобы запретить прямой telnet доступ
B)tls или ssl(я предпочитаю TLS) stunnel,очень легко сделать,на сервере вы используете
; Sample stunnel configuration file for Unix by Michal Trojnara 2002-2012
; Some options used here may be inadequate for your particular configuration
; This sample file does *not* represent stunnel.conf defaults
; Please consult the manual for detailed description of available options
; **************************************************************************
; * Global options *
; **************************************************************************
; A copy of some devices and system files is needed within the chroot jail
; Chroot conflicts with configuration file reload and many other features
chroot = /var/lib/stunnel/
; Chroot jail can be escaped if setuid option is not used
setuid = nobody
setgid = nogroup
; PID is created inside the chroot jail
pid = /stunnel.pid
; Debugging stuff (may useful for troubleshooting)
;debug = 7
;output = stunnel.log
; **************************************************************************
; * Service defaults may also be specified in individual service sections *
; **************************************************************************
; Certificate/key is needed in server mode and optional in client mode
cert = //etc/ssl/certs/yourserver.crt
key = //etc/ssl/private/yourserver.key
; Authentication stuff needs to be configured to prevent MITM attacks
; It is not enabled by default!
verify = 2
; Don't forget to c_rehash CApath
; CApath is located inside chroot jail
;CApath = /
; It's often easier to use CAfile
CAfile = /yourserver.ca
; Don't forget to c_rehash CRLpath
; CRLpath is located inside chroot jail
;CRLpath = /crls
; Alternatively CRLfile can be used
;CRLfile = /usr/etc/stunnel/crls.pem
; Disable support for insecure SSLv2 protocol
options = NO_SSLv2
; Workaround for Eudora bug
;options = DONT_INSERT_EMPTY_FRAGMENTS
; These options provide additional security at some performance degradation
;options = SINGLE_ECDH_USE
;options = SINGLE_DH_USE
; **************************************************************************
; * Service definitions (remove all services for inetd mode) *
; **************************************************************************
; Example SSL server mode services
[telnet]
accept = 0.0.0.0:5939
connect = 23
на клиенте
; Sample stunnel configuration file for Unix by Michal Trojnara 2002-2012
; Some options used here may be inadequate for your particular configuration
; This sample file does *not* represent stunnel.conf defaults
; Please consult the manual for detailed description of available options
client=yes
; **************************************************************************
; * Global options *
; **************************************************************************
; A copy of some devices and system files is needed within the chroot jail
; Chroot conflicts with configuration file reload and many other features
;chroot = /var/lib/stunnel/
; Chroot jail can be escaped if setuid option is not used
;setuid = nobody
;setgid = nogroup
; PID is created inside the chroot jail
;pid = /stunnel.pid
; Debugging stuff (may useful for troubleshooting)
;debug = 7
;output = stunnel.log
; **************************************************************************
; * Service defaults may also be specified in individual service sections *
; **************************************************************************
; Certificate/key is needed in server mode and optional in client mode
cert = /yourclient.crt
key = /yourclient.key
; Authentication stuff needs to be configured to prevent MITM attacks
; It is not enabled by default!
;verify = 2
; Don't forget to c_rehash CApath
; CApath is located inside chroot jail
;CApath = /certs
; It's often easier to use CAfile
CAfile = /yourca.crt
; Don't forget to c_rehash CRLpath
; CRLpath is located inside chroot jail
;CRLpath = /crls
; Alternatively CRLfile can be used
;CRLfile = /usr/etc/stunnel/crls.pem
; Disable support for insecure SSLv2 protocol
options = NO_SSLv2
; Workaround for Eudora bug
;options = DONT_INSERT_EMPTY_FRAGMENTS
; These options provide additional security at some performance degradation
;options = SINGLE_ECDH_USE
;options = SINGLE_DH_USE
; **************************************************************************
; * Service definitions (remove all services for inetd mode) *
; **************************************************************************
; Example SSL server mode services
[telnet]
accept=localhost:23
connect=yourstunnelserver:5939
Конечно, используйте эти файлы только для примера и модифицируйте для вашей конфигурации Вы получите доступ к удаленному серверу
telnet localhost 23
, используя безопасный tls туннель
Третий метод - использовать telnet с keberos, это хорошо, потому что не запрашивается passwd и не разрешается SSO, но требуются слабые шифры, поэтому не на 100% безопасно
на inetd.conf редактировать и добавлять или изменять
telnet stream tcp nowait root /usr/kerberos/sbin/telnetd
на клиенте do
telnet -x server
Если соединение без запрашиваемого пароля работает, то при получении запроса на пароль или сообщения об ошибке telnet понятен
. Вы можете настроить OpenSSH так, чтобы конкретная учетная запись может запустить только одну команду (команда, отправленная клиентом, игнорируется). В / etc / ssh / sshd_config
, добавьте строки, такие как:
Match User anonymous
ForceCommand /usr/bin/telnet localhost 34843
PasswordAuthentication yes
PermitEmptyPasswords yes
AllowAgentForwarding no
AllowTcpForwarding no
PermitTTY yes
PermitTunnel no
X11Forwarding no
, вы должны организовать для домашнего каталога Anonymous
, который будет принадлежать корне и только модифицируемую по root, и ditto для ~ Anonymous / .ssh
и файлы там.
Там, по крайней мере, еще одна вещь, которую вам нужно сделать, то есть для отключения Shell Escapes. По крайней мере, некоторые реализации TELNET позволяют пользователю выходить в оболочку, нажав Ctrl + ] ! . Я думаю, что с реализацией Netkit Linux, я думаю Telnet -e ''
отключает командный режим и, таким образом, делает невозможным достижение оболочки из Telnet. Установка среды Shell
в / Bin / false
также будет полезной мерой предосторожности.