"这篇文章主要介绍了如何在CentOS 6系统上将SSH服务与SFTP服务进行分离,并且配置SFTP使用不同的端口,以提高系统的安全性。操作过程涉及到修改配置文件、创建用户、设定目录权限以及启动和链接相关服务。"
在CentOS 6上,由于默认的SSH服务同时提供了SSH登录和SFTP文件传输功能,出于安全考虑,项目需求要求使用SFTP但不使用默认的22端口。为了满足这个需求,我们需要将SSH与SFTP服务分开运行,并设置SFTP使用自定义端口。以下是一步步的操作步骤:
首先,确认当前系统安装的`openssh`版本,因为不同的版本可能会影响到配置方式。在命令行输入`ssh -V`来查看SSH的版本,确保它支持SFTP分离。
接着,创建一个专门用于SFTP的用户和组。这里我们创建了一个名为`aichangsftp`的用户,将其添加到`sftp`组,并且设置其shell为 `/bin/false`,以防止该用户直接登录SSH。使用以下命令创建用户和设置属性:
```bash
groupadd sftp
useradd -g sftp -s /bin/false aichangsftp
passwd aichangsftp
```
设置密码后,为新用户分配一个家目录,并更改其权限。这里我们把`aichangsftp`用户的家目录设为 `/data/sftp/aichangsftp`,并且在 `/data/sftp` 创建相应的目录结构:
```bash
mkdir -p /sftpdata/aichangsftp
usermod -d /sftpdata/aichangsftp aichangsftp
```
接下来,我们要复制并修改SSH的相关配置文件以支持SFTP服务。这包括复制`/etc/rc.d/init.d/sshd`到`/etc/rc.d/init.d/sftpd`,`/etc/pam.d/sshd`到`/etc/pam.d/sftpd`,`/etc/ssh/sshd_config`到`/etc/ssh/sftpd_config`,以及`/etc/sysconfig/sshd`到`/etc/sysconfig/sftp`。这些复制操作是为了保持原有SSH服务不受影响,同时创建独立的SFTP服务配置。
然后,修改新创建的SFTP配置文件,比如在`/etc/ssh/sftpd_config`中指定SFTP监听的端口,例如设置为2222。还需要更新PAM配置文件`/etc/pam.d/sftpd`,以便只允许SFTP操作。
最后,启动SFTP服务,并设置开机启动:
```bash
service rcsftpd start
chkconfig rcsftpd on
```
同时,创建符号链接使得系统可以识别新的SFTP服务:
```bash
ln -sf /usr/sbin/service /usr/sbin/rcsftpd
ln -sf /usr/sbin/sshd /usr/sbin/sftpd
```
最后,确认SFTP服务已启动并监听指定的端口,可以通过`netstat -tulnp | grep sftpd`来检查。
通过以上步骤,我们就成功地在CentOS 6上实现了SSH与SFTP的分离,并且设置了SFTP服务使用非标准端口。这种配置增强了系统的安全性,避免了对22端口的直接攻击,同时也满足了项目对数据传输的要求。