ifconfig -a — посмотреть интерфейсы (в примере eth0)
До версии 18:
sudo nano /etc/network/interfaces — вписать в файл
(сохранить — ctrl+o)
1 2 3 4 5 6 7 8 9 10 11 12 |
auto eth0 #автозапуск интерфейса iface eth0 inet static address 192.168.40.62 netmask 255.255.255.0 network 192.168.40.0 broadcast 192.168.40.255 gateway 192.168.40.254 dns-nameservers 192.168.40.52 #</code><strong><code>либо для DHCP:</code></strong> auto eth0 iface eth0 inet dhcp |
sudo service networking restart — перезапуск сети
После версии 18:
sudo su — root
netplan generate — создать файл настроек
nano /etc/netplan/01-netcfg.yaml
(имя файла может быть другим, отступы пробелами обязательны, внести настройки):
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
network: version: 2 renderer: networkd </code> <code>ethernets: eth0: addresses: [192.168.1.5/24] gateway4: 192.168.1.1 nameservers: search: [mydomain, otherdomain] addresses: [8.8.8.8,4.4.4.4] enp17s10: addresses: [192.168.3.10/24] routes: - to: 192.168.3.0/24 via: 192.168.3.10 metric: 100 nameservers: addresses: [192.168.3.10] <strong>Либо для DHCP:</strong> network: version: 2 renderer: networkd ethernets: eth0: dhcp4: true</code> |
Если нужно прокси — вписать в файле
nano /etc/environment:
http_proxy=http://192.168.1.101
https_proxy=http://192.168.1.101
Для apt-get вписать в
nano /etc/apt/apt.conf:
Acquire::http::proxy "http://логин:пароль@ip_прокси:порт_прокси/";
;
Acquire::https::proxy "https://логин:пароль@ip_прокси:порт_прокси/"
netplan apply — применить конфигурацию
service networking restart — перезапуск сети
Проверка сети:
sudo ethtool eth0 — сведения, есть ли link
mtr yandex.ru — трассеровка
Настройка DHCP и DNS в Linux Ubuntu с помощью dnsmasq:
apt-get install dnsmasq — установка
nano /etc/dnsmasq.conf
Вписать:
1 2 3 4 5 6 7 8 9 |
interface=</code>enp17s10<code> <em>#имя интерфейса</em> bind-interfaces dhcp-range=192.168.3.100-192.168.3.199,255.255.255.0,12h <em>#диапазон, время резерва</em> <em>#привязка по мак-адресу</em>: dhcp-host=4C:72:B9:4E:8B:3A,192.168.3.100 #Указать если основной DHCP. Клиент получит ip даже если получал ip c другого DHCP dhcp-authoritative log-dhcp # <em>Для поиска ctrl+W</em> |
service dnsmasq restart — перезапуск службы
Если фейлит при запуске (unknown interface) в файле nano /etc/init.d/dnsmasq
сделать значение Required-Start: $all — загружаться после всего
Настройка NAT и Masquarade
Возможно, нужно отключить firewalld
Включение IP-forwarding (для перемещения трафика между интерфейсами)
cat /proc/sys/net/ipv4/ip_forward — включён ли ip forwarding (0 — выключен)
nano /etc/sysctL.conf — задать net.ipv4.ip_forward=1
Создать bash файл c настройками nat и masquerade в init скриптах для iptables:
nano /etc/init.d/firewall
#!/bin/bash
### BEGIN INIT INFO
# Provides: firewall
# Required-Start: $all
# Required-Stop:
# Default-Start: 2 3 4 5
# Default-Stop:
# Short-Description: adds iptables rules
### END INIT INFO#Выше указано системе, что запускается, запускать после всего, на каких уровнях
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
#<code><em>переменная с путём к iptables</em> IPTABLES=/sbin/iptables # <em>переменные интерфейсов</em> LAN=enp17s10 WAN=enp0s25 WAN_IP=192.168.2.6 LAN_NET=192.168.3.0/24 # <em>очистка основных цепочек пакетного фильтра</em> $IPTABLES -F #<em> очистка таблиц ната</em> $IPTABLES -t nat -F # <em>разрешить входящие</em> $IPTABLES -A INPUT -p tcp -i $WAN -m state --state ESTABLISHED -j ACCEPT $IPTABLES -A INPUT -p udp -i $WAN -m state --state ESTABLISHED -j ACCEPT # <em>разрешить icmp (ping)</em> $IPTABLES -A INPUT -p icmp -j ACCEPT # <em>разрешить 22 порт на WAN'е для ssh</em> $IPTABLES -A INPUT -p tcp -i $WAN --dst $WAN_IP --dport 22 -j ACCEPT # <em>разрешить входящие с локалки</em> $IPTABLES -A INPUT -i $LAN -j ACCEPT # <em>nat с маскарадом (подбеной ip на внешний)</em> $IPTABLES -t nat -A POSTROUTING --src $LAN_NET -j MASQUERADE # <em>сбрасывать остальные соединения снаружи и логировать</em> #$IPTABLES -A INPUT -i $WAN -j ULOG --ulog-prefix "IPFW-DENY:" $IPTABLES -A INPUT -i $WAN -j DROP # ctrl+o <em>- сохранить</em> |
До Ubuntu 15:
chmod +x /etc/init.d/firewall — сделать файл исполняемым
update-rc.d firewall defaults — запускать по умолчанию (remove — удалить)
После Ubuntu 15, запускать как службу, и чтобы запускать файл после сети:
nano /etc/systemd/system/firewall.service — создать systemd unit файл
1 2 3 4 5 6 7 8 9 10 11 12 |
[Unit] Description=iptables rules Requires=network.target After=network.target [Service] Type=oneshot RemainAfterExit=True ExecStart=/etc/init.d/firewall [Install] WantedBy=multi-user.target |
systemctl enable firewall — запускать автоматически
Если не работает при включении, или выдаёт Default-Start contains no runlevels (Default-Start не содержит уровней запуска, прерывания), нужно добавить BEGIN INIT INFO (как выше).