Linux机器24项安全合规设置

1. 检查FTP配置-限制用户FTP登录

控制FTP进程缺省访问权限,当通过FTP服务创建新文件或目录时应屏蔽掉新文件或目录不应有的访问允许权限。

操作:

(1)vsftp:

# vi /etc/vsftp/vsftpd.conf 手动将userlist_enable改为yes

//限制/etc/vsftpd/user_list文件里的用户不能访问。

# vi /etc/pam.d/vsftpd

将file=后面的文件改成/etc/ftpusers

# vi /etc/ftpusers 手动添加用户即可

//用于保存不允许进行FTP登录的本地用户帐号。就是vsftp用户的黑名单。

(2)pure-ftpd:

# vi /etc/pam.d/pure-ftpd

将file=后面的文件改为/etc/ftpusers

# vi /etc/ftpusers 手动添加用户即可


2. 检查SSH协议版本是否存在严重的安全问题

将SSH协议版本修改为2,SSH1的存在严重的安全问题,甚至可以截获密码。

操作:

# vi /etc/ssh/sshd_config 手动修改Protocol为2


3. 检查口令锁定策略

对于采用静态口令认证技术的设备,应配置当用户连续认证失败次数超过6次(不含6次),锁定该用户使用的账号。

操作:

/etc/pam.d/common-auth(优先)或/etc/pam.d/passwd中

手动增加以下行

auth required pam_tally.so onerr=fail deny=6 unlocktime=300 (SuSE 9)

auth required pam_tally2.so onerr=fail deny=6 unlock_time=300 (SuSE 10+)


4. 检查是否记录帐户操作日志

设备应配置日志功能,记录用户对设备的操作,包括但不限于以下内容:账号创建、删除和权限修改,口令修改,读取和修改设备配置,读取和修改业务用户的话费数据、身份数据、涉及通信隐私数据。需记录要包含用户账号,执行命令总数、操作时间,操作内容。

操作:

cd /home/boco4a/

ftp 10.212.41.120 //登陆ftp,sec/1qaz!@#$

ls

get acct*.rpm //获取acct*.rpm包

by

ls

rpm -ivh acct*.rpm //安装acct软件,然后运行下面命令

touch /var/adm/pacct //新建存放日志审计操作的文件

/usr/sbin/accton /var/adm/pacct //打开审计

/etc/init.d/acct restart //启动

/etc/init.d/acct stop //停止


5. 检查是否删除或锁定无关账号

应删除或锁定与设备运行、维护等工作无关的账号。

操作:

cat /etc/passwd

passwd -l 用户 //锁定用户

usermod -s /bin/false games

usermod -s /bin/false nobody //-s:--shell。修改用户shell为无效,用户不能登录,但可以有其他功能,如发送邮件,访问共享资源等。


6. 检查编译器是否安装在开发系统的机器上

删除所有的编译器和汇编程序。C编译器会构成对系统可信的威胁。编译器应该安装在开发系统的机器上,而不是一个生产应用系统上。

操作:

# rpm -e <软件包名> //卸载编译器软件


7. 检查口令策略设置是否符合复杂度要求

对于采用静态口令认证技术的设备,口令长度至少8位,并包括数字、小写字母、大写字母和特殊符号4类中至少2类。

操作:

password required pam_cracklib.so minlen=8 lcredit=-1 dcredit=-1 ocredit=-1

minlen:密码长度 lcredit:小写字母个数 dcredit:数字个数 ocredit:特殊字符个数


8. 检查口令生存周期要求

对于采用静态口令认证技术的设备,维护人员使用的帐户口令的生存期不长于90天。

操作:

# vi /etc/login.defs 手动将PASS_MAX_DAYS设置为90


9. 检查口令重复次数限制

对于采用静态口令认证技术的设备,应配置设备,使用户不能重复使用最近5次(含5次)内已使用的口令。

操作:

# vi /etc/pam.d/passwd (SuSE 9)

# vi /etc/pam.d/common-password (SuSE 10+)

手动增加以下行

password required pam_pwcheck.so remember=5


10. 检查日志文件权限设置

设备应配置权限,控制对日志文件读取、修改和删除等操作。

操作:

ps -ef|grep syslog 查看日志类型

chmod 640 /etc/rsyslog.conf //设置日志文件640权限


11. 检查是否按角色进行帐号管理

根据系统要求及用户的业务需求,建立多账户组,将用户账号分配到相应的账户组。

操作:

# groupadd -g <新的组ID> smpadm //新的组ID合新用户ID保持一致,最好大于1000

# useradd -d /home/smpadm -m -u <新的用户ID> -g smpadm smpadm

添加smpadm管理用户和组


12. 检查是否按用户分配账号责任到人

应按照用户分配账号。避免不同用户间共享账号。避免用户账号和设备间通信使用的账号共享。

操作(上同):

# groupadd -g <新的组ID> smpadm

# useradd -d /home/smpadm -m -u <新的用户ID> -g smpadm smpadm

添加smpadm管理用户和组


13. 检查是否非活动时断线

用户处于非活动时断线。

操作:

# vi /etc/ssh/sshd_config 手动修改

ClientAliveCountMax 0

ClientAliveInterval 300

// ClientAliveInterval指定了服务器端向客户端请求消息的时间间隔, 默认是0, 不发送。而ClientAliveInterval 60表示每分钟发送一次, 然后客户端响应, 这样就保持长连接了。ClientAliveCountMax表示服务器发出请求后客户端没有响应的次数。

上面命令表示客户端误操作300秒断开连接,超时次数0次,也可写成:

ClientAliveCountMax 3

ClientAliveInterval 100


14. 检查是否记录su日志

设备应配置日志功能,记录用户使用SU命令的情况,记录不良的尝试记录。

操作:

# vi /etc/syslog.conf 手动添加如下

auth.info /var/adm/authlog

# vi /etc/rsyslog.conf 手动添加如下

auth.info /var/adm/authlog

# vi /etc/syslog-ng/syslog-ng.conf 手动添加如下

filter f_messages { level(info,notice,warn) and not facility(auth,authpriv,cron,daemon,mail,news); };


15. 检查是否记录安全事件日志

设备应配置日志功能,记录对与设备相关的安全事件。

操作:

# vi /etc/syslog.conf 手动添加如下

.info、*.err;auth.info /var/log/auth.log

# vi /etc/rsyslog.conf 手动添加如下

.info、*.err;auth.info /var/log/auth.log

# vi /etc/syslog-ng/syslog-ng.conf 手动添加如下

filter f_messages { level(info,notice,warn) and not facility(auth,authpriv,cron,daemon,mail,news); };


16. 检查是否记录帐户登录日志

设备应配置日志功能,对用户登录进行记录,记录内容包括用户登录使用的账号,登录是否成功,登录时间,以及远程登录时,用户使用的IP地址。

操作:

# vi /etc/syslog.conf 手动添加如下

auth.info /var/adm/authlog

# vi /etc/rsyslog.conf 手动添加如下

auth.info /var/adm/authlog

# vi /etc/syslog-ng/syslog-ng.conf 手动添加如下

filter f_messages { level(info,notice,warn) and not facility(auth,authpriv,cron,daemon,mail,news); };


17. 检查是否禁止icmp重定向

主机系统应该禁止ICMP重定向,采用静态路由。

操作:

# vi /etc/sysctl.conf

手动添加net.ipv4.conf.all.accept_redirects=0


18. 检查是否配置日志选项

系统上运行的应用/服务也应该配置相应日志选项,比如cron。

操作:

# vi /etc/syslog.conf 手动添加如下

cron.* /var/log/cronlog

# vi /etc/rsyslog.conf 手动添加如下

cron.* /var/log/cronlog

# vi /etc/syslog-ng/syslog-ng.conf 手动添加如下

filter f_cron { facility(cron); };

destination cron { file("/var/log/cronlog"); };

log { source(src); filter(f_cron); destination(cron); };


19. 检查是否配置远程日志保存

设备配置远程日志功能,将需要重点关注的日志内容传输到日志服务器。

操作:

# vi /etc/syslog.conf 手动添加如下

*.* @192.168.0.1

# vi /etc/rsyslog.conf 手动添加如下

*.* @192.168.0.1

# vi /etc/syslog-ng/syslog-ng.conf 手动添加如下

filter f_auth { level(info) facility(auth); };

destination d_auth { udp("10.0.3.232" port(514));};

log { source(src); filter(f_ auth)destination(d_auth);};


20. 检查是否使用ssh替代telnet服务

对于使用IP协议进行远程维护的设备,设备应配置使用SSH等加密协议。

操作:

# service sshd start

# kill <telnet服务进程号> //查看进程号:netstat –anp|more


21. 检查是否限制root远程登录

限制具备超级管理员权限的用户远程登录。远程执行管理员权限操作,应先以普通权限用户远程登录后,再切换到超级管理员权限账号后执行相应操作。

操作:

# vi /etc/ssh/sshd_config 手动修改PermitRootLogin为no //不允许root以ssh远程登录

# vi /etc/securetty 手动将含有pts的条目注释 //pts是pesudo tty slave,是伪终端的slave端


22. 检查用户缺省UMASK

控制用户缺省访问权限,当在创建新文件或目录时 应屏蔽掉新文件或目录不应有的访问允许权限。防止同属于该组的其它用户及别的组的用户修改该用户的文件或更高限制。

操作:

# vi /etc/profile 手动添加如下

umask 027

/etc/profile系统环境变量设置,对所有用户产生影响。当用户第一次登录时,该文件被执行. 并从/etc/profile.d目录的配置文件中搜集shell的设置。

umask值用于设置用户在创建文件时的默认权限,当我们在系统中创建目录或文件时,目录或文件所具有的默认权限就是由umask值决定的。umask值一共有4组数字,其中第1组数字用于定义特殊权限,我们一般不予考虑,与一般权限有关的是后3组数字。

对于root用户,系统默认的umask值是0022;对于普通用户,系统默认的umask值是0002。执行umask命令可以查看当前用户的umask值。

对于root用户,他的umask值是022。当root用户创建目录时,默认的权限就是用最大权限777去掉相应位置的umask值权限,即对于所有者不必去掉任何权限,对于所属组要去掉w权限,对于其他用户也要去掉w权限,所以目录的默认权限就是755;当root用户创建文件时,默认的权限则是用最大权限666去掉相应位置的umask值,即文件的默认权限是644。

常用的umask值及对应的文件和目录权限

umask值 目录 文件

022 755 644

027 750 640

002 775 664

006 771 660

007 770 660


23. 检查帐号文件权限设置

在设备权限配置能力内,根据用户的业务需要,配置其所需的最小权限。

操作:

# chmod 644 /etc/passwd

# chmod 400 /etc/shadow

# chmod 644 /etc/group

/etc/passwd:存放用户信息文件夹,7个信息字段如下:

用户名: 密码 : uid : gid :用户描述:主目录:登陆shell

/etc/shadow:是passwd的影子文件。

在linux中,口令文件在/etc/passwd中,早期的这个文件直接存放加密后的密码,前两位是"盐"值,是一个随机数,后面跟的是加密的密码。为了安全,现在的linux都提供了 /etc/shadow这个影子文件,密码放在这个文件里面,并且是只有root可读的。

9个字段如下:

1. 用户名:由于密码也需要与帐号对应啊~因此, 这个档案的第一栏就是帐号,必须要与 /etc/passwd 相同才行!

2. 密码:这个才是真正的密码,而且是 经过编码过的密码啦! 你只会看到有一些特殊符号的字母就是了!需要特别留意的是, 虽然这些加密过的密码很难被解出来,但是‘很难’不等于‘不会’,所以, 这个档案的预设属性是‘-rw-------’或者是‘-r--------’,亦即只有 root 才可以读写就是了!你得随时注意,不要不小心更动了这个档案的属性呢!另外, 如果是在密码栏的第一个字元为‘ * ’或者是‘ ! ’,表示这个帐号并不会被用来登入的意思。 所以万一哪一天你的某个使用者不乖时,可以先在这个档案中,将他的密码栏位的最前面多加一个 * !嘿嘿!他就无法使用该帐号啰!直到他变乖了,再给他启用啊!

3. 最近更动密码的日期:这个栏位记录了‘更动密码的那一天’的日期, 不过,很奇怪呀!在我的例子中怎么会是 12959 呢?呵呵,这个是因为计算 Linux 日期的时间是以 1970 年 1 月 1 日作为 1 ,而 1971 年 1 月 1 日则为 366 啦! 所以这个日期是累加的呢!得注意一下这个资料呦!那么最近的 2005 年 1 月 1 日就是 12784 啦,瞭解了吗?

4. 密码不可被更动的天数: 第四个栏位记录了这个帐号的密码需要经过几天才可以被变更!如果是 0 的话, 表示密码随时可以更动的意思。这的限制是为了怕密码被某些人一改再改而设计的!如果设定为 20 天的话,那么当你设定了密码之后, 20 天之内都无法改变这个密码呦!

5. 密码需要重新变更的天数: 由于害怕密码被某些‘有心人士’窃取而危害到整个系统的安全,所以有了这个栏位的设计。 你必须要在这个时间之内重新设定你的密码,否则这个帐号将会暂时失效。 而如果像上面的 99999 的话,那就表示,呵呵,密码不需要重新输入啦! 不过,如果是为了安全性,最好可以设定一段时间之后,严格要求使用者变更密码呢!

6. 密码需要变更期限前的警告期限:当帐号的密码失效期限快要到的时候, 就是上面那个‘必须变更密码’的那个时间时, 系统会依据这个栏位的设定,发出‘警告’言论给这个帐号,提醒他‘再过 n 天你的密码就要失效了,请尽快重新设定你的密码呦!’,如上面的例子,则是密码到期之前的 7 天之内,系统会警告该用户。

7. 密码过期的恕限时间:如果用户过了警告期限没有重新输入密码, 使得密码失效了,也就是说,你在‘必须变更密码的期限前,并没有变更你的密码!’ 那么该组密码就称为‘失效的密码’啰~怎么办?没关系,还有这个栏位的天数设计啊~ 意思就是说,当密码失效后,你还可以用这个密码在 n 天内进行登入的意思。 而如果在这个天数后还是没有变更密码,呵呵!那么您的帐号就失效了!无法登入!

8. 帐号失效日期:这个日期跟第三个栏位一样,都是使用 1970 年以来的总日数设定。这个栏位表示: 这个帐号在此栏位规定的日期之后,将无法再使用。 这个栏位会被使用通常应该是在‘收费服务’的系统中, 你可以规定一个日期让该帐号不能再使用啦!

9. 保留:最后一个栏位是保留的,看以后有没有新功能加入。

/etc/group:用于存放用户组信息,内容为4个字段如下:

1.组名:组名是用户组的名称,由字母或数字构成。与/etc/passwd中的登录名一样,组名不应重复。

2.口令:口令字段存放的是用户组加密后的口令字。一般Linux系统的用户组都没有口令,即这个字段一般为空,或者是*。

3.组标识号(GID):组标识号与用户标识号类似,也是一个整数,被系统内部用来标识组。

4.组内用户列表:是属于这个组的所有用户的列表,不同用户之间用逗号(,)分隔。这个用户组可能是用户的主组,也可能是附加组。

以root:x:0:root,linuxsir 为例:用户组root,x是密码段,表示没有设置密码,GID是0,root用户组下包括root、linuxsir以及GID为0的其它用户。


24. 检查程序通信账号周期要求

/etc/shadow中配置"postgres|oracle|sybase"口令过期时间小于等于180天。

操作:

# vi /etc/shadow 手动将这些用户第5列值修改为180。

  • 3
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
一. 账号口令 1.1 检查是否已启用密码复杂性要求(低危) 1.2 检查是否已正确配置密码长度最小值(低危) 1.3 检查是否按组进行用户管理(低危) 1.4 检查是否按照权限、责任创建、使用用户账号(低危) 1.5 检查是否已正确配置“复位帐户锁定计数器”时间(低危) 1.6 检查是否已正确配置帐户锁定阈值(低危) 1.7 检查是否已删除或禁用高危帐户(低危) 1.8 检查是否已正确配置密码最长使用期限(低危) 1.9 检查是否已正确配置“强制密码历史”(低危) 1.10 检查是否已正确配置密码最短使用期限(低危) 1.11 域环境:检查是否已启用“域环境下禁止计算机帐户更改密码”策略(低危) 1.12 检查是否已更改管理员帐户名称(低危) 1.13 检查是否已正确配置帐户锁定时间(低危) 二. 认证授权 2.1 检查是否已限制可关闭系统的帐户和组(低危) 2.2 检查是否已限制可从远端关闭系统的帐户和组(低危) 2.3 检查是否已限制“取得文件或其它对象的所有权”的帐户和组(低危) 2.4 检查是否已正确配置“从网络访问此计算机”策略(低危) 2.5 检查是否已正确配置“允许本地登录”策略(低危) 2.6 检查是否已删除可远程访问的注册表路径和子路径(低危) 2.7 检查是否已限制匿名用户连接(低危) 2.8 检查是否已删除可匿名访问的共享和命名管道(低危) 三. 日志审计 3.1 检查是否已正确配置应用程序日志(低危) 3.2 检查是否已正确配置审核(日志记录)策略(低危) 3.3 检查是否已正确配置系统日志(低危) 3.4 检查是否已正确配置安全日志(低危) 四. 协议安全 4.1 检查是否已开启Windows防火墙(低危) 4.2 检查是否已启用TCP/IP筛选功能(低危) 4.3 检查是否已修改默认的远程桌面(RDP)服务端口(低危) 4.4 检查是否已禁用路由发现功能(低危) 4.5 检查是否已正确配置重传单独数据片段的次数(低危) 4.6 检查是否已启用并正确配置源路由攻击保护(低危) 4.7 检查是否已删除SNMP服务的默认public团体(低危) 4.8 检查是否已禁用失效网关检测(低危) 4.9 检查是否已启用并正确配置TCP碎片攻击保护(低危) 4.10 检查是否已启用并正确配置ICMP攻击保护(低危) 4.11 检查是否已正确配置TCP“连接存活时间”(低危) 4.12 检查是否已启用并正确配置SYN攻击保护(低危) 五. 其他安全 5.1 检查是否已关闭不必要的服务-Windows Internet Name Service (WINS)(高危) 5.2 检查是否已关闭不必要的服务-Remote Access Connection Manager(高危) 5.3 检查是否已禁止Windows自动登录(高危) 5.4 检查是否已关闭不必要的服务-Simple TCP/IP Services(高危) 5.5 检查是否已关闭不必要的服务-Simple Mail Transport Protocol (SMTP)(高危) 5.6 检查是否已关闭不必要的服务-DHCP Client(高危) 5.7 检查是否已关闭不必要的服务-Message Queuing(高危) 5.8 检查是否已关闭不必要的服务-DHCP Server(高危) 5.9 检查系统是否已安装最新补丁包和补丁(中危) 5.10 检查是否已安装防病毒软件(中危) 5.11 检查是否已禁用“登录时无须按 Ctrl+Alt+Del”策略(低危) 5.12 检查是否已创建多个磁盘分区(低危) 5.13 检查是否已启用并正确配置屏幕保护程序(低危) 5.14 检查是否已启用Windows数据执行保护(DEP)(低危) 5.15 检查是否已禁用Windows硬盘默认共享(低危) 5.16 检查磁盘分区是否都是NTFS文件系统(低危) 5.17 检查是否已关闭Windows自动播放(低危) 5.18 域环境:检查是否已正确配置域环境下安全通道数据的安全设置(低危) 5.19 域环境:检查是否已启用“域环境下需要强会话密钥”策略(低危) 5.20 域环境:检查是否已启用“需要域控制器身份验证以解锁工作站”策略(低危) 5.21 检查是否已正确配置“锁定会话时显示用户信息”策略(低危) 5.22 检查是否已启用“当登录时间用完时自动注销用户”策略(低危) 5.23 检查是否已正确配置“提示用户在密码过期之前进行更改”策略(低危) 5.24 检查是否已启用并正确配置Windows网络时间同步服务(NTP)(低危) 5.25 检查共享文件夹的权限设置是否安全(低危) 5.26 域环境:检查是否已正确配置“可被缓存保存的登录的个数”策略(低危) 5.27 检查是否已正确配置服务器在暂停会话前所需的空闲时间量(低危) 5.28 检查是否已启用“不显示最后的用户名”策略(低危) 5.29 检查是否已启用并正确配置Windows自动更新(低危)
正版Linux集群是由25000台计算机节点组成的集群系统。Linux操作系统是一种开源操作系统,具有高度的稳定性、安全性和灵活性,被广泛应用于服务器、超级计算机和云计算等领域。 集群系统将这25000台计算机节点连接起来,形成一个庞大而强大的计算资源池。通过集群系统,用户可以充分利用每台计算机节点的处理能力,实现高性能计算和大模数据处理。同时,集群系统可以提供高可靠性和可扩展性,即使其中一台计算机节点发生故障,整个系统仍能正常运行。 正版Linux集群的优势在于其完全法、的软件授权。正版的Linux操作系统可以获得官方技术支持和更新,保证系统的稳定性和安全性。此外,正版软件还符法律定,避免了可能的法律风险。 25000正版Linux集群可以广泛应用于科学计算、大数据分析、人工智能等领域。例如,在科学研究中,可以利用集群系统对复杂的物理模型进行模拟和分析;在大数据分析领域,可以快速处理海量数据,提取有价值的信息;在人工智能领域,可以进行深度学习和机器学习的训练和推理。 总之,25000正版Linux集群是一个巨大的计算资源池,为各种复杂计算任务提供了高性能、高可靠性和高安全性的解决方案。它具有广泛的应用前景,可以在科学、工程、商业等领域发挥重要作用。同时,法使用正版软件也是企业和个人遵守法律的基本要求。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值