03.01.2015 Views

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

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

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

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

ХАКЕР.PRO<br />

$ tar zcf — ~/coding | ssh remotehost<br />

'cat > coding.tgz'<br />

Примечание редактора: при трансфере двоичных<br />

данных всегда проверяй размер исходных<br />

и целевых файлов — баги могут подстерегать в<br />

самых неожиданных местах:<br />

% dd if=/dev/arandom of=/tmp/file1<br />

bs=1k count=1k 2>/dev/null<br />

% ssh -t localhost "cat /tmp/file1"<br />

>/tmp/file2<br />

% ls -l /tmp/file*<br />

— rw-r--r-- 1 andrushock wsrc<br />

1048576 May 11 13:55 /tmp/file1<br />

— rw-r--r-- 1 andrushock wsrc<br />

1066982 May 11 13:56 /tmp/file2<br />

Чтобы рекурсивно отправить весь каталог,<br />

набираем:<br />

$ scp -r mydir user@host.domain.<br />

ru:~/<br />

Конфиг OpenSSH<br />

077"; \<br />

pub<br />

cat > .ssh/authorized_keys" < .ssh/id_rsa_backup.<br />

Затем редактируем authorized_keys (ключ ‘-t’ следует использовать при<br />

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

$ ssh -t remotehost vim .ssh/authorized_keys<br />

from="192.168.0.*,212.34.XX.YY",command="cd /work; tar<br />

cvf — ./* | bzip2 -9",no-pty,no-agent-forwarding,no-<br />

X11‐forwarding,no-port-forwarding ssh-rsa AAAA[...]<br />

И запускаем процедуру резервного копирования:<br />

$ ssh -i .ssh/id_rsa_backup remotehost > \<br />

~/backup/work-'date +%d%m%Y'.tar.bz2 2>/dev/null<br />

Для безопасного получения почты к fetchmail<br />

легко прикрутить ssh. Для этого создаем файл<br />

~/.fetchmailrc с содержанием:<br />

poll localhost with protocol pop3 and port 8110:<br />

preconnect "ssh -f -q -C user@213.167.XX.YY \<br />

-L 8110:213.167.XX.YY:110 sleep 10" password<br />

noIdea;<br />

Забираем почту:<br />

$ fetchmail<br />

1 message for user at localhost (8062 octets).<br />

reading message user@localhost.domain.ru:1 of 1 (8062<br />

octets)....... flushed<br />

Организовав защищенный туннель, можно перенаправить в него любой<br />

трафик. Например, смонтируем удаленный ресурс Samba по каналу, организованному<br />

через SSH:<br />

Каталог /work, находящийся на сервере remotehost, будет сохранен в<br />

архив ~/backup/work-11052008.tar.bz2.<br />

Защищаем сетевые соединения<br />

Используя SSH, можно защитить информацию, которая передается программами,<br />

не имеющими встроенных механизмов шифрования соединения.<br />

Например, сделаем бэкап с помощью dump(8) на удаленный сервер:<br />

$ ssh -L 8139:domain.ru:139 user@domain.ru<br />

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

можно организовать двумя способами: локально (ключ '-L ') или удаленно<br />

('-R '). Во многих системах открывать соединения с портами ниже<br />

1024 имеет право только root, поэтому выбираем 8139. Теперь монтируем<br />

удаленный ресурс:<br />

$ sudo dump -0au -f — /dev/rwd1a | gzip -9 | \<br />

ssh remotehost 'dd of=cvs_backup.dump.gz'<br />

$ smbmount //domain.ru/share /mnt -o username=user,ip=lo<br />

calhost,port=8139<br />

Хотя, если немного постараться, dump можно и без применения каналов<br />

подружить с ssh:<br />

Аналогично можно туннелировать и любой другой трафик. Например,<br />

организуем подключение к удаленному SMTP-серверу через SSH:<br />

$ ssh remotehost touch /home/user/cvs.dump<br />

$ env RSH='which ssh' sudo -E dump 0f remotehost:/home/<br />

user/cvs.dump /cvs<br />

Передать файл, используя OpenSSH, можно одним из следующих способов:<br />

$ cat myfile | ssh remotehost 'cat > myfile'<br />

# ssh -L 25:domain.ru:25 user@domain.ru<br />

Альтернативным решением будет использование файла authorized_<br />

keys и запуск с помощью xinetd.<br />

# cat ~/.ssh/tunnel_key<br />

command="nc localhost 25",no-X11‐forwarding,no-agent-<br />

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

131

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

Saved successfully!

Ooh no, something went wrong!