一、项目和任务描述
假设你是某企业的网路安全工程师,对于企业的服务器系统linux安全加固,依照任务要求确保各服务正常运行,并通过综合运用用户安全管理和密码策略、本地安全策略、服务安全配置、日志安全审计、中间件安全配置、防火墙策略等多种安全策略来提高服务器系统的网路安全防御能力。
二、服务器环境说明
Win7用户名:administrator,密码:Aa123456
Kali用户名:kali,密码:kali
三、具体任务
请对服务器Win7、Kali按要求进行相应的设置,提升服务器的安全性。
A-1任务一登陆安全加固(Win7,Kali)
1.密码策略(Win7,Kali)
a.最小密码厚度不多于13个字符;
b.密码必须符合复杂性要求。
2.用户安全管理(Win7)
a.设置取得文件或其他对象的所有权,将该权限只委派给administrators组;
b.严禁普通用户使用命令提示符;
c.设置不显示下次登陆的用户名。
A-2任务二本地安全策略(Win7)
3.要求登陆时不显示用户名;
4.在密码过期的前5天开始提示用户在过期之前修改密码;
5.要求任何用户在登入到Windows前都必须按CTRL+ALT+DEL;
6.严禁SAM账户和共享的匿名枚举;
7.禁用来宾账户。
A-3任务三数据库安全策略
8.以普通账户mysql安全运行mysql服务,严禁mysql以管理员账号权限运行;
9.删掉默认数据库(test);
10.改变默认mysql管理员用户为:SuperRoot;
11.使用mysql外置MD5加密函数加密用户user1的密码为(P@ssw0rd1!)。
A-4任务四日志安全审计(Win7)
12.启用本地安全策略中对Windows系统的初审目录服务访问,仅须要初审失败操作;
13.启用本地安全策略中对Windows系统的初审特权使用,成功和失败操作都须要初审;
14.启用本地安全策略中对Windows系统的初审系统风波,成功和失败操作都须要初审;
15.启用本地安全策略中对Windows系统的初审账户管理,成功和失败操作都要初审;
16.启用本地安全策略中对Windows系统的初审进程追踪,仅失败操作须要初审。
A-5任务五流量完整性保护(Win7)
17.对Web网站进行HTTP重定向HTTPS设置,仅使用HTTPS合同访问网站(Windows)(注:证书颁授给并通过访问Web网站)。
A-6任务六防火墙策略(Kali)
18.设置防火墙容许本机转发除ICMP合同以外的所有数据包;
19.为避免Nmap等扫描软件侦测到关键信息,设置iptables防火墙策略对80号端口进行流量处理;
20.为防御拒绝服务功击,设置iptables防火墙策略对传入的流量进行过滤linux命令,限制每分钟容许3个包传入,并将顿时流量设定为一次最多处理6个数据包(超过上限的网路数据包将扔掉不予处理);
21.只容许转发来自172.16.0.0/24局域网关的DNS解析恳求数据包。
Linux操作系统安全加固举措
1.定期更新系统和软件包
定期更新操作系统和软件包可以保持系统最新,以修补已知的安全漏洞和弱点。您可以使用以下命令在CentOS上更新软件包:
sudoyumupdate
2.禁用毋须要的服务
禁用毋须要的服务可以降低系统曝露在功击风险之下的机会。您可以使用以下命令列举所有正在运行的服务:
systemctllist-unit-files--type=service
之后,您可以使用以下命令禁用任何毋须要的服务:
sudosystemctldisable
3.安装并启用防火墙
防火墙是保护Linux系统的重要组成部份。您可以使用以下命令在CentOS上安装firewalld:
sudoyuminstallfirewalld
之后,您可以使用以下命令启动和启用firewalld:
sudosystemctlstartfirewalld
sudosystemctlenablefirewalld
4.严禁root用户SSH登入
严禁root用户SSH登入可以降低曝露在恶意功击风险之下的机会。您可以使用以下命令更改SSH配置文件:
sudovi/etc/ssh/sshd_config
在文件中找到PermitRootLoginyes行,并将其修改为PermitRootLoginno。之后,重新启动SSH服务:
sudosystemctlrestartsshd
5.配置强密码策略
强密码策略可以避免使用弱密码对系统进行功击。您可以使用以下命令安装cracklib库和pam_pwquality模块:
sudoyuminstallcracklibpam_pwquality
之后,您可以使用以下命令编辑/etc/pam.d/system-auth文件,以添加密码策略:
sudovi/etc/pam.d/system-auth
在文件中找到以下行,并进行更改:
passwordrequisitepam_pwquality.sotry_first_passlocal_users_onlyretry=3authtok_type=
添加以下内容:
minlen=14ucredit=-1lcredit=-2dcredit=-1ocredit=-1
之后,保存并退出文件。
6.禁用毋须要的系统用户
禁用毋须要的系统用户可以降低系统面临的功击风险。您可以使用以下命令禁用毋须要的用户:
sudousermod-s/sbin/nologin
比如,禁用apache用户:
sudousermod-s/sbin/nologinapache
7.限制文件和目录权限
限制文件和目录权限可以避免未经授权的访问和更改。以下是一些常见的文件和目录权限设置:
为目录设置700权限:chmod700
为文件设置600权限:chmod600
为SUID文件设置4755权限:chmod4755
为SGID文件设置2755权限:chmod2755
为StickyBit目录设置1777权限:chmod1777
8.配置SELinux
SELinux是一种强制访问控制机制,可避免未经授权的访问和操作。您可以使用以下命令安装SELinux:
sudoyuminstallselinux-policyselinux-policy-targeted
之后,您可以使用以下命令启用SELinux:
sudosetenforce1
9.禁用IPv6
禁用IPv6可以降低系统遭到功击的机会。您可以使用以下命令编辑/etc/sysctl.conf文件:
sudovi/etc/sysctl.conf
在文件顶部添加以下行:
net.ipv6.conf.all.disable_ipv6=1
net.ipv6.conf.default.disable_ipv6=1
之后,保存并退出文件。
10.定期备份数据
定期备份数据可以保护您的数据免受灾难性风波和安全漏洞的影响。您可以使用以下命令将数据备份到远程服务器或本地储存设备:
rsync-avz--delete
11.安装防病毒软件
安装防病毒软件可以帮助监测和消除病毒和恶意软件,因而保护您的系统和数据。您可以选择市场上广泛使用的防病毒软件,比如ClamAV或Sophos。
12.配置SSH
SSH是远程登陆的主要方法,但它也是黑客功击的一个重要入口。以下是一些安全配置SSH的建议:
禁用SSHroot登陆:在/etc/ssh/sshd_config文件中设置PermitRootLoginno。
修改SSH端口:在/etc/ssh/sshd_config文件中设置Port。
配置SSH私钥认证:在SSH顾客端上生成私钥和公钥,之后将私钥上传到服务器,将公钥保留在顾客端。
禁用SSH1:在/etc/ssh/sshd_config文件中设置Protocol2。
启用SSH会话超时:在/etc/ssh/sshd_config文件中设置ClientAliveInterval300和ClientAliveCountMax0。
配置Fail2Ban:Fail2Ban可以监视SSH登入尝试,当有多次失败的登陆尝试时,它会暂时严禁来源IP的访问。
13.配置审计
配置审计可以跟踪系统和应用程序活动linux安全加固,并为您提供有关访问和操作的详尽信息。您可以使用以下命令安装审计工具:
sudoyuminstallauditd
之后,您可以使用以下命令编辑/etc/audit/auditd.conf文件:
sudovi/etc/audit/auditd.conf
在文件中找到并取消注释以下行:
max_log_file_action=ROTATE
space_left_action=SYSLOG
admin_space_left_action=SUSPEND
14.安装和配置防火墙
防火墙可以帮助避免未经授权的访问和功击。您可以使用以下命令安装和配置防火墙:
sudoyuminstallfirewalld
sudosystemctlenablefirewalld
sudosystemctlstartfirewalld
sudofirewall-cmd--permanent--zone=public--add-service=http
sudofirewall-cmd--permanent--zone=public--add-service=https
sudofirewall-cmd--permanent--zone=public--add-port=/tcp
sudofirewall-cmd--reload
第一行命令安装防火墙,第二行命令启用防火墙,第三行命令启动防火墙。第四行命令准许HTTP和HTTPS流量,第五行命令准许指定端口的流量。最后一行命令重新加载防火墙规则。
15.安装和配置IDS/IPS
IDS/IPS是入侵检查和防治系统,可以监视网路流量并检查潜在的功击。您可以使用以下命令安装和配置IDS/IPS:
sudoyuminstallsnort
sudosnort-T-c/etc/snort/snort.conf
sudosystemctlenablesnort
sudosystemctlstartsnort
第一行命令安装Snort,一个广泛使用的IDS/IPS工具。第二行命令测试Snort配置是否正确。第三行和第四行命令启用并启动Snort服务。
16.配置SELinux
SELinux(Security-EnhancedLinux)是一种强制访问控制机制,可以限制进程的访问权限,避免恶意进程的执行。在CentOS中,SELinux默认是开启的。您可以使用以下命令配置SELinux:
sudosetenforce1
sudovi/etc/selinux/config
第一行命令开启SELinux。第二行命令编辑/etc/selinux/config文件,并将SELINUX的值设置为enforcing,以确保SELinux在系统重启后依然保持开启状态。
17.配置sudo
sudo可以授予普通用户执行特权命令的权限。为了避免滥用,应当限制什么用户可以使用sudo,以及什么命令可以使用sudo。您可以使用以下命令编辑/etc/sudoers文件:
添加以下行,以容许username用户使用command命令:
usernameALL=(ALL)command
18.禁用毋须要的服务
毋须要的服务可能存在漏洞,或则可能被黑客拿来入侵系统。因而,您应当禁用毋须要的服务。您可以使用以下命令列举正在运行的服务:
sudosystemctllist-unit-files--type=service--state=running
之后,您可以使用以下命令禁用服务:
sudosystemctldisableservice-name
其中,service-name是要禁用的服务的名称。
19.配置SSH隧洞
SSH隧洞可以加密和保护通过公共网路传输的数据。您可以使用以下命令创建SSH隧洞:
ssh-L::
其中,本地端口是您本地计算机上要使用的端口,目标地址是要访问的目标地址,目标端口是要访问的目标端口,SSH服务器地址是SSH服务器的地址。
20.安装并使用加密工具
加密工具可以帮助加密和保护敏感数据,比如加密文件、加密电邮和加密聊天。您可以选择使用市场上广泛使用的加密工具,比如GnuPG或OpenSSL。
21.配置系统日志
系统日志可以记录重要风波和错误,便于在须要时进行故障排除。您可以使用以下命令配置系统日志:
sudovi/etc/rsyslog.conf
之后,您可以将以下行添加到rsyslog.conf文件中linux服务器搭建,以将系统日志记录到/var/log/messages文件中:
*.info;mail.none;authpriv.none;cron.none/var/log/messages
22.定期备份数据
数据备份是避免数据遗失和恢复数据的重要步骤。您应当定期备份数据,并将备份文件储存在安全的位置。您可以使用以下命令备份文件:
tar-czvfbackup.tar.gz/path/to/backup
其中,/path/to/backup是要备份的文件夹的路径,backup.tar.gz是要创建的备份文件的名称。
23.定期更新系统和应用程序
定期更新系统和应用程序是保持系统安全的重要步骤。您可以使用以下命令更新系统和应用程序:
sudoyumupdate
24.定期进行漏洞扫描和安全评估
定期进行漏洞扫描和安全评估是发觉潜在漏洞和安全问题的重要步骤。您可以使用市场上广泛使用的漏洞扫描和安全评估工具,比如OpenVAS或Nessus。
25.配置访问控制列表(ACLs)
访问控制列表(ACLs)可以帮助您控制用户或用户组对特定文件或目录的访问权限。您可以使用以下命令设置ACL:
setfacl-mu::
其中是用户的用户名,是要授予的权限,是要设置ACL的文件或目录。诸如,以下命令将用户john添加到/var/www/html目录的ACL,并授予读取和写入权限:
setfacl-mu:john:rw/var/www/html
26.禁用毋须要的服务和端口
Linux操作系统默认启动许多服务和端口,这种服务和端口可能存在安全风险。您可以使用以下命令检测系统上正在运行的服务和端口:
sudonetstat-tulpn
之后,您可以禁用毋须要的服务和端口,以提升系统安全性。
27.配置SELinux
SELinux是Linux操作系统的一个强制访问控制(MAC)机制,它可以帮助您保护系统免受恶意代码和功击。您可以使用以下命令配置SELinux:
arduino
Copycode
sudovi/etc/selinux/config
之后,您可以将SELINUX设置为enforcing,并重新启动系统:
SELINUX=enforcing
28.配置SSH
SSH是一种安全远程登陆合同,它可以帮助您在网路上安全地远程登陆Linux系统。您可以使用以下命令配置SSH:
sudovi/etc/ssh/sshd_config
之后,您可以禁用密码身分验证,并启用秘钥身分验证:
PasswordAuthenticationno
PubkeyAuthenticationyes
29.配置防火墙
Linux操作系统默认启用防火墙,但您可以使用以下命令检测防火墙状态:
sudosystemctlstatusfirewalld
假如防火墙未启用,则可以使用以下命令启用防火墙:
sudosystemctlenablefirewalld
之后,您可以使用以下命令添加防火墙规则:
css
Copycode
sudofirewall-cmd--add-port=/tcp--permanent
sudofirewall-cmd--reload
其中是要开放的端标语。