Mengamankan rangkaian anda dengan Iptables - Proxy - NAT - IDS: BAHAGIAN 1

Catatan ini cuba menjelaskan sedikit tentang bagaimana rangkaian berfungsi dan bagaimana mengubah peralatan Linux kita menjadi Router yang memastikan sedikit lagi rangkaian kita, sama ada ia adalah rumah atau perniagaan. Oleh itu, mari kita pergi ke perniagaan:

Kandungan ini berdasarkan buku "Linux - Sistem Pentadbiran dan Operasi Perkhidmatan Rangkaian" - Sébastien BOBILLIER

Penghalaan dan penapisan

Untuk bercakap dan memahami mengenai penghalaan, pertama-tama kita dapat menentukan apa fungsi penghala? Untuk ini kita dapat mengatakan bahawa penghala, selain membuat rangkaian dan membenarkan sambungan dengan peralatan lain (mengetahui bahawa kita dapat melakukan ini dengan AP, Switch, Hub atau yang lain) mempunyai kemampuan untuk menghubungkan dua rangkaian yang berbeza antara satu sama lain.

penghala

Seperti yang kita lihat dalam gambar, ada jaringan lokal "10.0.1.0" yang dibuat oleh penghala, dan mencapai salah satu dari dua antarmuka. Kemudian penghala pada antara muka yang lain, mempunyai rangkaian lain, dengan IP awamnya yang dapat disambungkan ke Internet. Fungsi routing pada dasarnya berfungsi sebagai perantara antara kedua rangkaian ini sehingga mereka dapat berkomunikasi.

Linux sebagai penghala.

Secara semula jadi, Kernel Linux sudah memiliki kemampuan untuk melakukan "forwarding", tetapi secara lalai ia dilumpuhkan, jadi jika kita mahu Linux kita melakukan kerja ini, kita mesti pergi ke file.

/proc/sys/net/ipv4/ip_forward

Di sana kita akan dapati bahawa itu adalah fail yang hanya berisi nol "0", yang harus kita lakukan adalah mengubahnya menjadi "1" untuk mengaktifkan tingkah laku ini. Sayangnya ini dihapus semasa kita menghidupkan semula komputer, untuk membiarkannya diaktifkan secara lalai, kita mesti menggunakan arahan:

sysctl net.ipv4.ip_forward=1

Atau edit secara langsung dalam fail /etc/sysctl.conf. Bergantung pada pengedaran, konfigurasi ini juga boleh terdapat dalam fail di  /etc/sysctl.d/.

Secara lalai Linux kami mesti mempunyai jadual perutean, yang umumnya merupakan konfigurasi rangkaian lan kami dan sambungan ke penghala. Sekiranya kita ingin melihat penghalaan ini, kita dapat menggunakan dua perintah:

route -n

o

netstat -nr

Kedua-dua arahan harus kembali sama.

Tangkapan skrin dari 2014-09-30 18:23:06

Secara umum, konfigurasi ini cukup untuk Linux anda berfungsi sebagai Gateway dan komputer lain dapat menavigasi melalui komputer kita. Sekarang, jika kita mahu Linux kita menghubungkan dua atau lebih rangkaian, sama ada tempatan atau tidak, misalnya, kita boleh menggunakan laluan statik.

Katakan Linux saya mempunyai dua antara muka rangkaian, yang pertama mempunyai sambungan Internet yang rangkaiannya 172.26.0.0 dan yang kedua (10.0.0.0) mempunyai beberapa komputer dari rangkaian tempatan yang lain. Sekiranya kita ingin merutekan paket ke rangkaian lain itu, kita dapat menggunakan:

route add -net 10.0.0.0 netmask 255.0.0.0 gw 172.26.0.8

Secara amnya adalah:

route add -net REDDESTINO netmask MASCARA gw IPDELLINUX

sekiranya kita memberi laluan -n tidak kira sama ada rangkaian ini wujud atau tidak, penghalaan ini akan diperbaiki dalam jadual kami.

Tangkapan skrin dari 2014-09-30 18:31:35

Sekiranya kita mahu menghilangkan routing yang disebut itu, kita boleh gunakan

route del -net 10.0.0.0 netmask 255.0.0.0

iptables.

Pada dasarnya iptables digunakan untuk penyaringan paket, keluar, masuk atau lain-lain, ini menjadikannya alat yang hebat untuk menguruskan lalu lintas rangkaian kami. Nah, iptables, sama seperti ia membolehkan kita menyaring lalu lintas dari komputer yang sama, ia juga membolehkan kita menyaring lalu lintas yang melaluinya. (Memajukan). Iptables boleh dibahagikan kepada jadual, rantai, dan tindakan.

  • Papan:  pada dasarnya boleh ada dua jadual, penapis, untuk menapis paket dan  nat untuk menterjemahkan alamat, iaitu berpindah dari satu rangkaian ke rangkaian lain.
  • Rantai: Rantai itu merujuk kepada jenis lalu lintas yang ingin kami saring atau berenang, iaitu lalu lintas ke mana kita akan menggunakan jadual? dan mereka boleh:  INPUT: Lalu lintas masuk, PENGELUARAN: lalu lintas keluar atau KE DEPAN: Lalu lintas yang melaluinya, tetapi ia bukan sambungan yang betul.
  • Mungkin juga muncul LALUAN PASCA, yang digunakan untuk merawat paket dengan cara tertentu setelah dihantar.
  • Tindakan: Tindakan pada dasarnya adalah tindakan yang harus dilakukan dengan rantai. Tindakan ini boleh TURUNKAN, yang hanya merosakkan lalu lintas itu atau TERIMA. yang membolehkan lalu lintas melakukan tindakan itu.

Peraturan IPTABLES disimpan dan dijalankan dalam urutan yang dibuat, dan jika peraturan menghapus peraturan sebelumnya, aturan terakhir dalam pesanan selalu diterapkan.

Dasar Firewall.

Secara umum, firewall secara semula jadi berfungsi dengan dua cara:

  1. Benarkan semua lalu lintas kecuali, atau
  2. Jangan biarkan lalu lintas kecuali ...

Untuk menggunakan polisi, gunakan IPTABLES - Rantai TINDAKAN P

Di mana rentetan mewakili jenis lalu lintas (INPUT, OUTPUT, FORWARD, POSTROUTING ...) dan tindakannya HENTI ATAU TERIMA.

Mari lihat contohnya.

Tangkapan skrin dari 2014-09-30 18:53:23

Di sini kita melihat bahawa pada mulanya saya dapat melakukan ping, kemudian saya memberitahu IPTABLES bahawa semua trafik OUTPUT BERHENTI atau tidak dibenarkan. Kemudian saya memberitahu IPTABLES untuk menerimanya.

Sekiranya kita akan membina firewall dari awal kita mesti selalu menerapkan peraturan (Jangan biarkan lalu lintas kecuali ... Untuk ini maka kita menerapkan peraturan

iptables -P INPUT DROP iptables -P OUTPUT DROP iptables -P FORWARD DROP
Sekiranya dasar ini berlaku, mereka tidak akan mempunyai jenis sambungan
.

Untuk kembali, kita tulis yang sama dan ganti DROP dengan ACCEPT.

Pada ketika ini, kerana semua lalu lintas ditolak, kami mula memberitahu IPTABLES lalu lintas apa yang dapat dimiliki.

Sintaksnya adalah:

iptables -A cadena -s ip_orgigen -d ip_destino -p protocolo --dport puerto -j acción

Donde:

Rentetan = INPUT, OUTPUT atau KE DEPAN

asal_ip = Asal paket, ini boleh menjadi satu IP atau rangkaian dan dalam kes ini kita mesti menentukan topengnya).

destinasi_ip = ke mana paket pergi. ini boleh menjadi satu IP atau rangkaian dan dalam kes ini kita mesti menentukan topengnya).

protokol = menunjukkan protokol yang digunakan oleh paket (icmp, tcp, udp ...)

pelabuhan = pelabuhan tujuan lalu lintas.

tindakan = TETAP atau TERIMA.

Contoh:

Tangkapan skrin dari 2014-09-30 19:26:41

SEMUA polisi terhad dikenakan.

Tangkapan skrin dari 2014-09-30 19:27:42

Kemudian kami menambahkan peraturan untuk dapat memiliki lalu lintas melalui port 80 HTTP dan 443 HTTPS, dengan protokol TCP. Kemudian port 53 Ia digunakan untuk klien DNS untuk menyelesaikan domain, jika tidak, anda tidak akan menavigasi. Ini berfungsi dengan protokol udp.

Garisan itu:

iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

Ini kerana perkara berikut: Apabila anda membuat permintaan HTTP misalnya, anda menyambung ke port 80 pelayan, tetapi pelayan untuk mengembalikan maklumat perlu berhubung dengan anda melalui port mana pun. (Secara amnya lebih besar daripada 1024).

Oleh kerana semua port kita ditutup, ini tidak akan dapat dicapai kecuali kita membuka semua port yang lebih tinggi dari 1024 (Idea buruk). Apa yang dinyatakan ini adalah bahawa semua lalu lintas masuk yang datang dari sambungan yang saya buat sendiri diterima. Maksud saya, hubungan yang pada dasarnya saya mulakan.

Ketika memasukkan OUTPUT dalam peraturan, ini hanya berlaku untuk peralatan yang dimaksud, jika kita menggunakan peralatan kita sebagai penghala untuk membenarkan sambungan ini, kita harus mengubah OUTPUT menjadi KEHADAPAN. Oleh kerana lalu lintas melalui komputer tetapi tidak dimulakan olehnya
Semua peraturan ini dihapus setelah dimulakan semula, jadi anda harus membuat skrip supaya ia dimulakan secara lalai. Tetapi kita akan melihatnya pada masa akan datang

Saya harap anda menyukai maklumat ini. Pada yang seterusnya saya akan bercakap mengenai NAT, Proksi dan skrip untuk Firewal.


12 komen, tinggalkan komen anda

Tinggalkan komen anda

Alamat email anda tidak akan disiarkan. Ruangan yang diperlukan ditanda dengan *

*

*

  1. Bertanggungjawab atas data: Miguel Ángel Gatón
  2. Tujuan data: Mengendalikan SPAM, pengurusan komen.
  3. Perundangan: Persetujuan anda
  4. Komunikasi data: Data tidak akan disampaikan kepada pihak ketiga kecuali dengan kewajiban hukum.
  5. Penyimpanan data: Pangkalan data yang dihoskan oleh Occentus Networks (EU)
  6. Hak: Pada bila-bila masa anda boleh menghadkan, memulihkan dan menghapus maklumat anda.

  1.   Rogelio pinto kata

    Ini adalah asas yang diambil oleh banyak pengusaha untuk membuat firewall mereka sendiri, sebab itulah terdapat begitu banyak jenama firewall dengan linux tertanam di pasaran, ada yang bagus dan yang lain tidak begitu banyak.

  2.   Heber kata

    Artikel yang sangat baik. Saya menantikan bahagian kedua.

  3.   Milton kata

    Penjelasan yang sangat baik, ia membantu saya memahami proksi kerja saya. Terima kasih

  4.   faustod kata

    Helo Jlcmux,

    Hebat, saya sangat menyukainya, bila pihak lain akan tersedia?

    Salam dan terima kasih kerana berkongsi

    1.    @Jlcmux kata

      Terima kasih atas komen.

      Saya menghantar bahagian yang lain semalam, dalam tempoh hari saya fikir mereka akan menerbitkannya.

      Greetings.

  5.   Israel kata

    Rakan artikel yang sangat baik @ Jlcmux, saya benar-benar belajar dengannya kerana dia menjelaskan beberapa keraguan yang saya miliki selama ini, dengan cara anda tidak keberatan untuk berkongsi buku sumber artikel itu, buku Sébastien BOBILLIER, baik slau2s dan sekarang untuk melihat bahagian ke-2, salu2s.

    1.    @Jlcmux kata

      Helo Terima kasih kerana mengulas Israel.

      Ternyata saya mempunyai buku dalam bentuk fizikal. Tetapi saya menjumpai pautan ini di Buku Google. 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=

      Saya rasa sudah lengkap.

  6.   Ariel kata

    Artikel yang sangat bagus, saya menambah pertanyaan: Apa kelebihan menggunakan linux sebagai penghala, jika ada, berkenaan dengan perkakasan yang didedikasikan untuknya? Atau hanya untuk bersenam? Saya tahu ada distro khusus tetapi saya tidak tahu apakah mereka menyelamatkan PC lama atau memberikan lebih banyak kelenturan dalam konfigurasi.

    1.    @Jlcmux kata

      Saya rasa kelebihan dan kekurangan bergantung pada senario di mana anda akan melaksanakannya. Mengapa pasti anda tidak akan membeli UTM atau seumpamanya untuk rumah anda? Dan mungkin untuk perniagaan kecil yang tidak mampu. Ia juga bagus sebagai latihan, kerana ia membantu anda memahami semua logik ini dan anda dapat mengkonfigurasi FWall khusus dengan lebih baik. Selain itu hampir semua peranti ini yang mereka miliki adalah Embedded Linux.

      Greetings.

  7.   Ariel kata

    Helo, soalan, bolehkah anda menghasilkan antara muka "buatan" di linux untuk perutean yang serupa antara rangkaian? (gaya pelacak paket) untuk bekerja dengan mesin maya? contohnya jika saya mempunyai eth0 (kerana saya mempunyai kad tunggal) bolehkah saya membuat eth1 untuk membuat rangkaian lain? Tutor yang sangat baik!

    1.    meriah kata

      Di Linux, anda tentu boleh membuat antara muka maya. Sekiranya anda mempunyai eth0, anda boleh mempunyai eth0: 0, eth0: 1, eth0: 2 ... dll

  8.   chinoloco kata

    Bagus, terima kasih kerana berkongsi