# tc class add dev $DEV enp17s10 parent 1: classid 1:1 cbq rate 4MBit allot 1500 prio 5 bounded isolated
# tc filter add dev $DEV enp17s10 parent 1: protocol ip prio 16 u32 match ip dst 192.168.3.0/24 flowid 1:1
# tc filter add dev $DEV enp17s10 parent 1: protocol ip prio 15 u32 match ip dst 192.168.3.104 flowid 1:0
При ограничении трафика на внутреннем интерфейсе, он скапливается на внешнем, по этому нужно использовать псевдо устройство IFB (ingress) на внешнем и классифицировать от него.
Воткнули сетевую карту, сигналов нет.. lshw -c network — узнать logical name (в примере enp17s10) До версии 18: nano /etc/network/interfaces — вписать в файл, например статический ip (сохранить — ctrl+o):
1
2
3
4
auto enp17s10#автозапуск интерфейса
iface enp17s10 inet static
address192.168.3.10
netmask255.255.255.0
sudo service networking restart — перезапуск сети
После версии 18: sudo su — root netplan generate — создать файл настроек (если ещё не создан) nano /etc/netplan/01-netcfg.yaml (имя файла может быть другим, отступы пробелами обязательны, внести настройки, добавить новый сетевой интерфейс):
apt-get install apache2 — установить апач apt-get install zip — установить zip apt-get install libapache2-mod-auth-mysql php5.6-mysql mysql-server — установить mysql в Ubuntu до 15.10, дальше установить перезапись ссылок add-apt-repository ppa:ondrej/php — репозиторий php 5.6, которого нет с 16 Linux’а apt-get install php5.6 libapache2-mod-php5.6 php5.6-cli — установить php5.6 wget https://dev.mysql.com/get/mysql-apt-config_0.8.13-1_all.deb — скачать mysql репозиторий в текущий каталог dpkg -i mysql-apt-config_0.8.13-1_all.deb — добавить репозиторий mysql apt-get update — обновить список репозиториев apt-get install php5.6-mysql mysql-server — Установить mysql сервер в Linux 15.10+ — Лучше задать пароль минимум 8 символов. a2enmod rewrite — перезапись ссылок web-servera в понятный читабельный вид apt-get install phpmyadmin — установить phpmyadmin ln -s /usr/share/phpmyadmin /var/www/html — символьная ссылка для работы phpmyadmin reboot — перезагрузить вход по адресу http://192.168.2.6/phpmyadmin
Ошибки, проблемы 1. «The mbstring extension is missing. Please check your PHP configuration.» — установить: apt install -y php5.6-mbstring php-gettext 2. «(HY000/1045): Access denied for user ‘phpmyadmin'» — переустановить phpmyadmin: dpkg-reconfigure -plow phpmyadmin проверить пароль на root; проверить настройки mysql: mysql_secure_installation
service vsftpd status — сведения о vsftpd systemctl start vsftpd — запустить vsftpd systemctl enable vsftpd — автозапуск vsftpd service vsftpd restart — перезапуск FTP vsftpd. ufw allow 20/tcp — открыть порт FTP данных в фаерволе ufw allow 21/tcp — открыть порт FTP команд в фаерволе adduser user — добавить user’а с параметрами из /etc/adduser.conf и папками из /etc/skel mkdir /home/user/ftp — создать папку в папке пользователя chown user /home/user/ftp — дать полный доступ к папке user’у
Виртуальные пользователи Чтобы отключить локальных и включить виртуальных, закоментить всё в /etc/pam.d/vsftpd и добавить:
1
2
3
auth required
pam_pwdfile.so pwdfile/etc/vsftpwd#файл паролей
account required pam_permit.so
apt-get install vsftpd libpam-pwdfile apache2-utils — установить libpam-pwdfile и apache2-utils, если не установлены с апачем. htpasswd -c -d /etc/vsftpwd user — создать виртуального пользователя. -c создаёт файл паролей, с перезаписью, -d — алгоритм шифрования хэша пароля. Следующие без -c htpasswd -D /etc/vsftpwd user — удалить юзера service vsftpd restart — перезапустить службу vsftpd. htpasswd -bd /etc/vsftpwd user 1 && mkdir /home/vsftpd/user && chown ftp /home/vsftpd/user — создать user’а с паролем 1, папку и назначить права на папку локальному ftp пользователю.
lsb_release -a — версия системы. sudo reboot — Перезагрузить. sudo poweroff — Выключить. sudo su — root. cd /etc/netplan/ — переход в папку /etc/netplan/ pwd — отобразить текущий каталог LS — отобразить содержимое каталога. nano /etc/file — открыть файл в редакторе (ctrl+K удалить строку) apt-get update && apt-get upgrade — Обновление репозиториев. при ошибке обновления в интерфесе, зайти в меню/администрирование/источники приложений. пробовать обновиться после каждой кнопки. apt-get install zip — установить zip. apt purge zip — удалить zip. wget https://dev.mysql.com/get/mysql-apt-config_0.8.13-1_all.deb — скачать файл dpkg -i mysql-apt-config_0.8.13-1_all.deb — установить репозиторий из файла (-r — удалить) dpkg —get-selections | grep -v deinstall — список установленных репозиториев apt-get autoremove — удалить, что не используется systemctl start vsftpd — запустить vsftpd (stop — отключить) systemctl enable vsftpd — автозапуск vsftpd systemctl list-units —type service — статус служб ( -all, —state running, —state falied) ifconfig eth0 down — отключить интерфейс apt-get install ssh — Удалённый доступ ssh через putty cat /etc/vsftpd.conf | grep write — отобразить записи в файле со словом write passwd user — сменить пароль user’у (просто passwd — сменить свой пароль) passwd user -L/-u — Заблокировать/разблокировать пользователя adduser user — добавить пользователя user userdel user — удалить пользователя user cat /etc/passwd — список пользователй mkdir /home/user/ftp — создать папку в папке пользователя chown user /home/user/ftp — дать полный доступ к папке > file — создать файл cp /etc/file /etc/folder/file — копировать файл (с -r папку) rm /home/user/file* -i -Удалить файлы начинающиеся на file с подтверждением rm -rf /home/user/ — удалить папку /home/user/ chmod ugo+rwx file — доступ к файлу всем на запись и т.д проверка сети: sudo ethtool eth0,3 — сведения, есть ли link mtr yandex.ru — трассеровка netstat -nr — маршруты
apt-get install zip — установить zip. apt purge zip — удалить zip. wget https://dev.mysql.com/get/mysql-apt-config_0.8.13-1_all.deb — скачать файл dpkg -i mysql-apt-config_0.8.13-1_all.deb — установить репозиторий из файла (-r — удалить) dpkg —get-selections | grep -v deinstall — список установленных репозиториев apt-get autoremove — удалить, что не используется systemctl start vsftpd — запустить vsftpd (stop — отключить) systemctl enable vsftpd — автозапуск vsftpd systemctl list-units —type service — статус служб ( -all, —state running, —state falied) ifconfig eth0 down — отключить интерфейс apt-get install ssh — Удалённый доступ ssh через putty cat /etc/vsftpd.conf | grep write — отобразить записи в файле со словом write passwd user — сменить пароль user’у (просто passwd — сменить свой пароль) passwd user -L/-u — Заблокировать/разблокировать пользователя adduser user — добавить пользователя user userdel user — удалить пользователя user cat /etc/passwd — список пользователй mkdir /home/user/ftp — создать папку в папке пользователя chown user /home/user/ftp — дать полный доступ к папке > file — создать файл cp /etc/file /etc/folder/file — копировать файл (с -r папку) rm /home/user/file* -i -Удалить файлы начинающиеся на file с подтверждением rm -rf /home/user/ — удалить папку /home/user/ chmod ugo+rwx file — доступ к файлу всем на запись и т.д проверка сети: sudo ethtool eth0,3 — сведения, есть ли link mtr yandex.ru — трассеровка netstat -nr — маршруты
rm /home/user/file* -i -Удалить файлы начинающиеся на file с подтверждением rm -rf /home/user/ — удалить папку /home/user/ chmod ugo+rwx file — доступ к файлу всем на запись и т.д проверка сети: sudo ethtool eth0,3 — сведения, есть ли link mtr yandex.ru — трассеровка netstat -nr — маршруты
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
address192.168.40.62
netmask255.255.255.0
network192.168.40.0
broadcast192.168.40.255
gateway192.168.40.254
dns-nameservers192.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:
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>
# <em>сбрасывать остальные соединения снаружи и логировать</em>
#$IPTABLES -A INPUT -i $WAN -j ULOG --ulog-prefix "IPFW-DENY:"
$IPTABLES-AINPUT-i$WAN-jDROP
# 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 (как выше).