สร้างไฟร์วอลล์ของคุณเองด้วย iptables โดยใช้สคริปต์ง่ายๆนี้

ฉันคิดเกี่ยวกับสองสิ่งเกี่ยวกับ iptables มาระยะหนึ่งแล้วผู้ที่มองหาบทเรียนเหล่านี้ส่วนใหญ่เป็นผู้เริ่มต้นและประการที่สองหลายคนมองหาสิ่งที่ค่อนข้างเรียบง่ายและมีรายละเอียดอยู่แล้ว

ตัวอย่างนี้ใช้สำหรับเว็บเซิร์ฟเวอร์แต่คุณสามารถเพิ่มกฎและปรับให้เข้ากับความต้องการของคุณได้อย่างง่ายดาย

เมื่อคุณเห็นการเปลี่ยนแปลง "x" สำหรับ ip ของคุณ


#!/bin/bash

# เราทำความสะอาดตาราง iptables -F iptables -X # เราทำความสะอาด NAT iptables -t nat -F iptables -t nat -X # mangle table สำหรับสิ่งต่างๆเช่น PPPoE, PPP และ ATM iptables -t mangle -F iptables -t mangle -X # นโยบายฉันคิดว่านี่เป็นวิธีที่ดีที่สุดสำหรับผู้เริ่มต้นและ # ก็ยังไม่แย่ฉันจะอธิบายเอาต์พุต (เอาต์พุต) ทั้งหมดเนื่องจากเป็นการเชื่อมต่อขาออก # อินพุตเราทิ้งทุกอย่างและไม่ควรส่งต่อเซิร์ฟเวอร์ iptables -P INPUT DROP iptables -P OUTPUT ACCEPT iptables -P FORWARD DROP #Intranet LAN intranet = eth0 #Extranet wan extranet = eth1 # Keep state. ทุกอย่างที่เชื่อมต่อแล้ว (สร้างขึ้นแล้ว) จะถูกทิ้งไว้เช่น iptables นี้ -A INPUT -m state --state ESTABLISHED, RELATED -j ACCEPT # Loop device iptables -A INPUT -i lo -j ACCEPT # http, https เราไม่ได้ระบุอินเทอร์เฟซเนื่องจาก # เราต้องการให้เป็นสำหรับ iptables ทั้งหมด -A INPUT -p tcp --dport 80 -j ACCEPT iptables -A INPUT -p tcp - dport 443 -j ACCEPT # ssh เฉพาะภายในและจากช่วงของ iptables ของ ip นี้ -A INPUT -p tcp -s 192.168.xx / 24 -i $ intranet --dport 7659 -j ACCEPT # การตรวจสอบเช่นหากมี zabbix หรือบริการ snmp อื่น ๆ iptables -A INPUT -p tcp -s 192.168.xx / 24 -i $ intranet --dport 10050 -j ACCEPT # icmp ping ดีขึ้นอยู่กับคุณ iptables -A INPUT -p icmp -s 192.168 xx / 24 - i $ intranet -j ACCEPT #mysql ที่มี postgres คือพอร์ต 5432 iptables -A INPUT -p tcp -s 192.168.xx --sport 3306 -i $ intranet -j ยอมรับ #sendmail bueeeh หากคุณต้องการส่งเมล #iptables -A OUTPUT -p tcp --dport 25 -j ACCEPT # Anti-SPOOFING 09/07/2014 # SERVER_IP = "190.xxx" # IP ของเซิร์ฟเวอร์ - wan ip จริงของเซิร์ฟเวอร์ของคุณ LAN_RANGE = "192.168.xx / 21 "# LAN ของเครือข่ายของคุณหรือ vlan # Ip ของคุณที่ไม่ควรเข้าสู่เอกซ์ทราเน็ตคือการใช้ตรรกะ # เล็กน้อยหากเรามีอินเทอร์เฟซ WAN ล้วนๆไม่ควรป้อนทราฟฟิกประเภท # LAN ผ่านอินเทอร์เฟซนั้น SPOOF_IPS = "0.0.0.0/8 127.0.0.0/8 10.0.0.0/8 172.16.0.0/12 192.168.0.0 .16 / XNUMX "# การกระทำเริ่มต้น - จะดำเนินการเมื่อกฎใด ๆ ตรงกับ ACTION =" DROP "# แพ็กเก็ตที่มี ip เดียวกันของเซิร์ฟเวอร์ของฉันผ่าน wan iptables -A INPUT -i $ extranet -s $ SERVER_IP -j $ ACTION # iptables -A OUTPUT -o $ เอกซ์ทราเน็ต -s $ SERVER_IP -j $ ACTION # แพ็คเก็ตที่มีช่วง LAN สำหรับ wan ฉันใส่ไว้เช่นนี้ในกรณีที่คุณมี # เครือข่ายใด ๆ แต่จะซ้ำซ้อนกับกฎ # ต่อไปนี้ภายใน ลูป "สำหรับ" iptables -A INPUT -i $ extranet -s $ LAN_RANGE -j $ ACTION iptables -A OUTPUT -o $ extranet -s $ LAN_RANGE -j $ ACTION ## เครือข่าย SPOOF ทั้งหมดไม่อนุญาตโดย wan สำหรับ ip ใน $ SPOOF_IPS ทำ iptables -A INPUT -i $ extranet -s $ ip -j $ ACTION iptables -A OUTPUT -o $ extranet -s $ ip -j $ ACTION done

เช่นเคยฉันรอความคิดเห็นของคุณโปรดติดตามในบล็อกนี้ขอบคุณ


แสดงความคิดเห็นของคุณ

อีเมล์ของคุณจะไม่ถูกเผยแพร่ ช่องที่ต้องการถูกทำเครื่องหมายด้วย *

*

*

  1. ผู้รับผิดชอบข้อมูล: Miguel ÁngelGatón
  2. วัตถุประสงค์ของข้อมูล: ควบคุมสแปมการจัดการความคิดเห็น
  3. ถูกต้องตามกฎหมาย: ความยินยอมของคุณ
  4. การสื่อสารข้อมูล: ข้อมูลจะไม่ถูกสื่อสารไปยังบุคคลที่สามยกเว้นตามข้อผูกพันทางกฎหมาย
  5. การจัดเก็บข้อมูล: ฐานข้อมูลที่โฮสต์โดย Occentus Networks (EU)
  6. สิทธิ์: คุณสามารถ จำกัด กู้คืนและลบข้อมูลของคุณได้ตลอดเวลา

  1.   โฮทูกิ dijo

    มันช่วยให้ฉันเรียนรู้ต่อไปได้มากขึ้นขอบคุณที่คัดลอกมา

    1.    brodydalle dijo

      ยินดีต้อนรับยินดีที่จะให้ความช่วยเหลือ

  2.   ซาเวียร์ dijo

    ฉันขอโทษจริงๆ แต่ฉันมีสองคำถาม (และอีกหนึ่งคำถามเป็นของขวัญ😉):

    คุณจะมาพร้อมกับการกำหนดค่านี้เพื่อให้ Apache ทำงานและปิดส่วนที่เหลือยกเว้น SSH หรือไม่?

    # เราทำความสะอาดโต๊ะ
    iptables-F
    iptables-X

    เราทำความสะอาด NAT

    iptables -t แนท -F
    iptables -t แนท -X

    iptables -A INPUT -p tcp –dport 80 -j ยอมรับ

    ssh เฉพาะภายในและจากช่วงของ ip นี้

    iptables -A INPUT -p tcp -s 192.168.xx / 24 -i $ intranet –dport 7659 -j ยอมรับ

    คำถามที่สอง: 7659 เป็นพอร์ตที่ใช้ใน SSH ในตัวอย่างนี้หรือไม่

    และที่สามและสุดท้าย: ควรบันทึกการกำหนดค่านี้ในไฟล์ใด

    ขอบคุณมากสำหรับบทแนะนำนี้เป็นเรื่องน่าเสียดายที่คุณเป็นมือใหม่และไม่สามารถใช้ประโยชน์จากมันได้ดี

    1.    brodydalle dijo

      นี่คือกฎที่คุณต้องการสำหรับ http จาก apache
      iptables -A INPUT -p tcp –dport 80 -j ยอมรับ

      แต่คุณต้องประกาศนโยบายเริ่มต้นที่ลดลงด้วย (อยู่ในสคริปต์)
      iptables -P อินพุตลดลง
      iptables -P ยอมรับผลลัพธ์
      iptables -P ไปข้างหน้า DROP

      และนี่เป็นเพราะถ้าคุณอยู่ห่างไกลมันจะทำให้คุณทิ้ง
      iptables -A INPUT -m state - State ESTABLISHED, RELATED -j ACCEPT

      ถ้า 7659 เป็นพอร์ตของ ssh นั้นในตัวอย่างโดยค่าเริ่มต้นคือ 22 แม้ว่าฉันจะแนะนำให้เปลี่ยนเป็นพอร์ต "ไม่รู้จักกันดี"
      ฉันไม่รู้อย่างที่คุณต้องการ ... firewall.sh และคุณใส่ไว้ใน rc.local (sh firewall.sh) เพื่อให้มันทำงานโดยอัตโนมัติขึ้นอยู่กับระบบปฏิบัติการที่คุณมีมีไฟล์ที่คุณ สามารถวางกฎได้โดยตรง

  3.   jge dijo

    Eii ดีมากครับสคริปต์ของคุณวิเคราะห์มัน…. คุณรู้ไหมว่าฉันสามารถปฏิเสธคำขอทั้งหมดของผู้ใช้ของฉันไปยังเว็บไซต์ใดเว็บไซต์หนึ่งได้อย่างไร…. แต่เว็บไซต์นี้มีเซิร์ฟเวอร์จำนวนมาก….

    1.    brodydalle dijo

      ฉันขอแนะนำตัวเลือกอื่น ๆ :
      1) คุณสามารถสร้างโซนปลอมใน DNS ของคุณ ...
      2) คุณสามารถวางพร็อกซีด้วย acl
      บาปห้าม
      สำหรับ iptables คุณสามารถทำได้เช่นนี้ ... มันไม่ใช่ตัวเลือกที่ดีที่สุดเสมอไป (มีหลายวิธี)
      iptables -A INPUT -s บล็อกdesdelinux.ne -j DROP
      iptables -A เอาท์พุท -d บล็อกdesdelinux.net -j DROP

      บอกฉันว่ามันได้ผล

  4.   ซาเวียร์ dijo

    ขอบคุณสำหรับคำตอบทุกอย่างชัดเจน ฉันถามเกี่ยวกับพอร์ตเพราะฉันรู้สึกประหลาดใจที่ใช้ 7659 เนื่องจากพอร์ตส่วนตัวเริ่มต้นที่ 49152 และอาจรบกวนบริการบางอย่างหรือบางอย่าง
    ขอบคุณอีกครั้งสำหรับทุกสิ่งที่ดี!

    อาศิรพจน์

  5.   sic dijo

    BrodyDalle ฉันจะติดต่อคุณได้อย่างไร สคริปต์ของคุณน่าสนใจมาก

  6.   คาร์ลอ dijo

    ก่อนบรรทัดสุดท้าย "iptables -A OUTPUT -o $ extranet -s $ ip -j $ ACTION" เพื่อป้องกันไม่ให้เครื่องของคุณปลอมแปลง หรือเป็นไปได้หรือไม่ที่แพ็คเก็ตที่มีพิษบางส่วนเข้ามาและสามารถออกจากแหล่งที่เป็นพิษนั้นได้และนั่นคือเหตุผลที่กฎนี้รวมอยู่ใน OUTPUT ด้วย?
    ขอบคุณมากสำหรับคำชี้แจง !!!

  7.   Fran dijo

    นี่คือสคริปต์ iptables ของฉันเองมันสมบูรณ์มาก:

    # franes.iptables.airy
    # doc.iptables.airoso: iptables สำหรับรุ่นเก่าและสำหรับ nft
    #
    # พอร์ตไฟร์วอลล์
    ############################
    #! / bin / ทุบตี
    #
    # ล้างหน้าจอ
    ############################### เริ่มต้น /etc/f-iptables/default.cfg |||||
    ชัดเจน
    # เว้นบรรทัดว่างไว้
    เสียงสะท้อน
    ส่งออกใช่ = »»ไม่ = »ปิดเสียงสะท้อน»
    # ตัวแปรที่คุณสามารถเปลี่ยนแปลงเพื่ออนุญาตการเข้าถึง
    ####################### ตัวแปรที่จะแก้ไขด้วย $ yes หรือ $ no
    ส่งออก hayexcepciones = » $ no »
    # มีข้อยกเว้น: $ ใช่เพื่ออนุญาตโฮสต์พิเศษและ $ no เพื่อปิดใช้งาน
    ส่งออก hayping = » $ no »
    # hayping: $ ใช่เพื่ออนุญาตให้ส่ง Ping จากบุคคลที่สามและ $ no เพื่อปฏิเสธ
    ส่งออก haylogserver = » $ no »
    # haylogeosserver: $ ใช่เพื่อเข้าสู่ระบบ tcp $ no เพื่อไม่สามารถบันทึก tcp ได้
    ######
    ###################### ตัวแปรเพื่อแก้ไขการเพิ่ม "," หรือด้วยช่วง ":"
    ข้อยกเว้นในการส่งออก = » baldras.wesnoth.org »
    # ข้อยกเว้นอนุญาตให้โฮสต์เดียวหรือหลายโฮสต์จากไฟร์วอลล์หรือไม่มีค่า
    ส่งออก logserver = ทิ้ง, ipp, dict, ssh
    # พอร์ตเซิร์ฟเวอร์ tcp ที่ล็อกเมื่อแพ็กเก็ตเข้ามา
    ส่งออก redserver = 0/0
    # redserver: เครือข่ายสำหรับพอร์ตเซิร์ฟเวอร์ควรใช้เครือข่ายท้องถิ่นหรือหลาย ips
    ลูกค้าส่งออกสีแดง = 0/0
    #clientnet: เครือข่ายสำหรับพอร์ตไคลเอ็นต์เหมาะสำหรับทุกเครือข่าย
    ส่งออก servidortcp = ทิ้ง, ipp, dict, 6771
    # servidortcp: พอร์ตเซิร์ฟเวอร์ tcp ที่ระบุ
    ส่งออก serverudp = ทิ้ง
    #udpserver: พอร์ตเซิร์ฟเวอร์ udp ที่ระบุ
    ส่งออก clientudp = โดเมน, bootpc, bootps, ntp, 20000: 45000
    #udp client: พอร์ตไคลเอ็นต์ udp ที่ระบุ
    ส่งออก clienttcp = โดเมน, http, https, ipp, git, dict, 14999: 15002
    # tcp client: พอร์ตไคลเอ็นต์ tcp ที่ระบุ
    ############################## ตอนท้ายของ /etc/f-iptables/default.cfg |||||
    ################################ ตอนท้ายของตัวแปรที่จะแก้ไข
    ส่งออกไฟร์วอลล์ = ตัวแปร $ 1 = $ 2
    ถ้า ["$ variable" = "$ NULL"]; แล้วแหล่งที่มา /etc/f-iptables/default.cfg;
    แหล่งอื่น / etc / f-iptables / $ 2; fi
    ################################ หรือจะเขียนทับตัวแปรด้วยไฟล์. cfg
    ################################################# ##########################################
    ไฟร์วอลล์ส่งออก = ตัวแปรการส่งออก $ 1 = $ 2
    ####################################################### ตัวแปรระบบอัตโนมัติ
    ถ้า ["$ firewall" = "disconnected"]; จากนั้นสะท้อนไฟร์วอลถูกยกเลิกการเชื่อมต่อ;
    ส่งออก activateserver = » $ no » activateclient = » $ no » wet = » $ no »;
    elif ["$ firewall" = "client"] จากนั้นจึงก้อง FIREWALL CLIENT;
    ส่งออก activateserver = » $ no » activateclient = »» wet = » $ no »;
    elif ["$ firewall" = "เซิร์ฟเวอร์"]; จากนั้นสะท้อนเซิร์ฟเวอร์ FIREWALL;
    ส่งออก activateserver = »» activateclient = » $ no » wet = » $ no »;
    elif ["$ firewall" = "ไคลเอนต์และเซิร์ฟเวอร์"]; จากนั้นสะท้อนลูกค้าและเซิร์ฟเวอร์ของไฟร์วอลล์
    ส่งออกเปิดใช้งานเซิร์ฟเวอร์ = »»; ส่งออก activateclient = »»; ส่งออกเปียก = » $ no »;
    elif ["$ firewall" = "อนุญาต"]; จากนั้นสะท้อนไฟที่อนุญาต;
    ส่งออก activateserver = » $ no » activateclient = » $ no » wet = »»;
    อื่น
    $ ตรวจสอบ sudo echo iptables-legacy:
    $ ตรวจสอบ sudo iptables-legacy -v -L INPUT
    $ ตรวจสอบ sudo iptables-legacy -v -L OUTPUT
    $ ตรวจสอบ sudo echo iptables-nft:
    $ ตรวจสอบ sudo iptables-nft -v -L INPUT
    $ ตรวจสอบ sudo iptables-nft -v -L OUTPUT
    echo _____parameters____ $ 0 $ 1 $ 2
    echo "cast โดยไม่มีพารามิเตอร์คือการแสดงรายการ iptables"
    echo "พารามิเตอร์แรก (เปิดใช้งาน iptables): ไม่ได้เชื่อมต่อหรือไคลเอนต์หรือเซิร์ฟเวอร์หรือไคลเอนต์และเซิร์ฟเวอร์หรืออนุญาต"
    echo "พารามิเตอร์ที่สอง: (เป็นทางเลือก): ไฟล์ default.cfg เลือก /etc/f-iptables/default.cfg"
    echo "การตั้งค่าตัวแปร:" $ (ls / etc / f-iptables /)
    ออก 0; fi
    #################
    เสียงสะท้อน
    echo โยน $ 0 ที่ไม่เชื่อมต่อหรือไคลเอนต์หรือเซิร์ฟเวอร์หรือไคลเอนต์และเซิร์ฟเวอร์หรืออนุญาตหรือตัวแปรหรือไม่ใช้พารามิเตอร์เพื่อแสดงรายการ iptables
    echo ไฟล์ $ 0 มีตัวแปรที่แก้ไขได้ภายใน
    ################################# ตัวแปรข้างต้นเปิดใช้งาน
    #################################
    echo การตั้งค่าตัวแปร iptables
    ตัวแปรที่เปิดใช้งาน echo
    เสียงสะท้อน
    ############################ กฎ iptables
    echo การตั้งค่า iptables-legacy
    sudo / usr / sbin / iptables-legacy -t ตัวกรอง -F
    sudo / usr / sbin / iptables-legacy -t nat -F
    sudo / usr / sbin / iptables-legacy -t mangle -F
    sudo / usr / sbin / ip6tables-legacy -t ตัวกรอง -F
    sudo / usr / sbin / ip6tables-legacy -t nat -F
    sudo / usr / sbin / ip6tables-legacy -t mangle -F
    sudo / usr / sbin / ip6tables-legacy -A INPUT -j DROP
    sudo / usr / sbin / ip6tables-legacy -A เอาท์พุท -j DROP
    sudo / usr / sbin / ip6tables-legacy -A FORWARD -j DROP
    sudo / usr / sbin / iptables-legacy -A INPUT -s 127.0.0.1 -d 127.0.0.1 -j ACCEPT> / dev / null
    $ haylogserver sudo / usr / sbin / iptables-legacy -A INPUT -p tcp -m multiport –dports $ logserver -j LOG> / dev / null
    $ hayeexceptions sudo / usr / sbin / iptables-legacy -A INPUT -s $ exceptions -j ACCEPT> / dev / null
    $ เปิดใช้งานเซิร์ฟเวอร์ sudo / usr / sbin / iptables-legacy -A INPUT -p udp -m multiport –dports $ serverudp -s $ redserver -d $ redserver -j ACCEPT> / dev / null
    $ เปิดใช้งานเซิร์ฟเวอร์ sudo / usr / sbin / iptables-legacy -A INPUT -p tcp -m multiport –dports $ serverrtcp -s $ redserver -d $ redserver -j ACCEPT> / dev / null
    $ activateclient sudo / usr / sbin / iptables-legacy -A INPUT -p udp -m multiport –sports $ clientudp -m state -state -s $ clientnet -d $ clientnet -j ACCEPT> / dev / null
    $ activateclient sudo / usr / sbin / iptables-legacy -A INPUT -p tcp -m multiport –sports $ clienttcp -m state -state -s $ clientnet -d $ clientnet -j ACCEPT> / dev / null
    $ hayping sudo / usr / sbin / iptables-legacy -A INPUT -p icmp –icmp-type echo-reply -j ACCEPT> / dev / null
    sudo / usr / sbin / iptables-legacy -A INPUT -j DROP> / dev / null
    sudo / usr / sbin / iptables-legacy -A OUTPUT -s 127.0.0.1 -d 127.0.0.1 -j ACCEPT> / dev / null
    $ hayeexceptions sudo / usr / sbin / iptables-legacy -A OUTPUT -d $ exceptions -j ACCEPT> / dev / null
    $ เปิดใช้งานเซิร์ฟเวอร์ sudo / usr / sbin / iptables-legacy -A OUTPUT -p udp -m multiport –sports $ serverudp -s $ redserver -d $ redserver -j ACCEPT> / dev / null
    $ เปิดใช้งานเซิร์ฟเวอร์ sudo / usr / sbin / iptables-legacy -A OUTPUT -p tcp -m multiport –sports $ serverrtcp -s $ redserver -d $ redserver -j ACCEPT> / dev / null
    $ activateclient sudo / usr / sbin / iptables-legacy -A OUTPUT -p udp -m multiport –dports $ clientudp -s $ clientnet -d $ clientnet -j ACCEPT> / dev / null
    $ activateclient sudo / usr / sbin / iptables-legacy -A OUTPUT -p tcp -m multiport –dports $ clienttcp -s $ clientnet -d $ clientnet -j ACCEPT> / dev / null
    $ hayping sudo / usr / sbin / iptables-legacy -A OUTPUT -p icmp –icmp-type echo-request -j ACCEPT> / dev / null
    sudo / usr / sbin / iptables-legacy -A เอาท์พุท -j DROP
    sudo / usr / sbin / iptables-legacy -A FORWARD -j DROP
    เปิดใช้งาน echo iptables-legacy
    เสียงสะท้อน
    echo การตั้งค่า iptables-nft
    sudo / usr / sbin / iptables-nft -t ตัวกรอง -F
    sudo / usr / sbin / iptables-nft -t nat -F
    sudo / usr / sbin / iptables-nft -t mangle -F
    sudo / usr / sbin / ip6tables-nft -t ตัวกรอง -F
    sudo / usr / sbin / ip6tables-nft -t nat -F
    sudo / usr / sbin / ip6tables-nft -t mangle -F
    sudo / usr / sbin / ip6tables-nft -A INPUT -j DROP
    sudo / usr / sbin / ip6tables-nft -A เอาท์พุท -j DROP
    sudo / usr / sbin / ip6tables-nft -A FORWARD -j DROP
    sudo / usr / sbin / iptables-nft -A INPUT -s 127.0.0.1 -d 127.0.0.1 -j ACCEPT> / dev / null
    $ haylogserver sudo / usr / sbin / iptables-nft -A INPUT -p tcp -m multiport –dports $ logserver -j LOG> / dev / null
    $ hayeexceptions sudo / usr / sbin / iptables-nft -A INPUT -s $ exceptions -j ACCEPT> / dev / null
    $ เปิดใช้งานเซิร์ฟเวอร์ sudo / usr / sbin / iptables-nft -A INPUT -p udp -m multiport –dports $ serverudp -s $ redserver -d $ redserver -j ACCEPT> / dev / null
    $ เปิดใช้งานเซิร์ฟเวอร์ sudo / usr / sbin / iptables-nft -A INPUT -p tcp -m multiport –dports $ serverrtcp -s $ redserver -d $ redserver -j ACCEPT> / dev / null
    $ activateclient sudo / usr / sbin / iptables-nft -A INPUT -p udp -m multiport –sports $ clientudp -m state -state -s $ clientnet -d $ clientnet -j ACCEPT> / dev / null
    $ activateclient sudo / usr / sbin / iptables-nft -A INPUT -p tcp -m multiport –sports $ clienttcp -m state -state -s $ clientnet -d $ clientnet -j ACCEPT> / dev / null
    $ hayping sudo / usr / sbin / iptables-nft -A INPUT -p icmp –icmp-type echo-reply -j ACCEPT> / dev / null
    sudo / usr / sbin / iptables-nft -A INPUT -j DROP> / dev / null
    sudo / usr / sbin / iptables-nft -A OUTPUT -s 127.0.0.1 -d 127.0.0.1 -j ยอมรับ> / dev / null
    $ hayexceptions sudo / usr / sbin / iptables-nft -A OUTPUT -d $ exceptions -j ACCEPT> / dev / null
    $ เปิดใช้งานเซิร์ฟเวอร์ sudo / usr / sbin / iptables-nft -A OUTPUT -p udp -m multiport –sports $ serverudp -s $ redserver -d $ redserver -j ACCEPT> / dev / null
    $ เปิดใช้งานเซิร์ฟเวอร์ sudo / usr / sbin / iptables-nft -A OUTPUT -p tcp -m multiport –sports $ serverrtcp -s $ redserver -d $ redserver -j ACCEPT> / dev / null
    $ activateclient sudo / usr / sbin / iptables-nft -A OUTPUT -p udp -m multiport –dports $ clientudp -s $ clientnet -d $ clientnet -j ACCEPT> / dev / null
    $ activateclient sudo / usr / sbin / iptables-nft -A เอาท์พุท -p tcp -m multiport –dports $ clienttcp -s $ clientnet -d $ clientnet -j ACCEPT> / dev / null
    $ hayping sudo / usr / sbin / iptables-nft -A OUTPUT -p icmp –icmp-type echo-request -j ACCEPT> / dev / null
    sudo / usr / sbin / iptables-nft -A เอาท์พุท -j DROP
    sudo / usr / sbin / iptables-nft -A FORWARD -j DROP
    เปิดใช้งาน echo iptables-nft
    เสียงสะท้อน
    $ wet sudo / usr / sbin / iptables-legacy -F> / dev / null
    $ wet sudo / usr / sbin / iptables-legacy -A INPUT -s 127.0.0.1 -d 127.0.0.1 -j ACCEPT> / dev / null
    $ wet sudo / usr / sbin / iptables-legacy -A INPUT -m state - สร้างรัฐ -j ACCEPT> / dev / null
    $ wet sudo / usr / sbin / iptables-legacy -A INPUT -j DROP> / dev / null
    $ wet sudo / usr / sbin / iptables-legacy -A เอาท์พุท -j ยอมรับ> / dev / null
    $ wet sudo / usr / sbin / iptables-legacy -A FORWARD -j DROP> / dev / null
    $ เปียก sudo / usr / sbin / iptables-nft -F> / dev / null
    $ wet sudo / usr / sbin / iptables-nft -A INPUT -s 127.0.0.1 -d 127.0.0.1 -j ACCEPT> / dev / null
    $ wet sudo / usr / sbin / iptables-nft -A INPUT -m state - สร้างสถานะ -j ACCEPT> / dev / null
    $ เปียก sudo / usr / sbin / iptables-nft -A INPUT -j DROP> / dev / null
    $ เปียก sudo / usr / sbin / iptables-nft -A เอาท์พุท -j ยอมรับ> / dev / null
    $ เปียก sudo / usr / sbin / iptables-nft -A FORWARD -j DROP> / dev / null
    ###########################
    เสียงสะท้อนคุณได้โยน $ 0 $ 1 $ 2
    # ออกจากสคริปต์
    ทางออก 0

  8.   หลุยส์ ดูราน dijo

    ฉันจะตั้งกฎได้อย่างไรว่าไฟร์วอลล์นี้ใช้กับเกตเวย์ของฉันและมีปลาหมึกอยู่ใน LAN ???