İpv4 ve ipv6 iptables için paralel kuralları mı yönetiyorsunuz?


10

Kısa bir süre önce IPv6 ile denemeler yapmaya başladık ve tartışmamız gereken ilk sorunlardan biri, iki protokol yığını için tamamen ayrı bir güvenlik duvarı (Linux iptables / ip6ables) kurallarıyla ilgilenmektir. Güvenlik duvarı mantığımız büyük ölçüde amaca özel bazı ağlara dayanmaktadır (örneğin, 10.0.0.0/24 personel iş istasyonu ağı, 10.1.0.0/24 veritabanı ağı, 10.2.0.0/24 web sunucusu ağı vb. ) ve hem IPv6 hem de IPv4 için mantık büyük ölçüde aynı, modulo farklı ağ önekleri olacaktır.

İnsanlar bu tür bir durumu yönetmek için ne yapıyor? İdeal olarak ben aynı kaynak dosya (lar) hem iptables ve ip6table kural kümeleri oluşturmak edebilmek istiyorum. Ben zaten bash kullanarak bir şeyler attım, ama mutlaka güzel değil ve orada bir yerde daha iyi bir çözümün olması gerektiğinden şüpheleniyorum.

Kuralların (veya kural gruplarının) göreli sırasını uygulamak için Kukla'nın kendi bağımlılık mekanizmalarını iyi kullanan Kukla tabanlı bir çözümle ilgileniyorum.

Yanıtlar:


5

Firewall Builder'da tam olarak ihtiyacınız olan şey var. Bir kural kümesi oluşturabilir, "birleşik ipv4 + ipv6" olarak işaretleyebilir ve ipv4 ve ipv6 ağlarınızı aynı segmente ("veritabanı ağı" etC gibi) atanmış aynı kurala yerleştirebilirsiniz. Program daha sonra biri ipv4 ve diğeri ipv6 için olmak üzere iki ayrı iptables yapılandırması oluşturur. Kullanım Kılavuzu'nun bu bölümü, örnek olarak Cisco yönlendiricileri erişim listelerini kullanmasına rağmen bunu göstermektedir. Iptables için tamamen aynı şekilde çalışır.

http://www.fwbuilder.org/4.0/docs/users_guide5/combined-ipv4-ipv6-rule-set.html


4

Ayrıca son zamanlarda hem IPv4 hem de IPv6 için iptables kuralları oluşturma ile karşı karşıya kaldım. Biraz arama yaptıktan sonra Phil Whineray'ın IPv6 FireHOL şubesini kullandım .

FireHOL, durumdaki iptables paket filtreleme güvenlik duvarları üreten, herhangi bir sayıda ağ arabirimine, herhangi bir sayıda yola, sunulan herhangi bir hizmet sayısına, hizmetlerin varyasyonları arasındaki herhangi bir karmaşıklığa (pozitif ve negatif dahil) sahip, iptable paket filtreleme güvenlik duvarları üreten bir iptables güvenlik duvarı üreticisidir. ifade). (Kaynak: FireHOL web sitesi)

Ne yazık ki resmi sürümde IPv6 desteği bulunmamaktadır. Ancak Phil Whineray, resmi olmayan bir şubeye destek ekledi.

Yapılandırmanın nasıl göründüğüne ilişkin bazı örnekler:

# allowing outgoing http and https requests for ipv4 and ipv6 (default setting when nothing is specified):
client "http https" accept

# allow incoming ssh only on ipv4
ipv4 server ssh accept

# allow incoming IMAP requests only for ipv6
ipv6 server imap accept

Bu firehol şubesine şu adresten bakabilirsiniz:

git clone git://repo.or.cz/fireholvi.git

Ek belgeler resmi FireHOL belgelerinde veya IPv6 ile ilgili ek Benioku dosyasında bulunabilir .

Şahsen,% 100 güvenilir bir güvenlik duvarına sahip olmanın önemli olduğu bir üretim makinesinde kullanırken dikkatli olurum. Ama yine de bir göz atmaya değer.


3

Davanın devam eden evanjelizmi ilgilendirmek için, kaldırma işleminizi yapmak için Kukla'dan yararlanmanızı öneririm. Şu anda iptables 4 ve 6 kurallarını işlemek için iyi bir komut dosyası yoktur, ancak dile ayarladıktan sonra bir tane yazmak çok zor olmaz.

Mediawiki'nin genel git deposu , yapılandırma desenlerinin harika bir madenidir ve başlangıç ​​için iyi bir temel sağlayacak bir iptables sınıfı içerir . IPv4 veya IPv6 kurallarına dayandırdığınızda, varsayılan olarak her iki yığına aynı anda kural uygulamak için düzenleyebilir ve farklı kurallar için bayraklara sahip olabilirsiniz.

Bunun sonunda elde edilen en büyük bonus, bir hizmet için güvenlik duvarı kurallarının hizmet tanımına yazılabilmesi ve bir hizmet dağıtıldığında veya kaldırıldığında otomatik olarak dağıtılabilmesidir.


Bir bakacağım. Genellikle iptables yönetmek için tipik Kukla tabanlı çözümler ile bugüne kadar etkilenmedim. Özellikle, hepsi, gerçekten istediğim şey olan Kukla'nın bağımlılık çözümleme mekanizmalarını kullanmak yerine, parça dosyalarının dosya adları veya Kukla kurallarında sağlanan açık dizinler aracılığıyla siparişi açıkça uygulamaktadır. Burada bağlantılı çözüm bu sorunlardan kaçınırsa ben bunun için varım.
larsks

@larsks Kabul ediyorum ve benzer bir şekilde iyi bir jenerik çözümün serbest bırakılmadığı için hayal kırıklığına uğradım ... ama belki de sadece kendim yaptım. Kukla before => Resource['declared_name']herhangi bir tanımda kullanılmasına izin verir , böylece parçaları parçalarla sipariş etmeye çalışmayan bir uygulamayı kullanarak sipariş edebilirsiniz. Augueas'ın yapı için iyi bir kullanımı da bu sorunu önleyecektir - en iyi ağaç yorumlarınızı ve siparişinizi istediğiniz gibi yapın.
Jeff Ferland

Bunu çözme çabalarım çok uzağa gitmedi. Şimdilik yaptığım şey, (a) parçaları bir alt dizine kurmak ve (b) onları bağımlılık sırasına koymak için rcorder kullanmaktır . Çalışır, ancak yalnızca parça dosyalarını yönetmeye dayandığından, karışık bir ipv4 / ipv6 ortamına borç vermez. Sorunu çözmeye yardımcı olmak için Augeas'ı kullanmaya yakından bakmadım. Orada herhangi bir prototip kodunuz olup olmadığını merak ediyorum.
larsks

2

Burada kendi sorumu cevaplıyorum, ancak bu bilginin genel olarak ilgi çekici olabileceğini düşündüm:

Bu soruya bakarken Ubuntu milletinden ufw ( Karmaşık olmayan FireWall) karşısında tökezledi . Ufw yapılandırmasında IPV6 etkinken, ufw iptables ve ip6tables kurallarını paralel olarak yönetir. Bu, bunun gibi bir şey yapabileceğiniz anlamına gelir:

# ufw allow ssh/tcp

Ve sonunda:

# ufw status
Status: active

To                         Action      From
--                         ------      ----
22/tcp                     ALLOW       Anywhere
22/tcp                     ALLOW       Anywhere (v6)

Aşağıdaki gibi görünen iptables / ip6tables kurallarıyla sonuçlanır:

# iptables-save | grep 'dport 22'
-A ufw-user-input -p tcp -m tcp --dport 22 -j ACCEPT
# ip6tables-save | grep 'dport 22'
-A ufw6-user-input -p tcp -m tcp --dport 22 -j ACCEPT

Ufw ayrıca adlandırılmış bağlantı noktası grupları oluşturmanıza izin veren uygulama profillerini de destekler. Bunu yapabilirsiniz:

# ufw allow 'WWW Full'

Ve hem 80 hem de 443 numaralı bağlantı noktalarını açın (hem IPv4 hem de IPv6 için).

Daha yeni bakmaya başladım, ancak oldukça iyi bir şekilde bir araya getirilmiş gibi görünüyor.


0

Listede hala eksik olduğu için: Shorewall , yaygın olarak benimsenen ve düzenli olarak güncellenen zengin özelliklere sahip bir paket filtre yapılandırma aracıdır. Bir süredir IPv6 desteği vardı .


1
Anladığım kadarıyla "shorewall" sadece ipv4 ve "shorewall6" sadece ipv6, anod biri her iki protokolü de kapsayacak şekilde her ikisini de kullanmalıdır. Ortak bir yapılandırmayı paylaşabilirler mi?
larsks
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.