03.01.2015 Views

Офисное западло - Xakep Online

Офисное западло - Xakep Online

Офисное западло - Xakep Online

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

ХАКЕР.PRO<br />

Host filesrv<br />

HostName 192.168.5.201<br />

ProxyCommand ssh gateway nc -w 180 %h %p<br />

Подключаемся:<br />

$ ssh filesrv<br />

Использование параметра ControlMaster позволяет ускорить доступ к<br />

удаленному серверу за счет того, что в специальном файле сохраняются<br />

все параметры предыдущего сеанса, которые и используются при повторном<br />

подключении. Для примера создадим две Host-секции:<br />

$ vim .ssh/config<br />

Host srv1<br />

HostName 213.167.XX.YY<br />

ControlMaster yes<br />

# Здесь %r — имя, %h — хост и %p — порт<br />

ControlPath ~/.ssh/ctl-%r-%h-%p<br />

Host srv1fast<br />

HostName 213.167.XX.YY<br />

ControlMaster no<br />

ControlPath ~/.ssh/ctl-%r-%h-%p<br />

Теперь на сервере srv1 выполняем утилиту uptime. Логинимся на нем<br />

(чтобы создать локальный сокет для второго подключения), переходим на<br />

другую консоль и снова запрашиваем статистические счетчики:<br />

ttyp0% time ssh srv1 uptime<br />

5:55PM up 37 days, 9:19, 1 user, load averages: 0.33,<br />

0.32, 0.33<br />

0m0.77s real 0m0.06s user 0m0.01s system<br />

ttyp0% ssh srv1<br />

ttyp1% time ssh srv1fast uptime<br />

5:57PM up 37 days, 9:20, 2 users, load averages: 0.37,<br />

0.34, 0.33<br />

0m0.03s real 0m0.00s user 0m0.01s system<br />

Как видишь, при мультиплексировании соединений время выполнения<br />

команды uptime на удаленном сервере уменьшилось в 25 раз — настоящее<br />

турбореактивное ускорение!<br />

Секурные носки<br />

Но это еще не все чудеса. OpenSSH можно использовать как специальный<br />

SOCKS-сервер, который поддерживает более гибкое проксирование, чем<br />

простое перенаправление портов. Например, команда:<br />

HTTP/1.1 200 OK<br />

Date: Sat, 23 Feb 2008 14:27:43 GMT<br />

Server: Apache<br />

X-Powered-By: PHP/4.4.1<br />

Теперь носки готовы к использованию:<br />

$ tsocks thunderbird<br />

Поиграем в песочнице<br />

В OpenSSH 4.9 появилась долгожданная поддержка chroot(2) для sshd,<br />

контролируемая с помощью опции ChrootDirectory. К примеру, заставим<br />

подключающегося по sftp пользователя warez переходить в измененный<br />

корневой каталог 0day:<br />

$ sudo vim /etc/ssh/sshd_config<br />

#Subsystem sftp /usr/libexec/sftp-server<br />

Subsystem sftp internal-sftp<br />

Match User warez<br />

X11Forwarding no<br />

AllowTcpForwarding no<br />

ForceCommand internal-sftp<br />

ChrootDirectory /0day<br />

Вместо заключения<br />

Автодополнение хостов можно выполнить за счет использования встроенных<br />

средств командной оболочки:<br />

$ vim ~/.bash_profile<br />

complete -W "$(echo 'cat ~/.ssh/known_hosts | cut -f 1<br />

-d '' \<br />

| sed -e s/,.*//g | uniq | grep -v "\["';)" ssh<br />

Параноидально настроенные администраторы, возможно, захотят,<br />

наоборот, зашифровать все IP и доменные адреса из файла .ssh/known_<br />

hosts. Делается это так:<br />

$ echo 'HashKnownHosts' >> ~/.ssh/config<br />

$ ssh-keygen -H -f ~/.ssh/known_hosts<br />

$ head -1 ~/.ssh/known_hosts<br />

+|1|TJ2SaXGqO8uHYeiA92KuNRIKR7M=|GpQB8Qz0tQPqA+nF+ghe<br />

37mpcHA= ssh-rsa AAAA[...] z<br />

Пакет с ClusterSSH в Ubuntu уже есть<br />

$ ssh — D1080 user@domain.ru<br />

создает локальный SOCKS5‐сервер, который ждет подключения на<br />

localhost:1080. Альтернативный вариант — прописать директиву<br />

DynamicForward в .ssh/config:<br />

$ vim .ssh/config<br />

Host proxy<br />

HostName ns.domain.ru<br />

DynamicForward 1080<br />

Подключаемся, введя «ssh proxy». Протестировать работу SOCKS5‐сервера<br />

можно такой командой:<br />

$ echo -n "GET / HTTP/1.0\r\n\r\n" | nc -X 5 -x<br />

127.0.0.1:1080 \<br />

www.domain.ru 80 | head -4<br />

xàêåð 06 /114/ 08<br />

133

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!