Làm thế nào để cài đặt Ubuntu Server như một Router bằng PPPoE

Ubuntu Server được thiết kế kỹ thuật như một CLI chỉ có hệ điều hành để sử dụng với các máy chủ sắt lớn, nhưng không có lý do nó không thể làm việc trong các bộ định tuyến và các hệ thống nhúng quản lý giao thức điểm-điểm trên Ethernet. Giả sử rằng một dự án như thế này cần một PC không quạt nhỏ hoặc một số loại hộp định tuyến mà bạn có thể sửa đổi thông qua một chip flash NAND. Nhiều khả năng bạn sẽ cài đặt một lượng RAM khá lớn cũng như một đĩa trạng thái rắn để loại bỏ nhiễu cũng như các bộ phận chuyển động. Bạn có thể quan tâm đến việc sử dụng bộ chuyển đổi SDHC-to-SATA để có thể chạy toàn bộ hệ điều hành khỏi thẻ SD. Thẻ SD được lắp vào các khe cắm bên trên phần cứng không phải di sản cũng có thể khởi động hệ điều hành. Điều này hoạt động khi sử dụng nó với một hệ thống PPPoE tốt.

Mặc dù bạn có thể nghĩ rằng việc sử dụng loại cấu hình này có thể chậm mà không có đĩa cứng cơ điện thích hợp, nhưng thực tế bạn sẽ giảm thời gian truy cập. Ubuntu Server là quá nhỏ nó khởi động nhanh chóng anyway. Một khi bạn có router của bạn tại chỗ, có thể bạn sẽ không thực sự bật và tắt nó thường xuyên. Bất kể cấu hình nào bạn chọn, bạn sẽ muốn trỏ trình duyệt của mình đến https://www.ubuntu.com/download/server để tải xuống ISO. Phiên bản mới nhất tại thời điểm viết bài này, Ubuntu Server 16.04.1 LTS, được thiết kế chỉ để sử dụng với kiến ​​trúc 64-bit. Hầu hết các router hiện đại và các thiết bị thin client đều đáp ứng yêu cầu này, nhưng điều này có thể là vấn đề nếu bạn đang thử một thứ gì đó thực sự kỳ lạ như sử dụng một netbook như một router.

Cấu hình máy chủ Ubuntu làm PPPoE Router

Một số mạng ISP chính vẫn yêu cầu xác thực PPPoE. Hầu như tất cả các mạng DSL sử dụng điều này, và mặc dù nó không cần thiết khi làm việc với một kết nối sợi, một số người trong số họ vẫn thực sự sử dụng nó là tốt. Các bộ định tuyến Netgear cung cấp một dấu nhắc đăng nhập cho phép bạn kết nối với các loại mạng này một cách dễ dàng, nhưng sẽ mất một số công việc để có được một bộ định tuyến Linux được xây dựng trong nhà để giao tiếp chính xác với loại công nghệ này.

Nếu bạn chưa có trong trình duyệt của mình, hãy truy cập http://releases.ubuntu.com/16.04.1/ . Bạn có thể đã tải xuống ISO từ trang này nếu bạn không có nó, nhưng một khi bạn có nó, hãy cuộn xuống liên kết đọc MD5SUMS và chọn nó.

Từ lời nhắc CLI, chạy md5sum trên Ubuntu Server ISO và đảm bảo rằng nó khớp với số bên cạnh ubuntu-16.04-desktop-amd64.iso trong danh sách.

Nếu có, hãy lấy một thẻ nhớ USB trống hoàn toàn hoặc thẻ SD sẵn sàng và gõ sudo nếu = ubuntu-16.04-desktop-amd64.iso của = / dev / sdLetter bs = 8M, thay thế dấu nhắc = bằng tên của thiết bị được đề cập. Bạn có thể sử dụng sudo fdisk -l để tìm tất cả các thiết bị được gắn vào hệ thống của bạn. Một khi bạn đã làm như vậy, đúng cách loại bỏ các ổ đĩa và đính kèm nó vào hệ thống router. Khởi động lại nó, và đẩy bất cứ phím nào là cần thiết để khởi động hệ thống đã nói từ bộ lưu trữ di động. Ubuntu Server cài đặt tương đối dễ dàng dựa trên một số lời nhắc ncurses dựa trên văn bản.

Tuy nhiên, một vấn đề khi cài đặt nó là phương tiện di động sẽ yêu cầu bạn kết nối Internet trong quá trình cài đặt, và việc kết nối một hộp như thế này trực tiếp với mạng sẽ gây ra một số vấn đề bảo mật. Cắm nó vào một trong các cổng mạng của bộ định tuyến cũ của bạn để cung cấp các dịch vụ tường lửa cho đến khi bạn khởi động và chạy nó. Ngay sau khi thực hiện, bạn cần thực hiện một số chỉnh sửa cho bộ nạp khởi động GRUB. Nếu có thể, hãy rút bộ định tuyến Linux khỏi máy hiện tại của bạn càng sớm càng tốt để tiếp tục cài đặt ngoại tuyến. Điều này sẽ ngăn chặn các vấn đề DHCP lạ bạn có thể nhận được trên kết nối hiện tại của bạn nếu không.

Nhiều khả năng, bạn sẽ không muốn cài đặt bất kỳ phần mềm bổ sung nào trong quá trình định cấu hình hệ điều hành. GRUB âm thầm khởi động trên một cài đặt Ubuntu Server mặc định, có nghĩa là bạn sẽ không thấy bất kỳ thông báo gỡ lỗi nào. Nếu bạn thấy con trỏ nhấp nháy không có gì khác sau khi khởi động, hãy giữ phím Ctrl, Alt và F1 để đến bàn điều khiển ảo. Đăng nhập vào tài khoản của bạn và sau đó nhập mặc dù bạn cũng có thể muốn sử dụng vi thay thế. Tìm một dòng đọc GRUB_CMDLINE_LINUX_DEFAULT = giật gân yên tĩnh và xóa các từ giật gân trong dấu ngoặc kép. Bạn cũng sẽ muốn chỉnh sửa dòng ghi GRUB_CMDLINE_LINUX = để bao gồm net.ifnames = 0 biosdevname = 0 trong dấu ngoặc kép để đặt tên đúng cho các thẻ mạng của bạn. Lưu tệp và sau đó chạy sudo update-grub để cập nhật bộ khởi động của bạn, vì tệp grub có lẽ thực sự nằm trên phân vùng UEFI nào đó.

Tìm một dòng đọc GRUB_CMDLINE_LINUX_DEFAULT = giật gân yên tĩnh và xóa các từ yên tĩnh giật gân có trong dấu ngoặc kép. fsafa

Đó là một tên cướp biển.

Nhập sudo nano để mở tệp giao diện của bạn để chỉnh sửa, và sau đó thay đổi tên của các thẻ mạng bạn tìm thấy có trở lại eth0 truyền thống và eth1, sau đó lưu tệp và thoát. Khi bạn đã hết tệp, bạn có thể khởi động lại hệ thống để đảm bảo rằng các thay đổi có hiệu lực đúng cách.

Bây giờ bạn sẽ cần cài đặt phần mềm PPPoE và OpenSSL thích hợp để hoàn tất quá trình cài đặt. Bạn có thể cài đặt DNS, DHCP, PPPoE và OpenSSL với một vấn đề dòng lệnh:

sudo apt-get cài đặt bind9 isc-dhcp-server openssl pppoeconf

Quá trình này có thể mất vài phút và có thể hỏi bạn có sẵn sàng chấp thuận thay đổi hay không. Hãy chắc chắn để nói với bạn rằng bạn đang có. Ngay sau khi hoàn thành mọi thứ, bạn có thể thực sự ngắt kết nối khỏi Internet và tiếp tục ngoại tuyến. Bạn có thể muốn sử dụng lệnh đồng bộ hóa một vài lần để đảm bảo tất cả các bộ đệm được đồng bộ hóa với nhau trong trường hợp có lỗi xảy ra.

ISP của bạn cung cấp cho bạn một tên người dùng và mật khẩu, mà bạn sẽ cần phải nhập vào tập tin chap-secrets. Kiểu nhưng hãy nhớ rằng bạn vẫn có thể sử dụng vi nếu bạn thích. Tên người dùng và mật khẩu của bạn cần phải được trích dẫn. Ví dụ: bạn có thể muốn:

billy * mypass3

Lưu tệp và bây giờ điều hướng đến Bạn sẽ tìm thấy một tập tin được gọi là nhà cung cấp trong thư mục này. Mở nó bằng nano như bạn đang làm với các tệp cấu hình khác, hoặc tạo một tệp mới theo cách tương tự. Đặt mỗi lệnh trên một dòng riêng trong tệp:

noipdefault

defaultroute

replacedefaultroute

kiên trì

plugin rr-pppoe.so eth0

người dùng billy

Bạn cũng có thể đặt trong hide-password và noauth nếu bạn không muốn sử dụng nhắc nhở đăng nhập, vì bạn sẽ sử dụng nó như một router và không phải là một máy sản xuất thực tế với một giao diện thông thường. Thay thế tên billy bằng tên người dùng thực tế bạn có, và sau đó chạy nhà cung cấp pon hoặc tên của tệp bạn tạo để kết nối. Nó sẽ cung cấp cho bạn bất kỳ thông báo lỗi có liên quan nào trong quá trình này, nhưng bạn có thể sử dụng ifconfig để tìm giao diện mạng ppp0 hoặc ppp1. Bạn sẽ cần phải tham khảo sau này. Bạn có thể thêm usepeerdns nếu bạn muốn hỏi đồng đẳng một vài địa chỉ máy chủ DNS, sau đó nó được chuyển đến dưới dạng biến môi trường có gắn nhãn DNS2 và DNS1. Bạn cũng sẽ ép buộc một biến môi trường có tên USEPEERDNS để đặt chính nó thành 1. Nếu bạn muốn sử dụng các máy chủ DNS của riêng bạn và không phải máy chủ được gán cho bạn bởi ISP của bạn, bạn có thể thêm các dòng vào tập tin như:

Mẹo CHUYÊN NGHIỆP: Nếu vấn đề xảy ra với máy tính của bạn hoặc máy tính xách tay / máy tính xách tay, bạn nên thử sử dụng phần mềm Reimage Plus có thể quét các kho lưu trữ và thay thế các tệp bị hỏng và bị thiếu. Điều này làm việc trong hầu hết các trường hợp, nơi vấn đề được bắt nguồn do một tham nhũng hệ thống. Bạn có thể tải xuống Reimage Plus bằng cách nhấp vào đây

Những thứ này cần phải ở đây vì mỗi khi bạn khởi động lại máy chủ hoặc thiết lập kết nối PPPoE mới, các tệp được ghi đè.

Trong hầu hết các trường hợp, MTU của bạn được đặt vào khoảng 1500, nhưng cao nhất bạn sẽ có thể nhận được nó khoảng 1492 hoặc thậm chí ít hơn kể từ khi bạn đang sử dụng giao diện PPPoE. Giả sử bạn đã xác định MTU tối đa cho hệ thống ppp0 hoặc ppp1 của bạn, bạn sẽ cần phải sử dụng để mở tệp ip-up và sau đó thêm dòng / sbin / ifconfig ppp0 mtu #### ở dưới cùng, thay thế #### bằng giá trị chính xác của bạn. Nó có thể là một nơi nào đó khoảng 1480 nếu bạn không chắc chắn.

Nhiều hướng dẫn sẽ cho bạn biết để thiết lập kết nối WAN eth0 với DHCP, nhưng bạn cần phải thiết lập nó thành thủ công do kết nối PPPoE mà bạn đang làm việc phía sau. Sử dụng và chỉnh sửa nó để khối mã dưới # Giao diện mạng WAN đọc tự động eth0 và iface eth0 inet manual và sau đó khối mã bên dưới nó sẽ đọc:

# Giao diện mạng LAN

auto eth1

iface eth1 inet tĩnh

địa chỉ 192.168.1.1

netmask 255.255.255.0

Các bộ định tuyến cần kích hoạt chuyển tiếp gói để hoạt động như một bộ định tuyến, vì vậy hãy sử dụng và sau đó loại bỏ octothorpe ở phía trước net.ipv4.ip_forward = 1 trước khi lưu. Bạn sẽ tìm thấy nó dưới một câu trích dẫn đọc # Bỏ ghi chú dòng kế tiếp để cho phép chuyển tiếp gói cho IPv4, nhưng bạn cũng có thể muốn xóa dấu ở phía trước net.ipv6.conf.all.forwarding = 1 nếu bạn định sử dụng Định tuyến IPv6, có thể là một thách thức trong hệ thống PPPoE.

Mở tệp iptables để chỉnh sửa bằng và sau đó thêm các dòng này vào nó:

Lưu tệp và sau đó thoát khỏi nano hoặc bất kỳ trình chỉnh sửa văn bản nào khác mà bạn đã sử dụng trước khi tiếp tục. Các iptables cấu thành tường lửa chính cho hạt nhân Linux, vì vậy bạn nên có các bảng này theo thứ tự trước khi thực sự bắt đầu kết nối ISP.

Bạn sẽ cần phải thay đổi các quyền trên tệp đang được đề cập đến, vì vậy bạn có thể muốn sử dụng sudo -i hoặc sudo bash để nhận lời nhắc gốc. Khi bạn đã sử dụng:

Sau khi các quyền này được áp dụng, bạn có thể nhập exit và nhấn phím enter để thoát khỏi lời nhắc được nâng lên.

Tệp cấu hình tiếp theo chúng ta cần mở và bạn sẽ chỉnh sửa nó theo cùng một cách chính xác. Bạn cần thêm các cài đặt sau, thay thế octothorpes bằng địa chỉ IP phù hợp cho bộ định tuyến của bạn:

mạng con ###. ###. ##. # netmask 255.255.255.0 {

phạm vi ###.###.##.### ###.###.##.###;

bộ định tuyến tùy chọn ###. ###. ##. #;

tùy chọn tên miền-tên-máy chủ ###. ###. ##. #;

tùy chọn địa chỉ quảng bá ###. ###. ##. ###;

}

Lưu và đóng tập tin. Nếu bạn đang làm việc với một thẻ SD hoặc một cái gì đó tương tự, thì đây cũng là một thời điểm tốt để phát hành lệnh đồng bộ hóa.

Bạn sẽ cần phải sử dụng sudo nano một lần nữa để mở tệp để bao gồm các quy tắc tùy chỉnh của riêng bạn. Chúng tôi vẫn đang làm việc với một kết nối PPPoE, vì vậy chúng tôi sẽ sử dụng tệp thiết bị ppp0 thay vì mặc định eth0.

Trong một khối mã bắt đầu bằng chú thích # Kẹp kích thước MSS đến MTU, bao gồm dòng sau:

-A FORWARD -p tcp –tcp-cờ SYN, RST SYN -j TCPMSS –clamp-mss-to-pmtu

Quy tắc này là bắt buộc để ngăn các trang web chỉ tải nửa chừng hoặc hết thời gian. Nó thay vì ghim MTU và MSS lại với nhau, vì vậy bạn sẽ không có những vấn đề này. Bây giờ điều này cho phép hạt nhân Linux đoán về kích thước chính xác, nhưng bạn thực sự có thể chỉ định chúng nếu cần. Trong một khối mã bắt đầu bằng # Chỉ định kích thước MSS, bạn sẽ cần phải thêm:

-A FORWARD -p tcp –tcp-cờ SYN, RST SYN -j TCPMSS –set-mss ####

Thay thế phần #### bằng giá trị MSS chính xác. Bạn có thể tìm ra bằng một chút toán học đơn giản. Trừ kích thước tiêu đề PPPoE khỏi MTU của bạn, và sau đó trừ tiêu đề IP và tiêu đề TCP. Sự khác biệt là tổng kích thước MSS.

Bạn có thể cần sửa đổi quy tắc dịch vụ SSH để thêm tùy chọn –syn cho phép bạn truy cập SSH vào bộ định tuyến này từ một máy tính khác đã đăng ký trên mạng LAN của bạn. Nhận xét ra quy tắc dịch vụ ICMP sẽ làm cho máy của bạn không trả lời bất kỳ ping nào. Điều này thực sự sẽ làm cho máy tính của bạn khá lén lút, mặc dù bạn không nên xem xét điều này một số loại kết thúc tất cả điều trị mà làm cho thói quen duyệt web của bạn thông qua router này vô hình. Nó sẽ không, nhưng nó là một lớp bảo mật hơn để bảo vệ bạn.

Đôi khi các giao diện hoặc các kết nối PPPoE bạn đang làm việc sẽ không thực sự kết nối ngay lập tức khi bạn khởi động bộ định tuyến, vì vậy bạn có thể muốn tạo một đoạn khởi động ngắn để đảm bảo rằng nó hoạt động đúng khi khởi động hệ thống. Nó chỉ thêm khoảng 8-10 giây cho tổng thời gian khởi động, vì vậy nó thực sự đáng giá. Chỉnh sửa tập tin với sudo nano một lần nữa, và sau đó thêm

ngủ 3

ifup eth0

ngủ 3

ifup eth1

ngủ 3

pon nhà cung cấp

Bạn sẽ cần thay thế nhà cung cấp bằng tên của tệp tùy chỉnh nếu bạn đã tạo một tệp để thay thế tệp nhà cung cấp mặc định. Nhiều bộ định tuyến chỉ cần thời gian ngủ 1-2 giây, vì vậy bạn có thể muốn thử nghiệm với điều đó để cải thiện hiệu suất khởi động. Nó không nên mất nhiều thời gian để khởi động lại ở tất cả ở nơi đầu tiên anyway.

Điều này sẽ chạy các lệnh pon và ifup sau khi hệ thống được khởi động hoàn toàn, nhưng trước khi các thông báo đăng nhập của bàn điều khiển ảo thực tế xuất hiện. Nếu kết nối lên, thì không có gì xảy ra, nhưng nếu một trong các kết nối không hoạt động đúng thì tập lệnh này sẽ đảm bảo rằng nó được khởi tạo đúng cách. Lệnh pon cuối cùng dựa trên eth0 và eth1, vì vậy bạn phải luôn đặt vị trí đó là bước cuối cùng hoặc nếu không thì tập lệnh có thể thực sự thất bại.

Ngay sau khi bạn khởi động lại máy sau khi thực hiện tất cả những thay đổi này, bạn sẽ có một bộ định tuyến hoạt động đầy đủ hoạt động trên Ubuntu Server. Đôi khi bạn có thể sử dụng sudo iptables-L nếu bạn cần kiểm tra trạng thái của chúng, nhưng nếu không mọi thứ sẽ hoạt động tốt nếu không tốt hơn so với bộ định tuyến được sản xuất thương mại. Router mới của bạn sẽ chạy bất kỳ gói Ubuntu nào cần thiết, nhưng bạn không cần phải cài đặt X Server hay bất kỳ thứ gì khác, bởi vì hệ thống sẽ hoạt động chính xác mà không cần phần mềm giao diện người dùng bổ sung.

Mẹo CHUYÊN NGHIỆP: Nếu vấn đề xảy ra với máy tính của bạn hoặc máy tính xách tay / máy tính xách tay, bạn nên thử sử dụng phần mềm Reimage Plus có thể quét các kho lưu trữ và thay thế các tệp bị hỏng và bị thiếu. Điều này làm việc trong hầu hết các trường hợp, nơi vấn đề được bắt nguồn do một tham nhũng hệ thống. Bạn có thể tải xuống Reimage Plus bằng cách nhấp vào đây

Facebook Twitter Google Plus Pinterest