威尼斯人棋牌:加固Linux系统的三种方法总结

2、不要使用第一版协议;

HostbasedAuthentication

这个指令与RhostsRSAAuthentication类似,但是仅可以用于SSH-2。推荐使用默认值"no"。  
推荐使用默认值"no"禁止这种不安全的认证方式。

Port 3714

X11UseLocalhost

sshd(8) 是否应当将X11转发服务器绑定到本地loopback地址。默认值是"yes"。           
sshd 默认将转发服务器绑定到本地loopback地址并将 DISPLAY 环境变量的主机名部分设为"localhost"。           
这可以防止远程主机连接到 proxy display 。不过某些老旧的X11客户端不能在此配置下正常工作。           
为了兼容这些老旧的X11客户端,你可以设为"no"。

Linux命令行历史加固

Port

指定 sshd(8) 守护进程监听的端口号,默认为 22 。可以使用多条指令监听多个端口。            默认将在本机的所有网络接口上监听,但是可以通过ListenAddress指定只在某个特定的接口上监听。

您可能感兴趣的文章:

AddressFamily

指定 sshd(8) 应当使用哪种地址族。取值范围是:"any"(默认)、"inet"(仅IPv4)、"inet6"(仅IPv6)。

# echo 'root' >> /etc/cron.allow
# echo 'ALL' >> /etc/cron.deny

HostKey

主机私钥文件的位置。如果权限不对,sshd(8) 可能会拒绝启动。           
SSH-1默认是/etc/ssh/ssh_host_key。           
SSH-2默认是/etc/ssh/ssh_host_rsa_key/etc/ssh/ssh_host_dsa_key。           
一台主机可以拥有多个不同的私钥。"rsa1"仅用于SSH-1,"dsa"和"rsa"仅用于SSH-2。

4、设定空闲会话超时时长;

重启SSH服务

service sshd restart

名称    sshd*_*config- OpenSSH SSH
服务器守护进程配置文件

大纲   /etc/ssh/sshd*_*config

描述  
        sshd(8) 默认从/etc/ssh/sshd_config文件(或通过-f命令行选项指定的文件)读取配置信息。   
        配置文件是由"指令 值"对组成的,每行一个。空行和以'#'开头的行都将被忽略。   
        如果值中含有空白符或者其他特殊符号,那么可以通过在两边加上双引号(")进行界定。   
        [注意]值是大小写敏感的,但指令是大小写无关的。   

当前所有可以使用的配置指令如下:

11、限制ssh访问频度和并发在线;

PermitUserEnvironment

指定是否允许 sshd(8) 处理~/.ssh/environment以及~/.ssh/authorized_keys中的environment=选项。           
默认值是"no"。如果设为"yes"可能会导致用户有机会使用某些机制(比如 LD_PRELOAD)绕过访问控制,造成安全漏洞

vim /etc/profile.d/system_monitor.sh
# 添加下面代码
export TMOUT=600
readonly TMOUT
#history
USER_IP=`who -u am i 2>/dev/null | awk '{print $NF}' | sed -e 's/[()]//g'`
HISTDIR=/usr/share/.history
if [ -z $USER_IP ]; then
USER_IP=`hostname`
fi
if [ ! -d $HISTDIR ]; then
mkdir -p $HISTDIR
chmod 777 $HISTDIR
fi
if [ ! -d $HISTDIR/${LOGNAME} ]; then
mkdir -p $HISTDIR/${LOGNAME}
chmod 300 $HISTDIR/${LOGNAME}
fi
export HISTSIZE=4000
DT=`date  %Y%m%d_%H%M%S`
export HISTFILE="$HISTDIR/${LOGNAME}/${USER_IP}.history.$DT"
export HISTTIMEFORMAT="[%Y.%m.%d %H:%M:%S]"
chmod 600 $HISTFILE/${LOGNAME}/*.history* 2>/dev/null

XAuthLocation

指定 xauth(1) 程序的绝对路径。默认值是/usr/X11R6/bin/xauth

# 使用mkpasswd命令生成密码;
mkpasswd -l 15 -s 3 -d 3 -C 3

IgnoreRhosts

是否在RhostsRSAAuthenticationHostbasedAuthentication过程中忽略.rhosts威尼斯人棋牌,.shosts文件。          
不过/etc/hosts.equiv/etc/shosts.equiv仍将被使用。推荐设为默认值"yes"。

Protocol 2

IgnoreUserKnownHosts

是否在RhostsRSAAuthenticationHostbasedAuthentication过程中忽略用户的~/.ssh/known_hosts文件。          
默认值是"no"。为了提高安全性,可以设为"yes"。

ssh服务禁止root登录

sshd_config配置详解

source /etc/profile.d/system_monitor.sh

文件

/etc/ssh/sshd_config           
sshd(8) 的主配置文件。这个文件的宿主应当是root,权限最大可以是"644"。

效果:每个帐号每次的登录IP以及运行命令都会记录在该目录如下:

AcceptEnv

指定客户端发送的哪些环境变量将会被传递到会话环境中。
[注意]只有SSH-2协议支持环境变量的传递。           
细节可以参考 ssh_config(5) 中的SendEnv配置指令。           
指令的值是空格分隔的变量名列表(其中可以使用'*'和'?'作为通配符)。也可以使用多个   AcceptEnv达到同样的目的。           
需要注意的是,有些环境变量可能会被用于绕过禁止用户使用的环境变量。由于这个原因,该指令应当小心使用。默认是不传递任何环境变量。

10、禁止管理员直接登录;

ChallengeResponseAuthentication

是否允许质疑-应答(challenge-response)认证。默认值是"yes"。           
所有 login.conf(5) 中允许的认证方式都被支持。

通过配置系统环境变量实现记录用户在命令行执行的命令。

ForceCommand

强制执行这里指定的命令而忽略客户端提供的任何命令。这个命令将使用用户的登录shell执行(shell -c)。           
这可以应用于 shell 、命令、子系统的完成,通常用于Match块中。           
这个命令最初是在客户端通过 SSH_ORIGINAL_COMMAND 环境变量来支持的。

[root@localhost ~]# ll /usr/share/.history/root/
total 8
-rw-------. 1 root root 236 Apr 23 21:49 1.180.212.137.history.20170423_214918
-rw-------. 1 root root 564 Apr 23 21:54 1.180.212.137.history.20170423_214957

DenyGroups

这个指令后面跟着一串用空格分隔的组名列表(其中可以使用"*"和"?"通配符)。默认允许所有组登录。           
如果使用了这个指令,那么这些组中的成员将被拒绝登录。           
这里的"组"是指"主组"(primary group),也就是/etc/passwd文件中指定的组。           
这里只允许使用组的名字而不允许使用GID。相关的 allow/deny 指令按照下列顺序处理:DenyUsers,AllowUsers,DenyGroups,AllowGroups

6、仅监听于指定的IP地址;

GSSAPIAuthentication

是否允许使用基于 GSSAPI 的用户认证。默认值为"no"。仅用于SSH-2。

1、不要使用默认端口,修改方式;

PermitRootLogin

是否允许 root 登录。可用值如下:          
"yes"(默认) 表示允许。"no"表示禁止。          
"without-password"表示禁止使用密码认证登录。           
"forced-commands-only"表示只有在指定了command选项的情况下才允许使用公钥认证登录。   同时其它认证方法全部被禁止。这个值常用于做远程备份之类的事情。

7、基于口令认证时,要使用强密码策略;

X11Forwarding

是否允许进行 X11 转发。默认值是"no",设为"yes"表示允许。           
如果允许X11转发并且sshd(8)代理的显示区被配置为在含有通配符的地址(X11UseLocalhost)上监听。           
那么将可能有额外的信息被泄漏。由于使用X11转发的可能带来的风险,此指令默认值为"no"。           
需要注意的是,禁止X11转发并不能禁止用户转发X11通信,因为用户可以安装他们自己的转发器。           
如果启用了UseLogin,那么X11转发将被自动禁止。

crond调用黑白名单

LoginGraceTime

限制用户必须在指定的时限内认证成功,0 表示无限制。默认值是 120 秒。

AllowUsers user1 user2 #仅允许user1和user2用户登录

TCPKeepAlive

指定系统是否向客户端发送 TCP keepalive 消息。默认值是"yes"。          
这种消息可以检测到死连接、连接不当关闭、客户端崩溃等异常。           
可以设为"no"关闭这个特性。

PermitEmptyPasswords no:是否允许空密码登录;

HostbasedUsesNameFromPacketOnly

在开启HostbasedAuthentication的情况下,指定服务器在使用~/.shosts ~/.rhosts /etc/hosts.equiv进行远程主机名匹配时,是否进行反向域名查询。           
"yes"表示 sshd(8) 信任客户端提供的主机名而不进行反向查询。默认值是"no"。

PermitRootLogin yes # 是否允许管理员直接登录;安全起见,建议为no;

Protocol

指定 sshd(8) 支持的SSH协议的版本号。          
'1'和'2'表示仅仅支持SSH-1和SSH-2协议。"2,1"表示同时支持SSH-1和SSH-2协议。

重新加载环境变量

UseLogin

是否在交互式会话的登录过程中使用 login(1) 。默认值是"no"。           
如果开启此指令,那么X11Forwarding将会被禁止,因为 login(1) 不知道如何处理 xauth(1) cookies 。           
需要注意的是,login(1) 是禁止用于远程执行命令的。           
如果指定了UsePrivilegeSeparation,那么它将在认证完成后被禁用。

9、禁止使用空密码,默认启用;

ClientAliveCountMax

sshd(8) 在未收到任何客户端回应前最多允许发送多少个"alive"消息。默认值是 3 。           
到达这个上限后,sshd(8) 将强制断开连接、关闭会话。           
需要注意的是,"alive"消息与TCPKeepAlive有很大差异。           
"alive"消息是通过加密连接发送的,因此不会被欺骗;而TCPKeepAlive却是可以被欺骗的。
如果ClientAliveInterval被设为 15 并且将ClientAliveCountMax保持为默认值, 那么无应答的客户端大约会在45秒后被强制断开。这个指令仅可以用于SSH-2协议。

ListenAddress

AuthorizedKeysFile

存放该用户可以用来登录的 RSA/DSA 公钥。           
该指令中可以使用下列根据连接时的实际情况进行展开的符号:           
%% 表示'%'、%h 表示用户的主目录、%u 表示该用户的用户名。           
经过扩展之后的值必须要么是绝对路径,要么是相对于用户主目录的相对路径。           
默认值是".ssh/authorized_keys"。

5、利用防火墙设置ssh的远程访问策略;仅允许来自于指定网络中的主机访问;

LogLevel

指定 sshd(8) 的日志等级(详细程度)。可用值如下:
     QUIET, FATAL, ERROR, INFO(默认), VERBOSE, DEBUG, DEBUG1, DEBUG2, DEBUG3         DEBUG 与 DEBUG1 等价;DEBUG2 和 DEBUG3 则分别指定了更详细、更罗嗦的日志输出。
比 DEBUG 更详细的日志可能会泄漏用户的敏感信息,因此反对使用。

8、最后使用基于密钥进行认证

PasswordAuthentication

是否允许使用基于密码的认证。默认为"yes"。

3、限制可登录的用户;

RhostsRSAAuthentication

是否使用强可信主机认证(通过检查远程主机名和关联的用户名进行认证)。仅用于SSH-1。       
这是通过在RSA认证成功后再检查 ~/.rhosts 或 /etc/hosts.equiv 进行认证的。           
出于安全考虑,建议使用默认值"no"。

加固Linux系统的三种方法总结

StrictModes

指定是否要求 sshd(8) 在接受连接请求前对用户主目录和相关的配置文件进行宿主和权限检查。           
强烈建议使用默认值"yes"来预防可能出现的低级错误。

Cron有它自己内建的特性,这特性允许定义哪些人能哪些人不能跑任务。 这是通过两个文件/etc/cron.allow 和 /etc/cron.deny控制的。要锁定在用Cron的用户时可以简单的将其名字写到corn.deny里,而要允许用户跑cron时将其名字加到cron.allow即可。如果你要禁止所有用户,仅允许root用户。如下:

ServerKeyBits

指定临时服务器密钥的长度。仅用于SSH-1。默认值是 768(位)。最小值是 512 。

12、做好日志分析;

PermitTunnel

是否允许 tun(4) 设备转发。可用值如下:
"yes", "point-to-point"(layer 3), "ethernet"(layer 2), "no"(默认)。           
"yes"同时蕴含着"point-to-point"和"ethernet"。

MACs

指定允许在SSH-2中使用哪些消息摘要算法来进行数据校验。           
可以使用逗号分隔的列表来指定允许使用多个算法。默认值(包含所有可以使用的算法)是:       hmac-md5,hmac-sha1,umac-64@openssh.com,hmac-ripemd160,hmac-sha1-96,hmac-md5-96

本文由威尼斯人棋牌发布于计算机教程,转载请注明出处:威尼斯人棋牌:加固Linux系统的三种方法总结