Bu gönderi, ağların nasıl çalıştığı ve Linux ekipmanımızı, ister ev ister iş olsun, ağımızı biraz daha fazla sağlayan bir Yönlendiriciye nasıl dönüştürebileceğimiz hakkında biraz açıklama yapmaya çalışıyor. Öyleyse işe başlayalım:
Yönlendirme ve filtreleme
Yönlendirme hakkında konuşmak ve anlamak için önce yönlendiricinin işlevi nedir? Bunun için bir yönlendiricinin, bir ağ oluşturmanın ve diğer ekipmanlarla bağlantıya izin vermenin yanı sıra (bunu bir AP, Switch, Hub veya diğerleri ile yapabileceğimizi bilerek) iki farklı ağı birbirine bağlama yeteneğine sahip olduğunu söyleyebiliriz.
Görüntüde görebileceğimiz gibi, yönlendirici tarafından oluşturulan ve iki arayüzünden birine ulaşan yerel bir ağ "10.0.1.0" var. Daha sonra, diğer arabirimindeki yönlendirici, İnternet'e bağlanabileceği genel IP'si olan başka bir ağa sahiptir. Yönlendirme işlevi temelde bu iki ağ arasında iletişim kurabilmeleri için bir aracı görevi görmektir.
Yönlendirici olarak Linux.
Doğal olarak, Linux Çekirdeği zaten "yönlendirme" yapma yeteneğine sahiptir, ancak varsayılan olarak devre dışıdır, bu nedenle Linux'umuzun bu işi yapmasını istiyorsak, dosyaya gitmeliyiz.
/proc/sys/net/ipv4/ip_forward
Orada sadece sıfır "0" içeren bir dosya olduğunu bulacağız, yapmamız gereken bu davranışı etkinleştirmek için onu bir "1" olarak değiştirmektir. Bu maalesef bilgisayarı yeniden başlattığımızda silinir, varsayılan olarak etkin durumda bırakmak için şu komutu kullanmamız gerekir:
sysctl net.ipv4.ip_forward=1
Veya doğrudan dosyada düzenleyin /etc/sysctl.conf. Dağıtıma bağlı olarak, bu konfigürasyon aynı zamanda bir dosyada da olabilir. /etc/sysctl.d/.
Varsayılan olarak, Linux'umuzun genellikle lan ağımızın yapılandırması ve yönlendiriciye bağlanması olan bir yönlendirme tablosu olmalıdır. Bu yönlendirmeyi görmek istiyorsak iki komut kullanabiliriz:
route -n
o
netstat -nr
Her iki komut da aynı şekilde dönmelidir.
Genel olarak, bu yapılandırma Linux'unuzun bir Ağ Geçidi olarak hizmet vermesi için yeterlidir ve diğer bilgisayarlar bizim bilgisayarımızda gezinebilir. Şimdi, Linux'umuzun yerel olsun ya da olmasın iki veya daha fazla ağı bağlamasını istiyorsak, örneğin, statik rotaları kullanabiliriz.
Linux'umun iki ağ arabirimi olduğunu varsayalım, birincisinin ağ 172.26.0.0 olan bir İnternet bağlantısı var ve ikincisi (10.0.0.0) başka bir yerel ağdan bilgisayarlara sahip. Paketleri diğer ağa yönlendirmek istersek kullanabiliriz:
route add -net 10.0.0.0 netmask 255.0.0.0 gw 172.26.0.8
Genel olarak:
route add -net REDDESTINO netmask MASCARA gw IPDELLINUX
eğer verirsek rota -n bu ağın var olup olmadığına bakılmaksızın, bu yönlendirme tablomuzda düzeltilecektir.
Söz konusu yönlendirmeyi ortadan kaldırmak istiyorsak kullanabiliriz
route del -net 10.0.0.0 netmask 255.0.0.0
Iptable'lar.
Temelde iptables paketleri, giden, gelen veya diğerlerini filtrelemek için kullanılır, bu onu ağ trafiğimizi yönetmek için harika bir araç haline getirir. Eh, iptables, aynı bilgisayardan gelen trafiği filtrelememize izin verdiği gibi, aynı zamanda içinden geçen trafiği filtrelememize de izin verir. (Yönlendirme). Iptables tablolara, zincirlere ve eylemlere bölünebilir.
- Panolar: temelde iki tablo olabilir, filtre, paketleri filtrelemek ve nat adresleri çevirmek, yani bir ağdan diğerine geçmek.
- Zincirler: Zincir, filtrelemek veya yüzmek istediğimiz trafik türünü ifade eder, yani tabloları hangi trafiğe uygulayacağız? ve şunlar olabilir: GİRİŞ: Gelen trafik, ÇIKIŞ: giden trafik veya İLERİ: İçinden geçen trafik, ancak uygun bir bağlantı değil.
- Ayrıca görünebilir SONRAKİ, Paket yönlendirildikten sonra belirli bir şekilde işlem yapmak için kullanılır.
- eylemler: Eylemler temelde zincirle gerçekleştirilecek eylemdir. Bu eylem olabilir DAMLA, bu sadece trafiği yok eder veya KABUL ETMEK. Bu, trafiğin bu işlemi yapmasına izin verir.
IPTABLES kuralları, oluşturuldukları sıraya göre kaydedilir ve yürütülür ve bir kural önceki bir kuralı silerse, sıradaki son kural her zaman uygulanır.
Güvenlik Duvarı Politikaları.
Genel olarak, güvenlik duvarları doğal olarak iki şekilde çalışır:
- Veya dışındaki tüm trafiğe izin ver
- Aşağıdakiler dışında hiçbir trafiğe izin verme ...
Politikaları uygulamak için kullanın IPTABLES - P EYLEM ZİNCİRİ
Dize, trafik türünü (INPUT, OUTPUT, FORWARD, POSTROUTING ...) temsil ettiğinde ve eylem DROP OR ACCEPT şeklindedir.
Bir örneğe bakalım.
Burada ilk başta ping atabildiğimi görüyoruz, sonra IPTABLES'a tüm OUTPUT trafiğinin DROP olduğunu veya izin verilmediğini söyledim. Sonra IPTABLES'a bunu kabul etmesini söyledim.
Sıfırdan bir güvenlik duvarı oluşturacaksak, her zaman (dışında herhangi bir trafiğe izin vermeyin ... Bunun için kuralları uygulamalıyız.
iptables -P INPUT DROP iptables -P OUTPUT DROP iptables -P FORWARD DROP
Geri dönmek için aynısını yazıyoruz ve DROP'u ACCEPT ile değiştiriyoruz.
Bu noktada, tüm trafik reddedildiğinden, IPTABLES'ımıza hangi trafiğe sahip olabileceğini söylemeye başlarız.
Sözdizimi şöyledir:
iptables -A cadena -s ip_orgigen -d ip_destino -p protocolo --dport puerto -j acción
Nerede:
String = INPUT, OUTPUT veya FORWARD
origin_ip = Paketlerin orijini, bu tek bir IP veya ağ olabilir ve bu durumda maskeyi belirlemeliyiz).
Hedef IP = paketlerin nereye gittiği. bu tek bir IP veya ağ olabilir ve bu durumda maskeyi belirlemeliyiz).
protokol = paketler tarafından kullanılan protokolü gösterir (icmp, tcp, udp ...)
port = trafiğin hedef bağlantı noktası.
eylem = DROP veya KABUL.
Örnek:
TÜM kısıtlanmış politikalar geçerlidir.
Ardından TCP protokolü ile 80 HTTP ve 443 HTTPS portları üzerinden trafik alabilmek için kuralları ekliyoruz. Ardından 53 numaralı bağlantı noktası DNS istemcisinin etki alanlarını çözmesi için uygulanır, aksi takdirde gezinemezsiniz. Bu, udp protokolü ile çalışır.
Çizgi:
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
Bunun nedeni şudur: Örneğin bir HTTP isteği yaptığınızda, sunucunun 80 numaralı bağlantı noktasına bağlanırsınız, ancak bilgileri döndürmek için sunucunun herhangi bir bağlantı noktası üzerinden size bağlanması gerekir. (Genellikle 1024'ten büyük).
Tüm bağlantı noktalarımız kapalı olduğundan, 1024'ten yüksek tüm bağlantı noktalarını açmazsak bu gerçekleştirilmeyecektir (Kötü fikir). Bu, kendi kurduğum bir bağlantıdan gelen tüm gelen trafiğin kabul edildiğini söylüyor. Demek istediğim, prensipte başladığım bir bağlantı.
Umarım bu bilgiyi beğenmişsindir. Bir sonraki bölümde NAT, Proxy ve Firewal için betiklerden bahsedeceğim.
Bu, birçok girişimcinin kendi güvenlik duvarlarını üretmek için kullandığı temeldir, bu nedenle piyasada gömülü linux bulunan pek çok güvenlik duvarı markası vardır, bazıları iyi, bazıları ise çok fazla değildir.
Harika makale. İkinci bölümü dört gözle bekliyorum.
Çok iyi bir açıklama, işimin vekaletini anlamama yardımcı oldu. teşekkür ederim
Merhaba Jlcmux,
Mükemmel, gerçekten beğendim, karşı taraf ne zaman müsait olacak?
Selamlar ve paylaşım için teşekkürler
Yorum için teşekkürler.
Diğer bölümü dün gönderdim, gün içinde yayınlayacaklarını düşünüyorum.
Selamlar.
Çok iyi makale arkadaşım @ Jlcmux, onunla gerçekten öğrendim çünkü bir süredir sahip olduğum bazı şüpheleri açıklığa kavuşturdu, bu nedenle makalenin kaynağını, Sébastien BOBILLIER'ın kitabını, iyi slau2s ve şimdi 2. bölümü görmek için salu2s.
Merhaba İsrail'e yorum yaptığınız için teşekkürler.
Kitabın fiziksel formda olduğu ortaya çıktı. Ama bu bağlantıyı Google Kitaplar'da buldum. http://books.google.com.co/books?id=zxASM3ii4GYC&pg=PA356&lpg=PA356&dq=S%C3%A9bastien+BOBILLIER+Linux+%E2%80%93+Administraci%C3%B3n+del+sistema+y+explotaci%C3%B3n+de+los+servicios+de+red#v=onepage&q=
Sanırım tamamlandı.
Çok güzel bir makale, bir soru ekliyorum: Linux'u yönlendirici olarak kullanmanın, eğer varsa, kendisine adanmış bir donanıma göre avantajı ne olabilir? Yoksa sadece egzersiz için mi? Özel dağıtımlar olduğunu biliyorum, ancak eski bilgisayarları kurtaracak mı yoksa yapılandırmada daha fazla esneklik mi sağlayacaklarını bilmiyorum.
Bence avantajları ve dezavantajları, bunu uygulayacağınız senaryoya bağlı. Neden kesinlikle eviniz için bir UTM veya bunun gibi bir şey satın almayacaksınız? Ve belki de karşılayamayacak küçük bir işletme için. Ayrıca, bunun tüm mantığını anlamanıza yardımcı olduğu ve özel bir FWall'ı daha iyi yapılandırabileceğiniz için bir egzersiz olarak da iyidir. Buna ek olarak, neredeyse tüm bu aygıtların sahip oldukları gerçekten Gömülü Linux'tur.
Selamlar.
Merhaba, bir soru, ağlar arasında benzer yönlendirme için linux'ta "yapay" bir arayüz oluşturabilir misiniz? (paket izleyici stili) sanal makinelerle çalışmak için? Örneğin, eth0'a sahipsem (tabii ki tek bir kartım olduğu için) başka bir ağ oluşturmak için eth1 oluşturabilir miyim? Çok iyi öğretmen!
Linux'ta elbette sanal arayüzler oluşturabilirsiniz. Eth0'a sahipseniz, eth0: 0, eth0: 1, eth0: 2 ... vb olabilir.
Çok güzel, paylaştığın için teşekkürler