Jak nahradit FTP pomocí SFTP a zamknout uživatele (Petr krčmář - root.cz)

Založil polo, 08. 03. 2010, 17:49:06

Předchozí téma - Další téma

polo

Ahoj, mel bych dotaz ohledne konfigurace SSH serveru aby sel nastavit pro urciteho uzivatele tak se nebude moct prihlasovat do command line ale jen jako sftp uzivatel. Postupoval jsem podle navodu na root.cz ale nejede mi to. Byl bych rad za spravne nasmerovani. Vypisy konfig souboru jsou zde:
/etc/passwd
ftp:x:1001:1001:ftp,,,:/home/ftp:/bin/false

/etc/ssh/sshd_config
# Package generated configuration file
# See the sshd(8) manpage for details

# What ports, IPs and protocols we listen for
Port 5432
# Use these options to restrict which interfaces/protocols sshd will bind to
#ListenAddress ::
#ListenAddress 0.0.0.0
Protocol 2
# HostKeys for protocol version 2
HostKey /etc/ssh/ssh_host_rsa_key
HostKey /etc/ssh/ssh_host_dsa_key
#Privilege Separation is turned on for security
UsePrivilegeSeparation yes

# Lifetime and size of ephemeral version 1 server key
KeyRegenerationInterval 3600
ServerKeyBits 768

# Logging
SyslogFacility AUTH
LogLevel INFO

# Authentication:
LoginGraceTime 120
PermitRootLogin no
DenyUsers

StrictModes yes

RSAAuthentication no
PubkeyAuthentication no
AuthorizedKeysFile %h/.ssh/authorized_keys2

# Don't read the user's ~/.rhosts and ~/.shosts files
IgnoreRhosts yes
# For this to work you will also need host keys in /etc/ssh_known_hosts
RhostsRSAAuthentication no
# similar for protocol version 2
HostbasedAuthentication no
# Uncomment if you don't trust ~/.ssh/known_hosts for RhostsRSAAuthentication
#IgnoreUserKnownHosts yes

# To enable empty passwords, change to yes (NOT RECOMMENDED)
PermitEmptyPasswords no

# Change to yes to enable challenge-response passwords (beware issues with
# some PAM modules and threads)
ChallengeResponseAuthentication no

# Change to no to disable tunnelled clear text passwords
PasswordAuthentication yes

# Kerberos options
#KerberosAuthentication no
#KerberosGetAFSToken no
#KerberosOrLocalPasswd yes
#KerberosTicketCleanup yes

# GSSAPI options
#GSSAPIAuthentication no
#GSSAPICleanupCredentials yes

X11Forwarding yes
X11DisplayOffset 10
PrintMotd no
PrintLastLog yes
TCPKeepAlive yes
#UseLogin no

#MaxStartups 10:30:60
#Banner /etc/issue.net

# Allow client to pass locale environment variables
AcceptEnv LANG LC_*

Subsystem sftp /usr/lib/openssh/sftp-server

UsePAM yes

Match group ftp
ChrootDirectory     /%h
ForceCommand        internal-sftp
X11Forwarding       no

Dulezity je konec konfiguraku - provedl jsme tam jen male zmeny. Kdyz se chci pripojit jako ftp uzivatel napise to nasledujici odpoved:

~$ sftp -oPort=5432 ftp@localhost
Connecting to localhost...
ftp@localhost's password:
Read from remote host localhost: Connection reset by peer
Couldn't read packet: Connection reset by peer


ssh prihlaseni vypada takto:

ssh -p 5432 ftp@localhost
ftp@localhost's password:
Linux Lenny 2.6.30-bpo.1-686 #1 SMP Mon Aug 17 14:57:26 UTC 2009 i686

The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
Connection to localhost closed.




Petr Krčmář

Šacuju to na problém s právy, který je zmíněn v článku. Má na ten home adresář skutečně práva jen root a nikdo jiný do něj nemůže zapisovat? Je to kvůli bezpečnosti a než jsem na to přišel, taky mi to nefungovalo.

polo

Ten adresar patri uzivateli ftp. Chci aby mu patri a to pro to ze tento uzivatel se bude pripojovat na server a potrebuju aby tam mohl aj zapisovat. Jak jinak toho mam docilit? ACL? Ted jsme nasatvil jako vlastnika roota a stejne to nejede:(
Jeste bych se chtel zeptat - je ten navod na rootu stejny jaky jste prezentoval na LinuxAlt?

Petr Krčmář

Ne, jednoduše to nejde. Je tam striktně řečeno, že adresář musí vlastnit root a nikdo jiný do něj nesmí zapisovat. V článku to zmiňuji. Je to proto, aby uživatel nemohl utéct z chrootu. Pokud by mohl do adresáře zapisovat, má šanci uniknout. Proto je to tam natvrdo vynuceno. Samozřejmě můžeš v tom adresáři vytvořit podadresáře a těm dát práva libovolná. V nich pak bude uživatel reálně pracovat.

polo

Tak to vypada ze problem zustane nevyresen. Nakonec i kdyz to vlastnil root tak se uzivatel mohl pripojit pres ssh. Zkusil jsem to jeste na VM centos 5.2 ale restart daemona skoncil nasledujici hlaskou:

http://img23.imageshack.us/img23/497/centoss.png

Petr Krčmář

Zajímaly by mě ty tři řádky (120, 121 a 122) z konfiguračního souboru, u kterých to nadává. Že se mohl uživatel přihlásit přes SSH? To je přeci záměr. Ale jestli myslíš že mohl do terminálu (Bash), tak to je samozřejmě špatně a musela tam být chyba v konfiguraci.

polo

No ohledne tech radku - nadava to na to co jsme dopsal do sshd_config. Myslim tim ty radky ktere jsme opsal z root.cz. Kdyz jsem do ale dal do OpenSSH v Debianu tak to chybu nehlasilo.

Petr Krčmář


polo


Petr Krčmář

Citace od: polo kdy 13. 03. 2010, 10:37:06
OpenSSH-4.3p2-26.el5.

Ehm, jak je opět v článku napsáno, možnost automatického chrootu je v OpenSSH od verze 4.8. Přesně proto takové věci do článků píšu, aby se čtenář nemusel potýkat se zbytečnými a záhadnými problémy.

polo

Omlouvam se, v zapalu konfigurace jsem si nevsimnul:) Pac toho mam do skoly moc tak to dal nebudeme resit ale v budoucnu se k tomu urco vratim pac mi to prijde dost uzitecne.