草庐IT

网络安全比赛A模块任务书

御七彩虹猫 2024-05-27 原文

前言

这是作者这几个月来的第一次更新文章,问就是太忙了,最近要去参加国赛,在此重新回来写文章,也不知道能写多久,就当练习了。


一.A模块基础设施设置/安全加固

A-1.登录加固

1.密码策略

a.最小密码长度不少于8个字符,将密码长度最小值的属性配置界面截图。

练习用的WindowsServer2008,系统左下角开始 > 管理工具 > 本地安全策略 > 账户策略 > 密码策略 > 密码最小长度,如下图👇。

b.密码策略必须同时满足大小写字母、数字、特殊字符,将密码必须符合复杂性要求的属性配置界面截图

和上面一样的地方,如下图👇。


2.登录策略

a.在用户登录系统时,应该有“For authorized users only”提示信息,将登录系统时系统弹出警告信息窗口截图;

和上面一样只不过变成了,系统左下角开始 > 管理工具 > 本地安全策略 > 本地策略 > 安全选项 > 交互式登录xx,如下图。

b.一分钟内仅允许5次登录失败的尝试,超过5次,登录帐号锁定1分钟,将账户锁定策略配置界面截图;

位置和上面一样,具体参考下图。

c.远程用户非活动会话连接超时应小于等于5分钟,将RDP-Tcp属性对应的配置界面截图。

键盘win + r之后输入tsconfig.msc,之后打开RDP-TCP属性,之后如下图设置。


3.用户安全管理(Web)

a.对服务器进行远程管理安全性SSL加固,防止敏感信息泄露被监听,将RDP-Tcp属性对应的配置界面截图;

键盘win + r之后输入tsconfig.msc,之后打开RDP-TCP属性,之后如下图设置。

b.仅允许超级管理员账号关闭系统,将关闭系统属性的配置界面截图。

和上面一样,具体如下图查看👇。


A-2.Web安全加固(Web)

1.数据库加固

1.为了防止web中.mdb数据库文件非法下载,请对Web配置文件进行安全加固,将C:\Windows\System32\inetsrv\config\applicationHost配置文件中对应的部分截图;

根据题目打开路径文件,然后找到如下图行列修改,把false修改为true。


2.限制目录

2.限制目录执行权限,对picture和upload目录设置执行权限为无,将编辑功能权限的配置界面截图;

左下角开始 > 管理工具 > IIS管理器选择pictureupload,选择处理程序映射,之后在选项卡右边有编辑功能选项,如下图👇。


3.日志审计记录

3.开启IIS的日志审计记录(日志文件保存格式为W3C,只记录日期、时间、客户端IP地址、用户名、方法),将W3C日志记录字段的配置界面截图;

打开IIS管理器,选择默认网站,选择日志选项,具体操作如下图👇。


4.减轻网站负载

4.为了减轻网站负载,设置网站最大并发连接数为1000,将编辑网站限制的配置界面截图;

打开IIS管理器,选择默认网站,找到右边选项卡限制,具体操作如下图。


5.防止文件枚举

5.防止文件枚举漏洞枚举网络服务器根目录文件,禁止IIS短文件名泄露,将配置命令截图;

命令是:

FSUTIL 8dot3name set 1

如下图。


6.关闭IIS的WebDAV功能

6.关闭IIS的WebDAV功能增强网站的安全性,将警报提示信息截图。

打开IIS管理器,选择默认网站,选择WebDAV创作规则,然后关闭,具体操作如下图。


A-3.流量完整性保护与事件监控(Web,Log)

1.证书登陆SSH

1.为了防止密码在登录或者传输信息时被窃取,仅使用证书登录SSH(Log),将/etc/ssh/sshd_config配置文件中对应的部分截图;

打开LogLinux机器,按照题目要求打开路径具体操作如下图。


2.开启审核策略

2.将Web服务器开启审核策略

登录事件 成功/失败;

特权使用 成功;

策略更改 成功/失败;

进程跟踪 成功/失败;

将审核策略的配置界面截图;

打开windows机器,开始 > 管理工具 > 本地安全策略 > 本地策略 > 审核策略,具体操作如下图。


3.配置Splunk

3.配置Splunk接收Web服务器,安全日志,系统日志,CPU负载,内存,磁盘空间,网络状态。将转发器:部署成功的页面截图。

参考别人文章:配置Splunk


A-4.防火墙策略

1.Windows禁用445端口

1.Windows系统禁用445端口,将防火墙入站规则截图;

打开Windows高级防火墙,新建规则,具体操作如下图。

之后一路下一步下一步,名称取名字即可。


2.linux禁用端口

2.Linux系统禁用23端口,将iptables配置命令截图

命令是:

iptables -A INPUT -p tcp --dport 23 -j DROP

具体如下图。


3.Linux禁Ping

3.Linux系统禁止别人ping通,将iptables配置命令截图;

命令是:

iptables -A INPUT -p icmp --icmp-type 8 -j DROP

具体如下图。


4.Linux只允许某IP连接

4.Linux系统为确保安全禁止所有人连接SSH除了172.16.1.1这个ip,将iptables配置命令截图。

命令是:

iptables -A INPUT -p tcp --dport 22 -s 172.16.1.1 -j ACCEPT
iptables -A INPUT -p tcp --dport 22 -j DROP

具体如下图。


A-5.Windows操作系统安全配置

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

其实和上面的配置差不多,但是还是写吧。

1.密码策略

1.设置密码策略必须同时满足大小写字母、数字、特殊字符,最小密码长度不少于8个字符,密码最长使用期限为15天。将服务器上密码策略配置信息截图;

开始 > 管理工具 > 本地安全策略 > 密码策略,具体如下图。


2.登录提示信息

2.在用户登录系统时,应该有“For authorized users only”提示信息,将登录系统时系统弹出警告信息窗口截图;

开始 > 管理工具 > 本地安全策略 > 安全选项 > 交互式登录,具体如下图。


3.允许登录失败5次

3.一分钟内仅允许5次登录失败的尝试,超过5次,登录帐号锁定1分钟,将账号锁定策略配置信息截图;

开始 > 管理工具 > 本地安全策略 > 账户策略 > 账户锁定策略,具体如下图。


4.设置RDP-TCP

4.设置远程桌面用户非活动会话连接超时应小于等于5分钟,将RDP-Tcp属性对应的配置界面截图;

win + r输入tsconfig.msc,选择RDP-TCP属性,具体操作如下图。


5.通过SSL加密服务器远程桌面

和上面一样的位置,具体操作如下图。


6.只允许超级管理员关闭系统

6.仅允许超级管理员账号关闭系统,将关闭系统属性的配置界面截图;

开始 > 管理工具 > 本地安全策略 > 本地策略 > 用户权限分配,具体如下图。


7.开启IIS的日志审计记录

7.开启IIS的日志审计记录,日志文件保存格式为W3C,只记录日期、时间、客户端IP地址、用户名、服务器端口、方法,将W3C日志记录字段的配置界面截图;

打开IIS管理器,选择默认网站,选择日志,具体操作如下图。


8.设置网站最大并发连接

8.设置网站的最大并发连接数为1000,网站连接超时为60s,将编辑网站限制的配置界面截图;

在管理工具打开IIS管理器,选择默认网站,选择右边限制,具体操作如下图。


9.禁用缓存

9.禁用IIS内核缓存,避免对方利用ms15_034漏洞进行DOS攻击,出现蓝屏的现象,将编辑输出缓存设置的配置界面截图;

在管理工具打开IIS管理器,选择默认网站,选择输出缓存,右边菜单选择编辑功能设置,具体如下图。


10.设置某用户特定时间登录

10.设置user1用户只能在上班时间(周一至周五的9:00~18:00)可以登录。将user1的登录时间配置界面截图。

需要输入命令,创建用户命令是:

net user 用户名 密码 /add

题目要求的命令是。

net user user1 /times:M-F,9:00-18:00

具体如下图。


A-6.Linux操作系统安全配置

1.设置禁止使用最近用过旧密码

1.设置禁止使用最近用过的6个旧密码,将配置文件中对应的部分截图;

打开机器,对应文件在/etc/pam.d/system-auth里面,使用vim打开,命令如下。

vim /etc/pam.d/system-auth

具体修改如下图,最后wq保存退出


2.设置密码复杂程度

设置密码复杂程度,允许重试3次,新密码必须与旧密码有4位不同,最小位数6位,大写字母至少包含2位,小写字母
至少包含3位,特殊字母个数至少包含1位,将配置文件中对应的部分截图;

首先严谨一点,Linux修改这些位置的地方有两个,第一个是在/etc/login.defs下面,如下图。

PASS_MAX_DAYS   90        # 密码最长过期天数
PASS_MIN_DAYS   80       # 密码最小过期天数
PASS_MIN_LEN    10      # 密码最小长度
PASS_WARN_AGE   7       # 密码过期警告天数

第二种方法才是题目需要的方法,位置在/etc/pam.d/system-auth,修改位置如下图。


3.禁止匿名用户登录vsftpd

3.禁止匿名用户登录vsftpd服务,将配置文件中对应的部分截图;

vsftpd服务配置在路径/etc/vsftpd/vsftpd.conf,具体修改位置如下图。


4.设置关闭ftp-data端口

4.设置关闭ftp-data端口不使用主动模式,使用ipv4进行监听,将配置文件中对应的部分截图;

需要修改的文件路径是/etc/vsftpd/vsftpd.conf,具体看下图。


5.修改Telnet端口

  1. 将Telnet服务的端口号修改为2323 ,查看Telnet服务端口信息,将回显结果截图;

环境有问题,怎么也不行,就在网上找了文章修改Telnet端口


6.限制Telnet用户连接

6.限制Telnet用户连接,单个IP允许的最大连接数为1,总的最大连接数为10,将配置文件中对应的部分截图;

环境问题,参考文章限制Telnet用户连接还有这个限制Telnet用户连接


7.允许root用户通过SSH

7.允许root用户通过SSH远程登录,将配置文件中对应的部分截图;

修改路径在/etc/ssh/sshd_config具体如下图


8.SSH设置RSA证书登录

8.配置SSH服务,设置RSA证书登录,将配置文件中对应的部分截图;

参考文章Centos7 ssh配置RSA证书登录


9.修改httpd服务为root权限

9.修改网站的httpd服务为root权限,将配置文件中对应的部分截图;

修改路径在/etc/httpd/conf/httpd.conf,具体修改如下图。


10.设置HTTP服务

10.设置HTTP服务,修改网站的配置文件,配置滚动日志按天记录网站的访问日志和错误日志,将配置文件中对应的部分截图。

无。

有关网络安全比赛A模块任务书的更多相关文章

  1. ruby - 在 Ruby 中使用匿名模块 - 2

    假设我做了一个模块如下:m=Module.newdoclassCendend三个问题:除了对m的引用之外,还有什么方法可以访问C和m中的其他内容?我可以在创建匿名模块后为其命名吗(就像我输入“module...”一样)?如何在使用完匿名模块后将其删除,使其定义的常量不再存在? 最佳答案 三个答案:是的,使用ObjectSpace.此代码使c引用你的类(class)C不引用m:c=nilObjectSpace.each_object{|obj|c=objif(Class===objandobj.name=~/::C$/)}当然这取决于

  2. ruby - 其他文件中的 Rake 任务 - 2

    我试图在一个项目中使用rake,如果我把所有东西都放到Rakefile中,它会很大并且很难读取/找到东西,所以我试着将每个命名空间放在lib/rake中它自己的文件中,我添加了这个到我的rake文件的顶部:Dir['#{File.dirname(__FILE__)}/lib/rake/*.rake'].map{|f|requiref}它加载文件没问题,但没有任务。我现在只有一个.rake文件作为测试,名为“servers.rake”,它看起来像这样:namespace:serverdotask:testdoputs"test"endend所以当我运行rakeserver:testid时

  3. ruby-on-rails - Ruby net/ldap 模块中的内存泄漏 - 2

    作为我的Rails应用程序的一部分,我编写了一个小导入程序,它从我们的LDAP系统中吸取数据并将其塞入一个用户表中。不幸的是,与LDAP相关的代码在遍历我们的32K用户时泄漏了大量内存,我一直无法弄清楚如何解决这个问题。这个问题似乎在某种程度上与LDAP库有关,因为当我删除对LDAP内容的调用时,内存使用情况会很好地稳定下来。此外,不断增加的对象是Net::BER::BerIdentifiedString和Net::BER::BerIdentifiedArray,它们都是LDAP库的一部分。当我运行导入时,内存使用量最终达到超过1GB的峰值。如果问题存在,我需要找到一些方法来更正我的代

  4. ruby-on-rails - 在混合/模块中覆盖模型的属性访问器 - 2

    我有一个包含模块的模型。我想在模块中覆盖模型的访问器方法。例如:classBlah这显然行不通。有什么想法可以实现吗? 最佳答案 您的代码看起来是正确的。我们正在毫无困难地使用这个确切的模式。如果我没记错的话,Rails使用#method_missing作为属性setter,因此您的模块将优先,阻止ActiveRecord的setter。如果您正在使用ActiveSupport::Concern(参见thisblogpost),那么您的实例方法需要进入一个特殊的模块:classBlah

  5. ruby - 如何使用 RSpec::Core::RakeTask 创建 RSpec Rake 任务? - 2

    如何使用RSpec::Core::RakeTask初始化RSpecRake任务?require'rspec/core/rake_task'RSpec::Core::RakeTask.newdo|t|#whatdoIputinhere?endInitialize函数记录在http://rubydoc.info/github/rspec/rspec-core/RSpec/Core/RakeTask#initialize-instance_method没有很好的记录;它只是说:-(RakeTask)initialize(*args,&task_block)AnewinstanceofRake

  6. ruby - 如何使用 Ruby aws/s3 Gem 生成安全 URL 以从 s3 下载文件 - 2

    我正在编写一个小脚本来定位aws存储桶中的特定文件,并创建一个临时验证的url以发送给同事。(理想情况下,这将创建类似于在控制台上右键单击存储桶中的文件并复制链接地址的结果)。我研究过回形针,它似乎不符合这个标准,但我可能只是不知道它的全部功能。我尝试了以下方法:defauthenticated_url(file_name,bucket)AWS::S3::S3Object.url_for(file_name,bucket,:secure=>true,:expires=>20*60)end产生这种类型的结果:...-1.amazonaws.com/file_path/file.zip.A

  7. ruby - 当使用::指定模块时,为什么 Ruby 不在更高范围内查找类? - 2

    我刚刚被困在这个问题上一段时间了。以这个基地为例:moduleTopclassTestendmoduleFooendend稍后,我可以通过这样做在Foo中定义扩展Test的类:moduleTopmoduleFooclassSomeTest但是,如果我尝试通过使用::指定模块来最小化缩进:moduleTop::FooclassFailure这失败了:NameError:uninitializedconstantTop::Foo::Test这是一个错误,还是仅仅是Ruby解析变量名的方式的逻辑结果? 最佳答案 Isthisabug,or

  8. ruby - 获取模块中定义的所有常量的值 - 2

    我想获取模块中定义的所有常量的值:moduleLettersA='apple'.freezeB='boy'.freezeendconstants给了我常量的名字:Letters.constants(false)#=>[:A,:B]如何获取它们的值的数组,即["apple","boy"]? 最佳答案 为了做到这一点,请使用mapLetters.constants(false).map&Letters.method(:const_get)这将返回["a","b"]第二种方式:Letters.constants(false).map{|c

  9. ruby - 模块嵌套代码风格偏好 - 2

    我的假设是moduleAmoduleBendend和moduleA::Bend是一样的。我能够从thisblog找到解决方案,thisSOthread和andthisSOthread.为什么以及什么时候应该更喜欢紧凑语法A::B而不是另一个,因为它显然有一个缺点?我有一种直觉,它可能与性能有关,因为在更多命名空间中查找常量需要更多计算。但是我无法通过对普通类进行基准测试来验证这一点。 最佳答案 这两种写作方法经常被混淆。首先要说的是,据我所知,没有可衡量的性能差异。(在下面的书面示例中不断查找)最明显的区别,可能也是最著名的,是你的

  10. ruby - 用 Ruby 编写一个简单的网络服务器 - 2

    我想在Ruby中创建一个用于开发目的的极其简单的Web服务器(不,不想使用现成的解决方案)。代码如下:#!/usr/bin/rubyrequire'socket'server=TCPServer.new('127.0.0.1',8080)whileconnection=server.acceptheaders=[]length=0whileline=connection.getsheaders想法是从命令行运行这个脚本,提供另一个脚本,它将在其标准输入上获取请求,并在其标准输出上返回完整的响应。到目前为止一切顺利,但事实证明这真的很脆弱,因为它在第二个请求上中断并出现错误:/usr/b

随机推荐