ssh黑白名单如何配置
A. 如何在linux下配置ssh和sftp使用不同的端口号
1、两个deamon
要实现ssh和sftp分离,分别监听不同的端口,可以通过创建两个‘/usr/sbin/sshd’后台程序,一个监听22端口(ssh),一个监听20022端口(sftp),为了区分ssh和sftp服务的后台程序,这里将ssh服务的后台程序保持为/usr/sbin/sshd,而将sftp服务的后台程序改为/usr/sbin/sftpd。/usr/sbin/sftpd是/usr/sbin/sshd的一个链接,其内容完全相同(ln
-sf /usr/sbin/sshd /usr/sbin/sftpd)。
2、两个service
SLES12使用systemd管理系统服务,ssh服务对应/usr/lib/systemd/system/sshd.service文件,实现sftp服务时可以将/usr/lib/systemd/system/sshd.service
复制到
/etc/systemd/system/sftpd.service,然后修改sftpd.service文件内容。(使用修改好的sftpd.service文件即可)
3、其他文件
系统的ssh服务是通过安装openssh实现的,可以通过rpm -ql openssh查看该rpm包含哪些文件。总结实现ssh和sftp分离的相关的文件有:
ssh服务 sftp服务
/usr/lib/systemd/system/sshd.service /etc/systemd/system/sftpd.service
(通过修改/usr/lib/systemd/system/sshd.service文件得到)
/etc/pam.d/sshd /etc/pam.d/sftpd (通过复制 /etc/pam.d/sshd文件得到)
/etc/ssh/sshd_config /etc/ssh/sftpd_config (通过复制/etc/ssh/sshd_config文件得到)
/usr/sbin/rcsshd /usr/sbin/rcsftpd (ln -sf /usr/sbin/service /usr/sbin/rcsftpd)
/usr/sbin/sshd /usr/sbin/sftpd (ln -sf /usr/sbin/sshd /usr/sbin/sftpd)
/etc/sysconfig/ssh /etc/sysconfig/sftp (通过修改/etc/sysconfig/ssh文件得到)
至此,我们已经实现了两个服务。
但是,ssh服务和sftp服务并没有真正的分离,此时已然可以通过22号端口使用ssh服务和sftp服务,而新开的20022端口也可以使用ssh服务(ssh
-p 20022 username@serverip )和sftp服务(sftp -o Port=20022
username@serverip )。
4、关闭22号端口下的sftp服务
编辑/usr/sbin/sshd的配置文件/etc/ssh/sshd_config文件,将Subsystem参数注释掉,然后重启sshd
同时也可以设置可访问22号端口的用户白名单:
编辑/etc/ssh/sshd_config文件,设置AllowGroups参数(假设设置为AllowGroups sshonly),限制仅AllowGroups组内的用户可通过22号端口ssh登录系统(对于需要ssh登录系统的用户可通过usermod -A sshonly <username>将其加入到AllowGroups组内)
5、“关闭20022号端口下的ssh服务”
sftp作为一个子服务,它的开启依赖于ssh服务,因此不能从本质上关闭ssh服务而只开启sftp服务。
可以用以下方式来规避:
/usr/sbin/sftpd的配置文件/etc/ssh/sftpd_config中包含Subsystem参数配置(推荐使用Subsystem sftp internal-sftp -l INFO -f AUTH)
/etc/ssh/sftpd_config中包含AllowGroups参数(假设为AllowGroups sftponly),限制仅AllowGroups组内的用户可以访问20022端口
将AllowGroups组内的用户的shell改为/bin/false(usermod -s /bin/false <username>),使AllowGroups组内的用户仅能sftp登录系统(如果一个用户即需要ssh,又需要sftp,则不能将其shell改为/bin/false)
6、用户白名单配置
配置之后,需将系统内需要ssh访问系统的用户加入到sshonly组内,需将系统内需要sftp访问系统的用户加入到sftponly组,同时需要ssh和sftp的用户则sshonly和sftponly组都要加入。
7、 重启ssh服务和sftp服务,并设置开机启动
service sshd restart
service sftpd restart
B. SSH登陆方式,基本配置
SSH只是一种协议,存在多种实现,既有商业实现,也有开源实现。本文主要介绍OpenSSH免费开源实现在Ubuntu中的应用,如果要在Windows中使用SSH,需要使用另一个软件PuTTY。
SSH之所以能够保证安全,原因在于它采用了非对称加密技术(RSA)加密了所有传输的数据。
传统的网络服务程序,如FTP、Pop和Telnet其本质上都是不安全的;因为它们在网络上用明文传送数据、用户帐号和用户口令,很容易受到中间人(man-in-the-middle)攻击方式的攻击。就是存在另一个人或者一台机器冒充真正的服务器接收用户传给服务器的数据,然后再冒充用户把数据传给真正的服务器。
但并不是说SSH就是绝对安全的,因为它本身提供两种级别的验证方法:
口令登录非常简单,只需要一条命令
还要说明的是,SSH服务的默认端口是22,也就是说,如果你不设置端口的话登录请求会自动送到远程主机的22端口。我们可以使用 -p 选项来修改端口号,比如:
首先使用ssh-keygen命令生成密钥对
然后根据提示一步步的按enter键即可,执行结束以后会在 /home/当前用户 目录下生成一个 .ssh 文件夹,其中包含私钥文件 id_rsa 和公钥文件 id_rsa.pub 。
(其中有一个提示是要求设置私钥口令passphrase,不设置则为空,如果为了免密登陆可以不设置。)
使用 ssh--id 命令将公钥复制到远程主机
ssh--id会将公钥写到远程主机的 /root/ .ssh/authorized_key 文件中
使用ssh--id命令登陆哪个用户就会存放在哪个用户的home目录下。
也可以手动复制到authorized_key文件当中。
第一次登录时,会提示用户
意思是无法验证用户的公钥,是否正确,询问用户是否要继续。
ECDSA key给出了远程主机公钥的SHA256编码过的值,一般在远程主机的网站会告示公钥的值,
用户可以将这个公钥和网站上的公钥进行比对,正确则表明是远程主机。
输入yes之后,系统会将公钥加入到已知的主机列表,如下所示,已知列表中的主机,下次不会再询问。
SSH的配置文件通常在 /etc/ssh/sshd_config
配置文件中有非常详尽的注释,一般在工作中主要用到的几个配置
C. 虚拟机的Linux安装的SSH,怎么配置吖,求详细的方法,详细
(SSH是一个用来替代TELNET、FTP以及R命令的工具包,主要是想解决口令在网上明文传输的问题。为了系统安全和用户自身的权益,推广SSH是必要的。SSH有两个版本,我们现在介绍的是版本2。) 安装SSH 具体步骤如下: 获得SSH软件包。 ( ftp://ftp.pku.e.cn :/pub/unix/ssh-2.3.0.tar.gz ) 成为超级用户(root). # gzip ?cd ssh-2.3.0.tar.gz |tar xvf ? # cd ssh-2.3.0 # ./configure 注意,如果你希望用tcp_wrappers来控制SSH,那么在configure时需要加上选项“--with-libwrap=/path/to/libwrap/”, 用来告诉SSH关于libwrap.a 和tcpd.h的位置。 # make # make install 和SSH有关的程序都放置在/usr/local/bin下,包括ssh,sftp,sshd2, ssh-keygen等。 二、配置 SSH的配置文件在/etc/ssh2下,其中包括sshd2的主机公钥和私钥:hostkey和hostkey.pub。这两个文件通常是在安装SSH时自动生成的。你可以通过下面的命令重新来生成它们: # rm /etc/ssh2/hostkey* # ssh-keygen2 ?P /etc/ssh2/hostkey 而ssh2_config 文件一般情形下无需修改。 三、启动sshd2 每个要使用SSH的系统都必须在后台运行sshd2。用手工启动: # /usr/local/sbin/sshd2& 可以在“/etc/rc2.d/SArrayArraylocal”中加入该命令,这样系统每次启动时会自动启动sshd2。 四、用tcp_wrappers控制SSH 安装SSH的站点可以用tcp_wrappers来限制哪些IP地址可以通过ssh来访问自己。比如,在/etc/hosts.allow中加入 sshd,sshd2: 10.0.0.1 那么只有10.0.0.1可以通过ssh来访问该主机。 以上都是系统管理员完成的工作。下面我们说说普通用户如何使用SSH。 五、基本应用 每个用户在使用SSH之前,都要完成以下步骤: 在本地主机(比如,local.pku.e.cn)上生成自己的ssh公钥和私钥。命令如下: local# ssh-keygen Generating 1024-bit dsa key pair 1 oOo.oOo.o Key generated. 1024-bit dsa, teng@ns, Fri Oct 20 2000 17:27:05 Passphrase :************ /*在此输入你的口令,以后访问这台主机时要用。 Again :************ /* Private key saved to /home1/teng/.ssh2/id_dsa_1024_a Public key saved to /home1/teng/.ssh2/id_dsa_1024_a.pub 生成的私钥和公钥(id_dsa_1024_a和id_dsa_1024_a.pub)存放在你家目录的~/.ssh2目录下。和用户相关的SSH配置文件都在~/.ssh2下。私钥由用户保存在本地主机上,而公钥需传送到远地主机的你自己的帐号的~/.ssh2下,如果你要用ssh2访问本地主机的话。 在~/.ssh2下创建“identification”文件用来说明进行身份认证的私钥。命令如下: local:~/.ssh2# echo "IdKey id_dsa_1024_a" > identification 3.同样地,在远地主机(比如,remote.pku.e.cn)上完成上面步骤。 4.将本地(local.pku.e.cn)下你自己(这里是“teng”)的公钥(id_dsa_1024_a.pub)拷贝到远地主机(remote.pku.e.cn)上你自己家目录下的.ssh2目录下,可命名为“local.pub”,一般用ftp上传即可。 在远地主机上,你自己家目录的.ssh2目录下,创建“authorization”文件,其中指定用来进行身份认证的公钥文件。命令如下: remote:~/.ssh2# echo “Key local.pub” > authorization 现在你可以从本地用ssh2登录到远地系统了。命令如下: local# ssh remote.pku.e.cn Passphrase for key "/home1/teng/.ssh2/id_dsa_1024_a" with comment "1024-bit dsa, teng@ns, Fri Oct 20 2000 17:27:05":*********** 这时会要你输入你的ssh口令(Passphrase)。验证通过后,即登录到remote主机上。 ################################################################################ 1、环境: 因为我们选用的SSH服务器是 http://www.ssh.com 的SSH Secure Shell for unix类产品,所以我们主要介绍一下此类的Ssh服务器的安装过程。(SSH有两个版本,我们现在介绍的是版本2;Openssh就不介绍了,大家有兴趣的话可以参考一下网上文章) 2、编译安装 我们前面介绍过,现在的Ssh server for unix 类的最新版本是ssh-3.2.Array-1,我建议大家用官方提供的TAR包,当然,如果你不熟悉编译过程,用RPM等安装方式也是可以的。如果用RPM安装,请先下载ssh-3.2.Array-1.i386.rpm , 大家可以到以下地址下载: http://ftp.ssh.com/priv/secureshell/32Arraywks+srv-lt4Arrayldrk/linux/ssh-3.2.Array-1.i386.rpm 安装时请用管理员权限 # rpm ?ivh ssh-3.2.Array-1.i386.rpm 如果是升级安装那参数就用 ?Uvh 而3.2.Array-1的TAR包大家可以到 http://downloads.planetmirror.com/pub/ssh/ssh-3.2.Array.1.tar.gz 下载。安装时也使用管理员权限: # tar xzvf ssh-3.2.Array.1.tar.gz # cd ssh-3.2.Array.1 # ./configure (这里我们要说明一下,原来有些文档写如果你希望用tcp_wrappers来控制SSH,那么在configure时需要加上选项“--with-libwrap=/path/to/libwrap/”, 用来告诉SSH关于libwrap.a 和tcpd.h的位置,但3.2.0以上的SSH已经不需要这么麻烦了,它们已经内置了控制访问权限的功能。) # make ; make install ; make clean 这样就结束了安装。 3、简单配置Ssh server 无论你是用RPM或TAR包安装的ssh server,它的配置文件都在/etc/ssh2/sshd2_config,安装完后一般不用配置它,但如果你的22端口在安装ssh server之前已经被其他程序占用,那么你需要简单的配置一下这个文件,执行 vi /etc/ssh2/sshd2_config,找到第27行,Port 22 ,把22改成其他的端口就可以了。 4、启动Ssh server Ssh server 的默认启动文件是/usr/local/sbin/sshd2,而安装程序自动做了一个连接到这个文件的名字为sshd的文件,我们只要在/usr/local/sbin/目录中执行 ./sshd & 就可以简单的启用Ssh server,然后我们执行 # netstat ?na 会看见22端口已经被监听了(你的可能是其他端口,具体看你在sshd2_config文件中的设置了。)但我们不想每次都要手动启动Ssh server,那么我们可以修改一下/etc/rc.d/rc.local文件,在这个文件的最后加入以下内容: #start ssh /usr/local/sbin/sshd & 其中第一行为注释内容,第二行为启动SSH服务器并作为后台守护进程运行。 这样就好了,系统重起时可以自动启动SSH服务,但是启动后你如果在服务器端插上 显示器 ,会在最后该登陆的时候看到一行字,意思就是Ssh server 服务启动了,我比较挑剔,不想看到这个提示,而且我想把Ssh服务放到LINUX服务启动过程中,这样比较美观一点。那么我们就不能修改/etc/rc.d/rc.local文件,我们要进入/etc/init.d/中建立一个SHELL文件,名字就叫sshd 内容如下: #!/bin/bash cd /usr/local/sbin ./sshd & 然后给这个文件加上可执行权限 # chmod +x sshd 然后进入/etc/rc3.d,做一个软链接文件 # cd /etc/rc3.d # ln -s ../init.d/sshd S13sshd 这样就达到了我的要求,好了,Ssh server的安装就介绍到这里吧,安装是很简单的,希望大家编译安装成功。
D. H3C交换机SSH配置方法
H3C交换机SSH配置方法
SSH为建立在应用层和传输层基础上的安全协议。那么用h3c交换机怎么配置ssh呢?下面为大家介绍最简单的配置方法,欢迎阅读!
使用SSH+密码认证(基本SSH配置方法)
注:在用户使用SSH登录交换机时,交换机对所要登录的用户使用密码对其进行身份验证
生成RSA和DSA密钥对
[H3C]public-key local create rsa
[H3C]public-key local create dsa
设置用户接口上的认证模式为AAA,并让用户接口支持SSH协议
[H3C]user-interface vty 0 4
[H3C-ui-vty0-4]authentication-mode scheme
[H3C-ui-vty0-4]protocol inbound ssh
创建用户luwenju-juzi,设置认证密码为luwenju-!@# 登录协议为SSH,能访问的命令级别为3
[H3C]local-user luwenju-juzi
[H3C-luser-luwenju-juzi]password cipher luwenju-!@#
[H3C-luser-luwenju-juzi]service-type ssh level 3
指定用户luwenju-juzi的'认证方式为password
[H3C]ssh user luwenju-juzi authentication-type password
一个基本的SSH配置就结束了,配置完成后即可使用SSH登录工具进行连接交换机
使用SSH+密钥、密码认证(高级SSH配置方法)
注:客户端在使用SSH工具登录交换机时,交换机同时使用密钥和密码对所要登录的用户实行身份验证
生成RSA和DSA密钥对
[H3C]public-key local create rsa
[H3C]public-key local create dsa
设置用户接口上的认证模式为AAA认证,并在接口上开启SSH协议,并设置用户能访问的命令级别为3
[H3C]user-interface vty 0 4
[H3C-ui-vty0-4]authentication-mode scheme
[H3C-ui-vty0-4]protocol inbound ssh
[H3C-ui-vty0-4]user privilege level 3
创建用户,并指定认证方式为公钥认证,用户名为luwenju-juzi,密码为luwenju-!@#
[H3C]local-user luwenju-juzi
[H3C-luser-luwenju-juzi]password cipher luwenju-!@#
[H3C-luser-luwenju-juzi]service-type ssh level 3
[H3C]ssh user luwenju-juzi authentication-type password-publickey
客户端生成公钥和私钥
用puttygen.exe生成公私钥对,然后放到某个文件夹下,在此,我们生成的公钥叫luwenjukey私钥为luwenju.ppk,然后我们把公钥文件luwenjukey上传到FTP服务器,然后登录交换机,将luwenjukey下载到交换机
ftp 202.106.0.20
[ftp]get luwenjukey
为用户生成公钥,在交换机上把文件luwenjukey中导入客户端的公钥,公钥名为luwenju-juzikey 注:luwenju-juzikey是为用户生成的公钥
[H3C]public-key peer luwenju-juzikey import sshkey luwenjukey
为用户luwenju-juzi指定公钥luwenju-juzikey
[H3C]ssh user luwenju-juzi assign publickey luwenju-juzikey
然后打开SSH登录工具,导入私钥luwenju.ppk,然后输入交换机的IP地址登录即可
;