bash
sudo apt install libpam-google-authenticator
# 编辑/etc/pam.d/sshd添加:
auth required pam_google_authenticator.so
bash
openssl req -newkey rsa:2048 -nodes -keyout client.key -x509 -days 365 -out client.crt
sudo apt install libapache2-mod-security2
sudo cp /etc/modsecurity/modsecurity.conf-recommended /etc/modsecurity/modsecurity.conf
wget https://github.com/coreruleset/coreruleset/archive/refs/tags/v3.3.4.tar.gz
tar -xzvf v3.3.4.tar.gz
sudo mv coreruleset-3.3.4 /etc/modsecurity/crs
location / {
ModSecurityEnabled on;
ModSecurityConfig modsecurity.conf;
proxy_pass http://backend;
}
limit_req_zone $binary_remote_addr zone=api_limit:10m rate=10r/s;
location /api/ {
limit_req zone=api_limit burst=20 nodelay;
proxy_pass http://api_backend;
}
# 安装knockd
sudo apt install knockd
# 示例配置(/etc/knockd.conf)
[options]
UseSyslog
[openSSH]
sequence = 7000,8000,9000
seq_timeout = 5
command = /sbin/iptables -A INPUT -s %IP% -p tcp --dport 22 -j ACCEPT
tcpflags = syn
[closeSSH]
sequence = 9000,8000,7000
seq_timeout = 5
command = /sbin/iptables -D INPUT -s %IP% -p tcp --dport 22 -j ACCEPT
tcpflags = syn
# 使用fail2ban动态封锁恶意IP
sudo apt install fail2ban
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
# 自定义过滤器示例
[nginx-badbots]
enabled = true
port = http,https
filter = nginx-badbots
logpath = /var/log/nginx/access.log
maxretry = 2
# 安装bpftrace
sudo apt install bpftrace
# 监控可疑文件访问
sudo bpftrace -e 'tracepoint:syscalls:sys_enter_openat /comm == "nginx"/ { printf("%s %s\n", comm, str(args->filename)); }'
# 检查当前状态
sestatus
# 为Web服务创建自定义策略
sudo audit2allow -a -M nginx_custom
sudo semodule -i nginx_custom.pp
# 使用rsyslog转发日志
sudo apt install rsyslog
echo "*.* @logserver.example.com:514" | sudo tee -a /etc/rsyslog.conf
sudo systemctl restart rsyslog
alert http any any -> any any (msg:"Possible SQLi Attack"; flow:to_server; content:"select"; nocase; content:"from"; nocase; distance:0; pcre:"/(\%27)|(\')|(\-\-)|(\%23)|(#)/i"; sid:1000001; rev:1;)
apiVersion: policy/v1beta1
kind: PodSecurityPolicy
metadata:
name: restricted
spec:
privileged: false
allowPrivilegeEscalation: false
requiredDropCapabilities:
- ALL
volumes:
- 'configMap'
- 'emptyDir'
- 'projected'
- 'secret'
- 'downwardAPI'
- 'persistentVolumeClaim'
hostNetwork: false
hostIPC: false
hostPID: false
runAsUser:
rule: 'MustRunAsNonRoot'
seLinux:
rule: 'RunAsAny'
supplementalGroups:
rule: 'MustRunAs'
ranges:
- min: 1
max: 65535
fsGroup:
rule: 'MustRunAs'
ranges:
- min: 1
max: 65535
docker pull vuls/vuls
docker run --rm -it \
-v $HOME/.ssh:/root/.ssh:ro \
-v $PWD:/vuls \
-v /etc/localtime:/etc/localtime:ro \
vuls/vuls scan \
-ssh-user=username \
-host=192.168.0.1 \
-port=22 \
-scan-results-dir=/vuls/results
通过实施这些先进技术,您可以显著提高Linux服务器上Web接口的安全性,构建深度防御体系,有效抵御各类网络威胁。