Содержание

Сеть

Включить автоопределение параметров сетевой карты (autoneg)

ethtool -s enp8s0 autoneg on

Или в файле /etc/sysconfig/network-scripts/ifcfg-enp8s0:

ETHTOOL_OPTS="autoneg on"

IPSET и IPTABLES (CentOS 6,7)

CentOS 6

Чтобы сохранённые ранее установки IPSET загружались до запуска IPTABLES, эти установки необходимо сохранять в файл /etc/sysconfig/ipset.
Чтобы правила IPSET автоматически сохранялись в /etc/sysconfig/ipset при перезапуске или останове службы IPSET, необходимо добавить в файл /etc/sysconfig/iptables-config переменные:

IPSET_SAVE_ON_STOP=yes
IPSET_SAVE_ON_RESTART=yes

Найдено в скриптах запуска служб /etc/init.d/ipset и /etc/init.d/iptables.

CentOS 7

systemctl stop firewalld
systemctl disable firewalld
yum install iptables-services
yum install ipset-service
systemctl enable ipset
systemctl start ipset
systemctl enable iptables
systemctl start iptables

Чтобы правила IPSET автоматически сохранялись в /etc/sysconfig/ipset при перезапуске или останове службы IPSET, необходимо добавить в файл /etc/sysconfig/ipset-config переменные:

IPSET_SAVE_ON_STOP=yes
IPSET_SAVE_ON_RESTART=yes

Скачать с youtube.com видео опубликованные после определённой даты

youtube-dl -c -f bestvideo+bestaudio --dateafter 20171130 -o "%(title)s.%(ext)s" "URL"

–dateafter 20171130 - после 30 ноября 2017г.
"URL" - URL канала, плейлиста.

Документация на youtube-dl.

Обратный туннель SSH

Иногда бывает необходимо компьютеру "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

Подсмотрено здесь.

Проброс удалённого порта на локальный через SSH туннель

ssh -L 4489:rdsserver.com:5589 transitserver.com

4489 - локальный порт
5589 - удалённый порт на rdsserver.com (например сервер терминалов)
transitserver.com - SSH сервер к которому пробрасывается туннель и с которого осуществляется подключение к rdsserver.com
При подключении RDP клиента на локальный порт 4489, попадаем через SSH туннель на порт 5589 на rdsserver.com.

Подсмотрено здесь.

SSH туннель в виде SOCKS5 прокси

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 для подключения к своим виртуальным машинам

ssh -o "UserKnownHostsFile=/dev/null" -o "StrictHostKeyChecking=no" user@host

UserKnownHostsFile=/dev/null - не сохранять ключи подключаемых хостов.
StrictHostKeyChecking=no - не проверять ключи.

Подсмотрено здесь.

Именование сетевых интерфейсов в "привычном виде"

В Fedora 15/16 сетевые интерфейсы именуются примерно так - "p2p1".
Для именования интерфейсов в виде "ethX" необходимо:

  1. Удалить пакет biosdevname (yum remove biosdevname).
  2. Удалить файл /etc/udev/rules.d/70-persistent-net.rules.
  3. Перегрузиться.
  4. Создать интерфейсы с "привычным" именем.

В RHEL7 добавить в параметры GRUB:

biosdevname=0 net.ifnames=0

Использование нестандартного порта SSH для RSYNC

rsync -e 'ssh -p 4056' archive.tar.bz2 192.168.10.24:/

Копирует файл archive.tar.bz2 из текущей папки в корневую папку машины 192.168.10.24 через SSH порт 4056.

Печать в RDP сеансе

11 декабря 2009г. Fedora 12.

  • Установите драйвера принтера на сервере Windows к которому необходимо подключаться.
  • Добавьте к rdesktop параметр -r printer:"HP-LaserJet-P1005"

Где "HP-LaserJet-P1005" - название принтера в Linux.
Если используете krdc, данный параметр прописывается в пункте \"Дополнительные параметры\" соединения.

Изменение номера сетевого устройства.

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 адреса.

Закачка rsync - ом.

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

Установка MAC адреса.

Для временной смены:

ifconfig eth1 hw ether 00:1A:4D:51:D8:10

Для постоянного использования - в файле \"/etc/sysconfig/network-scripts/ifcfg-eth0\" вписать строчку:

MACADDR=00:1A:4D:51:D8:10

Подключение Jabber аккаунта на gmail.com (настройки Kopete).

Основные параметры / Jabber ID – имя@gmail.com
Подключение / Шифрование (SSL) – вкл., Разрешить передачу паролей открытым текстом – вкл.,
Заменить стандартную информацию о сервере: Сервер – talk.google.com, Порт – 443.

Доступ по SSH с локали UTF8 на узел с локалью KOI8R.

    LANG=ru_RU.koi8r konsole -e ssh gate -l root -p 22

Закачка wget-ом.

закачивает все 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/

Экспорт папок для NFS.

В файле /etc/exports прописываем папки для экспорта (с доступом на запись, нескрытая):

    /media/disk_d/share/ *(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 серверу Microsoft (сервер используется в «домашних» сетях, например LANCOM).

Прежде, чем пытаться подключиться по 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».

Просмотр и запись потока по RTSP

Просмотр:

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 по ключу (без пароля)

Необходимо добавить содержимое файла ~/.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

Адаптация 3G модема ZTE MF180 от Билайн для работы в Fedora 17

Версия оборудования - P671A-1-2.0.0
Версия прошивок:

  • HW - BD_BLNMF180V1.0.0B04
  • SW - PCW_BLNRUSCOMV1.0.0B05
  1. Выяснить к какому порту подключен модем, в моём случае, на /dev/ttyUSB3.
  2. В консоли от root-а выполнить команду:
# echo -e "AT+ZCDRUN=Ern" > /dev/ttyUSB3

Данная команда была послана один раз, модем нормально работает и после физического отключения.
Модем может нормально работать при отсутствии виндового ПО, нормально настраивается в NetworkManager.

Найдено здесь.

Данная команда отключает доступ к диску модема, поэтому становятся недоступны ПО и драйверы, расположенные на нём.
ПО и драйверы для Windows можно скачать с форума Билайн.


P.S. Если есть необходимость вернуть всё назад (сам не проверял):

# echo -e "AT+ZCDRUN=Frn" > /dev/ttyUSB3

Найдено здесь.

Устранение задержки при подключении к SSH серверу

11 декабря 2013г. Scientific Linux 6.4

На сервере в файле /etc/ssh/sshd_config установить параметр:

UseDNS no

Подключение посредством протокола l2tp в сети StarNet г. Волжского. (Вариант с openl2tp)

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 без транспорта

Используется для синхронизации файлов в локальной сети без шифрации трафика.

На сервере необходимо запустить 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. На сервере должен быть открыт для входящих подключений.

Подключение посредством протокола l2tp в сети StarNet г. Волжского. (Вариант с xl2tp)

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

Мультикаст (IPTV) в сети StarNet г. Волжского.

26 декабря 2009г. Fedora 12.

Задача 1: Просмотр IPTV.

Компьютер подключен к сети (10.1.0.0/16) через eth0. Прописываем правила iptables:

"-A INPUT -i eth0 -p igmp -d 224.0.0.0/4 -j ACCEPT"
"-A INPUT -i eth0 -p udp -d 224.0.0.0/4 --dport 1234 -j ACCEPT"

Запускаем:

ip route add multicast 224.0.0.0/4 table main dev eth0

Маршрут приходится задавать, потому, что, при поднятом ppp vlc плейер пытается брать поток с ppp0.

Ещё необходимо проверить опцию "miface" в файле "~/.config/vlc/vlcrc" (должен быть указан интерфейс на котором vlc слушает мультикаст):

#Multicast output interface (string)
miface=eth0

Задача 2: Проброс мультикаст трафика в другую сеть.

Для начала необходимо проделать действия, указанные в Задаче 1.
\"Другая\" сеть подключена через eth1.

Разрешаем маршрутизацию:

В файле \"/etc/sysctl.conf\"

net.ipv4.ip_forward = 1

Применяем:

sysctl -p

Прописываем правила iptables:

"-A FORWARD -j ACCEPT"

Установка и запуск igmpproxy:

Скачиваем http://sourceforge.net/projects/igmpproxy/
Распаковываем, компилируем, устанавливаем.
После установки бинарник igmpproxy находится в \"/usr/local/sbin/\", файл конфигурации - \"/usr/local/etc/igmpproxy.conf\"
В файле конфигурации изменения минимальны:

quickleave
phyint eth0 upstream  ratelimit 0  threshold 1
      altnet 10.1.0.0/16
phyint eth1 downstream  ratelimit 0  threshold 1
phyint ppp0 disabled

Запускаем:

/usr/local/sbin/igmpproxy /usr/local/etc/igmpproxy.conf

Запуск vnc сервера

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:

Подключение посредством pptp к сети StarNet г. Волжского.

7 сентябра 2009г. Fedora 11.

Цель: Поднимать ppp соединение сразу после подъёма eth, чтобы у других служб (httpd) была возможность нормально запуститься.
NetworkManager не используется. Необходимые пакеты: pptp, ppp.
Для нижеуказанных действий необходимы права root-а.

1. Интерфейс eth0 настраиваем в system-config-network:
Включить:

  • Активировать устройство при запуске компьютера
  • Автоматически получать адрес IP при помощи dhcp
  • Автоматически получать информацию DNS от провайдера
  • Добавить маршрут: Сеть назначения - 10.0.0.0, Маска подсети - 255.0.0.0, Шлюз - 10.1.104.1

Сохранить и включить интерфейс.

Проверить командами ifconfig и route:

Проверяем доступ к локальной сети, например к www.ahtuba.com

2. Создаём ppp подключение:
Создаём файл туннеля pptp

("/etc/ppp/peers/starnet"):
Проверяем подключение:

С другой консоли даём команду:

#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

Как заставить DHCP клиента получать статические маршруты.

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

Этот скрипт добавит статические маршруты.

Использование нестандартного порта SSH для RSYNC

rsync -e 'ssh -p 4056' archive.tar.bz2 192.168.10.24:/

Копирует файл archive.tar.bz2 из текущей папки в корневую папку машины 192.168.10.24 через SSH порт 4056.

Печать в RDP сеансе

11 декабря 2009г. Fedora 12.

  • Установите драйвера принтера на сервере Windows к которому необходимо подключаться.
  • Добавьте к rdesktop параметр -r printer:"P1005"

Где "P1005" - название принтера в Linux.
Если используете krdc, данный параметр прописывается в пункте \"Дополнительные параметры\" соединения.

Если используется xfreerdp параметр "/printer:"P1005""

Изменение номера сетевого устройства.

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 адреса.

Включение/отключение питания удалённого компьютера.

Цель: управление питанием удалённого компьютера по сети.
Включение питания не зависит от ОС подчинённого компьютера.
Подчинённый компьютер должен иметь возможность включаться посредством подачи на сетевую карту 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 взято здесь)

Отключение питания (для Windows)

net rpc shutdown /p /d P:01:01 /f -I 192.168.21.11 -U UserName%Password

UserName должен иметь права на выключение компьютера с Windows.

Закачка rsync-ом.

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

Одновременная работа с двумя провайдерами.

Задача: обеспечить одновременный доступ в интернет посредством ADSL модема Dlink DVA-G3340S (маршрутизатор) и маршрутизатора Dlink DIR-100.

  • IP адрес ADSL для локальной сети - 192.168.1.1/255.255.255.0
  • IP адрес маршрутизатора DIR-100 для локальной сети - 192.168.2.1/255.255.255.0
  • На компьютере настроены (с помощью system-config-network) два алиаса для сетевой карты - eth1:1 (192.168.1.10) и eth1:2 (192.168.2.10)
  • Для eth1 не заданы параметры IP

В файле /etc/iproute2/rt_tables указываются таблицы правил T1 и T2

1       T1
2       T2

Для конфигурации интерфейсов используется скрипт (его необходимо запускать от root при загрузке компьютера):

#!/bin/sh

# Tables T1 and T2 in /etc/iproute2/rt_tables

# Имена интерфейсов
IF1="eth1:1"
IF2="eth1:2"
# IP адреса интерфейсов
IP1="192.168.1.10"
IP2="192.168.2.10"
# IP адреса шлюзов
P1="192.168.1.1"
P2="192.168.2.1"
# Подсети
P1_NET="192.168.1.0"
P2_NET="192.168.2.0"

# Добавление маршрутов и шлюзов по умолчанию для каждой подсети в свою таблицу правил
ip route add $P1_NET dev $IF1 src $IP1 table T1
ip route add default via $P1 table T1
ip route add $P2_NET dev $IF2 src $IP2 table T2
ip route add default via $P2 table T2

ip route add $P1_NET dev $IF1 src $IP1
ip route add $P2_NET dev $IF2 src $IP2

ip rule add from $IP1 table T1
ip rule add from $IP2 table T2

# Попеременное указание шлюза по умолчанию с приоритетами 4 и 1
ip route add default scope global nexthop via $P1 dev $IF1 weight 4 nexthop via $P2 dev $IF2 weight 1

Установка MAC адреса

Для временной смены:

ifconfig eth1 hw ether 00:1A:4D:51:D8:10

Для постоянного использования - в файле \"/etc/sysconfig/network-scripts/ifcfg-eth0\" вписать строчку:

MACADDR=00:1A:4D:51:D8:10

Подключение Jabber аккаунта на gmail.com (настройки Kopete)

Основные параметры / Jabber ID – имя@gmail.com
Подключение / Шифрование (SSL) – вкл., Разрешить передачу паролей открытым текстом – вкл.,
Заменить стандартную информацию о сервере: Сервер – talk.google.com, Порт – 443.

Доступ по SSH с локали UTF8 на узел с локалью KOI8R.

    LANG=ru_RU.koi8r konsole -e ssh gate -l root -p 22

Закачка wget-ом

закачивает все 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/

Экспорт папок для NFS

В файле /etc/exports прописываем папки для экспорта (с доступом на запись, нескрытая):

    /media/disk_d/share/ *(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 серверу Microsoft (сервер используется в «домашних» сетях, например LANCOM)

Прежде, чем пытаться подключиться по 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».

Генерация SSL сертификата для сервера Apache на Fedora 7

Генерация производится с помощью openssl.
Makefile для генерации находится в папке /etc/pki/tls/certs/.
В этой папке запускается

make server.key

При этом создаётся приватный ключ server.key.

Что-бы Apache при запуске не запрашивал пароль ключа

openssl rsa -in server.key -out server.pem

Далее создаётся сертификат сервера

make server.crt SERIAL=num

Где 'num' – номер сертификата.

Файлы server.key и server.pem копируются в папку /etc/pki/tls/private/

В файле /etc/httpd/conf.d/ssl.conf в параметрах

SSLCertificateFile /etc/pki/tls/certs/server.crt
SSLCertificateKeyFile /etc/pki/tls/private/server.pem

прописываются пути к файлам ключа и сертификата.

Для установки параметров генерации ключа по умолчанию, желательно подправить файл /etc/pki/tls/openssl.cnf

Именование сетевых интерфейсов в "привычном виде"

В Fedora 15/16 сетевые интерфейсы именуются примерно так - "p2p1".
Для именования интерфейсов в виде "ethX" необходимо:

  1. Удалить пакет biosdevname (yum remove biosdevname).
  2. Удалить файл /etc/udev/rules.d/70-persistent-net.rules.
  3. Перегрузиться.
  4. Создать интерфейсы с "привычным" именем.

Просмотр и запись потока по RTSP

Просмотр:

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 по ключу (без пароля)

Необходимо добавить содержимое файла ~/.ssh/id_rsa.pub, находящегося на клиентской машине из домашней папки пользователя, который должен входить на сервер к файлу ~/.ssh/authorized_keys пользователя на сервере от имени которого производится вход.

Скопировать клиентский ключ на сервер можно командой

ssh-copy-id user@server

Если у клиента и сервера разные порты SSH:

ssh-copy-id '-p 443 user@server'

Публичный ключ id_rsa.pub (если его ещё не существует) генерируется командой:

ssh-keygen -t rsa

Адаптация 3G модема ZTE MF180 от Билайн для работы в Fedora 17

Версия оборудования - P671A-1-2.0.0
Версия прошивок:

  • HW - BD_BLNMF180V1.0.0B04
  • SW - PCW_BLNRUSCOMV1.0.0B05
  1. Выяснить к какому порту подключен модем, в моём случае, на /dev/ttyUSB3.
  2. В консоли от root-а выполнить команду:
# echo -e "AT+ZCDRUN=Ern" > /dev/ttyUSB3

Данная команда была послана один раз, модем нормально работает и после физического отключения.
Модем может нормально работать при отсутствии виндового ПО, нормально настраивается в NetworkManager.

Найдено здесь.

Данная команда отключает доступ к диску модема, поэтому становятся недоступны ПО и драйверы, расположенные на нём.
ПО и драйверы для Windows можно скачать с форума Билайн.


P.S. Если есть необходимость вернуть всё назад (сам не проверял):

# echo -e "AT+ZCDRUN=Frn" > /dev/ttyUSB3

Найдено здесь.

Устранение задержки при подключении к SSH серверу

На сервере в файле /etc/ssh/sshd_config установить параметр:

UseDNS no

Подключение SIP телефона Gigaset C530A IP в сети POWERNET

Состояние до подключения.

Провайдером выделяется пользователю несколько приватных 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" не используется.

Подключение SIP аккаунта POWERNET и возникшие проблемы.

Провайдером была предоставлена подробнейшая документация по подключению телефона данной модели к их сети. Никаких специфичных настроек не предусматривается. Предоставлено имя пользователя, номер телефона, пароль и адрес сервера регистрации в сети 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 адресом не принадлежавшим конкретной сети найдено здесь.

  • В "Личном кабинете" провайдера были зарезервированы два IP адреса из сети 10.xxx.xxx.xxx (такая услуга предоставляется бесплатно). Один предназначен для маршрутизатора. Привязан к MAC адресу маршрутизатора. Маршрутизатор получает адрес от провайдера по DHCP (как и раньше). Используется для обычного интернет трафика. Второй зарезервирован для телефона, фактически, является заглушкой "чтоб не отключили" (далее - 10.aaa.bbb.ccc).
  • Для включения "proxy arp" и установки маршрута, на маршрутизаторе, в файл "/sbin/ifup-local" записано следующее:

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 - адрес сети провайдера, зарезервированый для телефона.

  • Для отключения маршрута при отключении eth1, на маршрутизаторе, в файл "/sbin/ifdown-pre-local" записано следующее (возможно, это лишнее):

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-адреса:             Статический
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 провайдера)

Что в итоге.

  1. Не надо приобретать дополнительный свич, переносить базу телефона, добавлять ещё кучу проводов.
  2. База телефона осталась на своём месте, никакие переподключения не производились.
  3. На телефоне IP адрес провайдера, в SIP пакетах нет адреса "квартирной" сети.
  4. "Городской телефон" от POWERNET работает.
  5. SIPNET.RU работает, как и раньше.
  6. Доступ к WEB интерфейсу телефона работает из "квартирной" сети.====== VSFTPD ======

Добавить пользователя VSFTPD

useradd -n user1 -d /mnt/disk/ftp/user1 -s /sbin/nologin
passwd user1

user1 - Имя добавляемого пользователя.
/mnt/disk/ftp/user1 - папка пользователя на FTP сервере.

Включить протокол FTPS в VSFTPD

Создание самоподписанного сертификата на 10 лет:

openssl req -x509 -nodes -days 3650 -newkey rsa:1024 -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

Пример рабочего vsftpd.conf

Наверх