Na Internet, existem inúmeras informações sobre a configuração de um servidor no Ubuntu, mas a cada passo você pode encontrar momentos que não são óbvios para um iniciante. Quero compartilhar minha experiência e possivelmente resolver o problema de alguém. O artigo mostrará como configurar um servidor de várias portas (6 portas): Netplan, servidor DHCP, UFW (Uncomplicated Firewall). E agora, as primeiras coisas primeiro.Introdução
Atualizei a Internet para 500 Mbit / s e estava na hora de enfrentar o servidor de 100 Mbit, que funcionava no Pentium 3 e já estava à beira. A escolha recaiu sobre a besta chinesa . Tudo o que é necessário está disponível, o consumo no modo normal não excede 15W, há uma margem de desempenho para tarefas adicionais.Para uma calma de refrigeração ativa adicionada: Não pintarei a instalação do SO ("OK - Próximo - Próximo"), apenas observe que durante a instalação é necessário configurar pelo menos uma interface de rede para acessar a Internet.Por conveniência, eu uso o Midnight Commander e seu editor de texto. Vamos trabalhar com o usuário root:sudo su
Instale o MC:apt-get install mc
Então, como instalamos o Ubuntu Server, vamos começar configurando as interfaces de rede restantes.Netplan
Nas versões recentes do Ubuntu, apareceu o utilitário Netplan, que permite configurar a rede em um formato unificado e escolher um gerenciador de rede para trabalhar. Por padrão, o Systemd-networkd é usado, mas eu escolhi o NetworkManager, porque instalei a interface da Web do Cockpit, que usa o NM para exibir parte das informações.A sintaxe de configuração do Netplan é muito rigorosa e um espaço ou guia extra pode causar um erro.Mais detalhes sobre a funcionalidade já foram descritos em habr.com/en/post/448400 , assim como vários exemplos no site netplan.io/examples .Vamos ver os nomes das interfaces:ip a
Vá para o diretório / etc / netplan e abra (F4 para MS) o arquivo 50-cloud-init.yaml . Para a interface de rede que será usada para conectar-se à Internet, determinamos o recebimento das configurações por dhcp ( dhcp4: true ). No meu caso, é enp6s0. De resto, especifique false e inclua o parâmetro opcional: true , porque a interface pode não estar conectada a nada.Eu usei bridge para conectar as interfaces à rede local, mas talvez seja mais correto usar a vlan. Vamos criar uma ponte lan-br , definir um endereço IP comum, um servidor DNS e especificar as interfaces a serem combinadas: bridges:
lan-br:
dhcp4: false
addresses: [ 192.168.13.1/24 ]
nameservers:
addresses: [ 192.168.13.1 ]
interfaces: [ enp1s0, enp2s0, enp3s0, enp4s0, enp5s0 ]
Vou ter meu próprio servidor DNS, portanto, especifique o endereço do meu servidor no campo servidores de nomes ; por exemplo, você pode especificar 8.8.8.8 (Google). Indicamos a versão e o gerente. O resultado deve ser algo como isto: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
Nós salvamos o arquivo e verificamos / aplicamos a configuração:netplan try
Se tudo for feito corretamente, 'ip a' mostrará algo como isto: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
Servidor DHCP
Configure um servidor DHCP para que os clientes possam receber endereços IP automaticamente.apt-get install isc-dhcp-server
No arquivo / etc / default / isc-dhcp-server, edite a linha:INTERFACESv4="lan-br"
Vá para / etc / dhcp , abra dhcpd.conf e prescreva as configurações: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;
}
Reinicie o servidor DHCP:service isc-dhcp-server restart
Os clientes agora devem receber endereços automaticamente.Ufw
UFW (Uncomplicated Firewall) - uma ferramenta para facilitar a configuração de tabelas de ip. Configure um firewall e encaminhamento de pacotes entre interfaces. Vá para / etc / ufw e remova o comentário da linha no arquivo sysctl.conf:net/ipv4/ip_forward=1
Se você estiver conectado via ssh, abra a porta 22 antes de iniciar:ufw allow ssh
Ligue o UFW, verifique o status:ufw enable
ufw status verbose
Defina as políticas padrão:ufw default deny incoming
ufw default allow outgoing
ufw default allow routed
Permitir acesso da rede local:ufw allow in on lan-br to any
Configure o NAT. Abra o arquivo before.rules e escreva o seguinte antes do bloco de filtro * :*nat
:POSTROUTING ACCEPT [0:0]
-A POSTROUTING -s 192.168.13.0/24 -o enp6s0 -j MASQUERADE
COMMIT
Salve e reinicie o ufw:ufw disable
ufw enable
Vamos verificar o iptables, nossa linha deve aparecer:iptables -t nat -L -v
Com isso, a configuração básica do servidor pode ser considerada completa.Conclusão
Não levantei a questão de configurar o servidor DNS, pois pretendo lançar a segunda parte, que descreverá a configuração do Dnscrypt-proxy como um servidor DNS para a rede local.Informações mais detalhadas: