Първо обновяваме репозиторите.
# apt-get update # apt-get upgrade
Следва инсталиране на SSH сървиса, за да може отдалечено да се управлява хоста
# apt-get install openssh-server
И да проверим дали е стартирал сървиса
# netstat -tulpn |grep :22 tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 415/sshd tcp6 0 0 :::22 :::* LISTEN 415/sshd
Доста често аз сменям порт 22, нещо като вид защита, за целта:
# vi /etc/ssh/sshd_config # What ports, IPs and protocols we listen for # Port 22 ### Заменя се с: Port 2018
Така сървиса вече ще слуша на порт 2018 След всяка промяна следва и рестарт на сървиса
# /etc/init.d/ssh restart [ ok ] Restarting ssh (via systemctl): ssh.service.
И отново тест на сървиса
# netstat -tulpn |grep :22 tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 415/sshd tcp6 0 0 :::22 :::* LISTEN 415/sshd
Услугата работи. Обаче има един досаден проблем. Когато се влиза през SSH мъчно се свързваме с машината. Това е защото все още няма инсталиран и настроен DNS сървър. За целта ще направим една хитрост. Ще укажем във файла /etc/hosts името на хоста и реалното IP отговарящо за този хост.
# vi /etc/hosts 127.0.0.1 localhost 127.0.1.1 home 109.160.78.103 home.tlan.net home
Така home.tlan.net ще отговаря на IP 109.160.78.103 Да проверим:
# hostname -f home.tlan.net
Един пример: В бъдеще се наложи определен потребител да има достъп до определена директория през SSH връзка, примерно да си трансвферира файлове. Обаче да няма достъп до другите директории, както и да не ги вижда. За целта: - създаваме група sftp_group - създаваме потребител за тест с име: test - казваме на потребителя test да е член на групата sftp_group - конфигурираме ssh демона, като определяме правата на test Да започнем със създаване на групата:
# adduser test Adding user `test' ... Adding new group `test' (1006) ... Adding new user `test' (1004) with group `test' ... Creating home directory `/home/test' ... Copying files from `/etc/skel' ... Enter new UNIX password: test12 Retype new UNIX password: test12 passwd: password updated successfully Changing the user information for daka Enter the new value, or press ENTER for the default Full Name []: Room Number []: Work Phone []: Home Phone []: Other []: Is the information correct? [Y/n] y # chown root:sftp_group /home/test/
Създадохме потребител test с домашна директория /home/test/ и с парола
# tail /etc/passwd |grep test test:x:1004:1006::/home/test:
Потребителя е с номер 1004 и е член на група 1006. Да видим коя е тази група.
# tail /etc/group | grep 1002 test:x:1006:
Правилно групата се казва test Сега да направим потребителя test да е член и на групата sftp_group, за начало създаваме групата sftp_group:
# groupadd sftp_group # echo "/sbin/nologin" >> /etc/shells
И добавяме потребителя в групата:
# usermod -G sftp_group -s /usr/sbin/nologin -d /var/www/exmaple.com test
Казахме потребителя test да е член и на групата sftp_group, да не може да се логва на сървъра, само да ползва sftp връзка и домашната му папка да е: /var/www/exmaple.com. Разбира се папката трябва да съществува, в противен случай трябва да се създаде. Да видим какво стана:
# tail /etc/group |grep test test:x:1004: sftp_group:x:1007:test
Потребителя test е член на групите test, sftp Да конфигурирам ssh демона:
# vi /etc/ssh/sshd_config # Търсим реда Subsystem sftp /usr/lib/openssh/sftp-server # Забраняваме го # Subsystem sftp /usr/lib/openssh/sftp-server # Под забранения ред поставяме следното: Subsystem sftp internal-sftp Match User test # Match Group sftp_group # Вместо User test може да се ползва група, като Group sftp_group ChrootDirectory /home/%h # Може да се опише пътя на директорията вместо %h X11Forwarding no AllowTcpForwarding no ForceCommand internal-sftp Match User tachko ChrootDirectory /home/%h # Може да се опише пътя на директорията вместо %h X11Forwarding no AllowTcpForwarding no ForceCommand internal-sftp
Рестартираме ssh демона за да влязат промените в сила:
# /etc/init.d/ssh restart
И да пробваме:
# sftp test@localhost test@localhost's password: test12 Connected to localhost. sftp>
Всичко е наред, излизаме от sftp с Ctrl+c Следва инсталиране на услугата DNS, както и настройването и.