5336
Комментарий:
|
7676
|
Удаления помечены так. | Добавления помечены так. |
Строка 2: | Строка 2: |
/!\ ---- netcat |
=== Полезные утилиты === Неполезные утилиты: `rsh` и `telnet` |
Строка 6: | Строка 5: |
socat | ==== netcat и другие ==== * Сервер (-l, -p порт) и клиент * UDP (-u) и unix domain (-U) * Всякое: пакетная отдача (-l секунды), тайм-аут (-w секунды). socks… |
Строка 8: | Строка 10: |
wget | Другие * [[http://www.dest-unreach.org/socat/doc/socat.html#EXAMPLES|socat]] * [[http://www.openssl.org/docs/apps/s_client.html|openssl s_client -connect]] ==== wget и другие ==== * [[http://www.gnu.org/software/wget/manual/wget.html|wget]] * [[http://curl.haxx.se/docs/manpage.html|curl]], [[http://lftp.yar.ru/lftp-man.html|lftp]], [[http://aria2.sourceforge.net/|aria2]]… |
Строка 10: | Строка 17: |
tcpdump | ==== tcpdump ==== [[http://www.tcpdump.org/tcpdump_man.html|Документация]] |
Строка 12: | Строка 20: |
конвейерный принцип в UNIX | === Сеть в VirtualBox === * интерфейсы и их режимы: NAT, мост, внутренняя сеть, … * работа «внутренней сети» * работа "NAT" режима * «проброс портов» * [[/static/LinuxNetwork2013/Nano.7z|Стенд]]: организация сети и проброс портов (часть `.ssh/config`): {{{ host nano Hostname localhost Port 2210 HostKeyAlias nano User root |
Строка 14: | Строка 33: |
gpg | host nanoclient Hostname localhost Port 2211 HostKeyAlias nanoclient User root }}} |
Строка 16: | Строка 40: |
работа "NAT" режима в !VirtualBox и «проброс портов» | === GnuPG === * Подпись и шифрование * доверенные и недоверенные ключи * сети доверия; падение уровней доверия * [[http://malpaso.ru/gpg-keysigning-party/|Как проводить встречи для подписи ключей GnuPG]] === Secure Shell, великий и могучий === * Шифрование и аутентификация * Ключ сервера и ключ пользователя: их применения * Первоначальный обмен ключами и man-in-the-middle * Проброс портов по защищённому каналу * SSH-Агент * Проблема доступа к ssh-агенту, ssh-askpass * Socks * … ! |
Строка 36: | Строка 74: |
* снова зайти на сервер и в отладочной информации увидеть, что предложенный ключ был отвергнут | * удалить файл `.ssh/known_hosts` и снова зайти на сервер. Увидеть диалог`The authenticity of host 'srv (10.30.50.1)' can't be established` и в нём отпечаток (обращаю внимание, что отвечать надо '''yes''', а не '''y'''). В отладочной информации увидеть, что предложенный ключ был отвергнут |
Полезные сетевые утилиты. Использование шифрования
Полезные утилиты
Неполезные утилиты: rsh и telnet
netcat и другие
- Сервер (-l, -p порт) и клиент
- UDP (-u) и unix domain (-U)
- Всякое: пакетная отдача (-l секунды), тайм-аут (-w секунды). socks…
Другие
wget и другие
tcpdump
Сеть в VirtualBox
- интерфейсы и их режимы: NAT, мост, внутренняя сеть, …
- работа «внутренней сети»
- работа "NAT" режима
- «проброс портов»
Стенд: организация сети и проброс портов (часть .ssh/config):
host nano Hostname localhost Port 2210 HostKeyAlias nano User root host nanoclient Hostname localhost Port 2211 HostKeyAlias nanoclient User root
GnuPG
- Подпись и шифрование
- доверенные и недоверенные ключи
- сети доверия; падение уровней доверия
Secure Shell, великий и могучий
- Шифрование и аутентификация
- Ключ сервера и ключ пользователя: их применения
- Первоначальный обмен ключами и man-in-the-middle
- Проброс портов по защищённому каналу
- SSH-Агент
- Проблема доступа к ssh-агенту, ssh-askpass
- Socks
- … !
Д/З
Поговорить с самим собой с помощью netcat:
[root@uneex ~]# nc -l 12345 … [root@uneexclient ~]# nc srv 12345 …
- Для того, чтобы закрыть поток В/В, достаточно нажать "Ctrl+D"
Зайти с клиента на сервер по ssh, почитать отладочную диагностику и обнаружить там имена файлов с ключами:
[root@uneexclient ~]# ssh -v root@srv
- Сгенерировать ключ (защищённый кодовой фразой "123456"):
[root@uneexclient ~]# rm -rf /root/.ssh/id_dsa && ssh-keygen -P123456 -t dsa -f /root/.ssh/id_dsa
Повторять эту команду до тех пор, пока ASCII-арт отпечатка не покажется красивым
удалить файл .ssh/known_hosts и снова зайти на сервер. Увидеть диалогThe authenticity of host 'srv (10.30.50.1)' can't be established и в нём отпечаток (обращаю внимание, что отвечать надо yes, а не y). В отладочной информации увидеть, что предложенный ключ был отвергнут
- Скопировать открытый ключ на сервер (надо будет ввести кодовую фразу):
[root@uneexclient ~]# ssh-copy-id srv
ssh-copy-id — это простой сценарий, запустить sh -x ssh-copy-id srv и посмотреть, какими командами что копируется
- Ещё раз зайти на сервер (теперь вместо пароля надо будет вводить кодовую фразу)
Запустить ssh-агент (обратите внимание, что команда ssh-agent генерирует все остальные команды, их просто надо скопировать, и числа там будут другие)
[root@uneexclient ~]# ssh-agent SSH_AUTH_SOCK=/root/tmp/ssh-XIglJWV12040/agent.12040; export SSH_AUTH_SOCK; SSH_AGENT_PID=12041; export SSH_AGENT_PID; [root@uneexclient ~]# SSH_AUTH_SOCK=/root/tmp/ssh-XIglJWV12040/agent.12040; export SSH_AUTH_SOCK; [root@uneexclient ~]# SSH_AGENT_PID=12041; export SSH_AGENT_PID;
- Вместо всего этого можно было выполнять такую команду:
[root@uneexclient ~]# eval `ssh-agent`
- Добавить в него ключ, посмотреть на ключ и зайти наконец-то без пароля!
[root@uneexclient ~]# ssh-add -l The agent has no identities. [root@uneexclient ~]# ssh-add Enter passphrase for /root/.ssh/id_dsa: Identity added: /root/.ssh/id_dsa (/root/.ssh/id_dsa) [root@uneexclient ~]# ssh-add -l 1024 5c:5f:59:eb:97:ec:e0:fc:f7:18:1f:10:89:dd:f4:90 /root/.ssh/id_dsa (DSA) [root@uneexclient ~]# ssh srv Last login: Fri Nov 29 14:16:39 2013 from host13.class.altlinux.org
- Пробросить подключение с клиента на uneex.ru:80 на порт сервера 8001:
[root@uneexclient ~]# ssh srv -R8001:www.ru:80 Last login: Fri Nov 29 14:25:26 2013 from host13.class.altlinux.org [root@uneex ~]# netlist | grep 8001 root 14358 sshd 8 tcp 127.0.0.1:8001 0.0.0.0:0 LISTEN [root@uneex ~]# links http://localhost:8001 …
С помощью tcpdump убедиться, что трафик идёт так: сервер(localhost):8001 → клиент(ssh-тоннель):22 → www.ru:80
- Импортировать открытый GPG-ключ и проверить его отпечаток:
[root@uneex ~]# gpg --list-keys [root@uneex ~]# gpg --recv-keys 7C10D900 [root@uneex ~]# gpg --fingerprint /root/.gnupg/pubring.gpg ------------------------ pub 1024D/7C10D900 2003-10-17 Key fingerprint = D01B B410 C69D AE98 8EB0 16F0 E1F0 3D6E 7C10 D900
Проверить подпись этого файла:
[root@uneex ~]# gpg --verify signed.txt
- Обратите внимание, что ключ хотя и проверен, но вы лично не подписывали его, так что причин доверять ему нету.
- Сгенерировать собственный ключ:
[root@uneex ~]# echo " Key-Type: DSA Key-Length: 1024 Name-Real: Joe Tester Name-Comment: with stupid passphrase Name-Email: joe@foo.bar Expire-Date: 0 %commit " | gpg --batch --gen-key -
При появлении надписи "Not enough random bytes available." придётся зайти в соседнюю консоль и нажимать на все подряд клавиши клавиатуры. В VirtualBox с энтропией плоховато.
- Подписать ключ 7C10D900 и снова проверить подпись
[root@uneex ~]# gpg --sign-key 7C10D900 … [root@uneex ~]# gpg --verify signed.msg …