简介
本文档介绍如何将具有CentOS分发的Linux服务器配置为具有面向身份服务引擎(ISE)的公钥基础设施(PKI)身份验证的安全文件传输协议(SFTP)服务器。
先决条件
要求
Cisco 建议您了解以下主题:
- 一般ISE知识
- ISE存储库配置
- 基本Linux常识
使用的组件
本文档中的信息基于以下软件和硬件版本:
- ISE 2.2
- ISE 2.4
- ISE 2.6
- ISE 2.7
- ISE 3.0
- CentOS Linux版本8.2.2004(核心)
本文档中的信息都是基于特定实验室环境中的设备编写的。本文档中使用的所有设备最初均采用原始(默认)配置。如果您的网络处于活动状态,请确保您了解任何命令的潜在影响。
背景信息
为了对文件传输实施安全性,ISE可以通过SFTP通过PKI证书进行身份验证,以确保访问存储库文件的更安全方式。
配置
1.配置CentOS服务器
1.1以根用户身份创建目录。
mkdir -p /cisco/engineer
1.2.创建用户组。
groupadd tac
1.3.此命令将用户添加到主目录(文件),它指定用户属于组工程师。
useradd -d /cisco/engineer -s /sbin/nologin engineer
usermod -aG tac engineer
注意:命令的/sbin/nologin部分表示用户无法通过安全外壳(SSH)登录。
1.4.继续创建目录以上传文件。
mkdir -p /cisco/engineer/repo
1.4.1设置目录文件的权限。
chown -R engineer:tac /cisco/engineer/repo
find /cisco/engineer/repo -type d -exec chmod 2775 {} \+
find /cisco/engineer/repo -type f -exec chmod 664 {} \+
1.5.创建CentOS服务器在其中执行证书检查的目录和文件。
目录:
mkdir /cisco/engineer/.ssh
chown engineer:engineer /cisco/engineer/.ssh
chmod 700 /cisco/engineer/.ssh
文件:
touch /cisco/engineer/.ssh/authorized_keys
chown engineer:engineer /cisco/engineer/.ssh/authorized_keys
chmod 600 /cisco/engineer/.ssh/authorized_keys
1.6.在sshd_config系统文件中创建登录权限。
要编辑文件,可以使用vim Linux工具和此命令。
vim /etc/ssh/sshd_config
1.6.1在下面添加指定行。
#Subsystem sftp /usr/libexec/openssh/sftp-server
Subsystem sftp internal-sftp
Match Group tac
ChrootDirectory %h
X11Forwarding no
AllowTCPForwarding no
ForceCommand internal-sftp
1.7.运行命令以验证sshd_config系统文件同步。
sshd -t
注意:没有输出表示文件的语法正确。
1.8.继续重新启动SSH服务。
systemctl restart sshd
注意:某些Linux服务器具有selinux实施,要确认此参数,可以使用getenforce命令。作为建议,如果它处于强制模式,请将其更改为允许。
1.9.(可选)编辑semanage.conf文件,将强制设置为允许。
vim /etc/selinux/semanage.conf
添加命令setenforce0。
setenforce0
2.配置ISE存储库
2.1.继续通过ISE图形用户界面(GUI)添加存储库。
导航至“管理”>“系统维护”>“存储库”>“添加”
2.2.输入存储库的正确配置。
注意:如果您需要访问repo目录而不是工程师的根目录,则目标路径必须是/repo/。
3.在ISE服务器上生成密钥对
3.1. ISE GUI
导航至管理>系统维护>存储库>生成密钥对,如图所示。
注意:您必须从ISE GUI和命令行界面(CLI)生成密钥对,才能对存储库进行完全双向访问。
3.1.1.输入密码,这是保护密钥对所必需的。
注意:在导出公钥之前,首先生成密钥对。
3.1.2.继续导出公钥。
导航至“管理”>“系统维护”>“存储库”>“导出公钥”。
选择导出公钥。将生成名为id_rsa.pub的文件(确保保存该文件以备将来参考)。
3.2. ISE CLI
3.2.1.导航至要在其中完成存储库配置的节点的CLI。
注意:从此开始,您需要在您希望允许使用PKI身份验证访问SFTP存储库的每个节点上执行后续步骤。
3.2.2.运行此命令以将Linux服务器的IP添加到host_key系统文件中。
crypto host_key add host <Linux server IP>
3.2.3.生成公共CLI密钥。
crypto key generate rsa passphrase <passphrase>
3.2.4.使用此命令从ISE的CLI导出公钥文件。
crypto key export <name of the file> repository <repository name>
注意:您必须拥有以前可访问的存储库,可以将公钥文件导出到该存储库。
4.一体化
4.1.登录CentOS服务器。
导航至之前在其中配置了authorized_key文件的文件夹。
4.2.编辑授权密钥文件。
运行vim命令以修改文件。
vim /cisco/engineer/.ssh/authorized_keys
4.3.从“生成密钥对”部分复制并粘贴在步骤4和6中生成的内容。
从ISE GUI生成的公钥:
从ISE CLI生成的公钥:
Linux服务器上的Authorized_key文件:
4.4.将密钥粘贴到文件上后,按ESC键,继续运行wq!命令以保存文件。
验证
1.从Linux服务器以root身份执行此命令。
tail -f /var/log/secure
必须显示输出,如图所示。
2.用于ISE验证。
在GUI上导航至Administration > System > Maintenance > Repository。
从“存储库列表”中选择所需的存储库,然后选择验证。
您必须看到一个弹出窗口,该弹出窗口在屏幕右下角显示“服务器响应”。
在CLI中,运行命令show repo sftp_pki以验证密钥。
要进一步调试ISE,请在CLI上执行以下命令:
debug transfer 7
必须显示输出,如图所示:
相关信息
https://www.cisco.com/c/en/us/td/docs/security/ise/2-2/admin_guide/b_ise_admin_guide_22/b_ise_admin_guide_22_chapter_01011.html