/
linux_lab
/
ovpnft
Обзор
Документация
Войти
/
linux_lab
/
ovpnft
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
main
Makefile
77 строк
3 KB
ophilon
base files
12 май 2026, 19:21
12 май 2026, 19:21
2945bf5
Код
Авторство
О чём код?
# Makefile for NFTables OpenVPN Firewall .PHONY: help all groups users setup clean validate help: @echo "Available targets:" @echo " help - Show this help message, default" @echo " setup - Setup environment and install dependencies" @echo " groups - Convert group YAML files to nftables configs" @echo " users - Convert user YAML files to nftables configs" @echo " all - Convert both groups and users (default)" @echo " clean - Remove generated files" @echo " validate - Validate all generated nftables configurations" all: groups users setup: @echo "Setting up NFTables OpenVPN Firewall..." @echo "========================================" chmod +x group2nft.py user2nft.py activate.sh mkdir -p groups.nft users.nft @if command -v pip3 >/dev/null 2>&1; then \ echo "Installing Python dependencies..."; \ pip3 install -r requirements.txt; \ elif command -v pip >/dev/null 2>&1; then \ echo "Installing Python dependencies..."; \ pip install -r requirements.txt; \ else \ echo "Warning: pip not found. Please install PyYAML manually:"; \ echo " pip install PyYAML"; \ fi @echo "" @echo "Setup complete!" @echo "" @echo "Next steps:" @echo " 1. Add group definitions to groups/ directory" @echo " 2. Add user definitions to users/ directory" @echo " 3. Run 'make all' to generate nftables configurations" @echo " 4. Use './activate.sh --help' for OpenVPN integration" groups: python group2nft.py users: python user2nft.py clean: rm -rf groups.nft/*.conf users.nft/*.conf rm -rf __pycache__ validate: @echo "Validating generated nftables configurations..." @echo "================================================" @if command -v nft >/dev/null 2>&1; then \ echo "Validating group configurations..."; \ for conf in groups.nft/*.conf; do \ if [ -f "$$conf" ]; then \ echo "Checking $$conf..."; \ nft -c -f "$$conf" 2>/dev/null && echo " ✓ Valid" || echo " ✗ Invalid"; \ fi; \ done; \ echo ""; \ echo "Validating server configuration..."; \ if [ -f "server.conf" ]; then \ echo "Checking server.conf..."; \ nft -c -f server.conf 2>/dev/null && echo " ✓ Valid" || echo " ✗ Invalid"; \ fi; \ echo ""; \ echo "Validating OpenVPN configuration..."; \ if [ -f "ovpn-clean.conf" ]; then \ echo "Checking ovpn-clean.conf..."; \ nft -c -f ovpn-clean.conf 2>/dev/null && echo " ✓ Valid" || echo " ✗ Invalid"; \ fi; \ else \ echo "Warning: nft command not found, skipping validation"; \ echo "Please install nftables to validate configurations"; \ fi