PPPoE를 사용하여 Ubuntu Server를 라우터로 설정하는 방법



문제를 제거하기 위해 도구를 사용해보십시오

Ubuntu Server는 기술적으로 대형 대형 철제 서버와 함께 사용하기위한 CLI 프롬프트 전용 운영 체제로 설계되었지만 이더넷을 통한 지점 간 프로토콜을 관리하는 라우터 및 임베디드 시스템에서도 작동하지 않을 이유가 없습니다. 이와 같은 프로젝트에는 팬이없는 소형 PC 또는 NAND 플래시 칩을 통해 수정할 수있는 일종의 라우터 상자가 필요하다고 가정합니다. 소음과 움직이는 부품을 제거하기 위해 적절한 양의 RAM과 솔리드 스테이트 디스크를 설치할 가능성이 높습니다. SD 카드에서 전체 운영 체제를 실행할 수 있도록 SDHC-to-SATA 변환기를 사용하는 데 관심이있을 수 있습니다. 레거시가없는 하드웨어의 측면 슬롯에 삽입 된 SD 카드도 운영 체제를 부팅 할 수 있습니다. 이것은 PPPoE 시스템과 함께 사용할 때 잘 작동합니다.



이러한 종류의 구성을 사용하면 적절한 전기 기계식 하드 디스크가 없으면 속도가 느려질 수 있다고 생각할 수 있지만 실제로는 이론적으로 액세스 시간을 줄일 수 있습니다. Ubuntu Server는 너무 작아서 어쨌든 빠르게 부팅됩니다. 라우터를 설치 한 후에는 실제로 자주 켜고 끄지 않을 것입니다. 어떤 구성을 선택하든 ISO를 다운로드하려면 브라우저에서 https://www.ubuntu.com/download/server를 가리킬 수 있습니다. 이 글을 쓰는 시점의 최신 버전 인 Ubuntu Server 16.04.1 LTS는 64 비트 아키텍처에서만 사용하도록 설계되었습니다. 대부분의 최신 라우터 및 씬 클라이언트 장치는이 요구 사항을 잘 충족하지만 넷북을 라우터로 사용하는 것과 같이 진정으로 이국적인 것을 시도하는 경우 문제가 될 수 있습니다.





Ubuntu Server를 PPPoE 라우터로 구성

여러 주요 ISP 네트워크에는 여전히 PPPoE 인증이 필요합니다. 거의 모든 DSL 네트워크에서 이것을 사용하며, 광섬유 연결로 작업 할 때 불필요하지만 일부는 여전히 실제로 사용합니다. Netgear 라우터는 이러한 유형의 네트워크에 쉽게 연결할 수있는 로그인 프롬프트를 제공하지만 이러한 종류의 기술과 올바르게 인터페이스하기 위해 집에서 만든 Linux 라우터를 얻으려면 약간의 작업이 필요합니다.

브라우저에 아직없는 경우 http://releases.ubuntu.com/16.04.1/ . ISO가없는 경우이 페이지에서 ISO를 다운로드 할 수 있지만 일단 MD5SUMS를 읽는 링크로 스크롤하여 선택합니다.



CLI 프롬프트에서 Ubuntu Server ISO에서 md5sum을 실행하고 옆에있는 숫자와 일치하는지 확인합니다. ubuntu-16.04-desktop-amd64.iso 목록에서.

그렇다면 완전히 비어있는 USB 메모리 스틱 또는 SD 카드를 준비하고 sudo if = ubuntu-16.04-desktop-amd64.iso of = / dev / sdLetter bs = 8M , of = 프롬프트를 문제의 장치 이름으로 바꿉니다. 당신이 사용할 수있는 sudo fdisk -l 시스템에 연결된 모든 장치를 찾습니다. 그런 다음 드라이브를 올바르게 제거하고 라우터 시스템에 연결합니다. 재부팅하고 이동식 저장소에서 해당 시스템을 부팅하는 데 필요한 키를 누릅니다. Ubuntu Server는 여러 텍스트 기반 ncurses 프롬프트를 기반으로 비교적 쉽게 설치됩니다.

그러나 이러한 방식으로 설치하는 데있어 한 가지 문제는 이동식 미디어를 설치하는 동안 인터넷에 연결해야하며 이와 같은 상자를 네트워크에 직접 연결하면 보안 문제가 발생할 수 있다는 것입니다. 방화벽 서비스를 시작하고 실행할 때까지 제공하려면 이전 라우터의 네트워크 포트 중 하나에 연결하십시오. 작업을 수행하는 즉시 GRUB 부트 로더를 수정해야합니다. 가능하면 오프라인으로 설치를 계속하려면 가능한 한 빨리 기존 시스템에서 Linux 라우터를 분리하십시오. 이렇게하면 기존 연결에서 발생할 수있는 이상한 DHCP 문제를 방지 할 수 있습니다.

대부분의 경우 운영 체제 구성 프로세스 중에 추가 소프트웨어를 설치하고 싶지 않을 것입니다. GRUB는 기본 Ubuntu Server 설치에서 자동으로 부팅되므로 디버그 메시지가 표시되지 않습니다. 부팅 후 아무것도 표시되지 않고 깜박이는 커서가 표시되면 Ctrl, Alt 및 F1을 눌러 가상 콘솔로 이동합니다. 계정에 로그인 한 다음 입력하십시오. 대신 vi를 사용하고 싶을 수도 있습니다. 읽는 줄 찾기 GRUB_CMDLINE_LINUX_DEFAULT =”조용한 시작” 따옴표로 묶인 조용한 스플래시 단어를 삭제하십시오. 또한 다음과 같은 줄을 편집하고 싶을 것입니다. net.ifnames = 0 biosdevname = 0을 포함하는 GRUB_CMDLINE_LINUX =”” 큰 따옴표로 묶어 네트워킹 카드의 이름을 올바르게 지정하십시오. grub 파일은 실제로 일종의 UEFI 파티션에있을 수 있으므로 파일을 저장 한 다음 sudo update-grub을 실행하여 부트 로더를 업데이트합니다.

읽는 줄 찾기 GRUB_CMDLINE_LINUX_DEFAULT =”조용한 시작” ' 조용한 물보라 ”는 따옴표 안에 있습니다. fsafa

해적입니다.

유형 sudo nano 편집을 위해 인터페이스 파일을 연 다음 거기에서 찾은 네트워크 카드의 이름을 기존 eth0eth1 을 클릭 한 다음 파일을 저장하고 종료하십시오. 파일이 없어지면 시스템을 재부팅하여 변경 사항이 제대로 적용되는지 확인할 수 있습니다.

이제 설치를 완료하려면 적절한 PPPoE 및 OpenSSL 소프트웨어를 설치해야합니다. 단일 명령 줄 문제로 DNS, DHCP, PPPoE 및 OpenSSL을 설치할 수 있습니다.

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

몇 분 정도 소요될 수 있으며 변경 사항을 승인 할 준비가되었는지 묻는 메시지가 표시 될 수 있습니다. 당신이 그렇다고 말하십시오. 모든 작업이 완료되면 실제로 인터넷 연결을 끊고 오프라인으로 계속할 수 있습니다. 동기화 명령을 몇 번 사용하여 문제가 발생할 경우를 대비하여 모든 버퍼가 함께 동기화되었는지 확인할 수 있습니다.

ISP는 사용자 이름과 비밀번호를 제공하므로 chap-secrets 파일에 입력해야합니다. 유형 그러나 원하는 경우 여전히 vi를 사용할 수 있음을 기억하십시오. 사용자 이름과 암호를 인용해야합니다. 예를 들어 다음을 원할 수 있습니다.

'billy'* 'mypass3'

파일을 저장하고 이제 이 디렉토리에서 provider라는 파일을 찾을 수 있습니다. 다른 구성 파일에서하던 것처럼 nano로 열거 나 같은 방식으로 새 파일을 만듭니다. 다음 명령을 각각 파일의 별도 줄에 넣으십시오.

아니요

defaultroute

대체 기본 경로

지속

플러그인 rr-pppoe.so eth0

사용자 'billy'

로그인 프롬프트를 사용하지 않으려면 hide-password 및 noauth를 입력 할 수도 있습니다. 일반 인터페이스가있는 실제 프로덕션 머신이 아닌 라우터로 사용하기 때문입니다. billy라는 이름을 가지고있는 실제 사용자 이름으로 바꾼 다음 pon provider 또는 연결하기 위해 만든 파일 이름을 실행합니다. 프로세스에서 관련된 오류 메시지를 제공해야하지만 ifconfig를 사용하여 ppp0 또는 ppp1 네트워크 인터페이스를 찾을 수 있습니다. 나중에 참조해야합니다. 피어에게 몇 개의 DNS 서버 주소를 요청하고 싶다면 usepeerdns를 추가 할 수 있습니다. DNS2 및 DNS1 레이블이 지정된 환경 변수로. 또한라는 환경 변수를 강제합니다. USEPEERDNS 1로 설정합니다. ISP에서 할당 한 DNS 서버가 아닌 자체 DNS 서버를 사용하려는 경우 다음과 같은 파일 :

서버를 재부팅하거나 새 PPPoE 연결을 설정할 때마다 여기에 있어야합니다. 파일을 덮어 씁니다.

대부분의 경우 MTU는 약 1500으로 설정되어 있지만 PPPoE 인터페이스를 사용하기 때문에 최대 값은 약 1492 또는 그보다 더 낮을 수 있습니다. ppp0 또는 ppp1 시스템의 최대 MTU를 결정했다고 가정하면 다음을 사용해야합니다. ip-up 파일을 열고 다음 줄을 추가하려면 / sbin / ifconfig ppp0 man #### 맨 아래에 #### 올바른 값으로. 확실하지 않은 경우 약 1480 년이 될 수 있습니다.

많은 자습서에서 eth0 WAN 연결을 DHCP로 설정하도록 안내하지만 작업중인 PPPoE 연결로 인해 수동으로 설정해야합니다. 사용하다 # WAN 네트워크 인터페이스 아래의 코드 블록이 auto eth0 및 iface eth0 inet manual을 읽도록 편집하고 그 아래의 코드 블록이 다음과 같이 읽혀야합니다.

# LAN 네트워크 인터페이스

자동 eth1

iface eth1 inet 정적

주소 192.168.1.1

넷 마스크 255.255.255.0

라우터는 라우터 역할을하기 위해 활성화 된 패킷 전달이 필요하므로 다음 제거 옥토 토프 앞에 net.ipv4.ip_forward = 1 저장하기 전에. # 다음 줄의 주석 처리를 제거하여 IPv4에 대한 패킷 전달을 활성화하는 따옴표 아래에 있지만 사용하려는 경우 net.ipv6.conf.all.forwarding = 1 앞의 표시를 제거 할 수도 있습니다. PPPoE 시스템에서는 문제가 될 수있는 IPv6 라우팅.

편집을 위해 iptables 파일을 엽니 다. 명령을 입력하고 다음 행을 추가하십시오.

파일을 저장 한 다음 계속하기 전에 nano 나 다른 텍스트 편집기를 종료합니다. iptables는 Linux 커널의 기본 방화벽을 구성하므로 ISP 연결을 실제로 시작하기 전에 이러한 테이블을 순서대로 갖는 것이 좋습니다.

이제 문제가되는 파일에 대한 권한을 변경해야하므로 sudo -i 또는 sudo bash를 사용하여 루트 프롬프트를 표시 할 수 있습니다. 사용 후 :

이러한 권한이 적용되면 exit를 입력하고 Enter 키를 눌러 상승 된 프롬프트에서 나갈 수 있습니다.

다음으로 열어야하는 구성 파일 동일한 방식으로 편집합니다. 다음 설정을 추가해야합니다. 옥토 토프 스 라우터에 적합한 IP 주소로 :

서브넷 ###. ###. ##. # 넷 마스크 255.255.255.0 {

범위 ###. ###. ##. ### ###. ###. ##. ###;

옵션 라우터 ###. ###. ##. #;

옵션 도메인 이름 서버 ###. ###. ##. #;

옵션 브로드 캐스트 주소 ###. ###. ##. ###;

}

파일을 저장하고 닫습니다. SD 카드 또는 이와 유사한 것으로 작업하는 경우 동기화 명령을 실행하는 또 다른 좋은시기입니다.

다음을 사용해야합니다. sudo nano 한 번 더 열어 사용자 지정 규칙을 포함 할 수 있습니다. 우리는 여전히 PPPoE 연결로 작업 중이므로 eth0 기본값 대신 ppp0 장치 파일을 사용합니다.

주석으로 시작하는 코드 블록 아래에서“ # MSS를 MTU 크기로 고정하고 ”에는 다음 행이 포함됩니다.

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

이 규칙은 웹 페이지가 절반 만로드되거나 시간 초과되는 것을 방지하는 데 필요합니다. 대신 MTU와 MSS를 함께 고정하므로 이러한 문제가 발생하지 않습니다. 이제 이것은 Linux 커널이 올바른 크기를 추측 할 수 있도록하지만 필요한 경우 실제로 지정할 수 있습니다. '로 시작하는 코드 블록 아래 # MSS 크기 지정, ”다음을 추가해야합니다.

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

#### 섹션을 올바른 MSS 값으로 바꿉니다. 간단한 수학으로 알아낼 수 있습니다. MTU에서 PPPoE 헤더 크기를 뺀 다음 IP 헤더와 TCP 헤더를 뺍니다. 차이점은 총 MSS 크기입니다.

LAN에 등록 된 다른 컴퓨터에서이 라우터에 SSH에 액세스 할 수 있도록 허용하는 –syn 옵션을 추가하려면 SSH 서비스 규칙을 수정해야 할 수 있습니다. ICMP 서비스 규칙을 주석 처리하면 컴퓨터가 핑에 응답하지 않습니다. 이 라우터를 통한 브라우징 습관을 보이지 않게 만드는 일종의 최종 처리 방식을 고려해서는 안되지만 실제로 컴퓨터를 은밀하게 만들 수 있습니다. 그렇지는 않지만 사용자를 보호하기위한 하나 이상의 보안 계층입니다.

작업중인 인터페이스 또는 PPPoE 연결이 라우터를 부팅 할 때 실제로 바로 연결되지 않는 경우가 있으므로 짧은 시작 스크립트를 만들어 시스템 부팅이 시작될 때 제대로 작동하는지 확인할 수 있습니다. 총 부팅 시간에 약 8 ~ 10 초만 추가되므로 실제로 그만한 가치가 있습니다. 편집 다시 한 번 sudo nano로 파일을 만든 다음

수면 3

ifup eth0

수면 3

ifup eth1

수면 3

폰 제공자

기본 공급자 파일을 대체하기 위해 만든 경우 provider를 사용자 정의 파일의 이름으로 바꿔야합니다. 대부분의 라우터는 1-2 초의 절전 시간 만 필요하므로 부팅 성능을 향상시키기 위해이를 실험 해 보는 것이 좋습니다. 어쨌든 처음부터 다시 시작하는 데 많은 시간이 걸리지 않아야합니다.

시스템이 완전히 부팅 된 후 실제 가상 콘솔의 로그인 프롬프트가 나타나기 전에 pon 및 ifup 명령을 실행해야합니다. 연결이 설정되어 있으면 아무 일도 일어나지 않지만 연결 중 하나가 제대로 작동하지 않으면이 스크립트가 제대로 초기화되었는지 확인합니다. 마지막 pon 명령은 eth0 및 eth1에 의존하므로 항상 마지막 단계로 배치해야합니다. 그렇지 않으면 스크립트가 실제로 실패 할 수 있습니다.

이러한 변경을 모두 수행 한 후 컴퓨터를 재부팅하면 Ubuntu Server에서 작동하는 라우터가 완전히 작동하게됩니다. 가끔 사용하는 것이 좋습니다. sudo iptables-L 수시로 상태를 확인해야하지만 그렇지 않으면 상업적으로 제조 된 라우터보다 낫지 않으면 모든 것이 잘 작동합니다. 새 라우터는 필요한 다른 Ubuntu 패키지를 실행하지만, 추가 사용자 인터페이스 소프트웨어 없이도 시스템이 올바르게 작동해야하므로 X 서버 또는 다른 것을 설치할 필요가 없습니다.

9 분 읽기