Sur Internet, il existe d'innombrables informations sur la configuration d'un serveur sur Ubuntu, mais à chaque étape, vous pouvez trouver des moments qui ne sont pas évidents pour un débutant. Je veux partager mon expérience et éventuellement résoudre le problÚme de quelqu'un. L'article vous expliquera comment configurer un serveur multiport (6 ports): Netplan, serveur DHCP, UFW (Firewall non compliqué). Et maintenant, tout d'abord.introduction
J'ai mis Ă jour Internet Ă 500 Mbit / s, et il Ă©tait temps de s'attaquer au serveur 100 Mbit, qui fonctionnait sur Pentium 3 et Ă©tait dĂ©jĂ sur le point. Le choix s'est portĂ© sur la bĂȘte chinoise . Tout ce qui est nĂ©cessaire est disponible, la consommation en mode normal ne dĂ©passe pas 15W, il y a une marge de performance pour des tĂąches supplĂ©mentaires.Pour un refroidissement actif ajoutĂ© calme: Je ne peindrai pas l'installation du systĂšme d'exploitation ("OK - Suivant - Suivant"), je note seulement que lors de l'installation, il est nĂ©cessaire de configurer au moins une interface rĂ©seau pour accĂ©der Ă Internet.Pour plus de commoditĂ©, j'utilise Midnight Commander et son Ă©diteur de texte. Nous travaillerons depuis l'utilisateur root:sudo su
Installez MC:apt-get install mc
Nous avons donc installé Ubuntu Server, commençons par configurer les interfaces réseau restantes.Netplan
Dans les versions récentes d'Ubuntu, l'utilitaire Netplan est apparu, ce qui vous permet de configurer le réseau dans un format unifié et de choisir un gestionnaire de réseau avec lequel travailler. Par défaut, Systemd-networkd est utilisé, mais j'ai choisi NetworkManager, car j'ai installé l'interface Web Cockpit, qui utilise NM pour afficher une partie des informations.La syntaxe de configuration de Netplan est trÚs stricte et un espace ou un onglet supplémentaire peut provoquer une erreur.Plus de détails sur la fonctionnalité ont déjà été décrits par habr.com/en/post/448400 , ainsi que divers exemples sur le site netplan.io/examples .Voyons les noms des interfaces:ip a
AccĂ©dez au rĂ©pertoire / etc / netplan et ouvrez (F4 pour MS) le fichier 50-cloud-init.yaml . Pour l'interface rĂ©seau qui sera utilisĂ©e pour se connecter Ă Internet, nous dĂ©terminons la rĂ©ception des paramĂštres par dhcp ( dhcp4: true ). Dans mon cas, c'est enp6s0. Pour le reste, spĂ©cifiez false et ajoutez le paramĂštre facultatif: true , car l'interface n'est connectĂ©e Ă rien.J'ai utilisĂ© bridge pour connecter les interfaces au rĂ©seau local, mais il serait peut-ĂȘtre plus correct d'utiliser vlan. CrĂ©ons un pont lan-br , dĂ©finissons une adresse IP commune, un serveur DNS et spĂ©cifions les interfaces Ă combiner: bridges:
lan-br:
dhcp4: false
addresses: [ 192.168.13.1/24 ]
nameservers:
addresses: [ 192.168.13.1 ]
interfaces: [ enp1s0, enp2s0, enp3s0, enp4s0, enp5s0 ]
J'aurai mon propre serveur DNS, donc je spĂ©cifie l'adresse de mon serveur dans le champ des serveurs de noms , par exemple, vous pouvez spĂ©cifier 8.8.8.8 (Google). Nous indiquons la version et le gestionnaire. Le rĂ©sultat devrait ĂȘtre quelque chose comme ceci: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
Nous enregistrons le fichier et vérifions / appliquons la configuration:netplan try
Si tout est fait correctement, alors 'ip a' affichera quelque chose comme ceci: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
Serveur DHCP
Configurez un serveur DHCP pour que les clients puissent recevoir automatiquement les adresses IP.apt-get install isc-dhcp-server
Dans le fichier / etc / default / isc-dhcp-server, modifiez la ligne:INTERFACESv4="lan-br"
Allez dans / etc / dhcp , ouvrez dhcpd.conf et prescrivez les paramĂštres: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;
}
Redémarrez le serveur DHCP:service isc-dhcp-server restart
Les clients devraient désormais recevoir automatiquement les adresses.Ufw
UFW (Uncomplicated Firewall) - un outil pour une configuration iptables plus facile. Configurez un pare-feu et le transfert de paquets entre les interfaces. Accédez à / etc / ufw et décommentez la ligne du fichier sysctl.conf:net/ipv4/ip_forward=1
Si vous ĂȘtes connectĂ© via ssh, ouvrez le port 22 avant de dĂ©marrer:ufw allow ssh
Allumez UFW, vérifiez l'état:ufw enable
ufw status verbose
Définissez les stratégies par défaut:ufw default deny incoming
ufw default allow outgoing
ufw default allow routed
Autoriser l'accÚs depuis le réseau local:ufw allow in on lan-br to any
Configurez NAT. Ouvrez le fichier before.rules et écrivez ce qui suit avant le bloc de filtre * :*nat
:POSTROUTING ACCEPT [0:0]
-A POSTROUTING -s 192.168.13.0/24 -o enp6s0 -j MASQUERADE
COMMIT
Enregistrez et redémarrez ufw:ufw disable
ufw enable
Vérifions iptables, notre ligne devrait apparaßtre:iptables -t nat -L -v
Sur ce point, la configuration de base du serveur peut ĂȘtre considĂ©rĂ©e comme terminĂ©e.Conclusion
Je n'ai pas soulevé la question de la configuration du serveur DNS, car je prévois de publier la deuxiÚme partie, qui décrira la configuration de Dnscrypt-proxy en tant que serveur DNS pour le réseau local.Informations plus détaillées: