على الإنترنت ، هناك معلومات لا حصر لها حول إعداد خادم على 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]
-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 للشبكة المحلية.معلومات أكثر تفصيلاً: