iptables untuk pemula, ingin tahu, berminat (Bahagian 2)

Apabila DesdeLinux solo tenía pocos meses de vida escribí un tutorial extremadamente simple de entender sobre iptables: iptables untuk pemula, ingin tahu, berminat (bahagian 1) . Menggunakan metafora seperti membandingkan komputer kita dengan rumah kita, firewall kita dengan pintu rumah, dan juga contoh lain, saya menerangkan dengan cara yang menghiburkan, tanpa begitu banyak teknikal atau konsep yang rumit, apa itu firewall, apa itu iptables dan bagaimana mula menggunakannya dan konfigurasikan. Ini adalah kesinambungan, bahagian ke-2 dari tutorial iptables sebelumnya 🙂

Ia berlaku bahawa beberapa hari yang lalu menggunakan Linksys AP (Access Point) saya meletakkan Wifi di rumah teman wanita saya, walaupun kawasan ini bukan yang paling berpengetahuan dari segi teknologi, iaitu, tidak ada banyak bahaya keretakan, selalu Idea yang baik untuk mempunyai keselamatan yang sangat baik di Wifi dan di komputer.

Saya tidak akan mengulas mengenai keselamatan Wifi di sini, kerana ini bukan objektif siaran, saya akan memberi tumpuan kepada konfigurasi iptables yang saya gunakan pada komputer riba saya.

Perintah berikut dijalankan di terminal, mereka harus dilaksanakan dengan hak pentadbir, saya akan menambahkan sudo ke setiap perintah, anda dapat melakukan hal yang sama atau mengelakkan penggunaan sudo dengan menjalankan perintah secara langsung sebagai root

Dalam catatan sebelumnya, saya telah menjelaskan bahawa perlu di firewall untuk menolak semua lalu lintas yang masuk, untuk ini:

sudo iptables -P INPUT DROP

Maka kita mesti membiarkan komputer kita sendiri mempunyai kebenaran untuk memasukkan data:

sudo iptables -A INPUT -i lo -j ACCEPT

Serta menerima paket permintaan yang berasal dari komputer kami:

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

Untuk pemahaman yang lebih baik mengenai baris-baris ini, saya cadangkan membaca separuh pertama artikel sebelumnya: iptables untuk pemula, ingin tahu, berminat (bahagian 1)

Sejauh ini komputer kita dapat menavigasi internet tanpa masalah, tetapi tidak seorang pun dari persekitaran lain (LAN, internet, Wifi, dll.) Akan dapat mengakses komputer kita dengan cara apa pun. Kami akan mula mengkonfigurasi iptables mengikut keperluan kami.

Menggunakan ulogd untuk mengeluarkan log iptables ke fail lain:

Secara lalai, log iptables masuk dalam kernel log, log sistem, atau seumpamanya ... di Arch secara lalai, sekarang saya tidak ingat ke mana ia pergi, itulah sebabnya saya menggunakan ulogd supaya log iptables ada dalam fail lain.

sudo iptables -A INPUT -p tcp -m tcp --tcp-flags FIN,SYN,RST,ACK SYN -j ULOG

Memberi akses ke pelayan peribadi saya:

Saya tidak menggunakan VirtualBox atau yang serupa dengan maya, saya mempunyai pelayan peribadi saya yang maya Qemu + KVM yang mesti dapat menyambung ke komputer riba saya seperti itu, dengan peraturan iptables yang saya nyatakan di atas tidak akan dapat, sebab itulah saya harus memberi kebenaran kepada IP pelayan maya saya supaya dapat mengakses komputer riba saya:

sudo iptables -A INPUT -i virbr0 -p tcp -s 192.168.122.88 -j ACCEPT

Kami akan memperincikan baris ini, penting bagi anda untuk memahami apa yang dimaksudkan oleh setiap parameter, kerana ia akan berulang dari sekarang:

-PASARAN : Saya mengatakan saya akan menyatakan peraturan untuk lalu lintas masuk

-saya virbr0 : Saya menyatakan bahawa antara muka di mana saya akan menerima trafik bukan eto (LAN) atau wlan0 (Wifi), saya secara khusus mengatakan bahawa itu adalah antara muka virbr0 saya, iaitu antara muka rangkaian maya (dalaman) melalui mana komputer riba saya berkomunikasi dengan pelayan maya saya (dan sebaliknya)

-p tcp : Saya menentukan protokol, yang paling banyak digunakan adalah UDP dan TCP, di sini sudah cukup untuk tidak meletakkan ini tetapi ... adalah kebiasaan untuk menentukan jenis protokol yang akan diterima

-s 192.168.122.88 : Sumber, sumber pakej. Artinya, peraturan tersebut merujuk kepada paket yang datang secara khusus dari IP 192.168.122.88

-j TERIMA : Sudah di sini saya menyatakan apa yang ingin saya lakukan dengan pakej yang sesuai dengan perkara di atas, dalam hal ini terima.

Dengan kata lain, sebagai ringkasan, saya akan menerima paket yang berasal dari IP 192.168.122.88, tetapi sekiranya anda ingin memasukkan paket yang berasal dari IP itu TETAPI! Mereka masuk dari antara muka yang bukan virbr0, iaitu mengatakan bahawa mereka cuba memasukkan paket dari IP 192.168.122.88 tetapi mereka berasal dari komputer di rangkaian Wifi kami, jika demikian, paket akan ditolak. kenapa? Kerana kami menyatakan dengan jelas bahawa ya, kami menerima paket dari 192.168.122.88 ya, tetapi dan hanya tetapi, mereka juga harus memasukkan dari antara muka virbr0 (dalaman, antara muka rangkaian maya), jika paket tersebut berasal dari antara muka lain (LAN, RAS, Wifi, dll) maka mereka tidak akan diterima. Dengan menentukan antara muka seperti yang anda lihat, kita dapat membataskannya lebih jauh lagi, kita dapat mempunyai kawalan yang lebih baik terhadap apa yang memasuki (atau tidak masuk) komputer kita.

Menerima ping dari mana-mana IP Wifi rumah:

Dari beberapa komputer lain yang menyambung ke Wifi, jika anda cuba melakukan ping komputer riba saya, saya mahu membenarkannya. akal? Ideanya juga adalah bahawa dalam beberapa minggu ke depan untuk menghubungkan PC di rumah di sebelah rangkaian, jadi berkongsi maklumat akan menjadi lebih rumit, lebih lancar, ketika saya mula melakukan ujian untuk menghubungkan desktop ke Wifi, saya perlu melakukan ping komputer riba untuk memeriksa kesambungan, jika komputer riba saya tidak menunda saya, saya dapat berfikir bahawa AP gagal, atau ada ralat semasa mengakses Wifi, sebab itulah saya mahu membenarkan ping.

sudo iptables -A INPUT -i wlo1 -p icmp -s 192.168.1.0/24 -d 192.168.1.51 -j ACCEPT

-PASARAN : Sama seperti sebelumnya, saya merujuk kepada lalu lintas masuk

-saya wlo1 : Sama seperti sebelumnya. Dalam kes sebelumnya saya menentukan antara muka maya, dalam kes ini saya menentukan antara muka lain, iaitu wifi saya: wlo1

-p icmp : Protokol Icmp, icmp = ping. Maksudnya, saya tidak membenarkan SSH atau yang serupa, saya hanya membenarkan ping (icmp)

-s 192.168.1.0/24 : Sumber paket, selagi paket itu berasal dari IP 192.168.1.? akan diterima

-d 192.168.1.51 : IP Destinasi, iaitu IP saya.

-j TERIMA : Saya menunjukkan apa yang harus dilakukan dengan pakej yang sesuai dengan perkara di atas, terima.

Maksudnya, dan untuk menerangkan ini secara berjalan, saya menerima bahawa mereka melakukan ping saya (protokol icmp) yang tujuannya adalah IP saya secara khusus, asalkan mereka berasal dari IP seperti 192.168.1 .__ tetapi juga, mereka tidak boleh datang dari antara muka rangkaian mana pun , mereka harus memasukkan secara khusus dari antara muka rangkaian Wifi saya (wlo1)

Terima SSH hanya untuk satu IP:

Kadang-kadang saya perlu berhubung dengan SSH dari telefon pintar saya untuk mengawal komputer riba, sebab itulah saya mesti membenarkan SSH mengakses komputer riba saya dari IP Wifi saya, untuk ini:

sudo iptables -A INPUT -i wlo1 -p tcp -s 192.168.1.0/24 -d 192.168.1.51 --dport 22 -j ACCEPT

Dari baris ini, satu-satunya perkara yang berbeza atau wajar diketengahkan adalah: –Dport 22 (Port SSH yang saya gunakan)

Maksudnya, saya menerima percubaan untuk menyambung ke komputer riba melalui port 22, selagi mereka berasal dari mana-mana IP wifi saya, mereka juga harus mempunyai IP saya sebagai tujuan tertentu dan juga melalui antara muka wlo1, iaitu wifi saya (bukan lan, dll)

Membolehkan mereka melihat laman web anda:

Ini bukan masalah saya, tetapi jika ada di antara anda yang mempunyai laman web yang dihoskan dan tidak mahu menolak akses kepada sesiapa, iaitu setiap orang dari mana sahaja boleh mengakses laman web itu, jauh lebih mudah daripada yang anda fikirkan:

sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT

Dengan kata lain, di sini mereka membenarkan semua lalu lintas masuk (tcp) melalui port 80. Seperti yang anda lihat, saya tidak menentukan dari mana IP atau rangkaian mana yang saya izinkan untuk mengakses, dengan tidak menentukan julat IP yang dibenarkan, iptables menganggap bahawa saya ingin membenarkan akses ke semua julat IP yang ada, iaitu ke seluruh dunia 🙂

Kombinasi lain:

Saya mempunyai banyak peraturan lain seperti, misalnya, menerima ping untuk IP dari LAN rumah saya (untuk ini pada dasarnya adalah garis yang sama seperti di atas, mengubah julat IP), yang lebih kurang sama seperti yang saya jelaskan di atas ... di saya komputer riba seperti itu saya tidak menggunakan perkara yang sangat rumit, iaitu hubungan yang terhad, anti DDoS, saya membiarkannya untuk pelayan, pada komputer riba saya tidak memerlukannya 🙂

Bagaimanapun, setakat ini artikel.

Seperti yang anda lihat, bekerja dengan iptables tidak terlalu rumit atau lebih kurang, setelah anda membina skrip di mana anda menulis peraturan anda, sangat mudah kemudian ubah, tambahkan atau hapus peraturan ke firewall anda.

Saya tidak menganggap diri saya seorang pakar dalam subjek ini, jauh dari itu, walaupun ada sebarang pertanyaan yang anda ada, mereka memberi komen di sini, saya akan berusaha menolong anda semampu saya.

salam


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.   mengambil risiko kata

    Sangat bagus, dijelaskan dengan baik, hebat.
    Saya suka jenis jawatan ini.

    1.    KZKG ^ Gaara kata

      Terima kasih banyak memberi komen 🙂

      Posting ini adalah hutang yang saya ada sejak sekian lama, pada akhirnya senang dan senang dapat melunaskannya ^ _ ^

      salam

      1.    FIXOCONN kata

        soalan adakah anda di Cuba?
        ... Kebetulan beberapa hari yang lalu menggunakan Linksys AP (Access Point) saya meletakkan Wifi di rumah teman wanita saya

        1.    KZKG ^ Gaara kata

          Ya tentu saja, saya dilahirkan dan tinggal di Cuba. mengapa persoalannya?

        2.    Sam burgos kata

          @FIXOCONN: Halo kawan dan maafkan persoalan ini, tetapi bagaimana anda menentukan Cinnamon untuk muncul sebagai persekitaran desktop di ejen pengguna? Saya menggunakan Mint 13 dengan Cinnamon, tetapi tidak semestinya logo Cinnamon muncul di ejen pengguna saya setiap kali saya mengulas di laman web ini

          Adakah anda akan memberikan maklumat ejen pengguna anda kepada saya sekiranya tidak terlalu banyak masalah? Saya ingin mengetahui bahawa data untuk meletakkannya sendiri =)

          Saya meninggalkan anda halaman supaya anda dapat menyemaknya dan memberi saya maklumat. Terima kasih dan pentadbir, maafkan "trolling" (jika anda boleh menyebutnya) di pihak saya dengan maklumat ini -> http://user-agent-string.info/

          1.    KZKG ^ Gaara kata

            Tambahkan "Cinnamon" (tanpa tanda petik) ke mana-mana bahagian UserAgent, maka logo akan muncul di komen yang akan datang 🙂

  2.   Bruno cascio kata

    Posisi sangat bagus! sangat jelas 😀

    1.    KZKG ^ Gaara kata

      Terima kasih kerana membaca kami dan terima kasih atas komen anda 🙂

  3.   lembah kata

    Terima kasih! Ini sangat membantu saya!

  4.   Oscar Grenada kata

    Helo, pertama-tama, tahniah untuk blog ini, saya rasa ia hebat.
    Sesuatu yang mungkin perlu disebutkan ialah pilihan untuk log masuk dengan ULOG tidak berfungsi dalam sistem operasi yang mempunyai ulogd2, untuk hal ini aturannya harus:
    sudo iptables -A INPUT -p tcp -m tcp –tcp-flags FIN, SYN, RST, ACK SYN -j NFLOG

    1.    KZKG ^ Gaara kata

      Pertama sekali, terima kasih banyak untuk apa yang anda katakan mengenai blog 🙂

      Di Arch saya telah memasang ulogd v2.0.2-2, dan garis yang saya letakkan berfungsi tanpa masalah (saya harus meletakkan loglevel = 1 di /etc/ulogd.conf, tetapi memerlukan log ke fail lain tanpa masalah.

      Menggunakan ulogd v2 atau lebih tinggi, adakah garis yang saya tinggalkan berfungsi dengan baik?

      Salam dan terima kasih kerana memberi komen.

  5.   Bandar kata

    Saya selalu menunggu bahagian kedua, saya masih ingat ketika membaca yang pertama (ini adalah permulaan saya di firewall). Terima kasih @ KZKG ^ Gaara, salam 🙂

    1.    KZKG ^ Gaara kata

      Terima kasih kerana membaca saya 😀
      Dan hehe ya, saya katakan ... catatan ini adalah hutang yang saya ada sejak lama dahulu ^ _ ^

  6.   Gambar placeholder Jose Luis Gonzalez kata

    Salam. Posisi yang sangat baik. Saya cuba mengkonfigurasi peraturan iptables untuk mengarahkan lalu lintas dari sotong ke dansguardian dan ia masih tidak mencapai matlamat. Saya menghargai pertolongan dalam hal ini.

    1.    KZKG ^ Gaara kata

      iptables untuk itu? Bukankah itu dilakukan secara langsung dengan ACL di Squid?

  7.   tidak bernama kata

    "Saya mempunyai banyak peraturan lain seperti .."
    Inilah yang saya panggil paranoia, nak
    Sedikit lagi dan anda meletakkan sebungkus Rotwailer di setiap port terbuka pada modem / penghala anda 🙂

    1.    KZKG ^ Gaara kata

      HAHAHAHAHAHAHAHAHAHA saya ketawa terbahak-bahak dengan penceroboh hahahaha

  8.   Ivan kata

    Salam kawan, kebetulan saya memerlukan bantuan untuk mengkonfigurasi IPTables sedemikian rupa sehingga ia menolak akses hanya untuk port 80 ketika saya menaip alamat di penyemak imbas pelayan nama khas saya, ketika itulah misalnya saya menaip ns1.mydomain.com dan ns2.mydomain. com (yang merupakan nameserver saya) IPtables menolak akses ke port 80 sehingga penyemak imbas cuba memuat halaman tetapi setelah beberapa lama ia habis masa berlakunya dan tidak pernah dimuat, kebetulan saya telah mencuba dengan perintah seperti ini:

    iptables -A INPUT -d ns1.midomini.com -p tcp –dport 80 -j DROP
    iptables -A INPUT -d ns2.midomini.com -p tcp –dport 80 -j DROP

    Tetapi satu-satunya perkara yang dilakukannya ialah menolak masuk ke port 80 di semua domain saya (kerana mereka berkongsi IP yang sama dengan Virtual Host), saya mahu ia hanya berada di url pelayan nama saya dan IP yang dituju oleh pelayan nama saya , iaitu, jadual IP menolak akses ke port 80 di:

    ns1.midomini.com (Menunjuk A) -> 102.887.23.33
    ns2.midomini.com (Menunjuk A) -> 102.887.23.34

    dan IP yang ditunjukkan oleh pelayan nama

    102.887.23.33
    102.887.23.34

    Contoh syarikat yang mempunyai sistem ini ialah: Dreamhost
    Pelayan nama mereka: ns1.dreamhost.com dan ns2.dreamhost.com dan IP yang mereka tunjuk untuk tidak bertindak balas ketika menaip di bar alamat penyemak imbas

    Terima kasih banyak atas perhatian anda, saya sangat ingin anda memberi saya bantuan ini, saya sangat memerlukannya dan segera !!

    Selamat hari !!

    1.    KZKG ^ Gaara kata

      Helo Ivan,

      Contáctame por email (kzkggaara[at]desdelinux[dot]net) para hablarlo con más calma y explicarte mejor, mañana sin falta te respondo (hoy estoy de pasada)

      Apa yang anda mahu lakukan adalah mudah, saya tidak tahu mengapa garis yang anda ceritakan tidak sesuai untuk anda, tetapi anda harus memeriksa log dan perkara lain yang terlalu lama di sini.

      Salam dan saya menunggu e-mel anda

  9.   neysonv kata

    secara teori dengan iptables saya dapat mengelakkan daripada dihantar permintaan pemutusan dari program seperti aircrack. Saya betul??? Baiklah, saya akan melakukan ujian, tetapi jika anda memberitahu saya bahawa anda akan membuat saya sangat gembira

    1.    KZKG ^ Gaara kata

      Secara teori saya rasa begitu, sekarang, saya tidak tahu bagaimana ia dapat dilakukan, saya tidak pernah melakukannya ... tetapi saya ulangi, secara teori, saya rasa ia boleh.

  10.   Alex kata

    Setelah menerapkan peraturan iptables, mustahil untuk saya mengakses folder windows bersama di rangkaian tempatan. Peraturan apa yang harus saya gunakan untuk memperbaikinya?
    Terima kasih.

    1.    KZKG ^ Gaara kata

      Peraturan iptables apa yang anda pakai?
      Ini adalah bahagian ke-2 dari "iptables for newbies", adakah anda membaca yang pertama? Saya meminta ini untuk mengetahui sama ada anda menggunakan peraturan yang ada dalam catatan sebelumnya

      1.    Alex kata

        Ya, saya telah membaca kedua-dua bahagian. Untuk skrip saya mendasarkan pada posting lain yang anda hantar mengenai memulakan peraturan dengan systemd.

        #! / Bin / Bash
        # - UTF 8 -

        # Perduaan iptables
        iptables = »/ usr / bin / iptables»

        membuang ""

        ## Bersihkan meja ##
        $ iptables -F
        $ iptables -X
        $ iptables -Z
        #echo »- Dibuat FLUS ke iptables» && echo »»

        ## Membuat log dengan ULOGD ##
        $ iptables -A INPUT -p tcp -m tcp –tcp-flags FIN, SYN, RST, ACK SYN -j ULOG

        ## Tentukan dasar DROP lalai ##
        $ iptables -P INPUT HABIS
        $ iptables -P KEHADIRAN HUJUNG
        #echo »- Dasar DROP ditentukan secara lalai» && echo »»

        ## Benarkan semuanya ke localhost ##
        $ iptables -A INPUT -i lo -j MENERIMA
        $ iptables-SEBUAH OUTPUT -o lo -j MENERIMA
        #echo »- Semua dibenarkan untuk localhost» && echo »»

        ## Benarkan memasukkan paket sambungan yang saya mulakan ##
        $ iptables -A INPUT -m state -state DILAYAN, BERKAITAN -j MENERIMA
        #echo »- Paket sambungan yang dibenarkan oleh saya» && echo »»

        membuang "##############################"
        gema »## IPTABLES DITETAPKAN OK! ## »
        membuang "##############################"

        Saya telah membaca di internet bahawa untuk samba anda harus mempunyai peraturan berikut dalam skrip:

        $ iptables -A INPUT -p tcp –dport 139 -j MENERIMA
        $ iptables -A INPUT -p tcp –dport 445 -j MENERIMA
        $ iptables -A INPUT -p udp –sport 137 -j TERIMA
        $ iptables -A INPUT -p udp –dport 137 -j TERIMA
        $ iptables -A INPUT -p udp –dport 138 -j TERIMA

        Tetapi, walaupun dengan mereka, saya tidak dapat melihat kumpulan kerja windows. : S

      2.    Alex kata

        Masalah selesai. Ubah suai kumpulan kerja dan host membenarkan parameter dalam fail konfigurasi samba.

  11.   otkmanz kata

    Artikel yang sangat baik, hebat !!!!
    Saya baru membacanya dan saya suka cara anda menerangkannya dan penggunaan iptables yang sangat berguna, saya ingin belajar bagaimana menggunakannya dengan lebih mendalam.
    Salam dan artikel yang sangat baik, saya harap anda menerbitkan lebih banyak mengenai Iptables! ^^

  12.   LEO kata

    Sayang;

    Saya mempunyai proksi dengan iptables dan salah satu rangkaian saya tidak dapat melakukan ping http://www.google.cl atas sebab ini saya menyekat port dan mencuba seribu cara untuk membuka port dan tidak ada yang berlaku. Sekiranya saya tidak dapat ping, saya tidak dapat menghubungkan pandangan

  13.   Borja kata

    Tahniah di atas jawatan! Sangat bagus. Tetapi saya ada soalan. Kadang-kadang alamat IP yang diberikan kepada anda di rangkaian dapat berubah (jika benar bahawa kami dapat menetapkan IP ke MAC Addres kami), tetapi apakah ada kemungkinan dengan Iptables untuk membenarkan akses ke pelayan kami melalui SSH melalui Alamat MAC?

    Saya harap saya telah menjelaskan diri saya dengan baik.

    Salam, dan terima kasih banyak!

  14.   Fernando MartinGan kata

    Helo, anda tahu bahawa saya telah mengkonfigurasi pelayan linux dan setelah meletakkan perintah ini, saya menyekat semuanya dan kehilangan akses, saya dapat memulihkan hampir semua perkara tetapi saya kehilangan 2 perkara. * Saya tidak lagi dapat mengakses dari penyemak imbas web melalui nama pelayan «pelayan» jika dengan ip, 10.10.10.5 dan sebaliknya saya tidak melihat sumber yang dikongsi dari penjelajah tingkap di rangkaian, sebelum saya meletakkan pelayan \\ dan saya melihat semua sumber yang dikongsi. Saya harap anda dapat menolong saya, saya tahu itu bodoh tetapi saya tidak dapat menyelesaikannya, terima kasih

  15.   anda kata

    Saya memetik kata demi kata:
    '
    Protokol Icmp, icmp = ping. Maksudnya, saya tidak membenarkan SSH atau yang serupa, saya hanya membenarkan ping (icmp)
    '

    ICMP dan PING tidak sama. Pinging adalah sebahagian daripada protokol ICMP, tetapi bukan segalanya. Protokol ICMP (Internet Control Message Protocol) mempunyai lebih banyak kegunaan, beberapa di antaranya mempunyai bahaya tertentu. Dan anda menerima semua trafik ICMP. Anda hanya perlu mengehadkan ping.

    Terima kasih!

  16.   ozkr kata

    Saya mesti membuat latihan tetapi saya tidak faham banyak tentang iptables, boleh tolong bantu saya….
    terima kasih !!!!!!!