Proxmox'ta İzole ve Güvenli Test Ortamları için LXC Konteyner Ağı Kurulumu 
Selam sistemciler!
Bugün, özellikle yeni bir yazılımı test ederken, güvenlik taraması yaparken veya "acaba bu komut sistemi uçurur mu?" diye düşünürken içinizi rahatlatacak bir konuya değiniyoruz: Proxmox'ta ana ağınızdan tamamen izole, özel bir LXC konteyner ağı (bridge) oluşturmak.
Neden böyle bir şeye ihtiyaç duyalım? Ana sunucu ağınız (vmbr0) üzerinden çalışan test konteynerleriniz, yanlışlıkla yapılandırılmış bir servis veya zararlı bir test komutu ile dış dünyaya açık kapı bırakabilir, ya da tam tersi, dışarıdan gelen bir saldırı test sırasında ana sunucunuzu hedef alabilir. İşte bu riski sıfıra indirmenin yolu, onları kendi özel, izole dünyalarında yaşatmaktır. Hadi başlayalım!
Adım 1: Yeni bir Linux Bridge (Köprü) Oluşturmak
İlk iş, Proxmox host'unuzda fiziksel ağa bağlı olmayan yeni bir sanal köprü oluşturmak. Bunun için sunucunuzun shell'ine (terminal) bağlanıyoruz.
Ağ yapılandırma dosyasını açalım:
Dosyanın sonuna, mevcut ağ yapılandırmalarınıza dokunmadan aşağıdaki satırları ekliyoruz. Bu örnekte köprümüze `vmbr10` adını veriyoruz ve ona `10.10.10.1/24` gibi özel bir IP aralığı atıyoruz.
Değişiklikleri kaydedip çıktıktan sonra, yeni bridge'i aktif edelim:
`ip a` komutu ile çıktıyı kontrol ettiğinizde `vmbr10` interface'ini ve ona atadığınız IP'yi görmelisiniz.
Adım 2: LXC Konteyneri Yeni Bridge'e Bağlamak
Şimdi sıra, yeni bir LXC konteyner oluştururken veya mevcut bir konteyneri düzenlerken, onun ağını bu yeni `vmbr10` bridge'ine bağlamakta.
Proxmox Web Arayüzünde:
1. Bir LXC konteynere tıklayın > "Network" sekmesi.
2. "Bridge" dropdown menüsünden `vmbr10`'u seçin.
3. Konteynere `10.10.10.2/24` gibi aynı ağda ama farklı bir IP statik olarak atayabilirsiniz. DHCP kullanmak istemiyoruz çünkü bu izole bir ağ.
4. "IPv4 Gateway" alanına bridge'in IP'sini (`10.10.10.1`) girin.
5. Değişiklikleri uygulayın.
Komut Satırından (CTID konteyner numaranızdır):
Konteynerin config dosyasını düzenleyin:
Ağ bölümünü şu şekilde güncelleyin:
Adım 3: Ana Sunucuda NAT ve İletim (Forwarding) Ayarları
Şu anda konteynerleriniz `vmbr10` üzerinde birbirleriyle konuşabilir ve gateway (10.10.10.1) üzerinden ana sunucuya ulaşabilir. Ancak dış internete çıkamazlar (ki bu güvenlik için iyidir). Eğer testleriniz için konteynerlere **sadece çıkış yönlü** internet erişimi vermek isterseniz, ana sunucuda NAT kuralları eklemeliyiz.
IPTables kurallarını ekleyelim:
Bu kuralların kalıcı olması için, Proxmox'un `iptables` yapılandırma dosyasına ekleyebilirsiniz. Örneğin `/etc/network/if-up.d/` dizinine bir script oluşturabilirsiniz.
Adım 4: Test ve Doğrulama
Konteynerinizi başlattıktan sonra, içine girip ağ yapılandırmasını test edin:
Ana sunucunuzdan (`10.10.10.1`), konteynerin IP'sine (`10.10.10.2`) ping atarak bağlantıyı doğrulayın. Ana sunucunuzun gerçek IP'sinden veya başka bir VM'den bu `10.10.10.2` IP'sine erişemeyeceğinizi göreceksiniz. İşte bu, tam izolasyon!
Ne Zaman Kullanılır?
Bu yöntem, size maliyetsiz, hafif ve son derece güvenli bir kum havuzu (sandbox) sağlar.
Artık riskli denemeleri bu izole ağdaki konteynerlerde yapıp, ana sisteminizi rahat bırakabilirsiniz.
Peki siz benzer test ortamlarınızı nasıl kuruyorsunuz? Proxmox'ta farklı izolasyon veya ağ segmentasyonu yöntemleriniz var mı? Yorumlarda deneyimlerinizi paylaşın!
Selam sistemciler!
Neden böyle bir şeye ihtiyaç duyalım? Ana sunucu ağınız (vmbr0) üzerinden çalışan test konteynerleriniz, yanlışlıkla yapılandırılmış bir servis veya zararlı bir test komutu ile dış dünyaya açık kapı bırakabilir, ya da tam tersi, dışarıdan gelen bir saldırı test sırasında ana sunucunuzu hedef alabilir. İşte bu riski sıfıra indirmenin yolu, onları kendi özel, izole dünyalarında yaşatmaktır. Hadi başlayalım!
Adım 1: Yeni bir Linux Bridge (Köprü) Oluşturmak
İlk iş, Proxmox host'unuzda fiziksel ağa bağlı olmayan yeni bir sanal köprü oluşturmak. Bunun için sunucunuzun shell'ine (terminal) bağlanıyoruz.
Ağ yapılandırma dosyasını açalım:
Bash:
nano /etc/network/interfaces
Dosyanın sonuna, mevcut ağ yapılandırmalarınıza dokunmadan aşağıdaki satırları ekliyoruz. Bu örnekte köprümüze `vmbr10` adını veriyoruz ve ona `10.10.10.1/24` gibi özel bir IP aralığı atıyoruz.
Bash:
# İzole Test Ağı için Bridge
auto vmbr10
iface vmbr10 inet static
address 10.10.10.1/24
bridge-ports none
bridge-stp off
bridge-fd 0
# Aşağıdaki satır IP forwarding'i bu bridge için de aktif eder
post-up echo 1 > /proc/sys/net/ipv4/ip_forward
Değişiklikleri kaydedip çıktıktan sonra, yeni bridge'i aktif edelim:
Bash:
ifup vmbr10
`ip a` komutu ile çıktıyı kontrol ettiğinizde `vmbr10` interface'ini ve ona atadığınız IP'yi görmelisiniz.
Adım 2: LXC Konteyneri Yeni Bridge'e Bağlamak
Şimdi sıra, yeni bir LXC konteyner oluştururken veya mevcut bir konteyneri düzenlerken, onun ağını bu yeni `vmbr10` bridge'ine bağlamakta.
Proxmox Web Arayüzünde:
1. Bir LXC konteynere tıklayın > "Network" sekmesi.
2. "Bridge" dropdown menüsünden `vmbr10`'u seçin.
3. Konteynere `10.10.10.2/24` gibi aynı ağda ama farklı bir IP statik olarak atayabilirsiniz. DHCP kullanmak istemiyoruz çünkü bu izole bir ağ.
4. "IPv4 Gateway" alanına bridge'in IP'sini (`10.10.10.1`) girin.
5. Değişiklikleri uygulayın.
Komut Satırından (CTID konteyner numaranızdır):
Konteynerin config dosyasını düzenleyin:
Bash:
nano /etc/pve/lxc/CTID.conf
Ağ bölümünü şu şekilde güncelleyin:
NGINX:
net0: name=eth0,bridge=vmbr10,ip=10.10.10.2/24,gw=10.10.10.1,type=veth
Adım 3: Ana Sunucuda NAT ve İletim (Forwarding) Ayarları
Şu anda konteynerleriniz `vmbr10` üzerinde birbirleriyle konuşabilir ve gateway (10.10.10.1) üzerinden ana sunucuya ulaşabilir. Ancak dış internete çıkamazlar (ki bu güvenlik için iyidir). Eğer testleriniz için konteynerlere **sadece çıkış yönlü** internet erişimi vermek isterseniz, ana sunucuda NAT kuralları eklemeliyiz.
IPTables kurallarını ekleyelim:
Bash:
# vmbr10'den gelen trafiğin dış dünyaya (vmbr0/wan) çıkmasına izin ver
iptables -t nat -A POSTROUTING -s '10.10.10.0/24' -o vmbr0 -j MASQUERADE
# vmbr10 interface'i üzerinden gelen paketlerin iletilmesine izin ver
iptables -A FORWARD -i vmbr10 -o vmbr0 -j ACCEPT
# İlgili ve kurulu bağlantıların geri dönüşüne izin ver
iptables -A FORWARD -i vmbr0 -o vmbr10 -m state --state RELATED,ESTABLISHED -j ACCEPT
Bu kuralların kalıcı olması için, Proxmox'un `iptables` yapılandırma dosyasına ekleyebilirsiniz. Örneğin `/etc/network/if-up.d/` dizinine bir script oluşturabilirsiniz.
Adım 4: Test ve Doğrulama
Konteynerinizi başlattıktan sonra, içine girip ağ yapılandırmasını test edin:
Bash:
lxc-attach -n CTID
# Konteyner içinde:
ip a show eth0
ping -c 3 10.10.10.1 # Gateway'e ping at
ping -c 3 8.8.8.8 # Eğer NAT kurallarını eklediyseniz, internet erişimini test et
Ana sunucunuzdan (`10.10.10.1`), konteynerin IP'sine (`10.10.10.2`) ping atarak bağlantıyı doğrulayın. Ana sunucunuzun gerçek IP'sinden veya başka bir VM'den bu `10.10.10.2` IP'sine erişemeyeceğinizi göreceksiniz. İşte bu, tam izolasyon!
Ne Zaman Kullanılır?
- Zararlı yazılım (malware) analizi.
- Güvenlik açığı tarama araçlarını (örn., nmap, metasploit) çalıştırma.
- Ağ servislerini (yeni bir database, cache sunucusu) güvenli bir şekilde test etme.
- Geliştirme ortamlarını birbirinden ve production'dan ayırma.
Bu yöntem, size maliyetsiz, hafif ve son derece güvenli bir kum havuzu (sandbox) sağlar.
Peki siz benzer test ortamlarınızı nasıl kuruyorsunuz? Proxmox'ta farklı izolasyon veya ağ segmentasyonu yöntemleriniz var mı? Yorumlarda deneyimlerinizi paylaşın!