bmericc/squid-lightsquid

By bmericc

Updated 29 days ago

squid lightsquid

Image
Networking
0

226

bmericc/squid-lightsquid repository overview

Squid + LightSquid Docker İmajı

Bu proje, Squid proxy sunucusunu ve LightSquid raporlama arayüzünü tek bir Debian tabanlı Docker imajında çalıştırır. Konteyner içinde Squid, Lighttpd, cron ve ilk rapor üretimi supervisord ile birlikte yönetilir.

Bileşenler

  • Squid: HTTP/HTTPS proxy servisi. Varsayılan port 3128.
  • LightSquid: Squid erişim loglarından web tabanlı kullanım raporları üretir.
  • Lighttpd: LightSquid CGI arayüzünü yayınlar. Varsayılan port 7080.
  • cron: LightSquid raporlarını her 15 dakikada bir günceller.
  • supervisor: Konteyner içindeki servisleri tek ana süreç altında çalıştırır.

Proje Yapısı

.
├── Dockerfile                  # Debian tabanlı Squid + LightSquid imajı
├── docker-compose.yml          # Host network ile örnek çalışma tanımı
├── squid/squid.conf            # Squid ana yapılandırması
├── lighttpd/lighttpd.conf      # LightSquid web arayüzü için Lighttpd ayarları
├── cron/lightsquid             # Periyodik LightSquid rapor üretimi
├── supervisord.conf            # Squid, Lighttpd, cron ve ilk parser süreci
└── conf.d/placeholder.conf     # Host'a özel Squid ek ayarları için örnek dosya

Varsayılan Portlar

ServisPortAçıklama
Squid3128Proxy bağlantıları
LightSquid7080Web raporlama arayüzü

docker-compose.yml dosyasında network_mode: host kullanıldığı için bu portlar doğrudan host üzerinde dinlenir.

Hızlı Başlangıç

1. İmajı oluşturup çalıştırın
docker compose up -d --build
2. Servis durumunu kontrol edin
docker compose ps
docker logs -f squid-lightsquid
3. Proxy kullanımı

İstemcilerde HTTP/HTTPS proxy adresini aşağıdaki şekilde ayarlayın:

http://<sunucu-ip-adresi>:3128
4. LightSquid raporlarını görüntüleyin

Tarayıcıdan şu adrese gidin:

http://<sunucu-ip-adresi>:7080/

Yapılandırma

Squid erişim ağları

Varsayılan Squid yapılandırması yalnızca aşağıdaki yerel ağlardan gelen proxy isteklerine izin verir:

  • 192.168.0.0/24
  • 172.24.0.0/16

Bu ağları değiştirmek için squid/squid.conf içindeki acl localnet src ... satırlarını güncelleyin.

Host'a özel ek Squid ayarları

docker-compose.yml, yerel ./conf.d dizinini konteyner içinde /etc/squid/conf.d olarak bağlar. Bu nedenle her sunucuya özel ayarları ana squid.conf dosyasını değiştirmeden şu dosyalara ekleyebilirsiniz:

conf.d/local.conf

Örnek üst proxy ayarı:

cache_peer 192.168.1.10 parent 3128 0 no-query default
never_direct allow all

Not: squid/squid.conf, yerel hedef ağlar için always_direct allow localdst kuralı içerir. Böylece tanımlı yerel hedeflere giderken üst proxy kullanılmaz.

Loglar

Squid erişim logları host tarafında ./logs dizinine yazılır ve konteyner içinde /var/log/squid yoluna bağlanır.

Örnek:

tail -f logs/access.log

Rapor Güncelleme

LightSquid parser şu durumlarda çalışır:

  • Konteyner başlatılırken bir kez lightparser-init programı ile.
  • Cron üzerinden her 15 dakikada bir.

İsterseniz manuel olarak da çalıştırabilirsiniz:

docker exec squid-lightsquid /usr/share/lightsquid/lightparser.pl today

Geliştirme ve Test

Yapılandırma dosyalarını değiştirdikten sonra imajı yeniden oluşturun:

docker compose up -d --build

Squid yapılandırmasını konteyner içinde doğrulamak için:

docker exec squid-lightsquid squid -k parse

Lighttpd yapılandırmasını doğrulamak için:

docker exec squid-lightsquid lighttpd -tt -f /etc/lighttpd/lighttpd.conf

Güvenlik Notları

  • network_mode: host kullanıldığı için host üzerindeki 3128 ve 7080 portlarının güvenlik duvarı kurallarıyla sınırlandırılması önerilir.
  • squid/squid.conf dosyasındaki ACL ağlarını kendi ortamınıza göre daraltın.
  • LightSquid arayüzü varsayılan olarak kimlik doğrulama içermez; gerekiyorsa ters proxy, VPN veya firewall ile erişimi kısıtlayın.

Temizlik

Konteyneri durdurmak için:

docker compose down

Yerel logları temizlemek için:

rm -f logs/*.log

Tag summary

Content type

Image

Digest

sha256:ba119ab3b

Size

82.8 MB

Last updated

29 days ago

docker pull bmericc/squid-lightsquid