网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
以下是一些常见的 Windows 服务器安全设置,以及操作示例。
- 更新操作系统和应用程序
首先,确保操作系统和所有应用程序都是最新的,以防止已知漏洞被利用。在 Windows 服务器上,可以使用以下步骤检查更新:
- 打开“控制面板” -> “Windows Update”。
- 点击“检查更新”按钮,等待系统检查可用更新。
- 如果有更新可用,点击“安装更新”按钮。
- 重启服务器以完成更新安装。
- 启用防火墙
防火墙可以阻止未经授权的访问和攻击,因此应始终在 Windows 服务器上启用。以下是启用防火墙的示例步骤:
- 打开“控制面板” -> “Windows Defender 防火墙”。
- 点击“打开 Windows Defender 防火墙”按钮。
- 在“公用网络设置”和“专用网络设置”下,确保防火墙已启用。
- 如果需要,可以配置更详细的规则来控制应用程序和端口的访问。
- 禁用不必要的服务和端口
不必要的服务和端口可能会导致安全漏洞,因此应该尽可能禁用它们。以下是操作示例:
- 打开“运行”对话框(按“Win + R”键)。
- 输入“services.msc”并按回车键打开“服务”窗口。
- 禁用不必要的服务,例如“远程注册表”,“Telnet”等。
- 打开“控制面板” -> “Windows 防火墙” -> “高级设置”。
- 点击“入站规则”和“出站规则”,禁用不必要的端口,例如“TCP 端口 135”。
- 使用强密码
强密码可以降低被破解的风险。以下是一些创建强密码的示例规则:
- 包含数字、字母、符号。
- 长度至少 8 个字符。
- 不要使用字典单词或简单的序列(例如“123456”)。
- 禁用默认帐户
默认帐户(例如“Administrator”)容易受到攻击,因此应该禁用或重命名。以下是禁用默认帐户的示例步骤:
- 打开“计算机管理器” -> “本地用户和组” -> “用户”。
- 右键点击默认帐户,例如“Administrator”,并选择“属性”。
- 在“常规”选项卡中,选中“账户已禁用”复选框,然后点击“确定”按钮。
- 安装安全软件
安全软件可以帮助检测和防止恶意软件和攻击。以下是一些常见的安全软件:
- 防病毒软件,例如“Windows Defender”、“Norton”、“McAfee”等。
- 防火墙软件,例如“Comodo Firewall”、“TinyWall”等。
- 恶意软件检测和清除工具,例如“Malwarebytes”、“AdwCleaner”等。
4. 保护敏感信息:
使用 SSL 加密传输数据、使用加密算法存储密码和敏感数据、使用 HTTPS、禁用目录列表等。
存储密码时,应该使用密码哈希算法,而不是加密算法。哈希算法是一种单向转化算法,它可以将任意长度的输入数据转化为固定长度的输出数据。因此,哈希算法可以将密码转换为一个固定长度的哈希值。在进行验证时,将输入的密码进行哈希后,将结果与之前存储的哈希值进行比较即可。
下面是一个使用哈希算法进行密码存储和验证的示例(以 Python 语言为例):
```python
import hashlib
# 存储密码
password = "mypassword"
hashed_password = hashlib.sha256(password.encode()).hexdigest()
# 将哈希值存储到数据库或文件中
# 验证密码
input_password = "mypassword"
input_hashed_password = hashlib.sha256(input_password.encode()).hexdigest()
if input_hashed_password == hashed_password:
print("密码验证通过")
else:
print("密码错误")
在实际应用中,为了增强密码的安全性,可以在哈希算法的基础上加入 salt 或 pepper。salt 是一个随机字符串,可以与密码混合后再进行哈希,以增加破解密码的难度。pepper 是一个固定字符串,可以在哈希之前或之后加入,以增强密码的安全性。
在 IIS 中禁用目录列表:
1. 打开 IIS 管理器并选择要禁用目录列表的站点或应用程序;
2. 在功能视图中,双击“目录浏览”;
3. 在右侧的操作面板中,单击“禁用目录浏览”。
在 Nginx 中禁用目录列表:
1. 打开 Nginx 配置文件;
2. 在服务器或位置段中,添加以下指令:`autoindex off;`;
3. 保存并重新加载 Nginx 配置文件。
这些操作都会禁用该站点或应用程序中的目录列表。
## 5. 加强访问控制:
限制访问权限、使用两步验证、审计所有访问记录、及时移除不必要的账户和权限等。
要在 Python 中进行两步验证,需要使用一个第三方的库。Google Authenticator 是一个常用的两步验证库。
下面是一个简单的示例:
首先,需要安装 `pyotp` 库。
pip install pyotp
然后,可以使用以下代码来生成一个基于时间的一次性密码(TOTP)和一个密钥。
import pyotp
totp = pyotp.TOTP(pyotp.random_base32())
key = totp.now()
print("TOTP:", totp)
print("Key:", key)
接下来,在进行验证时,用户将输入他们从 Google Authenticator App 中获取的 TOTP,可以使用以下代码验证输入的 TOTP 是否正确。
import pyotp
totp = pyotp.TOTP("密钥")
user_input = input("请输入你从谷歌验证程序获得的6位代码:")
if totp.verify(user_input):
print("验证成功!")
else:
print("验证失败!")
这样就能够进行两步验证了。请注意,为了更好的安全性,建议尽可能地将密钥保存在安全的地方,并按照最佳实践来确保应用程序和服务器的安全性。
Node.js可以使用两步验证,通常使用TOTP或HOTP。
1. TOTP(基于时间的一次性密码):这是一种基于时间的算法,用户通过移动应用程序(如Google Authenticator)或硬件设备(如YubiKey)来生成动态的一次性密码。在Node.js中,可以使用“speakeasy”模块来实现TOTP。例如:
javascript
const speakeasy = require(‘speakeasy’);
const secret = speakeasy.generateSecret({length: 20});
// Send secret.issuer and secret.base32 to the client
const token = speakeasy.totp({
secret: secret.base32,
encoding: ‘base32’
});
// Verify token from client
const verified = speakeasy.totp.verify({
secret: secret.base32,
encoding: ‘base32’,
token: token,
window: 1
});
2. HOTP(基于计数器的一次性密码):这是一种基于计数器的算法,用户通过硬件设备来生成动态的一次性密码。在Node.js中,可以使用“notp”模块来实现HOTP。例如:
javascript
const notp = require(‘notp’);
const secret = notp.randomKey(20);
// Send secret and counter to the client
const token = notp.hotp.gen(secret, {counter: 1});
本人从事网路安全工作12年,曾在2个大厂工作过,安全服务、售后服务、售前、攻防比赛、安全讲师、销售经理等职位都做过,对这个行业了解比较全面。
最近遍览了各种网络安全类的文章,内容参差不齐,其中不伐有大佬倾力教学,也有各种不良机构浑水摸鱼,在收到几条私信,发现大家对一套完整的系统的网络安全从学习路线到学习资料,甚至是工具有着不小的需求。
最后,我将这部分内容融会贯通成了一套282G的网络安全资料包,所有类目条理清晰,知识点层层递进,需要的小伙伴可以点击下方小卡片领取哦!下面就开始进入正题,如何从一个萌新一步一步进入网络安全行业。
学习路线图
其中最为瞩目也是最为基础的就是网络安全学习路线图,这里我给大家分享一份打磨了3个月,已经更新到4.0版本的网络安全学习路线图。
相比起繁琐的文字,还是生动的视频教程更加适合零基础的同学们学习,这里也是整理了一份与上述学习路线一一对应的网络安全视频教程。
网络安全工具箱
当然,当你入门之后,仅仅是视频教程已经不能满足你的需求了,你肯定需要学习各种工具的使用以及大量的实战项目,这里也分享一份我自己整理的网络安全入门工具以及使用教程和实战。
项目实战
最后就是项目实战,这里带来的是SRC资料&HW资料,毕竟实战是检验真理的唯一标准嘛~
面试题
归根结底,我们的最终目的都是为了就业,所以这份结合了多位朋友的亲身经验打磨的面试题合集你绝对不能错过!
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!