ssh配置
SSH由两部分组成:SSH服务端和SSH客户端。SSH的配置⽂件在/etc/ssh/⽬录下,其中服务端的配置⽂件是sshd_config,客户端的配置⽂件是ssh_config。
通过⼝令验证⽅式登录
vi/etc/ssh/sshd_config
Port22//默认使⽤22端⼝,也可以⾃⾏修改为其他端⼝,但登录时要打上端⼝号#ListenAddress//指定提供ssh服务的IP,这⾥注释掉。PermitRootLogin//禁⽌以root远程登录
PasswordAuthenticationyes//启⽤⼝令验证⽅式
PermitEmptyPassword//禁⽌使⽤空密码登录
LoginGraceTime1m//重复验证时间为1分钟
MaxAuthTimes3//最⼤重试验证次数
保存修改好的配置,退出。
3.重启sshd服务service sshd restart
通过密钥对验证⽅式登录
ssh-keygen -t rsa//⽣成密钥⽂件
ssh-copy-id -i .ssh/id_rsa.pub 发送密钥
修改sshd_config配置⽂件:#vim/etc/ssh/sshd_config
PasswordAuthentication no//禁⽤⼝令验证⽅式,不能把原有的PasswordAuthentication yes注释掉,注释后,就算没有公钥也能通过⼝令登录,这样不安全,⽽且失去了密钥验证的意义。
RSAAuthenticationyes//启⽤RSA验证
PubkeyAuthenticationyes//启⽤公钥验证
AuthorizedKeysFile.ssh/authorized_keys//启⽤公钥⽂件位置,后⾯的路径是设置公钥存放⽂件的位置
查看SSH客户端版本 ssh -v
ssh name@remoteserver或者ssh remoteserver -l name说明:以上两种⽅式都可以远程登录到远程主机,server代表远程主机,name为登录远程主机的⽤户名
ssh name@remoteserver -p 2222 或者ssh remoteserver -l name -p 2222说明:p 参数指定端⼝号,通常在路由⾥做端⼝映射时,我们不会把22端⼝直接映射出去,⽽是转换成其他端⼝号,这时就需要使⽤-p端⼝号命令格式。
ssh -t remoteserver1 ssh remoteserver2通过远程主机1跳到远程主机2
ssh -l name remoteserver ‘command’说明:连接到远程主机,并执⾏远程主机的command命令。例如:查看远程主机的内存使⽤情况。$ ssh -l root 192.168.1.10 svmon -G
进⾏端⼝映射:假如公司内⽹有台web服务器,但是只对内不对外,这样,外⽹就⽆法访问,可以⽤ssh进⾏端⼝映射来实现外⽹访问内⽹的web服务器。假如web服务器名为webserver,webserver可以⽤ssh访问到远端主机remoteserver,登录到webserver,然后⽤下⾯命令进⾏映射
命令格式:ssh -R 3000:localhost:80 remoteserver执⾏完成后,
在remoteserver机器上,执⾏netstat -an | grep 3000,查看有没有开通3000端⼝。
并执⾏以下命令观察是否可以打开webserver上的⽹页
但是,这只限于本机访问web服务器,即只能remoteserver机器访问webserver。因为3000端⼝绑定的是remoteserver机器的127.0.0.1端⼝。可以编辑remoteserver机器上的/etc/ssh/sshd_config⽂件并添加如下内容:
10、设置登录时提⽰信息⾸先编辑⼀个⽂件,如,⽂件内容⾃⾏定义。然后打开/etc/ssh/sshd_config⽂件并查下⾯这样的⾏:#Banner /some/path
ssh⾃定义安全设置
1)为了ssh登陆的时候加⼀层保护,可以修改默认端⼝。
修改ssh服务配置⽂件/etc/ssh/sshd_configport 2222
这样远程连接时加端⼝号#ssh 192.168.1.10 -p 2222
2)ssh使⽤时加-l后⾯跟⽤户名,表⽰登陆到对⽅的这个⽤户下⾯。
#ssh -l any192.168.1.20-p 2222等同于#ssh any@192.168.1.20-p 2222
3)限制ssh登陆的来源ip,⽩名单设置(hosts.allow优先级最⾼)⼀是通过iptables设置ssh端⼝的⽩名单,如下设置只允许192.168.1.0/24⽹段的客户机可以远程连接本机
#vi /etc/sysconfig/iptables
-A INPUT -s 192.168.1.0/24 -p tcp -m state --state NEW -m tcp --dport 2222 -j ACCEPT⼆是通过/etc/hosts.allow⾥⾯进⾏限制(如
下),/etc/hosts.deny⽂件不要任何内容编辑,保持默认!
#vim/etc/hosts.allow
sshd:192.168.1.*,192.168.9.*,124.65.197.154,61.148.60.42,103.10.86.7:allow
sshd:all:deny
4)仅允许特定的⽤户通过SSH登陆如不允许root⽤户登录;只允许⼏个指定的⽤户登录(⽐如any、admin、rootec⽤户)
禁⽌某些指定的⽤户登录(⽐如guest,kali⽤户)但是要注意:设置的这⼏个⽤户必须同时存在于本机和对⽅机器上修改ssh服务配置⽂件
/etc/ssh/sshd_configPermitRootLogin no //将yes修改为no
AllowUsers any adminrootec//这个参数AllowUsers如果不存在,需要⼿动创建,⽤户之间空格隔开DenyUsers guestkali//这个参数DenyUsers如果不存在,需要⼿动创建,⽤户之间空格隔开也可以设置仅允许某个组的成员通过ssh访问主机。AllowGroups wheel ops 5)取消密码验证,只⽤密钥对验证修改ssh服务配置⽂件/etc/ssh/sshd_config
PasswordAuthentication no
PubkeyAuthentication yes
6)给账号设置强壮的密码:将密码保存到⽂本进⾏复制和粘帖就可以了
# rpm -ivh expect-5.43.0-5.1.i386.rpm| yum -y install expect
# mkpasswd -l 128 -d 8 -C 15 -s 10 //将下⾯密码保存到⽂本进⾏复制、粘贴即可lVj.jg&sKrf0cvtgmydqo7qPotxzxen9mefy?
ej!kcaX2gQrcu2ndftkeamllznx>iHikTagiVz0$cMtqOcIypkpd,vvD*kJhs3q@sb:CiCqgtqdqvse5lssfmranbtx
参数说明:-l 密码长度-d 多少个数字-C ⼤写字母个数-s 特殊符号的个数
7)只允许通过指定的⽹络接⼝来访问SSH服务,(如果本服务器有多个IP的时候)仍然是修改/etc/ssh/sshd_config,如下:ListenAddress 192.168.1.10//默认监听的是0.0.0.0这样,就只允许远程机器通过ssh连接本机的192.168.1.10内⽹ip来进⾏登陆了。
8)禁⽌空密码登录如果本机系统有些账号没有设置密码,⽽ssh配置⽂件⾥⼜没做限制,那么远程通过这个空密码账号就可以登陆了,这是及其不安全的!
所以⼀定要禁⽌空密码登陆。修改/etc/ssh/sshd_config,如下:
PermitEmptyPasswords no //这⼀项,默认就是禁⽤空密码登陆。
对SSH服务进⾏安全检查
root⽤户需要使⽤普通⽤户远程登录后su进⾏系统管理。
使⽤命令“cat /etc/ssh/sshd_config”查看配置⽂件
(1)检查是否允许root直接登录检查“PermitRootLogin ”的值是否为no
(2)检查SSH使⽤的协议版本检查“Protocol”的值
(3)检查允许密码错误次数(默认6次),超过后断开连接检查“MaxAuthTries”的值
加固⽅法:使⽤命令“vi /etc/ssh/sshd_config”编辑配置⽂件
(1)不允许root直接登录设置“PermitRootLogin ”的值为no
(2)修改SSH使⽤的协议版本设置“Protocol”的版本为2
(3)修改允许密码错误次数(默认6次)设置“MaxAuthTries”的值为3ssh命令指定端口
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论