Cách thiết lập Máy chủ Ubuntu làm Bộ định tuyến bằng PPPoE



Hãy Thử Công Cụ CủA Chúng Tôi Để LoạI Bỏ Các VấN Đề

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



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 nếu không có đĩa cứng cơ điện thích hợp, nhưng về mặt lý thuyết, bạn sẽ giảm thời gian truy cập. Ubuntu Server quá nhỏ nên nó khởi động nhanh. Sau khi đã đặt bộ định tuyến, có thể bạn sẽ không thực sự bật và tắt nó thường xuyên. Bất kể bạn chọn cấu hình nào, 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 thiết bị router và thin client hiện đại đều đáp ứng tốt yêu cầu này, nhưng đây có thể là vấn đề nếu bạn đang cố gắng thực hiện một điều gì đó thực sự kỳ lạ như sử dụng netbook làm bộ định tuyến.





Cấu hình Ubuntu Server làm Bộ định tuyến PPPoE

Một số mạng ISP chính vẫn yêu cầu xác thực PPPoE. Hầu hết tất cả các mạng DSL đều 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 kết nối cáp quang, một số trong số họ vẫn thực sự sử dụng nó. Bộ định tuyến Netgear cung cấp lời 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 để bộ định tuyến Linux được xây dựng tại nhà có giao diện 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 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 chuẩn bị sẵn thẻ nhớ USB hoặc thẻ SD trống hoàn toàn và nhập sudo if = ubuntu-16.04-desktop-amd64.iso of = / dev / sdLetter bs = 8M , thay thế dấu nhắc of = bằng tên của thiết bị được đề cập. Bạn có thể 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. Khi bạn đã làm như vậy, hãy tháo ổ đĩa đúng cách và gắn nó vào hệ thống bộ định tuyến. Khởi động lại nó và nhấn bất kỳ phím nào cần thiết để khởi động hệ thống đã nói từ bộ nhớ 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ó theo kiểu này là phương tiện di động sẽ yêu cầu bạn kết nối với Internet trong khi cài đặt và việc kết nối trực tiếp một hộp như thế này với mạng 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 dịch vụ tường lửa cho đến khi bạn thiết lập và chạy nó. Ngay sau khi thực hiện, bạn sẽ cần thực hiện một số chỉnh sửa đối với bộ tải khởi động GRUB. Nếu có thể, hãy rút bộ định tuyến Linux ra khỏi máy hiện có 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ạ mà bạn có thể gặp phải trên kết nối hiện có của mình.

Nhiều khả năng là 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 cấu hình hệ điều hành. GRUB khởi động âm thầm trên 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 một con trỏ nhấp nháy mà không có gì khác sau khi khởi động, hãy giữ Ctrl, Alt và F1 để truy cập bảng điều khiển ảo. Đăng nhập vào tài khoản của bạn, 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ó nội dung GRUB_CMDLINE_LINUX_DEFAULT = 'tiếng giật gân' và xóa các từ giật gân yên tĩnh trong dấu ngoặc kép. Bạn cũng sẽ muốn chỉnh sửa một dòng có nội dung GRUB_CMDLINE_LINUX = ”” để bao gồm net.ifnames = 0 biosdevname = 0 trong dấu ngoặc kép để đặt tên đúng 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ộ ghi khởi động của bạn, vì tệp grub có thể thực sự nằm trên một số loại phân vùng UEFI.

Tìm một dòng có nội dung GRUB_CMDLINE_LINUX_DEFAULT = 'tiếng giật gân' và xóa các từ “ giật gân yên tĩnh ”Nằm trong dấu ngoặc kép. fsafa

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

Kiểu sudo nano để mở tệp giao diện của bạn để chỉnh sửa, sau đó thay đổi tên của các card mạng mà bạn tìm thấy ở đó trở lại eth0eth1 , sau đó lưu tệp và thoát. Sau khi thoát khỏi 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.

Bây giờ, bạn 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 chỉ với một dòng lệnh duy nhất:

sudo apt-get install 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 đã sẵn sàng chấp thuận các thay đổi chưa. Hãy chắc chắn rằng bạn đang có. Ngay sau khi nó hoàn tất mọi thứ, bạn thực sự có thể ngắt kết nối Internet và tiếp tục ngoại tuyến. Bạn có thể muốn sử dụng lệnh đồng bộ 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ó điều gì đó xấu xảy ra.

ISP của bạn cung cấp cho bạn tên người dùng và mật khẩu mà bạn cần nhập vào tệp chap-secret. 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 đượ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 có tên là nhà cung cấp trong thư mục này. Mở nó bằng nano giống 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 này trên một dòng riêng biệt trong tệp:

noipdefault

defaultroute

đã thay thế

kiên trì

plugin rr-pppoe.so eth0

người dùng “billy”

Bạn cũng có thể nhập mật khẩu ẩn và mật khẩu nếu bạn không muốn sử dụng lời nhắc đăng nhập, vì bạn sẽ sử dụng thiết bị này như một bộ định tuyến chứ không phải như một máy sản xuất thực tế với giao diện thông thường. Thay thế billy tên bằng tên người dùng thực tế mà bạn có, rồi chạy pon provider 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 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 tham khảo điều này sau. Bạn có thể thêm usepeerdns nếu bạn muốn yêu cầu đồng đẳng cung cấp một vài địa chỉ máy chủ DNS, sau đó được chuyển đến dưới dạng các biến môi trường có nhãn DNS2 và DNS1. Bạn cũng sẽ 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 máy chủ DNS của riêng mình chứ không phải máy chủ do ISP chỉ định cho bạn, bạn có thể thêm các dòng vào tệp như:

Chúng cần phải ở đây vì mỗi lần bạn khởi động lại máy chủ hoặc thiết lập kết nối PPPoE mới, tệp bị ghi đè.

Trong hầu hết các trường hợp, MTU của bạn được đặt ở mức khoảng 1500, nhưng mức cao nhất mà bạn có thể đạt được là khoảng 1492 hoặc thậm chí có thể thấp hơn vì 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 mình, bạn sẽ cần sử dụng để mở tệp ip-up và sau đó thêm dòng / sbin / ifconfig ppp0 man #### ở dưới cùng, thay thế #### với giá trị chính xác của bạn. Nó có thể ở đâu đó vào khoảng năm 1480 nếu bạn không chắc chắn.

Nhiều hướng dẫn sẽ cho bạn biết cách đặt kết nối WAN eth0 thành DHCP, nhưng bạn cần đặt nó thành thủ công do kết nối PPPoE mà bạn đang làm việc. Sử dụng và chỉnh sửa nó để khối mã bên dưới # Giao diện mạng WAN đọc hướng dẫn sử dụng inet auto eth0 và iface eth0 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

mặt nạ mạng 255.255.255.0

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 ở đằng trước net.ipv4.ip_osystem = 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ó nội dung # Bỏ ghi chú dòng tiếp theo để bật 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.ionarying = 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 với và sau đó thêm các dòng sau vào nó:

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

Bây giờ bạn sẽ cần thay đổi các quyền đối với tệp được đề cập, vì vậy bạn có thể muốn sử dụng sudo -i hoặc sudo bash để nhận được lời nhắc root. 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 nâng cao.

Tệp cấu hình tiếp theo chúng ta cần mở bằng và bạn sẽ chỉnh sửa nó theo cùng một kiểu chính xác. Bạn cần thêm các cài đặt sau, thay thế octothorpes với đị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ủ ###. ###. ##. #;

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

}

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

Bạn sẽ cần 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 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.

Dưới một khối mã bắt đầu bằng nhận xét “ # Kẹp MSS với kích thước MTU, ”Bao gồm dòng sau:

-A FORWARD -p tcp –tcp-flags 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 được một nửa hoặc hết thời gian. Thay vào đó, nó ghim MTU và MSS lại với nhau, vì vậy bạn sẽ không gặp phải những vấn đề này. Bây giờ điều này cho phép 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. Dưới khối mã bắt đầu bằng “ # Chỉ định kích thước MSS, ”Bạn sẽ cần thêm:

-A FORWARD -p tcp –tcp-flags 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 nó với 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, 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 sẽ 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ý trong mạng LAN của bạn. Nhận xét quy tắc dịch vụ ICMP sẽ khiến 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 trở nên khá lén lút, mặc dù bạn không nên coi đây là một cách xử lý cuối cùng khiến thói quen duyệt web của bạn qua bộ định tuyến này trở nên vô hình. Nó sẽ không, nhưng nó là một lớp bảo mật nữa để bảo vệ bạn.

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

ngủ 3

ifup eth0

ngủ 3

ifup eth1

ngủ 3

nhà cung cấp pon

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 thời gian đó để cải thiện hiệu suất khởi động. Dù sao thì cũng sẽ không mất nhiều thời gian để khởi động lại ngay từ đầu.

Thao tác này sẽ chạy lệnh pon và ifup sau khi hệ thống được khởi động hoàn toàn, nhưng trước khi lời nhắc đăng nhập của bảng điều khiển ảo thực sự xuất hiện. Nếu kết nối được mở 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 bình thường thì tập lệnh này sẽ đảm bảo rằng nó được khởi chạy đú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 định vị nó là bước cuối cùng, nếu không tập lệnh có thể thực sự bị lỗi.

Ngay khi bạn khởi động lại máy sau khi thực hiện tất cả các 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. Bạn có thể muốn thỉnh thoảng sử dụng sudo iptables-L nếu bạn cần kiểm tra trạng thái của chúng theo thời gian, nhưng nếu không thì mọi thứ sẽ hoạt động tốt nếu không muốn nói là tốt hơn một bộ định tuyến được sản xuất thương mại. Bộ định tuyến mới của bạn sẽ chạy bất kỳ gói Ubuntu nào khác cần thiết, nhưng bạn không cần phải cài đặt Máy chủ X hoặc bất kỳ thứ gì khác, vì hệ thống sẽ hoạt động bình thường mà không cần bất kỳ phần mềm giao diện người dùng bổ sung nào.

9 phút đọc