ÞфøÑÂýþõ ÷ðÿðôûþ - Xakep Online
ÞфøÑÂýþõ ÷ðÿðôûþ - Xakep Online
ÞфøÑÂýþõ ÷ðÿðôûþ - Xakep Online
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
ХАКЕР.PRO<br />
user@domain.ru<br />
groups = yes<br />
bind = 127.0.0.1<br />
}<br />
Продвинутое использование .ssh/config<br />
Другой вариант настройки форвардинга — использование<br />
файла ~/.ssh/config. Например, настроим 192.168.1.1<br />
на перенаправление входящей и исходящей почты по шифрованному<br />
каналу для клиентов из 192.168.1.0/24 на mail.<br />
domain.ru:<br />
Создаем SOCKS-сервер<br />
$ vim .ssh/config<br />
Host mail<br />
Hostname mail.domain.ru<br />
LocalForward 192.168.1.1:8025 mail.<br />
domain.ru:25<br />
LocalForward 192.168.1.1:8110 mail.<br />
domain.ru:110<br />
LocalForward 192.168.1.1:8143 mail.<br />
domain.ru:143<br />
GatewayPorts yes<br />
forwarding,no-port-forwarding ssh-rsa AAAA[...]<br />
Кстати, прописав в ~/.ssh/config параметры используемых серверов,<br />
можно с легкостью управлять сразу всей стаей.<br />
Подключаемся:<br />
# ssh -i ~/.ssh/tunnel_key user@domain.ru<br />
В ответ должны получить баннер удаленного почтового сервера. Теперь<br />
создаем файл для xinetd:<br />
$ sudo vim /etc/xinetd.d/smtp<br />
service smtp<br />
{<br />
socket_type = stream<br />
protocol = tcp<br />
wait = no<br />
user = root<br />
disable = no<br />
server = /usr/bin/ssh<br />
server_args = -q -T -i /root/.ssh/tunnel_key<br />
$ vim .ssh/config<br />
Host server1<br />
HostName ns.domain1.ru<br />
User admin<br />
Host server2<br />
Hostname mail.domain2.ru<br />
User support<br />
Теперь опросим серверы командой:<br />
ksh% for i in 1 2; do ssh server$i «uptime»; done<br />
5:37PM up 1 day, 23:45, 1 user, load averages: 0.25,<br />
0.22, 0.22<br />
5:37PM up 51 days, 1:49, 0 users, load averages: 0.25,<br />
0.25, 0.24<br />
Как вариант, для этих целей можно использовать интерпретатор Perl<br />
(пример для десяти подконтрольных серверов):<br />
Из чего<br />
состоит OpenSSH<br />
ssh-add — вспомогательная программа для добавления личных<br />
ключей в кэш;<br />
ssh-agent — демон, занимающийся кэшированием дешифрованных<br />
личных ключей;<br />
scp — утилита для безопасного копирования файлов между хостами;<br />
sftp — клиентская программа для sftp-server;<br />
sftp-server — серверная реализация защищенного ftp;<br />
ssh — клиент, обеспечивающий безопасное соединение;<br />
sshd — демон, ожидающий подключения, выполняющий аутентификацию<br />
и полностью обслуживающий ssh-клиента;<br />
ssh-keygen — утилита для создания и модификации ключей;<br />
ssh-keyscan — утилита для сбора публичных ключей;<br />
ssh-keysign — помощник при использовании метода аутентификации,<br />
основанного на проверке хостов.<br />
% perl -e ‘foreach $i (1 .. 10) {print 'ssh server$i "uptime"'}'<br />
Если часто приходится работать с несколькими удаленными хостами,<br />
советую присмотреться к проекту ClusterSSH (clusterssh.sf.net). Он позволяет<br />
открыть несколько соединений по SSH и одновременно выполнять на<br />
них команды. Нужные пакеты уже есть в репозитарии Debian/Ubuntu:<br />
$ sudo aptitude install clusterssh<br />
И запускаем:<br />
$ cssh one two three<br />
Параметр ProxyCommand позволяет выполнить произвольную команду.<br />
Для примера подключимся через шлюз к файловому серверу, который<br />
находится за NAT:<br />
$ vim .ssh/config<br />
Host gateway<br />
HostName ns.domain.ru<br />
132<br />
xàêåð 06 /114/ 08