$groupadd sftponly
$$useradd user123
$usermod -d /myhome -g sftponly -s /bin/false user123
$mkdir -p /chroots/user123 ; chmod -R 755 /chroots/user123
$mkdir /chroots/user123/myhome ; chown user123:sftponly /chroots/user123/myhome
$passwd user123
Also make sure below is successfully configured :
How to store sftp log messages in custom file on RHEL 6?
--------------------------------
1. Make sure "AUTHPRIV" facility is used in sshd_config file. Sample file looks like :
$ cat /etc/ssh/sshd_config :
-------------
Subsystem sftp internal-sftp -f AUTHPRIV -l VERBOSE
# Example of overriding settings on a per-user basis
#Match User anoncvs
# X11Forwarding no
# AllowTcpForwarding no
# ForceCommand cvs server
Match Group sftponly
ChrootDirectory /chroots/%u
AllowTcpForwarding no
ForceCommand internal-sftp -f AUTHPRIV -l VERBOSE
X11Forwarding no
-------------
2. Use proper additional socket file in /etc/sysconfig/rsyslog like :
vi /etc/sysconfig/rsyslog
SYSLOGD_OPTIONS="-m 0 -a /chroots/dev/log"
3. Following lines should be present in /etc/rsyslog.conf :
Add following lins :
-----------
$InputUnixListenSocketHostname internal-sftp
$AddUnixListenSocket /chroots/dev/log
# Log internal-sftp activity in a separate file
:programname, isequal, "internal-sftp" -/var/log/sftp.log
:programname, isequal, "internal-sftp" ~
:programname, isequal, "sshd" -/var/log/sftp.log
:programname, isequal, "sshd" ~
------------
4. Make sure you have done a hard link to socket file like :
$mkdir -p /chroots/
$ln /chroots/dev/log /chroots/
Note : Replace username in above command.
5. Restart rsyslog and sshd service :
$service rsyslog restart
$service sshd restart
Testing :
Open a terminal and execute following command on it like :
$tailf /var/log/sftp.log
Try to access SFTP account like :
$sftp username@IP
pw: << Enter password You'll see that all sftp logs messages are available in /var/log/sftp.log. Note : Note that all sshd and sftp related messages will be logged in above file. --------------------------- You may get following error : fatal: safely_chroot: stat("/chroots/"): Permission denied Solution : This is appearing due to SELinux issue. Please execute following commands : $chcon -t user_home_t /chroots/user123 $chcon -t user_home_t /chroots/user123/myhome $getsebool -a|grep sftp sftpd_anon_write --> off
sftpd_enable_homedirs --> off
sftpd_full_access --> off
sftpd_write_ssh_home --> off
Enable boolean like :
$setsebool -P sftpd_enable_homedirs 1
That's it.
0 comments:
Post a Comment