SSH

Crucial Security Notice: Debian had a serious problem with SSL Keys. It effects all sidux live-CD ISOs and Hard Disk installations of sidux Chaos, Tartaros, Gaia, Eros and Nyx.

The fixes are online here at debian, and also in the sidux forum. Please follow the advice, it is a very serious Security Notice.

Описание ssh c Википедии:

В компьютерных сетях ssh или " Secure Shell" является сетевым протоколом с позволяющим устанавливать связь между локальным и удаленным (remote) компьютерами. При этом применяется криптография с публичным ключом (public key), для аутентификации удаленного компьютера или, опционально, для позволения аутентифицировать пользователя с удаленного компьютера. ssh гарантирует конфиденциальность и целостность передачи данных между обоими компьютерами, используя кодирование и MACs (message authentication codes). Типичнная сфера применения ssh - вход в систему на удаленном (remote) компьютере и выполнение команд на нем, также поддерживается туннелирование и форвардинг любых портов TCP и X11. Файлы могут передаваться по включенным в ssh протоколам sftp или scp. В базовой установке сервер ssh использует порт TCP 22.

Безопастность протокола ssh

Как правило, регистрация root через ssh должна быть запрещена. Вообще стоит избегать входа в систему как root, что позволит получить дополнительные гарантии безопасности. Так же, с целью ограничить возможность проведения атак типа brute force (перебор паролей по словарю, требующий значительного времени), стоит ограничить пользователей как в количестве попыток для входа в систему, так в продолжительности открытия окна регистрации (до 10 минут)

Вышеуказанные меры возможно реализовать путем редактирования файла конфигурации ( в любом, предпочитаемом Вами редакторе):

/etc/ssh/sshd_config

Ищем и изменяем рискованные установки.

Следующие установки должны быть изменены:

Порт <желаемый порт>: эта запись должна указывать на порт в маршрутизаторe, который свободно соединен к линии. Если Вы не знаете, что это такое, стоит еще раз обдумать применение ssh для Remote управления. Debian устанавливает порт 22 как стандарт. Однако целесообразно, использовать порт вне зоны стандартного сканирования, поэтому мы используем, например, порт 5874:

Port 5874

ListenAddress <IP компьютера или интерфейса сети>: Так как порт передается дальше роутеру, компьютер должен использовать статический IP адрес, если только не используется никакой локальный DNS сервер. Мы используем статический IP для примера:

ListenAddress 192.168.2.134

Хотя версия 2 протокола ssh установлена в Debian по умолчанию, но, конечно, стоит удостовериться в этом еще раз.

LoginGraceTime <временной промежуток процесса регистрации>: позволенный для регистрации промежуток времени составляет как стандарт абсурдные 600 секунд. Так как 10 минут явно избыточны, чтобы ввести имя пользователя и пароль, мы установим  несколько более благоразумный промежуток времени:

LoginGraceTime 45

Теперь имеется 45 секунд для входа, и хакер не имеет 10 минут на каждую попытку взломать пароль.

PermitRootLogin <yes>: почему здесь Debian выдал разрешение на вход в систему как root, не объяснимо. Мы исправляем на 'no':

PermitRootLogin no
StrictModes yes

MaxAuthTries <- количество позволенных попыток регистрации>: Вы не должны устанавливать больше чем 3 или 4:

MaxAuthTries 2

Следующие установки должны быть добавлены, так как они отсутствуют по умолчанию:

AllowUsers: имена пользователей, которым позволен доступ через ssh, разделенные символом пробела

AllowUsers <xxx>: только зарегистрированные пользователи могут использовать доступ, и только с пользовательскими правами. С adduser можно добавить пользователя специально для использования ssh:

AllowUsers werauchimmer

PermitEmptyPasswords <xxx>: дает Вашему пользователю прекрасный длинный пароль, который за миллионы лет нельзя было бы подобрать. Пользователь с доступом ssh должен быть единственным. Если он уже зарегистрирован, то может с su стать root:

PermitEmptyPasswords no

PasswordAuthentication <xxx>: конечно, должено иметь значение 'yes'. В случае, когда не используют KeyLogin.

PasswordAuthentication yes [если никаких keys не используют]

В конце концов:

/etc/init.d/ssh restart

Теперь имеется достаточно надежная конфигурация ssh. И напомним еще раз, что лучше, прежде всего добавить пользователя специально для использования ssh.

Примечание: Если ssh подключение отказывается и получают сообщение об ошибке, ищут в $HOME скрытый каталог .ssh. Потом удаляют файл known_hosts и пробуют новое установление связи. Эта проблема встречается преимущественно, если выделили IP-адрес динамично (DCHP).

Программы X-Windows используемые через SSH

Сама программа исполняется на удаленном компьютере, графическая пользовательская оболочка (GUI) отображается на локальном компьютере.

Ввод данных:
* sidux
* IP локального компьютера: 192.168.1.10/24 (только выдача изображения X11 программы)
* IP локального компьютера: 192.168.1.2/24 (здесь выполняется X11 программa)

Конфигурация:

На удаленном компьютере дополняем файл /etc/hosts.allow следующими строками:

ssh sshd : 192.168.1.0/24 : ALLOW 
# e.g. позволяет (allow) всем адресам по локальной сети 
# (local area network, локальная сеть) доступ через ssh server

Откройте консоль и используйте следующую команду. (Это создаёт ssh соединение с X-Forwarding) :

ssh -X 192.168.1.2
(вводят собственный пароль ssh, если запрашивается, или пароль к ключу ssh, если на Remote компьютер послан собственный публичный ключ и там добавились файлы authorized_keys для указанного пользователя)

Вызов программы X в терминале:, например 'iceweasel':

ssh -X 192.168.1.2
(вводят (по запросу) собственный пароль ssh или пароль к ключу ssh, 
если на Remote компьютер послан собственный публичный ключ и там 
добавились файлы authorized_keys для указанного пользователя)
iceweasel oder oocalc oder oowriter oder kspread

Remote доступ с персонального компьютера в Windows при использовании ssh и X-Forwarding:

* Загружают и прожигают Cygwin XLiveCD
* Вставляют CD в дисковод и ждут автоматический старт (autorun)
* Далее (continue) нажимают до тех пор пока не откроется окно терминала.
* Вводят следующую команду:

ssh -X username@xxx.xxx.xxx.xxx

Помните: xxx.xxx.xxx.xxx является IP Linux Remote компьютера или его URL (например dyndns.org аккаунта), и пользовательское имя является, конечно, пользовательским именем существующего пользовательского аккаунта на Remote компьютере. После успешного начала сеанса можно, например, запустить 'kmail' для получения электронных сообщений.

Важно: hosts.allow должен содержать запись, которая также позволяет доступ компьютерам из других сетей. Если используется маршрутизатор или NAT-брандмауэр, то  порт 22 должен быть переданным дальше (portforwarding) на Linux-PC.

SSH в konqueror

Konqueror включает поддержку ssh в виде протоколов using sftp:// and uses the ssh protocol.

1) Откройте новое окно в Konqueror
2) Введите в строке адреса: sftp://username@ssh-server.com

При­мер 1: Во всплывающем окне будет запрошен пароль ssh,  введите пароль и нажмите ОК:

sftp://sidux1@remote_hostname_or_ip

Пример 2: непосредственное  соединение,  без запроса пароля

sftp://username:password@remote_hostname_or_ip

Применение в локальной сети

sftp://username@10.x.x.x or 198.x.x.x.x
(Примечание: введите пароль во всплывающем окне и нажимайте ОК)

SSH соединение таким образом оказывается установленным. В соответствующем окне Konqueror можно работать с файлами на сервере ssh также, как с локальными.

Примечание: Если Вы изменили используемый по умолчанию ssh порт с 22 на другой, то необходимо указать какой порт sftp/fish должен использовать:

sftp://user@ip:port

'user@ip:port' - стандартная команда для приложений как sftp, smb, fish

Использование SSHFS

SSHFS - это простой, быстрый и надежный метод использующий  FUSE, для подсоединения удаленной файловой системы. Со стороны сервера необходим только работающий ssh-daemon.

На стороне клиента Вы вероятно должны установить sshfs. Установка fuse и groups не необходима на sidux eros, поскольку это установлено по умолчанию.

Со стороны клиента сперва инсталлируется sshfs:

apt-get update && apt-get install sshfs

Подсоединение удаленной файловой системы очень просто:

sshfs username@remote_hostname:directory local_mount_point

Причем username подразумевает имя пользователя на удаленном Host.

Если не указывается никакой определенный каталог, будет открыт каталог Home удаленного пользователя. Пожалуйста, обратите внимание: двоеточие : является непременно нужным, даже если никакой каталог не указывается!

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

Отсоединение:

fusermount -u local_mount_point

При регулярном использовании sshfs рекомендуется внести запись в /etc/fstab вида:

username@remote_hostname:/remote_directory /local_mount_point fuse.sshfs user,allow_other,uid=1000,gid=1000,noauto 0 0

Это делает возможным каждому пользователю группы fuse подсоединить файловую система известной командой:

mount /путь/к/mount/точка

Отсоединение можно произвести следующей командой:

umount /путь/кmount/точка

А этой командой проверяется, -  членство в группе fuse:

cat /etc/group | grep fuse

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

fuse:x:117: <имя пользователя>

Если имя пользователей (username) не указано, используют,. как root, команду adduser:

adduser <имя пользователя> fuse

Внимание: "id" будет только после повторного регистрирования в группе "fuse".

Теперь имя пользователя должно быть указано, и следующие команды становятся выполнимы:

mount local_mount_point

и

umount local_mount_point
Content last revised 17/05/2008 1245 UTC