среда, 2 марта 2011 г.

Настройка vsftpd

Файл конфигурации vsftpd в различных системах по умолчанию располагается в различных местах:

в FreeBSD — /usr/local/etc/vsftpd.conf
в Fedora — /etc/vsftpd/vsftpd.conf
в Debian — /etc/vsftpd.conf

После внесения изменений в конфигурационный файл вашего vsftpd не забывайте перезапускать его. В FreeBSD:
# /usr/local/etc/rc.d/vsftpd restart

В Debian/Fedora:
# service vsftpd restart
Управление доступом

Обратите внимание на то, что в процессе установки vsftp в вашу систему добавляется пользователь с именем учётной записи ftp. Предназначение этой учётной записи — организация доступа к каталогу анонимного FTP. По умолчанию vsftpd разрешает доступ на чтение анонимным пользователям к домашнему каталогу учётной записи ftp. Не забудьте отключить его, если это вам не нужно, изменив значение соответствующего параметра:
anonymous_enable=NO

Если же доступ анонимных пользователей к вашему FTP-серверу разрешён, дополнительно вы можете отключить запрос пароля при анонимном логине:
no_anon_password=YES

Доступ локальных пользователей системы по умолчанию обычно отключён. Включить его при необходимости можно следующим образом:
local_enable=YES

Чтобы ваши локальные пользователи не «бродили» выше их домашних каталогов, можно включить следующее ограничение:
chroot_local_user=YES

Также можно использовать другой способ chroot пользователей, при котором ограничиваться будут не все пользователи, а лишь явно определённые. Для этого необходимо установить значение параметра chroot_local_user равным NO, создать файл с перечнем пользователей для которых chroot должен действовать (например, в /etc/vsftpd.chroot_list) и определить следующие два параметра:
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd.chroot_list

Обратите внимание на то, что если при определённых выше двух параметрах значение параметра chroot_local_user является равным NO, то учётные записи, перечисленные в файле chroot_list_file НЕ будут попадать под ограничения chroot.

Если вы хотите ограничить количество одновременных соединений к vsftpd, есть два способа сделать это: при помощи возможностей суперсервера xinetd или, если ваш демон работает в автономном режиме, при помощи параметра (естественно 10 заменив на нужное вам количество допустимых одновременных подключений):
max_clients=10

По умолчанию в конфигурации vsftpd запрещены FTP-команды создания новых файлов и каталогов, таким образом ваши локальные пользователи по умолчанию не смогут получить доступ на запись в своих домашних каталогах. Исправить это легко можно при помощи определения параметра write_enable:
write_enable=YES

После того, как в конфигурации вашего сервера параметр write_enable установлен равным YES и anonymous_enable определён как YES вы можете управлять доступом относительно операций создания новых файлов/каталогов анонимными пользователями. Разрешить создавать новые каталоги анонимам:
anon_mkdir_write_enable=YES

Разрешить анонимным пользователям удалять и переименовывать файлы и каталоги:
anon_other_write_enable=YES

Разрешить анонимам загружать новые файлы:
anon_upload_enable=YES

Ограничить скорость обмена данными для анонимных пользователей в автономном режиме сервера можно следующим параметром (значение указывается в байтах/сек):
anon_max_rate=1024

По умолчанию umask файлов vsftpd использует равный 077, то есть файлы создаются доступными на чтение/запись только для владельца. Изменить значение umask анонимных пользователей можно при помощи параметра anon_umask:
anon_umask=022

а для локальных — при помощи параметра local_umask:
local_umask=022

При необходимости вы можете запретить пользователям скачивать файлы с вашего сервера:
download_enable=NO

Иногда бывает полезно скрыть реальные идентификаторы владельцев файлов, заменив их на идентификатор пользователя ftp:
hide_ids=YES
Сетевые параметры

Если ваш vsftpd запускается в автономном режиме, а не через xinetd, тогда необходимо явно указать это:
listen=YES

то же, для IPv6 (помните, что демон может работать одновременно только либо с IPv4, либо с IPv6):
listen_ipv6=YES

Определить IPv4 адрес, на который должен «вешаться» демон, можно параметром:
listen_address=192.168.0.1

Для IPv6:
listen_address6=fe80:0:0:0:202:b3ff:fe1e:8329

При необходимости вы можете отключить возможность использования клиентами PASV-режима:
pasv_enable=NO
Разное

Начиная с версии 2.0.7 vsftpd умеет удалять неудавшиеся закачки, если определить следующий параметр:
delete_failed_uploads=YES

По умолчанию vsftpd отображает таймштампы файлов в GMT. Если вам нужно, чтобы они отображались согласно локальному времени сервера, воспользуйтесь следующим параметром:
use_localtime=YES

вторник, 1 марта 2011 г.

Репозитории в debian



#============================================
# Стабильный выпуск:
#============================================

#--------------------------Репозитории безопасности-----------------------------
deb http://security.debian.org/ stable/updates contrib non-free main
# deb-src http://security.debian.org/ stable/updates contrib non-free main

# Зеркала:
#deb ftp://ftp.ru.debian.org/debian-security/ stable/updates main contrib non-free
#deb-src ftp://ftp.ru.debian.org/debian-security/ stable/updates main contrib non-free
#deb http://mirror.yandex.ru/debian-security/ stable/updates main contrib non-free
#deb-src http://mirror.yandex.ru/debian-security/ stable/updates main contrib non-free





#-------------------Оффициальный репозиторий Debian Lenny-----------------------
deb ftp://ftp.debian.org/debian/ stable main contrib non-free
# deb-src ftp://ftp.debian.org/debian/ stable main contrib non-free

# Зеркала:
#deb ftp://ftp.ru.debian.org/debian/ stable main contrib non-free
#deb-src ftp://ftp.ru.debian.org/debian/ stable main contrib non-free
#deb ftp://mirror.yandex.ru/debian/ stable main contrib non-free
#deb-src ftp://mirror.yandex.ru/debian/ stable main contrib non-free





#------------------------Multimedia пакеты для Debian---------------------------
deb ftp://www.debian-multimedia.org stable main
#deb-src ftp://www.debian-multimedia.org stable main

# Зеркала:
#deb ftp://mirror.yandex.ru/debian-multimedia/ stable main
#deb-src ftp://mirror.yandex.ru/debian-multimedia/ stable main




#============================================
# Тестовый выпуск:
#============================================

#--------------------------Репозитории безопасности-----------------------------
deb http://security.debian.org/ testing/updates contrib non-free main
# deb-src http://security.debian.org/ testing/updates contrib non-free main

# Зеркала:
#deb ftp://ftp.ru.debian.org/debian-security/ testing/updates main contrib non-free
#deb-src ftp://ftp.ru.debian.org/debian-security/ testing/updates main contrib non-free
#deb http://mirror.yandex.ru/debian-security/ testing/updates main contrib non-free
#deb-src http://mirror.yandex.ru/debian-security/ testing/updates main contrib non-free



#-------------------Оффициальный репозиторий Debian Squeeze---------------------
deb ftp://ftp.debian.org/debian/ testing main contrib non-free
# deb-src ftp://ftp.debian.org/debian/ testing main contrib non-free

# Зеркала:
#deb ftp://ftp.ru.debian.org/debian/ testing main contrib non-free
#deb-src ftp://ftp.ru.debian.org/debian/ testing main contrib non-free
#deb ftp://mirror.yandex.ru/debian/ testing main contrib non-free
#deb-src ftp://mirror.yandex.ru/debian/ testing main contrib non-free



#------------------------Multimedia пакеты для Debian---------------------------
deb ftp://www.debian-multimedia.org testing main
# deb-src ftp://www.debian-multimedia.org testing main

# Зеркала:
#deb ftp://mirror.yandex.ru/debian-multimedia/ testing main
#deb-src ftp://mirror.yandex.ru/debian-multimedia/ testing main



#============================================
# Нестабильный выпуск:
#============================================

#-------------------Оффициальный репозиторий Debian Unstable--------------------
deb ftp://ftp.debian.org/debian/ unstable main contrib non-free
# deb-src ftp://ftp.debian.org/debian/ unstable main contrib non-free

# Зеркала:
#deb ftp://ftp.ru.debian.org/debian/ unstable main contrib non-free
#deb-src ftp://ftp.ru.debian.org/debian/ unstable main contrib non-free
#deb ftp://mirror.yandex.ru/debian/ unstable main contrib non-free
#deb-src ftp://mirror.yandex.ru/debian/ unstable main contrib non-free




#------------------------Multimedia пакеты для Debian---------------------------
deb ftp://www.debian-multimedia.org unstable main
# deb-src ftp://www.debian-multimedia.org unstable main

# Зеркала:
#deb ftp://mirror.yandex.ru/debian-multimedia/ unstable main
#deb-src ftp://mirror.yandex.ru/debian-multimedia/ unstable main




#=============================================
# Экспериментальный выпуск:
#=============================================

#----------------Оффициальный репозиторий Debian Experimental-------------------
deb ftp://ftp.debian.org/debian/ experimental main contrib non-free
# deb-src ftp://ftp.debian.org/debian/ experimental main contrib non-free

# Зеркала:
#deb ftp://ftp.ru.debian.org/debian/ experimental main contrib non-free
#deb-src ftp://ftp.ru.debian.org/debian/ experimental main contrib non-free
#deb ftp://mirror.yandex.ru/debian/ experimental main contrib non-free
#deb-src ftp://mirror.yandex.ru/debian/ experimental main contrib non-free
#-------------------------------------------------------------------------------

# в начале строки означает что она закоментирована.

суббота, 26 февраля 2011 г.

Вышли операционные системы FreeBSD 7.4 и 8.2



Разработчики популярной серверной операционной системы FreeBSD сегодня сообщили о выходе стабильных версий данной операционной системы в двух линейках - 7.4 и 8.2.

Некоторые из изменений 8.2:
  • улучшена поддержка Xen HVM в FreeBSD/amd64 и Xen PV в FreeBSD/i386;
  • ZFS on-disk format обновлён до версии 15;
  • aesni(4) драйвер для криптографических инструкций Intel AESNI;
  • обновлены BIND и OpenSSL;
  • Gnome 2.32.1;
  • KDE 4.5.5;
  • множество улучшений и исправлений.
Торрент-файлы для новинки можно скачать отсюда.


пятница, 18 февраля 2011 г.

Windows PowerShell, коротко о главном

Знакомство с возможностями Windows PowerShell

Итак, вы — администратор, которому необходимо в кратчайший срок освоить Windows PowerShell. Первое, что вы, вероятно, предпримете (естественно, помимо обращения к документации и справочной системе), — воспользуетесь командой Help (рис. 1).

Рис. 1
Внимательно изучив выведенную на экран информацию, мы придем к пониманию следующих концептуальных вещей: в Windows PowerShell существуют алиасы, командлеты, провайдеры, а также справочные файлы. Алиасы (alias) служат для упрощения ввода команд (например, clc — это алиас команды Clear-Content), командлеты (cmdlet) представляют собой реализацию всех встроенных в Windows PowerShell команд, провайдеры (provider) обеспечивают доступ к файловой системе, реестру, хранилищу сертификатов и т.п., а справочные файлы (helpfile) используются для получения дополнительной информации. Для получения подробного описания команды применяется следующий синтаксис:

PS C:> Help Get-Command

В результате выполнения этой команды мы получим полное описание команды Get-Command, включая ее назначение, синтаксис, опции и т.п. (рис. 2).

Рис. 2
Для получения списка всех встроенных команд используем следующий синтаксис:

PS C:> Get-Command

Обратите внимание на то, что все команды состоят из глагола и прилагательного (например, Get-Content, Export-Console) и все команды поддерживают единую систему именования — например для завершения чего-либо всегда используется глагол Stop, а не Kill, Terminate, Halt или другие синонимы, что существенно упрощает изучение возможностей PowerShell (рис. 3).

Рис. 3
Команда Get-Service служит для получения списка всех сервисов, запущенных на данном компьютере. Например,

PS C:> Get-Service

возвращает список, представленный на рис. 4.

Рис. 4
Для получения списка процессов, запущенных в настоящий момент на компьютере, применяется команда Get-Process (рис. 5):

Рис. 5

PS C:> Get-Process

В Windows PowerShell поддерживается автоматическое завершение ввода. Чтобы убедиться в этом, введите Get-P и нажмите клавишу TAB: вы получите возможность выбора всех команд, начинающихся с введенных символов.
Для получения информации только об одном процессе в качестве аргумента команды Get-Process задается имя этого процесса (рис. 6):

Рис. 6

PS C:> Get-Process explorer

Для того чтобы получить список всех процессов, названия которых начинаются с определенного символа, достаточно указать этот символ и «*» (рис. 7):

Рис. 7

PS C:> Get-Process i*

Обратите внимание на колонки, в которых содержится информация, — Handles, NMP(K) и т.п. По умолчанию информация выводится в виде таблицы, но на самом деле все команды возвращают объекты. Эти объекты могут быть переданы на вход другим командам с помощью символа «|» (рис. 8):

Рис. 8

PS C:> Get-Process i* | format-list

Теперь список процессов доступен в другом представлении. Для получения подробной информации о различных форматах можно использовать следующую команду:

PS C:> Help format *

Другие возможные форматы:

PS C:> Get-Process i* | format-wide

и

PS C:> Get-Process i* | format-custom

Поскольку на выходе всегда получается объект, можно манипулировать им для выполнения дополнительных операций, например фильтрации:

PS C:> Get-Process | where {$_.handlecount -gt 400}

или сортировки:

PS C:> Get-Process | where {$_.handlecount -gt 400} | sort-object Handles

Может возникнуть вполне резонный вопрос: а откуда мы узнали, что у объекта, описывающего процесс, есть свойство handlecount? Для получения списка всех свойств объекта применяется следующая команда (рис. 9):

Рис. 9

PS C:> Get-Process | Get-Member

Выполним команду Get-Process | Get-Member Company — при форматировании по умолчанию невозможно получить желаемые данные. Преобразуем полученную команду в:

PS C:> Get-Process | Get-Member Company | Format-List

Результат ее преобразования представлен на рис. 10.

Рис. 10

PS C:> Get-Process | sort-object Company | format-table -Group Company name, description, handles

Результат выполнения данной команды представлен на рис. 11.

Рис. 11
Команда stop-process позволяет остановить запущенный процесс, например:

PS C:> Get-process notepad | stop-process

Такая возможность не всегда является безопасной, поэтому лучше использовать подобные команды с опцией whatif, которая показывает, что произойдет при выполнении той или иной команды, но на самом деле команда не выполняется:

PS C:> Get-Process notepad | stop-process –whatif

Кроме того, можно указывать на необходимость подтверждения перед выполнением команды:

PS C:> Get-Process notepad | stop-process –confirm

Результат выполнения команды с подтверждением представлен на рис. 12.

Рис. 12
В последнем примере мы получаем описание действий, которые выполняет команда, и можем выбрать, подтверждать ее выполнение или нет.
Помимо этого можно создавать собственные пакетные файлы, представляющие собой файлы с расширением *.ps1, в которые помещаются команды PowerShell, и выполнять их. Для соблюдения безопасности пакетные файлы должны быть подписаны. При тестировании можно отключить требование по запуску только подписанных файлов:

PS C:> Set-ExecutionPolicy Unrestricted

но после окончания тестирования не забудьте снова включить данную опцию с помощью следующей команды:

PS C:> Set-ExecutionPolicy AllSigned

После знакомства с основами Windows PowerShell посмотрим, как с помощью данной утилиты можно решать различные административные задачи.

Работа с файловой системой

Одна из задач, с которой часто сталкиваются многие ИT-специалисты, связана с манипуляциями с файлами, такими как копирование, перемещение, переименование, удаление файлов и каталогов. На рис. 13 показаны основные команды Windows PowerShell, применяемые для манипуляций с файловой системой: new-item, copy-item, move-item, rename-item и remove-item.

Рис. 13
В отличие от других оболочек, в которых существует и набор команд для файлов (например, delete или rename), и набор для каталогов (например, rd или md), в Windows PowerShell единый набор команд используется для манипуляций как с файлами, так и с каталогами.
Первая команда в нашем примере — new-item TextFiles –itemtype directory — применяется для создания нового подкаталога TextFiles в текущем каталоге. Если опустить параметр –itemtype, то Windows PowerShell спросит, что мы создаем — файл (file) или каталог (directory). Отметим, что у команды new-item есть алиас — ni. В сокращенном виде наша первая команда будет выглядеть так:

PS C:> ni TextFiles –itemtype directory

Затем мы используем команду copy-item (алиасы — cpi, cp, copy) для копирования всех файлов с расширением *.txt в подкаталог TextFiles. Если применять данную команду в пакетном файле, имеет смысл сделать ее более понятной, указав параметры –path (источник) и –destination (приемник):

PS C:>copy-item –path ‘.\*.txt’ –destination ‘.\TextFiles’

После выполнения команды копирования мы используем команду set-location для перехода в подкаталог TextFiles. С помощью команды rename-item переименовываем файл psdemo.txt в psdemo.bak. При необходимости можно применять опции –path и –newName. После того как файл переименован, переносим его на один уровень вверх, используя команду move-item. Затем применяем команду set-location, а точнее — ее алиас sl для перехода в другой каталог. Манипуляции с файловой системой мы завершаем удалением всего каталога TextFiles, используя команду remove-item. Поскольку в каталоге TextFiles содержатся файлы, применяется опция –recurse. Если эта опция не указана, Windows PowerShell запросит подтверждение перед выполнением команды remove-item.

Работа с реестром

При выполнении различных настроек и попытках обнаружения каких-либо параметров нам иногда приходится обращаться к системному реестру в поисках ключей, значений и т.п. С использованием возможностей Windows PowerShell эта задача может быть решена достаточно простым способом. Возможности Windows PowerShell показаны на рис. 14.

Рис. 14
Наша первая команда использует алиас sl для выполнения команды set-location, изменяющей наше текущее местоположение с файловой системы на ветвь HKEY_CURRENT_USER в системном реестре:

PS C:\> sl hkcu:

Отметим, что, как и в случае работы с файловой системой, PowerShell применяет специальный провайдер для доступа к реестру.
 Аналогами приведенной выше команды являются команды:

PS C:\> sl registry:hkcu

и

PS C:\> sl hkey_current_user

Следующая команда загружает содержимое всей ветви реестра HKEY_CURRENT_USER в переменную reg:

PS HKCU:\> $reg = gci . –rec –ea silentlycontinue

Для этого мы используем команду get-childitem (алиас — gci), принцип работы которой аналогичен работе с файловой системой. Первый аргумент этой команды — «.» — указывает на то, что мы хотим получить содержимое текущей ветви реестра — HKEY_CURRENT_USER. Второй аргумент является сокращением от опции –recurse и указывает на то, что нам нужен рекурсивный сбор данных из всех подветвей текущей ветви реестра. И наконец, третий аргумент — –ea silentlycontinue — указывает на то, что команда должна продолжать выполняться даже в случае возникновения ошибок, связанных с недостатком прав доступа к определенным подветвям реестра.
Следующая команда в нашем примере:

PS HKCU:\>$s = $reg | % {if (gp $_.pspath) –match ‘PowerShell’ ){$_.pspath}}

копирует из реестра данные, содержащие строку ‘PowerShell’. Мы начинаем с того, что берем объект reg и перенаправляем его в команду %, которая является алиасом команды for-each. Она выполняет рекурсивный обход всех элементов реестра, находящихся в объекте reg и на каждом шаге сохраняет элемент в специальном объекте PowerShell с именем ‘_’. В фигурных скобках мы указываем действия, которые должны выполняться на каждом шаге выполнения команды for-each. Внутри блока for-each мы используем проверку if для того, чтобы узнать, соответствуют ли текущая запись реестра и ее свойство pspath, которые мы получаем через обращение к команде get-itemproperty (через алиас gp), нашему критерию — наличию строки ‘PowerShell’. Если соответствие найдено, мы возвращаем значение свойства pspath. Все найденные соответствия сохраняются в объекте s.
Работу с реестром мы завершаем перенаправлением результатов поиска в команду select-object (через алиас select) и показываем два первых найденных результата. В качестве упражнения вы можете перенаправить финальные результаты в файл с помощью команды out-file.

Доступ к процессам

Еще одна задача, с которой могут столкнуться ИТ-специалисты, связана с обнаружением аномалий в работе системы, например процессов, которые потребляют большие объемы памяти. Давайте посмотрим, как эта задача решается средствами Windows PowerShell (рис. 15).

Рис. 15
В первой команде мы сохраняем информацию о всех процессах, запущенных на данном компьютере, в переменной $allprocs:

PS C:\> $allprocs = get-process

После этого мы перенаправляем полученную информацию команде for-each, которая тоже может быть указана алиасом % или foreach. Данная команда перебирает все объекты, связанные с процессом, и на каждом шаге сохраняет информацию во внутреннем объекте $_. Этот объект можно условно назвать текущим объектом. В качестве параметров для команды for-each мы указываем операцию сравнения значения свойства virtualmemorysize с интересующим нас размером памяти (20 Мбайт в нашем примере). Если значение этого свойства для текущего объекта больше заданного, мы выводим название процесса на экран. Отметим, что в PowerShell поддерживаются основные сокращения для указания размеров — KB, MB, GB, что очень полезно, поскольку не нужно считать нули при указании объемов памяти, дисков и т.п.

Доступ к системному журналу

При попытке обнаружения причин сбоев мы часто обращаемся к системному журналу, в котором хранится множество полезной информации о событиях, происходивших в системе. Обычно для исследования системного журнала применяется утилита Event Viewer (eventvwr.exe). В PowerShell мы можем воспользоваться встроенными командами, например командой get-eventlog, для быстрого исследования содержимого системного журнала (рис. 16).

Рис. 16
Наша первая команда загружает ключевую информацию из системного журнала:

PS C:\> get-eventlog –list

Без использования опции –list PowerShell запросит точное указание названия системного журнала. В нашем примере мы видим несколько точек входа в системном журнале: Application, Internet Explorer, System, Windows Power Shell и т.п. Наша следующая команда извлекает записи из системного журнала, которые имеют тип “Error”:

PS C:\> $bad = get-eventlog “System” | where-object { $_.EntryType –eq “Error” }

Мы используем команду get-eventlog, которой указываем параметр “System” для извлечения только системных записей, — мы могли бы более четко задать это, применив параметр logName. Содержимое переменной $bad передается на вход команде where-object для фильтрации только интересующих нас записей. В качестве аргументов команды where-object мы указываем на то, что ищем только записи, у которых свойство EntryType равно “Error”.
Мы завершаем исследование системного журнала выводом на экран пяти последних записей об ошибках, используя для этого команду select-object с параметром –last:

PS C:\> $bad | select-object –last 5

Заключение


Мы рассмотрели основные возможности Windows PowerShell для упрощения задач, возникающих перед ИT-специалистами. Как мы знаем, эти задачи часто решаются с помощью скриптового языка VBScript. В Windows PowerShell есть возможность применения существующего кода на VBScript, а следовательно, миграция значительно упрощена (рис. 20).

Рис. 20
В приведенном выше примере показано, как можно использовать существующий код на VBScript в PowerShell. В первой строке мы создаем новый COM-объект, который представляет собой ядро выполнения скриптовых программ — ScriptControl. Затем мы указываем, что будем использовать язык Visual Basic Script. В третьей строке задается собственно код на VBScript — в нашем примере это вызов функции MsgBox, но на практике в переменную можно, например, загрузить код файла. И наконец, в последней строке мы добавляем код на VBScript в наш объект — и код поступает на выполнение.

Эволюция вычислительной мощи CPU и GPU

Хотя десять лет назад компания Intel прогнозировала процессоры 10 ГГц к 2011 году, реальность оказалась совершенно другой. Кто мог предположить, что главная вычислительная мощь будет уже не у CPU, а у графических процессоров. Вот как выглядит график роста количества операций с плавающей запятой (FLOPs) у CPU и GPU за последние десять лет.



Тот же график на логарифмической шкале.



Понятно, что за счёт узкой специализации графический процессор может практически всю свою производительность отдавать на арифметические операции, тогда как архитектура CPU гораздо сложнее.

Тактовая частота процессоров Intel застыла в районе 3,4 ГГц.



Правда, общая производительность чипов продолжает расти за счёт увеличения числа ядер.

среда, 16 февраля 2011 г.

Удаленное подключение через rDesktop



Домашняя страница:
http://www.rdesktop.org/

rdesktop – Open Source клиент для Windows Terminal Services, работающий по протоколу RDP (Remote Desktop Protocol) и совместимый с ОС Windows 2000 Server, Windows Server 2003, Windows Server 2008, Windows XP, Windows Vista и Windows NT Server 4.0. Утилита является консольной, большиснтво графических клиентов не поддерживают всех ее возможностей.

Сначала подключаем репозитории и поставим последнюю версию клиента:

sudo add-apt-repository ppa:pmjdebruijn/rdesktop-release
sudo apt-get update
sudo apt-get install rdesktop


Простейшая команда выглядит так:
$ rdesktop -g 1024x768 -u admin -p pass [IP-адрес удаленной машины]
 
Получить все доступные ключи можно запустив утилиту без параметров.

Вот некоторые из:

-u – учетная запись для атентификации.
-d – домен.
-p – пароль, чтобы другие не могли его подсвотреть лучше использовать -p – в этом случае rdesktop запросит пароль при запуске.
-k – эмулируемая раскладка клавиатуры (по умолчанию en-us).
-g – разрешение экрана, можно указать в процентах от всего экрана.
-f – полноэкранный режим (можно переключиться с помощью комбинации клавиш Ctrl-Alt-Enter).
-s – начальная оболочка пользователя (вместо Explorer).
-c – начальный рабочий каталог пользователя.
-0 – глубина цвета – 8 или 16 бит, 16-битный цвет доступен только для RDP 5-й версии Windows XP/2003, 32 битный не поддерживаетс.
-4 – использовать RDP версии 4.
-5 – использовать RDP версии 5 (по умолчанию).
-T – заголовок окна.
-S – режим одного приложения, например запускается одно развернутоена весь экран приложение (с опцией -s).
-z – активация сжатия передаваемых данных, актуально для медленных соединени