📜  全局保护阻塞 wsl - Shell-Bash (1)

📅  最后修改于: 2023-12-03 15:07:04.096000             🧑  作者: Mango

全局保护阻塞 wsl - Shell-Bash

WSL是Windows Subsystem for Linux的简称,是Windows 10操作系统上的一个兼容层,允许用户在Windows操作系统上运行Linux二进制文件。在WSL上运行的Linux程序可以通过各种方式与Windows操作系统进行交互,如使用文件和IPC。

在一些情况下,我们需要保护整个WSL环境免受外部传入的攻击。本文介绍一种全局保护阻塞的方法,可以帮助程序员们更好的保护WSL环境。

策略

通过配置Linux内核来限制WSL环境内的系统调用和文件系统访问。这项功能是通过在WSL的init系统上安装一个透明代理实现的。

代码
安装代理和内核
$ sudo apt update && sudo apt install curl
$ curl -s https://packagecloud.io/install/repositories/whitewhidow/wslu/script.deb.sh | sudo bash
$ sudo apt install wslu
$ sudo apt install linux-image-generic-core-lts-xenial
$ sudo apt install iptables
配置代理

在 /etc/wsl.conf 添加以下内容

[boot]
command="if [ -f /sbin/init ]; then /sbin/init; else /lib/systemd/systemd ; fi"

[network]
generateHosts = true
重启WSL
$ sudo init 6
配置防火墙规则
$ sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT
$ sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT
$ sudo iptables -A INPUT -p tcp --dport 443 -j ACCEPT
$ sudo iptables -A INPUT -p tcp -j DROP

这个配置将允许SSH、HTTP和HTTPS访问,但将删除任何其他TCP连接。

总结

本文介绍了如何通过使用透明代理和防火墙规则来阻塞对WSL环境的访问。这种方法可以帮助程序员保护WSL环境免受不必要的攻击。