Bu rehber, projeyi kendi GitHub hesabına fork edip Pages üzerinden
yayımlaman içindir. Hâlihazırda bilsectr/sgb-api-bridge reposunu
kullanıyorsan zaten her şey hazır — direkt aşağıdaki "Feed URL'leri ve
cihaz örnekleri" bölümüne atla.
| Madde | Madde adı | Bu kurulum nasıl katkı sağlar? |
|---|---|---|
| 3.1.10.4 ⭐ | Siber Tehdit Bildirimlerinin Yönetilmesi | GitHub Actions saatlik tam sync → her zaman taze feed. |
| 3.1.5.1 | Zararlı Yazılımdan Korunma + Merkezi Yönetim | Otomatik güncel imza/IoC. |
| 3.1.6.4 | Kara Liste Kullanımı | Pages URL'leri firewall/proxy kara liste kaynağı. |
| 3.5.3 | Tedarikçi İlişkileri Güvenliği | Public repo, açık kaynak, denetlenebilir. |
| 3.1.13 | Felaket Kurtarma | GitHub repo + sync tarihçesi git history'sinde — kolay recovery. |
Air-gapped kurum için: GitHub kullanamıyorsanız setup-docker.md veya setup-k8s.md kullanın — her ikisi de tek konteynerde txt feed + TAXII 2.1 servisini birlikte ayağa kaldırır.
gh repo create sgb-api-bridge --public --clone --template bilsectr/sgb-api-bridge
cd sgb-api-bridgeVeya manuel fork: GitHub UI'ndan "Fork" → kendi hesabın altına klonla.
Repo → Settings → Actions → General → Workflow permissions:
- ✓ Read and write permissions seç
- Save
Repo → Settings → Pages:
- Source: Deploy from a branch
- Branch:
main/ folder:/docs - Save
Bu repo'yu fork ettiysen docs/*-list.txt ve state/seen_ids.json zaten
dolu gelir. Hourly sync workflow'u (Sync (hourly)) saatte bir otomatik
çalışıp SGB API'sinden tüm kayıtları sayfalayarak çeker (~10 dk).
İlk sync'i hemen tetiklemek istersen: Repo → Actions → Sync (hourly) → Run workflow.
https://<USERNAME>.github.io/sgb-api-bridge/→ landing açılırhttps://<USERNAME>.github.io/sgb-api-bridge/stats.json→last_update_utctaze,in_progressnullhttps://<USERNAME>.github.io/sgb-api-bridge/domain-list.txt→ ~450K satır
bilsectr → <USERNAME> ile değiştir:
grep -rl "bilsectr.github.io" . | xargs sed -i 's|bilsectr.github.io|<USERNAME>.github.io|g'
grep -rl "bilsectr/sgb-api-bridge" . | xargs sed -i 's|bilsectr/sgb-api-bridge|<USERNAME>/sgb-api-bridge|g'
git commit -am "Personalize URLs" && git push| Tür | URL |
|---|---|
| Domain | https://<USERNAME>.github.io/sgb-api-bridge/domain-list.txt |
| IPv4 | https://<USERNAME>.github.io/sgb-api-bridge/ip-list.txt |
| URL | https://<USERNAME>.github.io/sgb-api-bridge/url-list.txt |
| IPv6 | https://<USERNAME>.github.io/sgb-api-bridge/ip6-list.txt |
| IPv6 subnet | https://<USERNAME>.github.io/sgb-api-bridge/ip6net-list.txt |
Aşağıdaki tüm cihaz konfigürasyon örnekleri BG 3.1.6.4 (Kara Liste Kullanımı) ve 3.1.6.20 (URL Filtreleri) maddelerinin somut karşılığıdır.
config system external-resource
edit "SGB-Domain"
set type domain
set resource "https://<USERNAME>.github.io/sgb-api-bridge/domain-list.txt"
set refresh-rate 60
next
edit "SGB-IP"
set type address
set resource "https://<USERNAME>.github.io/sgb-api-bridge/ip-list.txt"
set refresh-rate 60
next
end
Web Admin → System → Hosts and services → IP host group → Import from URL ile URL'leri ekle.
set external-list SGB-IP type ip url https://<USERNAME>.github.io/sgb-api-bridge/ip-list.txt recurring hourly
set external-list SGB-Domain type domain url https://<USERNAME>.github.io/sgb-api-bridge/domain-list.txt recurring hourly
Firewall → pfBlockerNG → IPv4 → Add → URL alanına IPv4 listesini gir. DNSBL altına domain listesini ekle.
Adlist olarak ekle:
https://<USERNAME>.github.io/sgb-api-bridge/domain-list.txt
Sonra pihole -g ile yenile.
acl sgb_blacklist dstdomain "/etc/squid/sgb-domain-list.txt"
http_access deny sgb_blacklist
17 * * * * curl -sf https://<USERNAME>.github.io/sgb-api-bridge/domain-list.txt -o /etc/squid/sgb-domain-list.txt && systemctl reload squidGitHub Actions her sync için ayrıntılı log üretir; ayrıca her saat git commit'i oluşur. Bu sayede:
- 3.1.8.4 (Detaylı Kayıt): her sync zaman, indicator sayısı, hata durumu workflow log'unda
- 3.1.8.6 (Merkezi Kayıt Yönetimi): GitHub Actions = merkezi log noktası
- Git tarihçesi: hangi anda hangi indicator eklendi/silindi — audit trail
Denetim için: Actions → Workflow run → log'lar her zaman 90 gün saklanır; daha uzun saklama için artifact'a archive et.
-
Pages 404: Settings → Pages'te source
/docsmu, branchmainmi? "GitHub Pages" job'unun Actions'ta yeşil olduğunu kontrol et. -
Workflow "permission denied": 1. adımdaki "Read and write permissions" set edilmemiş.
-
Sync timeout yiyor: SGB çok agresif rate-limit uyguluyor demektir.
scripts/sync.py'daSLEEP_OK_FULL = 1.0değerini 2.0'a çıkar, push'la. -
state/seen_ids.json bozulduysa: dosyayı sil, fresh start için her tip'i sıfırla:
{"domain":{"max_id":0,"last_full_sync":null,"last_delta_sync":null}, "url":{...}, ...}