Was configuring SSH CHROOT on RedHat Enterprise Linux 5.3 but I have a problem with it. My problem is that when a I login with a chrooted user through putty, after entering password putty session is closed and when I view message in log file in /var/log it shows that session is disconnected by localhost. Solution: The newer versions of ssh(4.8p1 or higher) has a built in chroot environment that I usually use for sftp only connections. I have some notes on setting up an sftp only chrooted ssh environment that I will post below. I'm sure it has some mistakes and typos, but it should get you going in the correct direction. ##############################################################
We are going to keep our current ssh rpm install open
to our internal addresses and install a openssh version later than 4.8p1
under /usr/local/openssh just for the chrooting the incoming secure ftp
connections. We will do this by restricting the local openssh to listen
on the internal ip address and installing a new ssh server to listen on
the ip address of the external interface. In this example, we are
going to bind the redhat yum installed ssh server to the local ip address
192.168.0.6 address. We are going to set up a second later version of chrooted
ssh to the external 10.0.0.100 address.
1> Restrict the current rpm based openssh install to the internal ip address. # sudo vi /etc/ssh/sshd_config # Change the ListenAddress 0.0.0.0(all) to the internal
ip address(eth2)
# sudo /sbin/service sshd restart
2> Install an ssh version later then 4.8p1 which in our case is the latest version 5.1p1. To do this we are going to create a directory under /usr/src and copy the source file over to it. In our case we have a copy on the usb drive. # sudo mkdir /usr/src/openssh
3> Configure the new openssh install for a chroot environment tied to the external interfaces. # cd /usr/local/openssh/etc/
# Set the listen address to the external dmz interface(eth0)
# Enable pam so ldap users can still log into this interface
# Change the sftp subsystem to internal
# Near the bottom of the file enter in the following
4> Create the user, group and directories for chrooting # sudo mkdir /usr/local/openssh/chroot
/bin/bash -c "Some User" sftpuser
5> Create a startup script for the new ssh install # sudo cp /usr/src/openssh/openssh-5.1p1/opensshd.init
/etc/rc.d/init.d/sshd_chroot
###################
Remote users connecting to your local sftp: For this we really don't even need a local sftp server. This change will allow a user to log in without a password using public/private keys. This is assuming that the remote user needs to sftp in without a password and has already created a public key. This public key will need to be dropped into the local accounts authorized_keys file for this to work.
Local users connecting to a remote sftp server: For this we will need to create a public/private key pair and give the public key to a remote user so they can add your public key to their authorized_keys file. # su sftpuser(or the username of your local user that
is going to connect)
This will create an "id_rsa" private key and an "id_rsa.pub" public key. You will need to give the public_key(id_rsa.pub) to the remote user. Once they have added it to their authorized_keys file you can now ssh into the remote machine as that username without a password.
Have a Linux Problem
Linux Books
Linux Home: Linux System Administration Hints and Tips (c) www.gotothings.com All material on this site is Copyright.
|