วิธีการตั้งค่าเซิร์ฟเวอร์ Ubuntu เป็นเราเตอร์โดยใช้ PPPoE



ลองใช้เครื่องมือของเราเพื่อกำจัดปัญหา

Ubuntu Server ได้รับการออกแบบทางเทคนิคให้เป็นระบบปฏิบัติการ CLI prompt สำหรับใช้กับเซิร์ฟเวอร์เหล็กขนาดใหญ่เท่านั้น แต่ไม่มีเหตุผลใดที่ไม่สามารถทำงานในเราเตอร์และระบบฝังตัวที่จัดการ Point-to-Point Protocol ผ่านอีเธอร์เน็ตได้เช่นกัน สันนิษฐานว่าโครงการเช่นนี้ต้องการพีซีขนาดเล็กที่ไม่มีพัดลมหรือกล่องเราเตอร์บางประเภทที่คุณสามารถแก้ไขได้ผ่านชิปแฟลช NAND เป็นไปได้มากกว่าที่คุณจะติดตั้ง RAM ในปริมาณที่เหมาะสมรวมทั้งดิสก์โซลิดสเทตเพื่อกำจัดเสียงรบกวนและชิ้นส่วนที่เคลื่อนไหว คุณอาจสนใจใช้ตัวแปลง SDHC-to-SATA เพื่อให้คุณสามารถเรียกใช้ระบบปฏิบัติการทั้งหมดจากการ์ด SD การ์ด SD ที่ใส่ลงในช่องด้านข้างบนฮาร์ดแวร์ที่ไม่ใช้ระบบเดิมยังสามารถบูตระบบปฏิบัติการได้ ใช้งานได้เมื่อใช้กับระบบ PPPoE ได้ดี



แม้ว่าคุณอาจคิดว่าการใช้การกำหนดค่าประเภทนี้อาจทำงานได้ช้าหากไม่มีฮาร์ดดิสก์ไฟฟ้าที่เหมาะสม แต่ในทางทฤษฎีคุณก็ลดเวลาในการเข้าถึงลงได้ Ubuntu Server มีขนาดเล็กมากจนสามารถบู๊ตได้อย่างรวดเร็ว เมื่อคุณมีเราเตอร์เข้าที่แล้วคุณอาจจะไม่ได้เปิดและปิดบ่อยนัก ไม่ว่าคุณจะเลือกการกำหนดค่าใดคุณจะต้องชี้เบราว์เซอร์ของคุณไปที่ https://www.ubuntu.com/download/server เพื่อดาวน์โหลด ISO เวอร์ชันใหม่ล่าสุดในขณะที่เขียนนี้ Ubuntu Server 16.04.1 LTS ได้รับการออกแบบมาเพื่อใช้กับสถาปัตยกรรม 64 บิตเท่านั้น เราเตอร์และอุปกรณ์ไคลเอนต์แบบบางที่ทันสมัยส่วนใหญ่ตอบสนองความต้องการนี้ได้ดี แต่อาจเป็นปัญหาหากคุณกำลังพยายามทำสิ่งที่แปลกใหม่อย่างแท้จริงเช่นการใช้เน็ตบุ๊กเป็นเราเตอร์





การกำหนดค่าเซิร์ฟเวอร์ Ubuntu เป็นเราเตอร์ PPPoE

เครือข่าย ISP หลักหลายเครือข่ายยังคงต้องการการตรวจสอบสิทธิ์ PPPoE เครือข่าย DSL เกือบทั้งหมดใช้สิ่งนี้และแม้ว่าจะไม่จำเป็นเมื่อทำงานกับการเชื่อมต่อแบบไฟเบอร์ แต่บางเครือข่ายก็ยังคงใช้งานได้เช่นกัน เราเตอร์ Netgear มีพรอมต์การเข้าสู่ระบบที่ช่วยให้คุณเชื่อมต่อกับเครือข่ายประเภทนี้ได้อย่างง่ายดาย แต่จะต้องใช้เวลาพอสมควรเพื่อให้เราเตอร์ Linux ที่สร้างขึ้นเองที่บ้านเพื่อเชื่อมต่อกับเทคโนโลยีประเภทนี้อย่างถูกต้อง

หากคุณยังไม่มีในเบราว์เซอร์ของคุณให้ไปที่ http://releases.ubuntu.com/16.04.1/ . คุณสามารถดาวน์โหลด ISO จากหน้านี้ได้หากคุณยังไม่มี แต่เมื่อคุณได้แล้วให้เลื่อนลงไปที่ลิงก์ที่อ่าน MD5SUMS แล้วเลือก



จากพรอมต์ CLI ให้เรียกใช้ md5sum บน Ubuntu Server ISO และตรวจสอบให้แน่ใจว่าตรงกับหมายเลขถัดจาก อูบุนตู -16.04 เดสก์ท็อป amd64.iso ในรายชื่อ

ถ้าเป็นเช่นนั้นให้เตรียมเมมโมรี่สติ๊ก USB หรือการ์ด SD ที่ว่างเปล่าให้พร้อมแล้วพิมพ์ sudo if = ubuntu-16.04-desktop-amd64.iso ของ = / dev / sdLetter bs = 8M แทนที่พรอมต์ของ = ด้วยชื่อของอุปกรณ์ที่เป็นปัญหา คุณสามารถใช้ได้ sudo fdisk -l เพื่อค้นหาอุปกรณ์ทั้งหมดที่เชื่อมต่อกับระบบของคุณ เมื่อดำเนินการเสร็จแล้วให้ถอดไดรฟ์อย่างถูกต้องและเชื่อมต่อกับระบบเราเตอร์ รีบูตเครื่องและกดปุ่มใด ๆ ที่จำเป็นเพื่อบูตระบบดังกล่าวจากที่เก็บข้อมูลแบบถอดได้ เซิร์ฟเวอร์ Ubuntu ติดตั้งได้ค่อนข้างง่ายโดยอาศัยข้อความแจ้ง ncurses หลายข้อความ

อย่างไรก็ตามปัญหาอย่างหนึ่งในการติดตั้งในลักษณะนี้คือสื่อแบบถอดได้จะทำให้คุณต้องเชื่อมต่อกับอินเทอร์เน็ตในระหว่างการติดตั้งและการเชื่อมต่อกล่องแบบนี้กับเครือข่ายโดยตรงทำให้เกิดปัญหาด้านความปลอดภัย เสียบเข้ากับพอร์ตเครือข่ายของเราเตอร์เก่าของคุณเพื่อให้บริการไฟร์วอลล์จนกว่าคุณจะเริ่มใช้งาน ทันทีที่คุณดำเนินการเสร็จสิ้นคุณจะต้องทำการแก้ไขบางอย่างกับตัวโหลดบูต GRUB หากเป็นไปได้ให้ถอดปลั๊กเราเตอร์ Linux ออกจากเครื่องที่มีอยู่โดยเร็วที่สุดเพื่อทำการติดตั้งต่อแบบออฟไลน์ วิธีนี้จะป้องกันปัญหา DHCP แปลก ๆ ที่คุณอาจได้รับจากการเชื่อมต่อที่มีอยู่เป็นอย่างอื่น

เป็นไปได้ว่าคุณไม่ต้องการติดตั้งซอฟต์แวร์เพิ่มเติมใด ๆ ในระหว่างขั้นตอนการกำหนดค่าระบบปฏิบัติการ GRUB เริ่มการทำงานอย่างเงียบ ๆ ในการติดตั้งเซิร์ฟเวอร์ Ubuntu เริ่มต้นซึ่งหมายความว่าคุณจะไม่เห็นข้อความดีบักใด ๆ หากคุณเห็นเคอร์เซอร์กะพริบโดยไม่มีอะไรอื่นหลังจากบู๊ตให้กด Ctrl, Alt และ F1 ค้างไว้เพื่อไปที่คอนโซลเสมือน ลงชื่อเข้าใช้บัญชีของคุณแล้วพิมพ์ แม้ว่าคุณอาจต้องการใช้ vi แทน ค้นหาบรรทัดที่อ่าน GRUB_CMDLINE_LINUX_DEFAULT =” การกระเซ็นแบบเงียบ” และลบคำพูดที่เงียบสงบในเครื่องหมายคำพูด นอกจากนี้คุณยังต้องการแก้ไขบรรทัดที่อ่าน GRUB_CMDLINE_LINUX =”” เพื่อรวม net.ifnames = 0 biosdevname = 0 ในเครื่องหมายคำพูดคู่เพื่อตั้งชื่อการ์ดเครือข่ายของคุณอย่างถูกต้อง บันทึกไฟล์แล้วเรียกใช้ sudo update-grub เพื่ออัปเดต boot loder ของคุณเนื่องจากไฟล์ด้วงน่าจะอยู่ในพาร์ติชัน UEFI บางประเภท

ค้นหาบรรทัดที่อ่าน GRUB_CMDLINE_LINUX_DEFAULT =” การกระเซ็นแบบเงียบ” และลบคำว่า“ สาดเงียบ ” ที่อยู่ในเครื่องหมายคำพูด fsafa

นั่นคือโจรสลัด

ประเภท ซูโดนาโน เพื่อเปิดไฟล์อินเทอร์เฟซของคุณเพื่อแก้ไขจากนั้นเปลี่ยนชื่อของการ์ดเครือข่ายที่คุณพบกลับไปเป็นแบบเดิม eth0 และ eth1 จากนั้นบันทึกไฟล์และออก เมื่อคุณออกจากไฟล์คุณสามารถรีบูตระบบเพื่อให้แน่ใจว่าการเปลี่ยนแปลงมีผลอย่างถูกต้อง

ตอนนี้คุณจะต้องติดตั้งซอฟต์แวร์ PPPoE และ OpenSSL ที่เหมาะสมเพื่อทำการติดตั้งให้เสร็จสิ้น คุณสามารถติดตั้ง DNS, DHCP, PPPoE และ OpenSSL ด้วยปัญหาบรรทัดคำสั่งเดียว:

sudo apt-get install bind9 isc-dhcp-server openssl pppoeconf

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

ISP ของคุณจะให้ชื่อผู้ใช้และรหัสผ่านแก่คุณซึ่งคุณจะต้องป้อนลงในไฟล์ความลับ ประเภท แต่อย่าลืมว่าคุณยังสามารถใช้ vi ได้หากต้องการ ต้องระบุชื่อผู้ใช้และรหัสผ่านของคุณ ตัวอย่างเช่นคุณอาจต้องการ:

“ บิลลี่” *“ mypass3”

บันทึกไฟล์และไปที่ไฟล์ คุณจะพบไฟล์ชื่อผู้ให้บริการในไดเรกทอรีนี้ เปิดขึ้นมาด้วยนาโนเช่นเดียวกับที่คุณทำกับไฟล์กำหนดค่าอื่น ๆ หรือสร้างใหม่ในลักษณะเดียวกัน วางคำสั่งแต่ละคำสั่งในบรรทัดแยกกันในไฟล์:

noipdefault

defaultroute

แทนที่ค่าเริ่มต้นเส้นทาง

คงอยู่

ปลั๊กอิน rr-pppoe.so eth0

ผู้ใช้“ บิลลี่”

นอกจากนี้คุณยังสามารถใส่รหัสผ่านและไม่ต้องใช้รหัสผ่านหากคุณไม่ต้องการใช้ข้อความแจ้งการเข้าสู่ระบบเนื่องจากคุณจะใช้สิ่งนี้เป็นเราเตอร์ไม่ใช่เป็นเครื่องผลิตจริงที่มีอินเทอร์เฟซปกติ แทนที่ชื่อ billy ด้วยชื่อผู้ใช้จริงที่คุณมีจากนั้นเรียกใช้ pon provider หรือชื่อของไฟล์ที่คุณสร้างเพื่อเชื่อมต่อ ควรให้ข้อความแสดงข้อผิดพลาดที่เกี่ยวข้องในกระบวนการ แต่คุณสามารถใช้ ifconfig เพื่อค้นหาอินเทอร์เฟซเครือข่าย ppp0 หรือ ppp1 คุณจะต้องอ้างอิงสิ่งนี้ในภายหลัง คุณสามารถเพิ่ม usepeerdns ได้หากคุณต้องการขอเพียร์สำหรับที่อยู่เซิร์ฟเวอร์ DNS สองสามรายการซึ่งจะถูกส่งไปยัง เป็นตัวแปรสภาพแวดล้อมที่ชื่อ DNS2 และ DNS1 นอกจากนี้คุณยังบังคับให้ตัวแปรสภาพแวดล้อมที่เรียกว่า USEPEERDNS เพื่อตั้งค่าตัวเองเป็น 1 เช่นกัน หากคุณต้องการใช้เซิร์ฟเวอร์ DNS ของคุณเองและไม่ใช่เซิร์ฟเวอร์ที่ ISP มอบหมายให้คุณคุณสามารถเพิ่มบรรทัดในไฟล์ ไฟล์เช่น:

สิ่งเหล่านี้จำเป็นต้องอยู่ที่นี่ตั้งแต่ทุกครั้งที่คุณรีบูตเซิร์ฟเวอร์หรือสร้างการเชื่อมต่อ PPPoE ใหม่ไฟล์ ไฟล์ถูกเขียนทับ

ในกรณีส่วนใหญ่ MTU ของคุณตั้งไว้ที่ประมาณ 1,500 แต่สูงสุดที่คุณจะทำได้ประมาณปี 1492 หรืออาจน้อยกว่านั้นเนื่องจากคุณใช้อินเทอร์เฟซ PPPoE สมมติว่าคุณได้กำหนด MTU สูงสุดสำหรับระบบ ppp0 หรือ ppp1 ของคุณแล้วคุณจะต้องใช้ เพื่อเปิดไฟล์ ip-up จากนั้นเพิ่มบรรทัด / sbin / ifconfig ppp0 คน #### ที่ด้านล่างสุดแทนที่ #### ด้วยค่าที่ถูกต้องของคุณ อาจมีประมาณปี 1480 หากคุณไม่แน่ใจ

บทแนะนำมากมายจะบอกให้คุณตั้งค่าการเชื่อมต่อ eth0 WAN เป็น DHCP แต่คุณต้องตั้งค่าเป็นแบบแมนนวลเนื่องจากการเชื่อมต่อ PPPoE ที่คุณกำลังดำเนินการอยู่ ใช้ และแก้ไขเพื่อให้โค้ดบล็อกภายใต้ # อินเทอร์เฟซเครือข่าย WAN อ่านคู่มือ eth0 อัตโนมัติและ iface eth0 inet จากนั้นบล็อกโค้ดที่อยู่ด้านล่างควรอ่าน:

# อินเทอร์เฟซเครือข่าย LAN

อัตโนมัติ eth1

iface eth1 inet คงที่

ที่อยู่ 192.168.1.1

netmask 255.255.255.0

เราเตอร์จำเป็นต้องเปิดใช้งานการส่งต่อแพ็กเก็ตเพื่อทำหน้าที่เป็นเราเตอร์ดังนั้นใช้ จากนั้นลบไฟล์ octothorpe ข้างหน้า net.ipv4.ip_forward = 1 ก่อนบันทึก คุณจะพบมันภายใต้คำพูดที่อ่าน # Uncomment บรรทัดถัดไปเพื่อเปิดใช้งานการส่งต่อแพ็กเก็ตสำหรับ IPv4 แต่คุณอาจต้องการลบเครื่องหมายที่อยู่หน้า net.ipv6.conf.all.forwarding = 1 หากคุณวางแผนที่จะใช้ การกำหนดเส้นทาง IPv6 ซึ่งอาจเป็นความท้าทายภายใต้ระบบ PPPoE

เปิดไฟล์ iptables เพื่อแก้ไขด้วยไฟล์ จากนั้นเพิ่มบรรทัดเหล่านี้เข้าไป:

บันทึกไฟล์แล้วออกจาก nano หรือโปรแกรมแก้ไขข้อความอื่น ๆ ที่คุณเคยใช้ก่อนดำเนินการต่อ iptables เป็นไฟร์วอลล์หลักสำหรับเคอร์เนล Linux ดังนั้นจึงเป็นความคิดที่ดีที่จะมีตารางเหล่านี้ตามลำดับก่อนที่คุณจะเริ่มการเชื่อมต่อ ISP จริง

ตอนนี้คุณจะต้องเปลี่ยนการอนุญาตของไฟล์ที่เป็นปัญหาดังนั้นคุณอาจต้องการใช้ sudo -i หรือ sudo bash เพื่อรับพรอมต์รูท เมื่อคุณใช้:

เมื่อใช้สิทธิ์เหล่านี้แล้วคุณสามารถพิมพ์ exit และกดปุ่ม Enter เพื่อออกจากพรอมต์ที่ยกระดับ

ไฟล์กำหนดค่าถัดไปที่เราต้องเปิดด้วย และคุณจะแก้ไขในรูปแบบเดียวกัน คุณต้องเพิ่มการตั้งค่าต่อไปนี้โดยแทนที่ไฟล์ octothorpes ด้วยที่อยู่ IP ที่ถูกต้องสำหรับเราเตอร์ของคุณ:

เครือข่ายย่อย ###. ###. ##. # netmask 255.255.255.0 {

พิสัย ###.###.##.### ###.###.##.###;

เราเตอร์ตัวเลือก ###. ###. ##. #;

ตัวเลือกโดเมนเนมเซิร์ฟเวอร์ ###. ###. ##. #;

ตัวเลือกที่อยู่ออกอากาศ ###. ###. ##. ###;

}

บันทึกและปิดไฟล์ หากคุณกำลังทำงานกับการ์ด SD หรือสิ่งที่คล้ายกันนี่ก็เป็นอีกช่วงเวลาที่ดีในการออกคำสั่งซิงค์เช่นกัน

คุณจะต้องใช้ ซูโดนาโน อีกครั้งเพื่อเปิดไฟล์ ไฟล์เพื่อรวมกฎที่คุณกำหนดเอง เรายังคงทำงานร่วมกับการเชื่อมต่อ PPPoE ดังนั้นเราจะใช้ไฟล์อุปกรณ์ ppp0 แทนค่าเริ่มต้น eth0

ภายใต้บล็อกโค้ดที่ขึ้นต้นด้วยความคิดเห็น“ # ยึด MSS เป็นขนาด MTU ” รวมบรรทัดต่อไปนี้:

-A ไปข้างหน้า -p tcp –tcp-flags SYN, RST SYN -j TCPMSS –clamp-mss-to-pmtu

กฎนี้จำเป็นเพื่อป้องกันไม่ให้โหลดหน้าเว็บเพียงครึ่งทางหรือหมดเวลา แทนที่จะตรึง MTU และ MSS เข้าด้วยกันดังนั้นคุณจะไม่ประสบปัญหาเหล่านี้ ตอนนี้สิ่งนี้ช่วยให้เคอร์เนล Linux สามารถคาดเดาเกี่ยวกับขนาดที่ถูกต้องได้ แต่คุณสามารถระบุได้หากจำเป็น ภายใต้บล็อกรหัสที่ขึ้นต้นด้วย“ # ระบุขนาด MSS ” คุณจะต้องเพิ่ม:

-A ไปข้างหน้า -p tcp –tcp-flags SYN, RST SYN -j TCPMSS –set-mss ####

แทนที่ส่วน #### ด้วยค่า MSS ที่ถูกต้อง คุณสามารถคิดออกได้ด้วยคณิตศาสตร์ง่ายๆ ลบขนาดส่วนหัว PPPoE จาก MTU ของคุณจากนั้นลบส่วนหัว IP และส่วนหัว TCP ความแตกต่างคือขนาด MSS ทั้งหมด

คุณอาจต้องแก้ไขกฎการบริการ SSH เพื่อเพิ่มตัวเลือก –syn ที่จะช่วยให้คุณเข้าถึง SSH ไปยังเราเตอร์นี้จากคอมพิวเตอร์เครื่องอื่นที่ลงทะเบียนบน LAN ของคุณ การแสดงความคิดเห็นเกี่ยวกับกฎการบริการ ICMP จะทำให้เครื่องของคุณไม่ตอบกลับการปิงใด ๆ สิ่งนี้จะทำให้คอมพิวเตอร์ของคุณค่อนข้างลับๆล่อๆแม้ว่าคุณไม่ควรพิจารณาการรักษาแบบ end-all ประเภทนี้ที่ทำให้พฤติกรรมการท่องเว็บของคุณผ่านเราเตอร์นี้มองไม่เห็น จะไม่เป็นเช่นนั้น แต่เป็นการรักษาความปลอดภัยอีกชั้นหนึ่งเพื่อปกป้องคุณ

บางครั้งอินเทอร์เฟซหรือการเชื่อมต่อ PPPoE ที่คุณใช้งานอยู่จะไม่สามารถเชื่อมต่อได้ทันทีเมื่อคุณบูตเราเตอร์ดังนั้นคุณอาจต้องสร้าง Scrip เริ่มต้นแบบสั้นเพื่อให้แน่ใจว่าจะทำงานได้อย่างถูกต้องเมื่อระบบบูตขึ้น เพิ่มเวลาบูตทั้งหมดประมาณ 8-10 วินาทีเท่านั้นจึงคุ้มค่าจริงๆ แก้ไขไฟล์ ไฟล์ด้วย sudo nano อีกครั้งจากนั้นเพิ่มไฟล์

นอนหลับ 3

ifup eth0

นอนหลับ 3

ifup eth1

นอนหลับ 3

ผู้ให้บริการปอน

คุณจะต้องแทนที่ผู้ให้บริการด้วยชื่อของไฟล์ที่กำหนดเองหากคุณสร้างขึ้นเพื่อแทนที่ไฟล์ผู้ให้บริการเริ่มต้น เราเตอร์หลายตัวต้องการเวลาพักเครื่องเพียง 1-2 วินาทีดังนั้นคุณอาจต้องการทดลองใช้เพื่อปรับปรุงประสิทธิภาพการบูต ไม่ควรใช้เวลามากในการรีสตาร์ทตั้งแต่แรกอยู่แล้ว

สิ่งนี้ควรเรียกใช้คำสั่ง pon และ ifup หลังจากที่ระบบบูตโดยสมบูรณ์ แต่ก่อนที่ข้อความแจ้งการเข้าสู่ระบบของคอนโซลเสมือนจริงจะปรากฏขึ้น หากการเชื่อมต่อพร้อมใช้งานจะไม่มีอะไรเกิดขึ้น แต่หากการเชื่อมต่ออย่างใดอย่างหนึ่งทำงานไม่ถูกต้องสคริปต์นี้จะตรวจสอบให้แน่ใจว่าได้เริ่มต้นอย่างถูกต้อง คำสั่ง pon สุดท้ายอาศัย eth0 และ eth1 ดังนั้นคุณต้องวางตำแหน่งเป็นขั้นตอนสุดท้ายเสมอมิฉะนั้นสคริปต์อาจล้มเหลว

ทันทีที่คุณรีบูตเครื่องหลังจากทำการเปลี่ยนแปลงทั้งหมดนี้คุณจะมีเราเตอร์ที่ทำงานได้อย่างสมบูรณ์บนเซิร์ฟเวอร์ Ubuntu คุณอาจต้องการใช้เป็นครั้งคราว sudo iptables-L หากคุณต้องการตรวจสอบสถานะเป็นครั้งคราว แต่มิฉะนั้นทุกอย่างจะทำงานได้ดีหากไม่ดีไปกว่าเราเตอร์ที่ผลิตในเชิงพาณิชย์ เราเตอร์ใหม่ของคุณจะเรียกใช้แพ็คเกจ Ubuntu อื่น ๆ ที่จำเป็น แต่คุณไม่จำเป็นต้องติดตั้ง X Server หรือสิ่งอื่นใดเนื่องจากระบบควรทำงานได้อย่างถูกต้องโดยไม่ต้องใช้ซอฟต์แวร์อินเทอร์เฟซผู้ใช้เพิ่มเติม

อ่าน 9 นาที