Ubuntu 14.04 เป็นเกตเวย์ / เราเตอร์และไฟร์วอลล์


16

การตั้งค่าระบบปัจจุบันของฉันคือ Ubuntu 14.04 Desktop 64 บิตและฉันใช้อินเทอร์เน็ตจากเราเตอร์โดยใช้ IP สาธารณะ

eth0 - WAN Public IP 182.x.x.x  
eth1 - LAN private IP 192.168.0.1

ตอนนี้ผมต้องการกระจายการเชื่อมต่อนี้ไปยังคอมพิวเตอร์เครื่องอื่น ๆ ที่ใช้ระบบของฉันเป็นGatewayระบบของฉัน IP เป็น192.168.0.1และคอมพิวเตอร์เครื่องอื่น ๆ ในเครือข่ายที่มีการใช้ IP แบบคงที่192.168.0.2และ 192.168.0.255 เป็นและstatic / หรือDHCP

นอกจากนี้ฉันต้องการตั้งค่าไฟร์วอลล์ในระบบของฉันเพื่อให้ฉันสามารถตรวจสอบและควบคุมปริมาณการใช้งานของระบบอื่น ๆ บนเครือข่าย

คำตอบ:


15
  1. เปิด Terminal Ctrl+ Alt+T

  2. ป้อนคำสั่งต่อไปนี้เพื่อแก้ไขinterfacesไฟล์:

    sudo vim /etc/network/interfaces
    
  3. แก้ไขไฟล์ด้วยบรรทัดต่อไปนี้: (เพิ่มของคุณnetmaskและgateway)

    auto lo 
    iface lo inet loopback
    
    auto eth0
    iface eth0 inet static
    address 182.x.x.x 
    netmask  x.x.x.x 
    gateway x.x.x.x
    
    auto eth1
    iface eth1 inet static 
    address 192.168.0.1
    netmask x.x.x.x
    
  4. ตอนนี้แก้ไข/etc/sysctl.confและยกเลิกหมายเหตุ:

    # net.ipv4.ip_forward=1
    

    เพื่อให้มันอ่าน:

    net.ipv4.ip_forward=1
    

    และบันทึกโดยการป้อน

    sudo sysctl -p /etc/sysctl.conf

  5. หากต้องการเปิดใช้งานการปลอม IP ให้ป้อนชุดคำสั่งต่อไปนี้ในเทอร์มินัล

    sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
    
    sudo iptables -A FORWARD -i eth1 -o eth0 -m state --state RELATED,ESTABLISHED -j ACCEPT
    
    sudo iptables -A FORWARD -i eth1 -o eth0 -j ACCEPT
    

ปรับปรุง: แก้ไขแปลก "- - รัฐ" ทำให้คำสั่งล้มเหลวและแก้ไข nat MASQUERADE เป็น eth0 (อินเตอร์เฟส wan)


ทำทุกอย่างตามที่แนะนำ ... แต่ถ้าฉันแก้ไข / etc / network / interfaces และเริ่มบริการมันเชื่อมต่อโดยอัตโนมัติเพื่อ eth1 และจะไม่เชื่อมต่ออินเทอร์เน็ตผ่าน eth0 ถ้าฉันแก้ไข connectio โดยใช้โหมด GUI มันจะเชื่อมต่อกับอินเทอร์เน็ตโดยใช้ eth0 ตอนนี้ปัญหาคือว่าฉันไม่สามารถเชื่อมต่อคอมพิวเตอร์ไคลเอนต์ของฉันโดยใช้ IP 192.168.0.5/nm.255.255.255.0/gw.192.168.0.1 กับอินเทอร์เน็ต ข้อเสนอแนะใด ๆ
Santi Varghese

3
ฉันต้องการเพิ่มที่หลังจากคุณเปลี่ยนบรรทัดnet.ipv4.ip forward=1คุณต้องการเรียกใช้sudo sysctl -p /etc/sysctl.confเพื่อให้ค่าใหม่มีผล
ซามูเอลลี่

2
คุณยังคงสลับอุปกรณ์ในสองบรรทัดสุดท้ายในขั้นตอนที่ 5 และคุณไม่ได้กล่าวถึงความปลอดภัยเริ่มต้น (เช่นการส่งต่อควรมีนโยบาย DROP)
chreekat

3

ความคิดเห็นของ @ chreekat ถูกต้องแล้วว่าอะแดปเตอร์อีเทอร์เน็ตถูกสลับในขั้นตอนที่ 5 ของคำตอบของ @ Anbu และตามที่แสดง (ณ วันที่ 2017-02-21) สร้าง HOLE SECURITY HOLE ที่อนุญาตการเข้าถึงเครือข่ายส่วนตัวได้อย่างไม่ จำกัด โดยทุกคนในเครือข่ายสาธารณะ .

การกำหนดค่าที่ถูกต้องสำหรับขั้นตอนที่ 5 แสดงอยู่ด้านล่าง

ทฤษฎีการดำเนินการ: (กฎ # 2) แพ็กเก็ตที่เข้าจากเครือข่ายสาธารณะ (eth0) ได้รับการยอมรับสำหรับการส่งต่อไปยังเครือข่ายส่วนตัว (eth1) ถ้าหากว่าแพ็กเก็ตสาธารณะที่เชื่อมต่อนั้นเกี่ยวข้องกับการสนทนาที่ก่อตั้งขึ้นโดยโฮสต์ เครือข่ายส่วนตัว (กฎ # 3) ยอมรับแพ็กเก็ตทั้งหมดที่เข้าใช้จากเครือข่ายส่วนตัว (eth1) และส่งต่อไปยังเครือข่ายสาธารณะ (eth0)

sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
sudo iptables -A FORWARD -i eth0 -o eth1 -m state --state RELATED,ESTABLISHED -j ACCEPT
sudo iptables -A FORWARD -i eth1 -o eth0 -j ACCEPT

0

นี่คือสิ่งที่ฉันใช้ทำงานได้ดีเสมอ การรวมกันของบทเรียนต่างๆ ทดสอบกับ Ubuntu 16.04LTS ด้วยเช่นกัน

ขั้นตอน A - ตรวจสอบให้แน่ใจว่าติดตั้ง ufw แล้ว

sudo apt-get install ufw

ขั้นตอน B - การกำหนดค่าการเชื่อมต่อเครือข่ายของคุณ

sudo nano /etc/network/interfaces

กำหนดค่าไฟล์ส่วนต่อประสานให้เป็นดังนี้:

# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

source /etc/network/interfaces.d/*

# The loopback network interface
auto lo
iface lo inet loopback

# The WAN primary network interface
iface eth0 inet static
        address 182.xxx.xxx.xxx
        netmask xxx.xxx.xxx.xxx
        gateway xxx.xxx.xxx.xxx

#LAN side interface
auto eth1
iface eth1 inet static
        address 192.168.0.1
        netmask 255.255.255.0
        network 192.168.0.0
        broadcast 192.168.0.255
        address 192.168.0.1

บันทึกไฟล์โดยเลือก CTRL-X จาก nano หรือโปรแกรมแก้ไขอื่น ๆ ที่คุณต้องการ

ขั้นตอน C - อนุญาต IP ไปข้างหน้า ตั้งค่าการส่งต่อ แก้ไขไฟล์/etc/sysctl.conf

sudo nano /etc/sysctl.conf

ลบความคิดเห็นในบรรทัดนี้# net.ipv4.ip_forward=1เพื่อnet.ipv4.ip_forward=1 บันทึกการเปลี่ยนแปลงและย้ายไปยังขั้นตอนถัดไป

ขั้นตอน D - การปลอมแปลง / กฎการส่งต่อ

sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
sudo iptables -A FORWARD -i eth0 -o eth1 -m state --state RELATED,ESTABLISHED -j ACCEPT
sudo iptables -A FORWARD -i eth1 -o eth0 -j ACCEPT

ยังคงมีการเปลี่ยนแปลงiptables

sudo su
sudo iptables-save > /etc/iptables.rules
sudo nano /etc/network/if-pre-up.d/iptables

ใส่เนื้อหานี้:

#!/bin/sh
iptables-restore < /etc/iptables.rules
exit 0

บันทึกการเปลี่ยนแปลงจากนั้นแก้ไข / สร้างไฟล์ iptables ถัดไป

sudo nano /etc/network/if-post-down.d/iptables

ใส่เนื้อหานี้:

#!/bin/sh
iptables-save -c > /etc/iptables.rules
if [ -f /etc/iptables.rules ]; then
    iptables-restore < /etc/iptables.rules
fi
exit 0

บันทึกการเปลี่ยนแปลง. ทำให้ไฟล์ทั้งสองสามารถเรียกใช้งานได้

sudo chmod +x /etc/network/if-post-down.d/iptables
sudo chmod +x /etc/network/if-pre-up.d/iptables

ขั้นตอน E - จบด้วยการกำหนดค่า ufw

sudo nano /etc/default/ufw

เปลี่ยนนโยบายการส่งต่อพารามิเตอร์เพื่อยอมรับ

DEFAULT_FORWARD_POLICY="ACCEPT"

บันทึกการเปลี่ยนแปลง.

ฉันมี SSH ของฉันที่พอร์ต 49870 ดังนั้นฉันจึงอนุญาตให้ufwยอมรับการเชื่อมต่อบนพอร์ตนั้น:

sudo ufw allow 49870

ขั้นตอนที่เรนไฮน์ - ไม่ลืมที่จะเปิดใช้งาน ufw

sudo ufw enable

ในขั้นตอนนี้เพียงรีบูทระบบของคุณ จากนั้นอุปกรณ์ LAN ทั้งหมดสามารถใช้เป็นเกตเวย์หลักได้ ในหมายเหตุด้านข้างufwสะดวกในการจัดการการตั้งค่าไฟร์วอลล์

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.