Kali+Windows系统加固

一、项目和任务描述

假定你是某企业的网络安全工程师,对于企业的服务器系统,根据任务要求确保各服务正常运行,并通过综合运用用户安全管理和密码策略、本地安全策略、服务安全配置、日志安全审计、中间件安全配置、防火墙策略等多种安全策略来提升服务器系统的网络安全防御能力。

二、服务器环境说明

Win7  用户名:administrator,密码:Aa123456

Kali    用户名:kali,密码:kali

三、具体任务

请对服务器Win7、Kali按要求进行相应的设置,提高服务器的安全性。

A-1任务一 登录安全加固(Win7, Kali)

  1. 密码策略(Win7, Kali)
  1. 最小密码长度不少于13个字符;
  2. 密码必须符合复杂性要求。

Kali:

a-b:

  1. 编辑 (/etc/pam.d/common-password)文件
  2. 找到(sudo apt-get install libpam-pwquality)这一行在尾部加上(minlen=13 ucredit=-1 lcredit=-1 dcredit=-1 ocredit=-1)

这些参数的含义如下:

minlen=13表示最小密码长度为13个字符。

ucredit=-1表示密码必须包含至少一个大写字母。

lcredit=-1表示密码必须包含至少一个小写字母。

dcredit=-1表示密码必须包含至少一个数字。

ocredit=-1表示密码必须包含至少一个特殊符号。

Win7:

     a-b:

  1. 打开控制面板,选择管理工具,双击本地安全策略。
  2. 在左侧窗格中,展开账户策略,选择密码策略。
  3. 在右侧窗格中,双击需要修改的策略,例如最小密码长度或密码必须符合复杂性要求,按照提示进行设置。
  4. 点击确定,保存更改。

2.用户安全管理(Win7)

a.设置取得文件或其他对象的所有权,将该权限只指派给administrators组;

b.禁止普通用户使用命令提示符;

c.设置不显示上次登录的用户名。

Win7:

a:将该权限只指派给administrators组:

b:使用文件属性设置。打开“我的电脑”,找到“C:\Windows\System32”目录下的“cmd.exe”文件,右键单击并选择“属性”,在弹出的窗口中切换到“安全”选项卡,点击“编辑”按钮,选择“Users”用户组,取消勾选“读取和执行”和“读取”权限,并点击“确定”。这样,普通用户就无法直接运行命令提示符。

c: 打开电脑-点击开始-运行-gpedit.msc-windows设置-安全设置-本地策略-安全选项-交互式登录-不显示上次的用户名-已启用-确定即可

 

A-2任务二 本地安全策略(Win7)

  1. 要求登录时不显示用户名;
  2. 在密码过期的前5天开始提示用户在过期之前更改密码;

3.要求任何用户在登录到Windows前都必须按CTRL+ALT+DEL;

Win + R 快捷键调出“运行”对话框,输入“control userpasswords2”,确定,打开“用户帐户”设置窗口,切换到“高级”选项。

4.禁止SAM 帐户和共享的匿名枚举;

5.禁用来宾帐户。

打开:控制面板\所有控制面板项\用户帐户\管理帐户\更改来宾选项

选择关闭来宾账户

A-3任务三 数据库安全策略

  1. 以普通帐户mysql安全运行mysql服务,禁止mysql以管理员帐号权限运行;

创建一个新的用户组和用户,例如mysqlgroup和mysqluser,并将其添加到mysql组中。您可以使用以下命令:

sudo groupadd mysqlgroup

sudo useradd -g mysqlgroup mysqluser

sudo usermod -a -G mysql mysqluser

更改mysql服务的所有者和组,以及mysql数据目录的所有者和组,为新创建的用户和组。您可以使用以下命令:

Sudo chown -R mysqluser:mysqlgroup /usr/bin/mysqld_safe

sudo chown -R mysqluser:mysqlgroup /var/lib/mysql

编辑mysql服务的配置文件,例如/etc/mysql/my.cnf,将user选项设置为新创建的用户,例如mysqluser。您可以使用以下命令:

sudo nano /etc/mysql/my.cnf

然后在[mysqld]部分添加或修改以下行:

user = mysqluser

2.删除默认数据库(test);

使用命令:

DROP DATABASE test

3.改变默认mysql管理员用户为:SuperRoot;

1.登录mysql服务器,输入mysql -u root -p,然后输入您的root密码。

2.在mysql命令行中,输入CREATE USER 'SuperRoot'@'localhost' IDENTIFIED BY 'password';,其中password是您想要给SuperRoot用户设置的密码。

3.输入GRANT ALL PRIVILEGES ON *.* TO 'SuperRoot'@'localhost' WITH GRANT OPTION;,这样就可以给SuperRoot用户赋予所有的权限。

4.输入FLUSH PRIVILEGES;,使得权限生效。

5.输入exit;,退出mysql命令行。

4.使用mysql内置MD5加密函数加密用户user1的密码为(P@ssw0rd1!)。

   使用UPDATE users SET password = MD5('(P@ssw0rd1!)') WHERE username = 'user1' 命令。

A-4任务四 日志安全审计(Win7)

1.启用本地安全策略中对Windows系统的审核目录服务访问,仅需要审核失败操作;

打开“控制面板”并选择“管理工具”。

双击“本地安全策略”并展开“本地策略”。

选择“审核策略”并双击“审核目录服务访问”。

在弹出的对话框中,勾选“失败”选项,并单击“确定”。

2.启用本地安全策略中对Windows系统的审核特权使用,成功和失败操作都需要审核;

   打开“控制面板”,选择“管理工具”,双击“本地安全策略”。

在左侧窗格中,展开“本地策略”,然后单击“审核策略”。

在右侧窗格中,双击“审核特权使用”。

在弹出的对话框中,勾选“成功”和“失败”的复选框,然后单击“确定”。

关闭“本地安全策略”窗口。

3.启用本地安全策略中对Windows系统的审核系统事件,成功和失败操作都需要审核;

打开“控制面板”,选择“管理工具”,双击“本地安全策略”。

在左侧窗格中,展开“本地策略”,然后单击“审核策略”。

在右侧窗格中,双击“审核系统事件”。

在“审核系统事件属性”对话框中,勾选“成功”和“失败”复选框,然后单击“确定”。

4.启用本地安全策略中对Windows系统的审核帐户管理,成功和失败操作都要审核;

打开“运行”窗口,输入“secpol.msc”并按回车键,打开本地安全策略管理器。

在左侧窗格中,依次展开“本地策略”、“审核策略”,在右侧窗格中双击“审核帐户管理”。

在弹出的对话框中,勾选“成功”和“失败”的复选框,然后点击“确定”按钮。

关闭本地安全策略管理器,重新启动计算机以使更改生效。

5.启用本地安全策略中对Windows系统的审核进程追踪,仅失败操作需要审核。

打开“运行”窗口,输入“secpol.msc”并按回车键,打开“本地安全策略”管理器。

在左侧导航栏中,依次展开“本地策略”、“审核策略”两个选项,然后在右侧窗口中,双击“审核进程追踪”项目。

在弹出的“审核进程追踪属性”窗口中,勾选“失败”选项,取消勾选“成功”选项,然后点击“确定”按钮,保存设置。

A-5任务五 流量完整性保护(Win7)

1.对Web网站进行HTTP重定向HTTPS设置,仅使用HTTPS协议访问网站(Windows)(注:证书颁发给test.com 并通过https://www.test.com访问Web网站)。

打开IIS管理器,选择您要配置的Web网站。

在操作窗格中,单击“绑定”。

在“绑定”对话框中,单击“添加”。

在“类型”下拉列表中,选择“https”。

在“SSL证书”下拉列表中,选择您的证书(test.com)。

单击“确定”保存更改。

在操作窗格中,单击“SSL设置”。

选中“要求SSL”复选框。

在“客户端证书”下拉列表中,选择“忽略”或“接受”。

A-6任务六 防火墙策略(Kali)

1.设置防火墙允许本机转发除ICMP协议以外的所有数据包;

打开终端,输入sudo iptables -t filter -A FORWARD -p icmp -j DROP,这条命令会在filter表的FORWARD链中添加一条规则,用于丢弃所有的ICMP数据包。

输入sudo iptables -t filter -A FORWARD -j ACCEPT,这条命令会在filter表的FORWARD链中添加一条规则,用于接受所有其他的数据包。

输入sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE,这条命令会在nat表的POSTROUTING链中添加一条规则,用于将转发的数据包的源地址改为本机的eth0接口的地址。

输入sudo sysctl -w net.ipv4.ip_forward=1,这条命令会修改内核参数,使本机能够进行IP转发。

2.为防止Nmap等扫描软件探测到关键信息,设置iptables防火墙策略对80号端口进行流量处理;

检测并拒绝来自Nmap等扫描软件的请求:

iptables -A INPUT -p tcp --dport 80 -m recent --name portscan --rcheck --seconds 86400 -j DROP

iptables -A INPUT -p tcp --dport 80 -m recent --name portscan --remove

iptables -A INPUT -p tcp --tcp-flags SYN,ACK,FIN,RST RST -j DROP

iptables -A INPUT -p tcp --dport 80 -m recent --name portscan --set -j DROP

3.为防御拒绝服务攻击,设置iptables防火墙策略对传入的流量进行过滤,限制每分钟允许3个包传入,并将瞬间流量设定为一次最多处理6个数据包(超过上限的网络数据包将丢弃不予处理);

创建一个名为LIMIT的自定义链

iptables -N LIMIT

将INPUT链中的所有数据包重定向到LIMIT链

iptables -A INPUT -j LIMIT

在LIMIT链中,使用limit模块设置每分钟3个包的速率限制

iptables -A LIMIT -m limit --limit 3/minute -j ACCEPT

在LIMIT链中,使用hashlimit模块设置每秒6个包的突发限制

iptables -A LIMIT -m hashlimit --hashlimit 6/second --hashlimit-mode srcip --hashlimit-name limit -j ACCEPT

在LIMIT链中,将超过限制的数据包丢弃

iptables -A LIMIT -j DROP

4.只允许转发来自172.16.0.0/24局域网段的DNS解析请求数据包。

首先,需要定义一个访问控制列表(ACL),用于匹配来自172.16.0.0/24局域网段的数据包。这个ACL可以根据源IP地址、目的IP地址、协议类型、端口号等条件进行过滤。

permit udp 172.16.0.0 0.0.0.255 any eq 53

permit tcp 172.16.0.0 0.0.0.255 any eq 53

这两条条目表示允许来自172.16.0.0/24局域网段的UDP或TCP数据包,目的端口为53(DNS协议的默认端口)。

然后,需要将这个ACL应用到您的路由器或防火墙的出口接口上,用于控制转发的数据包。例如,如果您的出口接口是GigabitEthernet0/0,您可以使用以下命令:

interface GigabitEthernet0/0

ip access-group ACL1 out

这样,只有符合ACL1条件的数据包才能从GigabitEthernet0/0接口转发出去,其他的数据包则会被丢弃。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值