بوابة إنترنت المنزل. الإعداد الأولي لجهاز كمبيوتر صغير من 6 منافذ على خادم Ubuntu 20.04 LTS


على الإنترنت ، هناك معلومات لا حصر لها حول إعداد خادم على Ubuntu ، ولكن في كل خطوة يمكنك العثور على لحظات غير واضحة للمبتدئين. أريد مشاركة تجربتي وربما حل مشكلة شخص ما. ستخبرك المقالة كيفية تكوين خادم متعدد المنافذ (6 منافذ): Netplan ، خادم DHCP ، UFW (جدار حماية غير معقد). والآن ، أول شيء أولاً.

المقدمة


لقد قمت بتحديث الإنترنت إلى 500 ميجابت / ثانية ، وقد حان الوقت للتعامل مع خادم 100 ميجابت ، والذي يعمل على Pentium 3 وكان بالفعل على وشك. وقع الاختيار على الوحش الصيني . كل ما هو مطلوب متاح ، ولا يتجاوز الاستهلاك في الوضع العادي 15 وات ، وهناك هامش للأداء للمهام الإضافية.

لتبريد هادئ ومضاف:


لن أرسم تثبيت نظام التشغيل ("OK - Next - Next") ، سألاحظ فقط أنه أثناء التثبيت يلزم تكوين واجهة شبكة واحدة على الأقل للوصول إلى الإنترنت.

للراحة ، أستخدم Midnight Commander ومحرر النصوص الخاص بها. سنعمل من المستخدم الجذر:

sudo su

تثبيت MC:

apt-get install mc

لذا ، قمنا بتثبيت Ubuntu Server ، فلنبدأ بتكوين واجهات الشبكة المتبقية.

نت بلان


في الإصدارات الأخيرة من Ubuntu ، ظهرت الأداة المساعدة Netplan ، مما يسمح لك بتكوين الشبكة بتنسيق موحد واختيار مدير الشبكة للعمل معه. بشكل افتراضي ، يتم استخدام Systemd-networkd ، لكنني اخترت NetworkManager ، لأنني قمت بتثبيت واجهة ويب Cockpit ، والتي تستخدم NM لعرض جزء من المعلومات.
بنية تكوين Netplan صارمة للغاية ويمكن أن تتسبب مساحة أو علامة تبويب إضافية في حدوث خطأ.

تم بالفعل وصف المزيد من التفاصيل حول الوظيفة بواسطة habr.com/en/post/448400 ، بالإضافة إلى أمثلة مختلفة على الموقع netplan.io/examples .

دعنا نرى أسماء الواجهات:

ip a

انتقل إلى دليل / etc / netplan وافتح (F4 for MS) ملف 50-cloud-init.yaml . بالنسبة لواجهة الشبكة التي سيتم استخدامها للاتصال بالإنترنت ، نحدد استلام الإعدادات عن طريق dhcp ( dhcp4: true ). في حالتي هو enp6s0. للبقية ، حدد خطأ وأضف المعلمة الاختيارية: true ، لأن قد لا تكون الواجهة متصلة بأي شيء.

لقد استخدمت الجسر لتوصيل الواجهات بالشبكة المحلية ، ولكن ربما يكون من الأصح استخدام vlan. لنقم بإنشاء جسر lan-br ، وتعيين عنوان IP مشترك ، وخادم DNS وتحديد الواجهات المراد دمجها:

  bridges:
    lan-br:
      dhcp4: false
      addresses: [ 192.168.13.1/24 ]
      nameservers: 
        addresses: [ 192.168.13.1 ]
      interfaces: [ enp1s0, enp2s0, enp3s0, enp4s0, enp5s0 ]

سيكون لدي خادم DNS الخاص بي ، لذلك أحدد عنوان الخادم الخاص بي في حقل خوادم الأسماء ، على سبيل المثال ، يمكنك تحديد 8.8.8.8 (Google). نشير إلى الإصدار والمدير. يجب أن تكون النتيجة شيء من هذا القبيل:

network:
  ethernets:
    enp1s0:
      dhcp4: false
      optional: true
    enp2s0:
      dhcp4: false
      optional: true
    enp3s0:
      dhcp4: false
      optional: true
    enp4s0:
      dhcp4: false
      optional: true
    enp5s0:
      dhcp4: false
      optional: true
    enp6s0:
      dhcp4: true
      nameservers:
        addresses:
        - 127.0.0.1
        - 192.168.13.1
  bridges:
    lan-br:
      dhcp4: false
      addresses: [ 192.168.13.1/24 ]
      nameservers: 
        addresses: [ 192.168.13.1 ]
      interfaces: [ enp1s0, enp2s0, enp3s0, enp4s0, enp5s0 ]
  version: 2
  renderer: NetworkManager

نقوم بحفظ الملف والتحقق / تطبيق التكوين:

netplan try

إذا تم تنفيذ كل شيء بشكل صحيح ، فسيعرض 'ip a' شيئًا مثل هذا:
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: enp1s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel master lan-br state UP group default qlen 1000
    link/ether 0c:e8:2c:68:5b:57 brd ff:ff:ff:ff:ff:ff
3: enp2s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel master lan-br state UP group default qlen 1000
    link/ether 0c:e8:2c:68:5b:58 brd ff:ff:ff:ff:ff:ff
4: enp3s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel master lan-br state UP group default qlen 1000
    link/ether 0c:e8:2c:68:5b:59 brd ff:ff:ff:ff:ff:ff
5: enp4s0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc fq_codel state DOWN group default qlen 1000
    link/ether 0c:e8:2c:68:5b:5a brd ff:ff:ff:ff:ff:ff
6: enp5s0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc fq_codel state DOWN group default qlen 1000
    link/ether 0c:e8:2c:68:5b:5b brd ff:ff:ff:ff:ff:ff
7: enp6s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether 0c:e8:2c:68:5b:5c brd ff:ff:ff:ff:ff:ff
    inet 188.32.236.197/19 brd 188.32.255.255 scope global dynamic noprefixroute enp6s0
       valid_lft 2898sec preferred_lft 2898sec
    inet6 fe80::ee8:2cff:fe68:5b5c/64 scope link 
       valid_lft forever preferred_lft forever
8: lan-br: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
    link/ether 0c:e8:2c:68:5b:57 brd ff:ff:ff:ff:ff:ff
    inet 192.168.13.1/24 brd 192.168.13.255 scope global noprefixroute lan-br
       valid_lft forever preferred_lft forever
    inet6 fe80::ee8:2cff:fe68:5b58/64 scope link 
       valid_lft forever preferred_lft forever


خادم DHCP


تكوين خادم DHCP بحيث يمكن للعملاء تلقي عناوين IP تلقائيًا.

apt-get install isc-dhcp-server

في الملف / etc / default / isc-dhcp-server ، قم بتحرير السطر:

INTERFACESv4="lan-br"

انتقل إلى / etc / dhcp ، افتح dhcpd.conf وحدد الإعدادات:

option domain-name "your-domain-name";
option domain-name-servers 192.168.13.1;

subnet 192.168.13.0 netmask 255.255.255.0 {
    range 192.168.13.100 192.168.13.250;
    option subnet-mask 255.255.255.0;
    option routers 192.168.13.1;
    option broadcast-address 192.168.13.255;
}

أعد تشغيل خادم DHCP:

service isc-dhcp-server restart

يجب أن يتلقى العملاء الآن العناوين تلقائيًا.

Ufw


UFW (جدار حماية غير معقد) - أداة لإعداد iptables أسهل. قم بإعداد جدار الحماية وإعادة توجيه الحزمة بين الواجهات. انتقل إلى / etc / ufw وألغ تعليق السطر في ملف sysctl.conf:

net/ipv4/ip_forward=1

إذا كنت متصلاً عبر ssh ، فافتح المنفذ 22 قبل البدء:

ufw allow ssh

قم بتشغيل UFW ، تحقق من الحالة:

ufw enable
ufw status verbose

تعيين السياسات الافتراضية:

ufw default deny incoming
ufw default allow outgoing
ufw default allow routed

السماح بالوصول من الشبكة المحلية:

ufw allow in on lan-br to any

تكوين NAT. افتح ملف before.rules واكتب ما يلي قبل كتلة المرشح * :

*nat
:POSTROUTING ACCEPT [0:0]
#local
-A POSTROUTING -s 192.168.13.0/24 -o enp6s0 -j MASQUERADE
COMMIT

حفظ وإعادة ufw:

ufw disable
ufw enable

دعونا تحقق من iptables ، يجب أن يظهر خطنا:

iptables -t nat -L -v

على هذا ، يمكن اعتبار تكوين الخادم الأساسي مكتملاً.

استنتاج


لم أثير مشكلة تكوين خادم DNS ، حيث أنوي إصدار الجزء الثاني ، الذي سيصف تكوين Dnscrypt-proxy كخادم DNS للشبكة المحلية.

معلومات أكثر تفصيلاً:


All Articles