Это старая версия документа!
В свойствах виртуальной сети (virsh net-edit) изменить:
<forward mode="nat"/>
на
<forward mode="open"/>
Перезапустить libvirtd.
Правила iptables в таблице nat (адрес подсети зависит о настроек):
-A POSTROUTING -s 192.168.10.0/24 -j MASQUERADE
В таблице filter:
-A INPUT -i virbr0 -j ACCEPT -A FORWARD -i virbr0 -j ACCEPT -A FORWARD -o virbr0 -j ACCEPT
Причина: неподконтрольные действия podman в отношении правил iptables.
Цель: установить docker образ.
Условие: «ручное» и понятное управление правилами iptables.
Установка docker (на самом деле. установится «moby-engine»):
dnf install docker
Добавление опции отключения iptables (–iptables=false):
cat /etc/sysconfig/docker OPTIONS="--log-driver=journald \ --live-restore \ --default-ulimit nofile=1024:1024 \ --init-path /usr/libexec/docker/docker-init \ --userland-proxy-path /usr/libexec/docker/docker-proxy \ --iptables=false \ --data-root /mnt/storage/docker \ "
Также все данные docker были перенесены на другой диск - «–data-root /mnt/storage/docker»
Запуск docker:
systemctl enable --now docker
Восстановление из ранее сохранённого образа:
docker load < acestream-proxy.tar
Запуск контейнера:
docker run -d -p 192.168.1.2:6878:6878 -p 192.168.1.2:8000:8000 --name AS rusanter/acestream-proxy
При перезапуске службы docker, контейнер стартует. Вероятно срабатывает опция «–live-restore» при запуске службы.
Правила iptables в таблице nat:
-A POSTROUTING -s 172.17.0.0/24 -j MASQUERADE
В таблице filter:
-A INPUT -i docker0 -j ACCEPT -A FORWARD -i docker0 -j ACCEPT -A FORWARD -o docker0 -j ACCEPT
На сервере в /etc/nfs.conf в секции [nfsd] включить опцию:
udp=y
И перезапустить NFS сервер:
systemctl restart nfs-server
По наводке: https://www.linux.org.ru/forum/general/14453819
Установка:
dnf install vnstat systemctl enable --now vnstat
Какие интерфейсы обнаружились:
vnstat --iflist
Отключение «лишних»:
vnstat -i eth1 --remove --force vnstat -i podman0 --remove --force vnstat -i veth0 --remove --force
В /etc/vnstat.conf можно поменять локализацию и формат времени.
WEB интерфейс: https://github.com/kdkasad/vnstat-web
sshpass -p PASSWORD ssh -p 22 user@server
Можно использовать при создании SSH туннеля к серверу не позволяющему сохранение публичных ключей.
https://serverfault.com/questions/241588/how-to-automate-ssh-login-with-password/512220#512220
ssh -o ProxyCommand='nc --proxy-type socks5 --proxy 127.0.0.1:2225 %h %p' root@sshserver xfreerdp /v:rdpserver /u:USER /p:PASSWORD +fonts /cert-ignore /size:1800x960 /drive:TRANSIT,/mnt/storage/transit /proxy:socks5://127.0.0.1:2225
openssl req -x509 -nodes -days 3650 -newkey rsa:1024 -keyout secret.domain.key -out secret.domain.crt -subj "/C=DE/ST=Berlin/L=Berlin/O=Secret Service/OU=IT Department/CN=secret.domain/CN=support@secret.domain"
Предполагается, что уже есть домен под управлением Яндекса - https://connect.yandex.ru/portal/services/webmaster/resources или https://admin.yandex.ru/domains
Например, изменять требуется адреса доменов «domain.sample» и «subdomain.domain.sample»
Хост Тип записи Значение записи TTL @ A 127.0.0.1 300 (domain.sample) subdomain A 127.0.0.1 300 (subdomain.domain.sample)
Получить токен для управления записями DNS (учётная запись Яндекса, под управлением которой находится DNS, должна быть текущей в браузере) - https://pddimp.yandex.ru/api2/admin/get_token, в качестве домена, вводить «domain.sample».
Выведется, что-то, вроде этого: «SKC7WTYHNSK34PNQKCW5YY2UV5AZZEBASPQZQFDY2UV5AZZ3363H»
Получить ID записей:
curl -sH 'PddToken: SKC7WTYHNSK34PNQKCW5YY2UV5AZZEBASPQZQFDY2UV5AZZ3363H' 'https://pddimp.yandex.ru/api2/admin/dns/list?domain=domain.sample' | jq
Будет получен перечень записей, такого вида:
{ "domain": "domain.sample", "ttl": 300, "subdomain": "@", "content": "127.0.0.1", "fqdn": "domain.sample", "record_id": 21475617, "type": "A", "priority": "" }, { "domain": "domain.sample", "ttl": 300, "subdomain": "subdomain", "content": "127.0.0.1", "fqdn": "subdomain.domain.sample", "record_id": 21475619, "type": "A", "priority": "" },
После чего можно менять значение IP указанных записей, например, на 1.1.1.1 и 2.2.2.2:
curl -sH 'PddToken: SKC7WTYHNSK34PNQKCW5YY2UV5AZZEBASPQZQFDY2UV5AZZ3363H' -d 'domain=domain.sample&record_id=21475617&subdomain=@&ttl=300&content=1.1.1.1' 'https://pddimp.yandex.ru/api2/admin/dns/edit' curl -sH 'PddToken: SKC7WTYHNSK34PNQKCW5YY2UV5AZZEBASPQZQFDY2UV5AZZ3363H' -d 'domain=domain.sample&record_id=21475619&subdomain=subdomain&ttl=300&content=2.2.2.2' 'https://pddimp.yandex.ru/api2/admin/dns/edit'
yt-dlp --ignore-errors --continue --no-overwrites <URL>
yum -y install certbot python-certbot-apache certbot --apache
Ввести адрес электронной почты.
Подтвердить условия использования.
Желаете-ли получать рассылку на указанный адрес.
Предоставляется выбор доменов, которые найдены в конфигурации httpd:
1: kochkin.tk 2: www.kochkin.tk 3: kochkin.mooo.com
Ввести номера через пробел или запятую, или ничего не вводить для выбора всех.
После чего будут получены сертификаты и в конфигурационные файлы httpd будут внесены измения для их использования. Также будет сделано перенаправление с http на https.
Для обновления сертификатов, включить системный таймер:
systemctl enable certbot-renew.timer
Просмотр сертификатов:
certbot certificates
Добавление домена к существующим:
certbot --expand -d kochkin.tk,kochkin.mooo.com,www.kochkin.tk,kochkin.us.to
Удаление доменов:
certbot delete
Файлы копируются в папку с Apache под Windows:
scp root@192.168.10.108:/etc/letsencrypt/live/YouDomain/fullchain.pem c:/redmine/apache2/conf/SSL/YouDomain/fullchain.pem scp root@192.168.10.108:/etc/letsencrypt/live/YouDomain/privkey.pem c:/redmine/apache2/conf/SSL/YouDomain/privkey.pem net stop redmineApache net start redmineApache
192.168.10.108 - Компьютер, который обновляет сертификаты для домена.
В конфигурационном файле, в которов указываются пути к сертификатам должно быть прописано:
SSLCertificateFile "c:/redmine/apache2/conf/SSL/YouDomain/fullchain.pem" SSLCertificateKeyFile "c:/redmine/apache2/conf/SSL/YouDomain/privkey.pem"
Необходимые сертификаты (точнее, симлинки) на компьютере, который обновляет сертификаты, находятся в
/etc/letsencrypt/live/<Ваш домен>
Это файлы «privkey.pem» и «fullchain.pem»
В указанной выше папке, запустить:
openssl pkcs12 -inkey privkey.pem -in fullchain.pem -export -out YouDomain.pfx -passout pass:
CMD файл запускаемый на Windows с установленным IIS. :
scp root@192.168.10.108:/etc/letsencrypt/live/YouDomain/YouDomain.pfx YouDomain.pfx certutil -delstore "WebHosting" "YouDomain" certutil -f -p "" -importpfx "WebHosting" "YouDomain.pfx" certutil -repairstore "WebHosting" "YouDomain"
192.168.10.108 - Компьютер, который обновляет сертификаты для домена.
Временно, до перезагрузки:
sysctl -w net.ipv6.conf.all.disable_ipv6=1 sysctl -w net.ipv6.conf.default.disable_ipv6=1 sysctl -w net.ipv6.conf.lo.disable_ipv6=1
Для полного отключения ipv6 в ядре, добавить к параметрам ядра:
ipv6.disable=1
Если домен от имени которого необходимо отправлять почту не совпадает с локальным именем машины с которой необходимо отправлять почту, надо указать имя домена, от имени которого отправляется почта в /etc/postfix/main.cf
myhostname = domain.com myorigin = domain.com
Домен domain.com должен резольвиться на IP, с которого отправляется почта.
Провайдер предоставляет доступ к интернет следующим способом:
Задача: Отфильтровать скорость приёма/передачи в/из подсеть 10.0.0.0/8 от остального для раздельного подсчёта и передачи данных в zabbix.
Считать скорость на сетевом интерфейсе не получится, т.к., там присутствует «смешанный» трафик.
Создаём правила в таблице mangle iptables:
*mangle -A PREROUTING -p all -i eth1 -s 10.0.0.0/8 -j MARK --set-mark 1 -A POSTROUTING -p all -o eth1 -d 10.0.0.0/8 -j MARK --set-mark 2 COMMIT
Получить значения можно командами:
iptables -L -vxnt mangle | grep "MARK set 0x1" | awk '{print $2}' iptables -L -vxnt mangle | grep "MARK set 0x2" | awk '{print $2}'
В zabbix указать в предобработке значения - «Изменения в секунду»
«Чистый» трафик в/из интернета можно получить разностью полного трафика на интерфейсе (eth1) и полученного локального трафика.
dnf -y install miredo-client systemctl enable miredo-client systemctl start miredo-client ping6 ipv6.google.com
На первом запускаем (должен быть открыт порт 5201 для входящих подключений):
iperf3 -s
На втором:
iperf3 -е 600 -с <адрес первого компьютера>
Или новый синтаксис:
iperf3 -с <адрес первого компьютера> -t 600
Запустит тест на передачу на 600 секунд.
ethtool -s enp8s0 autoneg on
Или в файле /etc/sysconfig/network-scripts/ifcfg-enp8s0:
ETHTOOL_OPTS="autoneg on"
systemctl disable --now firewalld dnf remove firewalld* dnf install iptables-services ipset-service systemctl enable --now ipset && systemctl enable --now iptables
Чтобы правила IPSET автоматически сохранялись в /etc/sysconfig/ipset
при перезапуске или останове службы IPSET, необходимо добавить в файл /etc/sysconfig/ipset-config
переменные:
IPSET_SAVE_ON_STOP=yes IPSET_SAVE_ON_RESTART=yes
youtube-dl -c -f bestvideo+bestaudio --dateafter 20171130 -o "%(title)s.%(ext)s" "URL"
–dateafter 20171130 - после 30 ноября 2017г.
«URL» - URL канала, плейлиста.
Иногда бывает необходимо компьютеру «A» войти по SSH на компьютер «B», расположенным за NAT и не имеющего реального IP адреса. Выход есть, если компьютер «B» может соединиться по SSH с компьютером «A». Но без «помощника» не обойтись.
«Помощник» должен запустить на компьютере «B» команду:
ssh -fN -R 10022:localhost:22 user@server -p 2022
что означает: создать подключение с компьютером «A» (server), под пользователем «user» на порт 2022 и предоставить возможность обратного соединения компьютера «A» на порт 22 компьютера «B» по локальному порту 10022 компьютера «A» и уйти в фоновый режим (опция «-f»).
Для соединения с компьютером «B», используя данный туннель, на компьютере «A» выполнить:
ssh -p 10022 localhost
Или ещё один вариант. На сервере в /etc/ssh/sshd_config должна быть включена опция «GatewayPorts yes»:
ssh -fN -R 192.168.20.1:10022:localhost:22 user@server -p 2022
Для соединения:
ssh -p 10022 192.168.20.1
Подсмотрено здесь.
ssh -L 4489:192.168.100.100:3389 user@host.server
4489 - локальный порт
3389 - удалённый порт на 192.168.100.100 (сервер терминалов)
user@host.server - SSH сервер к которому пробрасывается туннель и с которого осуществляется подключение к 192.168.100.100
При подключении RDP клиента на локальный порт 4489, попадаем через SSH туннель на порт 3389 на 192.168.100.100.
Подсмотрено здесь.
Вариант проброса нескольких портов в фоне:
ssh -L 22008:server1:3389 -L 22007:server2:3389 -L 22006:server3:3389 -p 34033 root@sshserver -fN
ssh -fN -D 2000 usertunnel@sshserver -p 6060
2000 - Порт SOCKS5 прокси, который должен указываться в клиентской программе, например, в браузере.
usertunnel@sshserver - Пользователь@адрес SSH сервера.
6060 - Порт SSH сервера.
Для доступа к SSH серверу по сертификату, сгенерировать ключи клиента:
ssh-keygen -t rsa -b 2048
И добавить клиентский ~/.ssh/id_rsa.pub к файлу ~/.ssh/authorized_keys пользователя SSH сервера, от имени, которого производится подключение (usertunnel).
В случае Windows клиента id_rsa.pub находится в папке пользователя, например, c:\Users\Пользователь\.ssh\id_rsa.pub.
ssh -o "UserKnownHostsFile=/dev/null" -o "StrictHostKeyChecking=no" user@host
UserKnownHostsFile=/dev/null - не сохранять ключи подключаемых хостов.
StrictHostKeyChecking=no - не проверять ключи.
Подсмотрено здесь.
В Fedora 15/16 сетевые интерфейсы именуются примерно так - «p2p1».
Для именования интерфейсов в виде «ethX» необходимо:
rsync -e 'ssh -p 4056' archive.tar.bz2 192.168.10.24:/
Копирует файл archive.tar.bz2 из текущей папки в корневую папку машины 192.168.10.24 через SSH порт 4056.
11 декабря 2009г. Fedora 12.
Где «HP-LaserJet-P1005» - название принтера в Linux.
Если используете krdc, данный параметр прописывается в пункте \«Дополнительные параметры\» соединения.
Для xfreerdp параметр
/printer:PRINTER_NAME
3 июля 2009г. Fedora 11.
Привязки MAC адресов к номерам сетевых устройств находятся в файле /etc/udev/rules.d/70-persistent-net.rules:
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:1a:4d:51:d8:1d", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"
Смена номера призводилась путём изменения MAC адреса.
21 октября 2008г.
Пример закачки DVD образа Tedora с зеркала yandex.ru
rsync -zavP rsync://mirror.yandex.ru/fedora/tedora/releases/9.1/x86_64/iso/Tedora-9.1-x86_64-DVD.iso /media/tedora/Tedora-9.1-x86_64-DVD.iso
Для временной смены:
ifconfig eth1 hw ether 00:1A:4D:51:D8:10
Для постоянного использования - в файле \«/etc/sysconfig/network-scripts/ifcfg-eth0\» вписать строчку:
MACADDR=00:1A:4D:51:D8:10
Основные параметры / Jabber ID – имя@gmail.com
Подключение / Шифрование (SSL) – вкл., Разрешить передачу паролей открытым текстом – вкл.,
Заменить стандартную информацию о сервере: Сервер – talk.google.com, Порт – 443.
LANG=ru_RU.koi8r konsole -e ssh gate -l root -p 22
закачивает все jpg файлы с сайта www.site.com:
wget -r -v -A *.jpg http://www.site.com/
закачивает все файлы не выше указанной папки и форматирует ссылки в документах для автономного просмотра:
wget -np -k -p -r -A * http://www.rhd.ru/docs/manuals/enterprise/RHEL-4-Manual/
В файле /etc/exports прописываем папки для экспорта (с доступом на запись, нескрытая):
/media/disk_d/share/ 192.168.10.*(rw,sync,nohide)
В Fedora 38 указывается подсеть с маской:
/media/disk_d/share/ 192.168.10.0/24(rw,sync,nohide)
Примечание: Для экспорта папок с NTFS надо патчить ядро (не проверялось).
В файле /etc/samba/smb.conf :
[global] netbios name = lin-01 # Имя машины workgroup = workgroup # Рабочая группа server string = lin-01 # Строка сервера security = share # Безовасность (свободный доступ) [share] # Название ресурса path=/media/disk_d/share # Папка writable = yes # Запись разрешена guest ok = yes # Разрешён доступ гостю
В файле /etc/auto.master :
/media/net /etc/auto.netw --timeout 36000
/media/net - общая папка для точек монтирования /etc/auto.netw - файл точек монтирования (файл может быть любой) –timeout 36000 - время отсоединения шары (10 часов) В /etc/auto.netw :
lin-03-share -rw,soft,intr lin-03:/media/disk_d/share/ # Монтируется диск с VFAT win-02-share -fstype=cifs,uid=user,gid=user,noperm,guest,rw ://win-02/share # Шара на Windows
Вышеуказанные ресурсы монтируются в - /media/net/lin-03-share и /media/net/win-02-share при первом обращении к ним.
Прежде, чем пытаться подключиться по PPTP необходимо настроить статические маршруты, получаемые по DHCP. Без этого не будут доступны локальные ресурсы домовой сети и, соответственно, VPN сервер. О настройке читать здесь.
Для создания файла туннеля использовать pptpconfig из пакета pptp-client (http://pptpclient.sourceforge.net) При «ручном» подключении использовать pptpconfig. Для подключения при загрузке системы — команда:
pppd call <туннель> debug nodetach &
Эта команда прописывается, например, в файле «/etc/rc.d/rc.local» При автоматическом подключении необходимо добавить
route add default dev ppp0
в файл «/etc/ppp/ip-up».
Просмотр:
ffplay -rtsp_transport http rtsp://s10.domain.com:1935/streams/stream100 vlc rtsp://s10.domain.com:1935/streams/stream100 --rtsp-http --network-caching 15000
Запись:
ffmpeg -rtsp_transport http -i rtsp://s10.domain.com:1935/streams/stream100 -vcodec copy -acodec copy out.mp4
Необходимо добавить содержимое файла ~/.ssh/id_rsa.pub, находящегося на клиентской машине из домашней папки пользователя, который должен входить на сервер к файлу ~/.ssh/authorized_keys пользователя на сервере от имени которого производится вход.
Публичный ключ id_rsa.pub (если его ещё не существует) генерируется командой:
ssh-keygen -t rsa
Добавление публичного ключа с клиентской на удалённую машину. На клиентской машине выполнить:
cat .ssh/id_rsa.pub | ssh server_user@server_address -p 3022 "cat >> .ssh/authorized_keys"
или
ssh-copy-id [-p port] [user@]hostname
Для отключения возможности входа по паролю, на сервере, в файле /etc/ssh/sshd_config установить опцию
PasswordAuthentication no
Один из вариантов исправления:
update-crypto-policies --set DEFAULT:FEDORA32
https://fedoraproject.org/wiki/Changes/StrongCryptoSettings2#Upgrade.2Fcompatibility_impact
Версия оборудования - P671A-1-2.0.0
Версия прошивок:
# echo -e "AT+ZCDRUN=Ern" > /dev/ttyUSB3
Данная команда была послана один раз, модем нормально работает и после физического отключения.
Модем может нормально работать при отсутствии виндового ПО, нормально настраивается в NetworkManager.
Найдено здесь.
Данная команда отключает доступ к диску модема, поэтому становятся недоступны ПО и драйверы, расположенные на нём.
ПО и драйверы для Windows можно скачать с форума Билайн.
P.S. Если есть необходимость вернуть всё назад (сам не проверял):
# echo -e "AT+ZCDRUN=Frn" > /dev/ttyUSB3
Найдено здесь.
11 декабря 2013г. Scientific Linux 6.4
На сервере в файле /etc/ssh/sshd_config установить параметр:
UseDNS no
8 сентября 2011г., Fedora 15
Устанавливаем:
yum install openl2tp
Файл конфигурации (по умолчанию - «/etc/openl2tpd.conf»):
ppp profile modify profile_name=default auth_eap=no auth_mschapv1=no auth_mschapv2=no tunnel create tunnel_name=starnet dest_ipaddr=l2tp.starnet persist=yes session create tunnel_name=starnet session_name=starnet user_name=UserName user_password=Password system modify deny_remote_tunnel_creates=yes
Вместо UserName и Password прописываем имя и пароль, выданные провайдером.
В файле «/etc/sysconfig/openl2tpd» закомментируем строки (назначение этого файла для меня непонятно):
#OPENL2TPDARGS= #OPENL2TPD_CONFIG_FILE=
Создаём файл «/etc/ppp/peers/starnet»:
nodeflate nobsdcomp noauth nomppe lock refuse-eap persist maxfail 0 holdoff 10
Для соединения во время старта системы делаем следующее:
Создаём файл «/sbin/ifup-local» (Он автоматом запускается после поднятия интерфейса, в моём случае - eth1)
В нём прибиваются «лишние» процессы pppd и запускается openl2tpd
#!/bin/sh if [ "$1" == "eth1" ]; then killall pppd systemctl start openl2tpd.service & fi
Чтобы завершить лишние процессы при отключении eth1, создаём файл «/sbin/ifdown-pre-local» (Он автоматом запускается перед отключением интерфейса):
#!/bin/sh if [ "$1" == "eth1" ]; then killall pppd systemctl stop openl2tpd.service fi
Чтобы выполнить какие-либо задачи после поднятия ppp, их необходимо прописать в «/etc/ppp/ip-up.local», например:
#!/bin/bash /sbin/route del default /sbin/route add default dev ppp0
Файлы ifup-local, ifdown-pre-local и ip-up.local должны быть помечены, как исполняемые.
Используется для синхронизации файлов в локальной сети без шифрации трафика.
На сервере необходимо запустить rsync в режиме демона, для этого нужно создать файл конфигурации «rsyncd.conf» в «/etc/» примерно следующего содержания:
uid = 0 gid = 0 pid file = /var/run/rsyncd.pid log file = /var/log/rsyncd.log list = yes [storage] path = /mnt/storage/ read only = false transfer logging = yes
Используемые параметры:
uid = 0, gid = 0 - на сервере rsync работает с правами root
pid file - расположение pid файла
log file - расположение файла журнала
list = yes - позволить просматривать доступные ресурсы для rsync
[storage] - название ресурса
path - путь к ресурсу
read only = false - позволить запись
transfer logging = yes - записывать в журнал
На сервере запускаем:
rsync --daemon
Для синхронизации данных с сервера на клиентскую машину на клиенте запускаем:
rsync -axvH server::storage /mnt/local-backup/
server - адрес сервера с запущенным rsync в режиме демона
storage - название ресурса
/mnt/local-backup/ - папка, куда производится копирование
По умолчанию rsync использует порт 873/tcp. На сервере должен быть открыт для входящих подключений.
17 августа 2010г. Fedora 13.
Из личного опыта рекомендую подключаться с помощью openl2tp. Меньше нагружает систему, держит более высокую скорость.
Устанавливаем пакет «xl2tpd» из реп.
Редактируем файл «/etc/xl2tpd/xl2tpd.conf»:
[global] access control = yes [lac starnet] ;сюда имя хоста или адрес сервера lns = l2tp.starnet ;сюда вписывать айпи адрес или доменное имя сервера redial = yes ;перезванивать при разрывах redial timeout = 10 ;сколько секунд ждать require chap = yes ;включена авторизация CHAP require authentication = no ;авторизация типа хост <-> хост name = family_ns ;имя пользователя ppp debug = yes pppoptfile = /etc/ppp/options.xl2tpd require pap = no autodial = yes ;соединять автоматически
Редактируем файл «/etc/ppp/options.xl2tpd»:
name family_ns remotename l2tp ipparam starnet connect /bin/true nodeflate nobsdcomp persist maxfail 0 nopcomp noaccomp defaultroute
Редактируем файл «/etc/ppp/chap-secrets»:
family_ns * password
Параметры:
family_ns - логин
password - пароль
Запускаем:
service xl2tpd start
19 Августа 2023г. Fedora 38.
В правилах iptables в цепочке filter:
-A INPUT -p igmp -d 224.0.0.0/4 -j ACCEPT -A INPUT -p udp -m addrtype -d 224.0.0.0/4 -j ACCEPT --dst-type MULTICAST
Для начала необходимо проделать действия, указанные в Задаче 1.
«Другая» сеть подключена через eth1.
В файле «/etc/sysctl.conf»
net.ipv4.ip_forward = 1
Применить:
sysctl -p
Добавить правило iptables в цепочке filter:
-A FORWARD -j ACCEPT
Скачать https://github.com/pali/igmpproxy
Бинарник версии 0.4 скомпилированный на Fedora 38: igmpproxy-0.4
Бинарник версии 0.1 скомпилированный на Fedora 38: igmpproxy-0.1
Распаковать, скомпилировать.
Поместить бинарник igmpproxy в «/usr/sbin/», файл конфигурации - в «/etc/igmpproxy.conf»
В файле конфигурации:
quickleave # Интерфейс провайдера phyint eth0 upstream ratelimit 0 threshold 1 altnet 10.0.0.0/8 altnet 172.16.0.0/12 # Интерфес локалки phyint eth1 downstream ratelimit 0 threshold 1
Запуск:
/usr/sbin/igmpproxy /etc/igmpproxy.conf
Или создать службу /etc/systemd/system/igmpproxy.service:
[Unit] Description=IGMP Proxy Service DefaultDependencies=no Wants=network-online.target After=network-online.target [Service] Restart=always TimeoutStopSec=5 ExecStart=/sbin/igmpproxy -n -d /etc/igmpproxy.conf Type=simple StandardOutput=append:/var/log/igmpproxy.log StandardError=append:/var/log/igmpproxy-error.log [Install] WantedBy=default.target
Ключ -n не позволяет запускать, как демон (иначе, служба завершается с ошибкой «Failed with result 'start-limit-hit'»).
Ключ -d перенаправляет все сообщения в консоль (а по факту, в указанные файлы журналов) вместо системного журнала.
16 декабря 2009г. Fedora 12.
Действия на подчинённой рабочей станции/сервере:
Устанавливаем vnc-server
yum install vnc-server
Входим пользователем для которого делается доступ (пользователь создан ранее) и задаём пароль для доступа к vnc серверу
vncpasswd
Редактируем \«/etc/sysconfig/vncservers\»
VNCSERVERS="2:vncuser" VNCSERVERARGS[2]="-geometry 1024x768"
Цифра \«2\» указывает порядковый номер пользователя и порт, который прослушивает vnc сервер для пользователя \«vncuser\» (5902)
Если необходимо предоставить доступ к vnc серверу нескольким пользователям, vncservers выглядит примерно так:
VNCSERVERS="2:vncuser 3:vncotheruser" VNCSERVERARGS[2]="-geometry 1024x768" VNCSERVERARGS[3]="-geometry 1280x1024"
Запускаем vnc сервер
service vncserver start
Так-же необходимо разрешить входящие подключения в для используемых портов.
Проверяем наличие файла \«~/.vnc/xstartup\». В случае его отсутствия - создаём с таким содержимым:
unset SESSION_MANAGER exec /etc/X11/xinit/xinitrc
Проблемы: При подаче команды завершения сеанса из DE vnc сервер не завершает сеанс полностью и при последующем соединении пользователь видит чёрный экран с курсором мыши. Для восстановления работоспособности необходимо войти через ssh и перезапустить vnc сервер \«service vncserver restart\» или не завершать сеанс из DE, а просто отключаться.
Для корректной работы буфера обмена между клиентом и сервером, на клиенте должен быть запущен vncconfig:
7 сентябра 2009г. Fedora 11.
Цель: Поднимать ppp соединение сразу после подъёма eth, чтобы у других служб (httpd) была возможность нормально запуститься.
NetworkManager не используется.
Необходимые пакеты: pptp, ppp.
Для нижеуказанных действий необходимы права root-а.
1. Интерфейс eth0 настраиваем в system-config-network:
Включить:
Сохранить и включить интерфейс.
Проверить командами ifconfig и route:
#ifconfig eth0 Link encap:Ethernet HWaddr 00:1A:4D:51:D8:1D inet addr:10.1.104.222 Bcast:10.1.104.255 Mask:255.255.255.0 inet6 addr: fe80::21a:4dff:fe51:d81d/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:411842 errors:0 dropped:0 overruns:0 frame:0 TX packets:551290 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:237257905 (226.2 MiB) TX bytes:394473380 (376.1 MiB) Interrupt:18 Base address:0x2000
#route: Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface Starnet-Gateway 10.1.104.1 255.255.255.255 UGH 0 0 0 eth0 10.1.104.0 * 255.255.255.0 U 0 0 0 eth0 link-local * 255.255.0.0 U 1002 0 0 eth0 10.0.0.0 10.1.104.1 255.0.0.0 UG 0 0 0 eth0 default 10.1.104.1 0.0.0.0 UG 0 0 0 eth0
Проверяем доступ к локальной сети, например к www.ahtuba.com…
2. Создаём ppp подключение:
Создаём файл туннеля pptp ("/etc/ppp/peers/starnet"):
pty "pptp vpn.starnet --nolaunchpppd --loglevel 0 --nobuffer" user family_nn password "password" nodeflate nobsdcomp noauth nomppe lock refuse-eap
Где \«family_nn\» и \«password\» имя пользователя и пароль подключения, \«vpn.starnet\» - адрес сервера VPN.
Проверяем подключение:
#route del default #pppd call starnet debug nodetach using channel 4 Using interface ppp0 Connect: ppp0 <--> /dev/pts/2 sent [LCP ConfReq id=0x1 <asyncmap 0x0> <magic 0x3584e1c1> <pcomp> <accomp>] rcvd [LCP ConfReq id=0x1 <auth chap MS-v2> <magic 0x4020e09b>] sent [LCP ConfAck id=0x1 <auth chap MS-v2> <magic 0x4020e09b>] sent [LCP ConfReq id=0x1 <asyncmap 0x0> <magic 0x3584e1c1> <pcomp> <accomp>] rcvd [LCP ConfAck id=0x1 <asyncmap 0x0> <magic 0x3584e1c1> <pcomp> <accomp>] rcvd [CHAP Challenge id=0x1 <6bd7921e57986ee4216d61f86b83c524>, name = "gw"] sent [CHAP Response id=0x1 <efdda57b4aa2f67... ...43d4d1bb12d7b800>, name = "family_nn"] rcvd [CHAP Success id=0x1 "S=185A9704DF8E43B51D15E990A4029FA01CAC7D72"] CHAP authentication succeeded sent [IPCP ConfReq id=0x1 <compress VJ 0f 01> <addr 0.0.0.0>] rcvd [IPCP ConfReq id=0x1 <addr 172.21.1.1>] sent [IPCP ConfAck id=0x1 <addr 172.21.1.1>] rcvd [IPCP ConfRej id=0x1 <compress VJ 0f 01>] sent [IPCP ConfReq id=0x2 <addr 0.0.0.0>] rcvd [IPCP ConfNak id=0x2 <addr 94.147.123.211>] sent [IPCP ConfReq id=0x3 <addr 94.147.123.211>] rcvd [IPCP ConfAck id=0x3 <addr 94.147.123.211>] local IP address 94.147.123.211 remote IP address 172.21.1.1 Script /etc/ppp/ip-up started (pid 11650) Script /etc/ppp/ip-up finished (pid 11650), status = 0x0
С другой консоли даём команду:
#route add default dev ppp0
Проверяем наличие доступа к интернету…
Для закрытия ppp соединения:
#killall -TERM pptpcm
Для автоматического изменения шлюза по умолчанию добавляем в файле \«/etc/ppp/ip-up\» (в конце, перед строчкой с \«exit 0\»):
route del default route add default dev ppp0
И в файле \«/etc/ppp/ip-down\» (в конце, перед строчкой с \«exit 0\»):
route add default gw 10.1.104.1
2. Автоматизация при включении/отключении eth:
В файле \«/etc/sysconfig/network-scripts/ifup-post\» перед \«exit 0\», пишем команду включения ppp:
sleep 1 pppd call starnet nodetach &
В файле \«/etc/sysconfig/network-scripts/ifdown-eth\» после строки \«check_device_down ${DEVICE} && [ «$BOOTPROTO»…\», пишем команду отключения ppp:
killall -TERM pptpcm
Последнее необязательно, т.к. ppp упадёт при отключении eth.
Проверяем:
#service network stop #service network start
21 апреля 2010г. - Изменено для Fedora 12. Проверено у провайдера Волжский StarNet
Необходимо прописать в файле /etc/dhclient-eth0.conf (или создать таковой).
option rfc3442-classless-static-routes code 121 = array of unsigned integer 8; # request subnet-mask, broadcast-address, time-offset, routers, domain-name, domain-name-servers, host-name, netbios-name-servers, netbios-scope, interface-mtu, rfc3442-classless-static-routes;
Это заставляет DHCP клиента получать информацию о статических маршрутах.
Далее, создать файл /etc/dhcp/dhclient-exit-hooks и сделать его исполняемым:
if [ x"$new_rfc3442_classless_static_routes" != x"" ]; then rfc_routes=($new_rfc3442_classless_static_routes) for(( i=0; i < ${#rfc_routes[@]}; )); do net_length=${rfc_routes[$i]} ((i++)) net_address=(0 0 0 0) for(( j=0; j < $[$net_length / 8 + ($net_length % 8 ? 1 : 0)]; j++, i++)); do net_address[$j]=${rfc_routes[$i]} done gateway=(0 0 0 0) for (( j=0; j < 4; j++, i++ )); do gateway[$j]=${rfc_routes[$i]} done old_IFS="$IFS" IFS='.' if [ x"$net_length" == x"32" ]; then /sbin/route add -host "${net_address[*]}" gw "${gateway[*]}" logger "dhclient-exit-hooks: GateWay ${gateway[*]} for host ${net_address[*]}" else /sbin/route add -net "${net_address[*]}/$net_length" gw "${gateway[*]}" logger "dhclient-exit-hooks: GateWay ${gateway[*]} for network ${net_address[*]}" fi IFS="$old_IFS" done fi
Этот скрипт добавит статические маршруты.
Цель: управление питанием удалённого компьютера по сети.
Включение питания не зависит от ОС подчинённого компьютера.
Подчинённый компьютер должен иметь возможность включаться посредством подачи на сетевую карту Magic пакета (в BIOS включить опцию \«Wake On Lan\»; в Windows - в настройках драйвера сетевой карты, в Linux - команда
ethtool -s eth0 wol g
wol 10:24:87:33:48:16
или
ether-wake -i eth0 10:24:87:33:48:16
eth0 - интерфейс управляющей машины через который будет послан Magic пакет.
10:24:87:33:48:16 - MAC адрес подчинённой машины.
(Об ether-wake взято здесь)
net rpc shutdown /p /d P:01:01 /f -I 192.168.21.11 -U UserName%Password
UserName должен иметь права на выключение компьютера с Windows.
Провайдером выделяется пользователю несколько приватных IP адресов в сети 10.xxx.xxx.xxx. Адреса раздаются по DHCP с возможностью привязки к MAC адресам устройств. Пользователь может использовать эти адреса подключая свои устройства через простой свич без использования маршрутизатора. Приватные IP адреса провайдер, прозрачно для пользователя, преобразует в реальные. В определённый момент времени, IP адрес приватной сети соответствует выделенному реальному IP адресу.
Несмотря на возможность подключения нескольких устройств без маршрутизатора, есть явный недостаток - все устройства пользователя оказываются в публичной сети и подвергаются опасности. Поэтому в квартире всё-таки используется маршрутизатор/брандмауэр - компьютер с двумя сетевыми картами с установленым Scientific Linux 6.5.
От провайдера маршрутизатор получает адрес 10.xxx.xxx.xxx по DHCP. Для «квартирных» устройств сам раздаёт адреса по DHCP в сети 192.168.xxx.xxx.
SIP телефон имеет адрес из сети 192.168.xxx.xxx. Подключен к SIPNET.RU и работает без проблем.
Правила IPTABLES на маршрутизаторе («/etc/sysconfig/iptables»):
*filter :INPUT ACCEPT [0:0] :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [0:0] -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT # SIP -A INPUT -p tcp --dport 60000:60099 -j ACCEPT -A INPUT -p udp --dport 60000:60999 -j ACCEPT -A INPUT -p udp --dport 16384:16482 -j ACCEPT -A INPUT -p udp --dport 5060 -j ACCEPT -A INPUT -p tcp --dport 5060 -j ACCEPT *nat :OUTPUT ACCEPT [0:0] :PREROUTING ACCEPT [0:0] -A POSTROUTING -m iprange --src-range 192.168.xxx.aaa-192.168.xxx.bbb -o eth1 -j MASQUERADE
eth0 - Имеет IP 192.168.aaa.bbb, квартирная сеть. Он-же адрес шлюза для «квартирных» устройств.
eth1 - Имеет IP из 10.xxx.xxx.xxx, сеть провайдера.
Строка «-A INPUT -p udp –dport 16384:16482 -j ACCEPT» была добавлена в процессе подключения аккаунта SIP от POWERNET (сначала не помогла, но, на всякий случай оставлена).
Маршрут по умолчанию на маршрутизаторе установлен на шлюз провайдера («route -n»):
Destination Gateway Genmask Flags Metric Ref Use Iface 0.0.0.0 10.xxx.yyy.zzz 0.0.0.0 UG 0 0 0 eth1
Модуль ядра «ip_nat_sip» не используется.
Провайдером была предоставлена подробнейшая документация по подключению телефона данной модели к их сети. Никаких специфичных настроек не предусматривается. Предоставлено имя пользователя, номер телефона, пароль и адрес сервера регистрации в сети 10.xxx.xxx.xxx. Регистрация на сервере провайдера прошла успешно. Никаких сообщений об ошибках нет.
При звонке с SIP телефона, на его экране выводится сообщение «Статус ошибки 503». Соединения не происходит. При звонке на SIP телефон (на его городской номер) с мобильного телефона, сообщается, что абонент недоступен.
Судя по ошибке 503, сервер отказывает в соединении. Попытки проброса портов SIP сигнализации и медиа ничего не дали. В конце концов телефон был подключен напрямую к сети провайдера. Получив IP адрес вида 10.xxx.xxx.xxx телефон зарегистрировался, звонки и голос стали проходить в обе стороны.
Возникло подозрение, что провайдер установил запрет (или разрешение), допускающий звонки только с SIP устройств, имеющих адрес провайдера или один из адресов, зарегистрированных за конкретным абонентом.
При анализе трафика tcpdump-ом, было обнаружено, что при попытке звонка, на SIP сервер уходят сообщения, содержащие IP адрес телефона из сети 192.168.xxx.xxx.
Рассматривалось несколько вариантов решения: от установки дополнительного свича на вводе от провайдера до установки своего SIP сервера на маршрутизаторе на котором уже маршрутизировать SIP звонки. Как наипростейшие варианты: подгрузка модуля ядра «ip_nat_sip» (которая ничего не дала) и присвоение телефону IP адреса провайдера из сети 10.xxx.xxx.xxx при физическом подключении за маршрутизатором (как и было раньше) среди устройств с адресами 192.168.xxx.xxx посредством «proxy arp».
Информация о том, как использовать устройство с IP адресом не принадлежавшим конкретной сети найдено здесь.
if [ «$1» == «eth1» ]; then
echo 1 > /proc/sys/net/ipv4/conf/eth1/proxy_arp ip r a 10.aaa.bbb.ccc dev eth0 fi
eth1 - провайдер, eth0 - квартирная сеть, 10.aaa.bbb.ccc - адрес сети провайдера, зарезервированый для телефона.
if [ «$1» == «eth1» ]; then
ip r d 10.aaa.bbb.ccc dev eth0 fi
Теперь после «поднятия» интефейса eth1 (провайдер), имеем дополнительный маршрут («route -n»):
Destination Gateway Genmask Flags Metric Ref Use Iface 10.aaa.bbb.ccc 0.0.0.0 255.255.255.255 UH 0 0 0 eth0
Тип IP-адреса: Статический IP-адрес: 10.aaa.bbb.ccc Маска подсети: 255.255.255.0 Стандартный шлюз: 192.168.aaa.bbb (адрес маршрутизатора в "квартирной" сети, шлюз, который используют остальные устройства в квартире) Предпочитаемый DNS-сервер 10.fff.ggg.hhh (DNS1 провайдера) Альтернативный DNS-сервер 10.fff.ggg.iii (DNS2 провайдера)
useradd -n user1 -d /mnt/disk/ftp/user1 -s /sbin/nologin passwd user1
user1 - Имя добавляемого пользователя.
/mnt/disk/ftp/user1 - папка пользователя на FTP сервере.
Создание самоподписанного сертификата на 10 лет:
openssl req -x509 -nodes -days 3650 -newkey rsa -keyout /etc/vsftpd/vsftpd.pem -out /etc/vsftpd/vsftpd.pem -subj "/C=DE/ST=Berlin/L=Berlin/O=Secret Service/OU=IT Department/CN=secret.domain/CN=sysadmin@secret.domain"
В «/etc/vsftpd/vsftpd.conf» добавляем:
ssl_enable=YES allow_anon_ssl=NO force_local_data_ssl=YES force_local_logins_ssl=YES rsa_cert_file=/etc/vsftpd/vsftpd.pem implicit_ssl=YES listen_port=990
В клиентах установить «Требовать FTP через TLS (неявный)» или «Require Implicit FTP over TLS» или «SSL/TLS Implicit encryption» для протокола FTP (или FTPS), порт - 990.
yum -y install compat-db
В /etc/vsftpd/vsftpd.conf:
guest_enable=YES guest_username=ftp virtual_use_local_privs=YES user_sub_token=$USER local_root=/mnt/storage/ftp/$USER
Сохраняем оригинальный /etc/pam.d/vsftpd:
cp /etc/pam.d/vsftpd /etc/pam.d/vsftpd.orig
А в новый /etc/pam.d/vsftpd:
auth required pam_userdb.so db=/etc/vsftpd/virtual_users account required pam_userdb.so db=/etc/vsftpd/virtual_users session required pam_loginuid.so
В /etc/vsftpd/virtual_users прописываем пользователей и пароли:
user1 passwd1 user2 passwd2
Создаём базу пользователей и паролей:
db_load -T -t hash -f /etc/vsftpd/virtual_users /etc/vsftpd/virtual_users.db
Устанавливаем владнльца на папки пользователей:
chown -R ftp. /mnt/storage/ftp