SSHD安全性配置与说明

2013-08-13   来源:站长日记       编辑:沧海桑田   类别:服务器    转载到:    发表评论

SSHD安全性配置与说明

SSHD安全性配置与说明

SSHD常规管理和安全配置 安全远程登录服务

SSHD介绍
SSHD是安全远程登录(SSH)的服务端守护进程。启用后方可远程登录,SSH是Telnet(远程登录)的安全版本,通过SSH连接的通道是加密的,而通过Telnet的连接通道是不加密的

SSH是Linux/Unix/基于SSH的网络设备(如交换机 路由器 存储等)最安全的远程管理方式,国际通用

包括IBM HP SUN等大型企业的Unix/Linux均采用OpenSSH来向用户提供远程登录与管理方式 SSH表述了用户到服务器的连接是安全的,也就是说只有获得系统的帐号和密码方可登录到服务器。
否则是不可以登录到服务器的 OpenSSH的官方网站 //www.openssh.com/


SSHD的基本安全性配置
SSHD的安全问题考量 用户a通过SSH登录到服务器,然后通过su切换到root权限,如果用户可以这样操作,说明用户已经获得了root和a的用户名和密,通过Linux的权限管理

Linux的权限管理可以限制即使用户获得了root和a的密码,也不可能通过a登录后,再su到root 这样系统就安全了

SSHD的安全配置主要有
1、Port 更改端口号(默认为22)为一个比较大的值,比如改为:9922;
2、PermitRootLogin no (禁止root登录,重点)
3、root 系统的最高管理员,Telnet、FTP、FTP,等服务,都该禁止root帐号的登入
更安全的做法是限制su指令的权限,设定只有某些帐号才能执行su,入侵者即使破解了其他使用者的密码,也无法使用su指令变更身份,就算掌握了root密码,也无法通过普通帐号切换到root下,极大地提高了安全性

假设已经有wheel用户组 #chgrp wheel /bin/su 将su的所属群组变更为wheel
chmod 750 /bin/su 将su的权限设定为只有拥有者与群组的使用者才能执行与读取
ls -l /bin/su 查看su 的权限 将能su 到 root 的帐号加入 wheel群组 /etc/group 在wheel 添加普通user 禁止非root用户更改sshd的配置文件 #chmod 644 /etc/ssh/sshd_config

SSHD的使用日志记录
结合Linux中的syslog服务,SSHD默认已经进行了登录情况记录,记录保存到/var/log/secure 以及 /var/log/secure.N中 如果SSHD没有启动syslog日志记录,更改配置文件/etc/ssh/sshd_config
默认情况已经进行了日志记录  SyslogFacility AUTHPRIV
查看某用户的操作记录,则通过.bash_history文件查询(此文件位于用户的主目录中,比如用户mysuer,则此文件位于/myuser目录,是一个隐藏文件,可以通过ls –al查看到)
#service syslog status 查询系统的syslog服务是否启动  [redhat已经使用rsyslog替换系统自带的syslog  使用 ps aux|syslog* 可以看到 /sbin/rsyslogd -i /var/run/syslogd.pid -c 5]

 

SSHD的限制IP访问的安全配置
可以设置SSHD只充许指定的IP访问 sshd+xinetd 限制IP或IP列表登录SSH,在Linux中,sshd是不属于xinetd管辖的一项service,但xinetd可以配置一些简单的ACL,所以某些IP可以用ssh登录,某些IP不能通过ssh登陆的话,就可以将sshd配置进入xinetd,方便实现简单的访问控制
1、关闭sshd服务#service sshd stop  (#service sshd status查看服务是否停止)
2、chkconfig sshd off ,将sshd从启动中去掉,因为将来随着xinetd的启动,sshd就会启动
3、在/etc/xinetd.d目录下,创建一个文件ssh,填入以下内容
service ssh {
socket_type = stream
wait = no
user = root
server = /usr/sbin/sshd
port = 22
server_args = -i
disable = no
only_from = 10.12.1.86
}
表示只允许10.12.1.86登录,其他IP不允许 only_from的值可用多种形式,如10.12.1.0表示10.12.1.*这个网段的所有IP。希望有多个确定的IP可以共同使用此服务,则在only_from之后加入多个IP地址即可,用空格隔开,
或者可以写多行only_from,具体看man xinetd.conf 里面的内容和最后的例子

service{}括号中的内容,每一行NAME = 值 的格式,并且每行只能有一个这样的格式,特别注意“=”两边要各有一个空格。
以上配置适用于SSHD采用默认的端口(22)的情况,如果你的SSHD运行在一个特殊定义的端口上(比如:2200),那么这一步应该改成:
#vi /etc/services 在最后加上一行(假设运行在2200端口),其中myssh任意取名,但不得与services中的名称相同
myssh    2200/tcp

在/etc/xinetd.d/目录中新建myssh文件,文件内容参考上面的配置内容,只要把其中的ssh改成myssh,port 的值改成2200即可。
service myssh
{
socket_type  =  stream
wait  =  no
user  =  root
server  =  /usr/sbin/sshd
port  =  2200
server_args  =  -i
disable  =  no
only_from  =  10.12.1.86
}
4、然后/etc/init.d/xinetd restart即可生效
5、xinetd是否把自己的服务启动了呢?使用chkconfig –list,其中xinetd的关联服务一节中找到ssh或是自定义的服务名称(myssh)
6、查SSHD服务是否真的启动?当前是客户登录成功就启动了 也可以能过一些命令进行检查 #netstat –an|grep 2200 查看SSHD的端口是否工作了
注:之所以能在/etc/xinetd.d目录下创建一个文件就让xinetd多管一个service,是因为/etc/xinetd.conf文件的最后一行 includedir /etc/xinetd.d ,这行配置告诉xinetd去include该目录下的所有配置。
禁止后从不允许的机器登录SSH,在日志中将记录(如下,192.168.1.8配置为允许)

17

0
17|0 | 鲜花 VS 砸蛋 | 92阅读 0评论 ssh