... и далее.

Тема в разделе "Флудилка", создана пользователем Igor68, 30 дек 2017.

  1. Igor68

    Igor68 Гуру

    от 12.01.2018
    Код (Text):
    # interfaces(5) file used by ifup(8) and ifdown(8)

    # Please note that this file is written to be used with dhcpcd
    # For static IP, consult /etc/dhcpcd.conf and 'man dhcpcd.conf'

    # Include files from /etc/network/interfaces.d:
    source-directory /etc/network/interfaces.d

    auto lo
    iface lo inet loopback

    ######################
    auto eth0
    iface eth0 inet dhcp
    ######################

    ######################
    auto eth0:0
    iface eth0:0 inet static
    address 192.168.1.131
    netmask 255.255.255.0
    ######################

    allow-hotplug wlan0
    iface wlan0 inet static
      address  192.168.7.1
      netmask  255.255.255.0
      network  192.168.7.0
      broadcast  192.168.7.255
    #post-up service udhcpd restart
    #up iptables-restore < /etc/iptables.ipv4.nat

    allow-hotplug wlan1
    iface wlan1 inet dhcp
    #wpa-ssid "dark_gray"
    #wpa-psk "13022005"
    wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf
     
    Это мой /etc/network/interfaces как пример - понятное дело "dark_gray" это имя сети роутера, а "13022005" пароль для подключения к ней. Узел делает автоподключение... и создаёт свою подсеть по WIFI с IP 192.168.7.XX. параметры которой по правилу:
    http://academicfox.com/raspberry-pi-besprovodnaya-tochka-dostupa-wifi-access-point/
    Кстати:
    Код (Text):

    Проблема с wlan0 у Raspberry 3

    У Raspberry 3 есть свой собственный wifi адаптер. Хорошая новость в том, что он не висит на usb-шине и если раздавать интернет через него, то можно достичь максимальной скорости Wifi. Однако плохая новость в том, что Raspberry Pi 3 не всегда монтирует встроенный адаптер, как wlan0. Если на USB-шине уже висит какой-то wi-fi адаптер, то он может стать wlan0, а встроенный адаптер становится wlan1. Это не удобно, потому стоит "жёстко" закрепить wlan0 за встроенным адаптером. Для этого нужно добавить правило в файл /etc/udev/rules.d/70-persistent-net.rules. Правило должно выглядеть примерно так:

    SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="b8:27:eb:53:4d:fd", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="wlan*", NAME="wlan0"

    Где b8:27:eb:53:4d:fd — это mac-адрес встроенного адаптера (его можно узнать с помощю команды ifconfig).
    Взято тут:
    http://musuk.guru/blog/raspberry-pi/raspberry-pi-2-wifi-router
    таким образом мой файл /etc/udev/rules.d/70-persistent-net.rules, которого не было и надо было создать редактором
    Код (Text):

    SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="14:cc:20:16:12:9b", ATTR{type}=="1", KERNEL=="wlan*", NAME="wlan1"
    SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="b8:27:eb:27:74:e2", ATTR{type}=="1", KERNEL=="wlan*", NAME="wlan0"
     
    ...а применялся встроенный wlan0 и usb-wifi, который wlan1(не умеет быть хостом... а только для работы с внешней сетью). Теперь они не путаются.
    Код (Text):

    allow-hotplug wlan0
    auto wlan0
    iface wlan0 inet dhcp
    #iface wlan0 inet static
    wpa-ssid "bot_gray"
    wpa-psk "24011968"
     
    После этого все узлы будут подключены к одному, который организует сеть WIFI и раздаёт IP. Это только параметры из /etc/network/interfaces узлов. Но eth0 есть в каждом... иначе как настроить без дисплея и клавиатуры
    собственно источник:
    https://www.raspberrypi.org/forums/viewtopic.php?t=29175
    Но забыли про доступ для всех.
    Путь должен быть таким: /etc/init.d/ramdisk для этого файла:
    ramdisk.zip
    Сто делает:
    1. Организует RAM-диск. Путь: /mnr/ram0;
    2. Монтируем RAM-диск в заранее подготовленную директорию(для пользователя www-data) Путь: /home/httpd/ramdisk;
    3. Запускаем стартовый файл /home/httpd/bash/wwstart от имени www-data, который запустит то, что нам надо.
    Код (C++):
    #!/bin/sh -e
    #
    # rc.local
    #
    # This script is executed at the end of each multiuser runlevel.
    # Make sure that the script will "exit 0" on success or any other
    # value on error.
    #
    # In order to enable or disable this script just change the execution
    # bits.
    #
    # By default this script does nothing.

    # Print the IP address
    _IP=$(hostname -I) || true
    if [ "$_IP" ]; then
      printf "My IP address is %s\n" "$_IP"
    fi

    #
    /etc/init.d/ramdisk restart
    #
    mount --bind /mnt/ram0 /home/httpd/ramdisk
    #
    su www-data -c /home/httpd/bash/wwstart &
    #
    exit 0
    После этого механизм работы и взаимодействия уже есть!
    Да требуется чтобы одна машина сама проверяла состояние другой. И ещё проводила обмен файлами с ней.
     

    Вложения:

    • bash.zip
      Размер файла:
      6,6 КБ
      Просмотров:
      1
    • config.zip
      Размер файла:
      382 байт
      Просмотров:
      1
    • src.zip
      Размер файла:
      22,5 КБ
      Просмотров:
      1
    • task.zip
      Размер файла:
      535 байт
      Просмотров:
      2
    • ramdisk.zip
      Размер файла:
      544 байт
      Просмотров:
      3
    Последнее редактирование: 13 янв 2018 в 01:24
  2. Igor68

    Igor68 Гуру

    Доброго времени суток!
    Это для настройки малины из уже настроенной другой малины.
    Правим /etc/rc.local на настриваемой малине (с правами ROOT) :
    Код (Bash):
    #!/bin/sh -e
    #
    # rc.local
    #
    # This script is executed at the end of each multiuser runlevel.
    # Make sure that the script will "exit 0" on success or any other
    # value on error.
    #
    # In order to enable or disable this script just change the execution
    # bits.
    #
    # By default this script does nothing.

    # Print the IP address
    _IP=$(hostname -I) || true
    if [ "$_IP" ]; then
      printf "My IP address is %s\n" "$_IP"
    fi

    #
    /etc/init.d/ramdisk restart
    #
    mount --bind /mnt/ram0 /home/httpd/ramdisk
    #
    su www-data -c /home/httpd/bash/wwstart &
    #
    exit 0
     
    Создаётся RAM-диск в /mnt/ram0, монтируется в /home/httpd/ramdisk и запускается /home/httpd/bash/wwstart (это будет после следующего включения/перезапуска.
    Копируем директории:
    Директория home/httpd/bash(как ранее говорилось это может быть и автоматически в дальнейшем)... но делайте из RAM-диска. Для этого скопировать sshcmd.sh в RAM-диск(/home/httpd/ramdisk) и перейти в него. Посмотреть и найти настраиваемую малину в /home/httpd/ramdisk/sshosts
    Код (Bash):
    192.168.7.1 22 Connection to 192.168.7.1 22 port [tcp/ssh] succeeded!
    192.168.7.18 22 Connection to 192.168.7.18 22 port [tcp/ssh] succeeded!
    192.168.7.19 22 Connection to 192.168.7.19 22 port [tcp/ssh] succeeded!
    192.168.7.20 22 Connection to 192.168.7.20 22 port [tcp/ssh] succeeded!
    192.168.7.21 22 Connection to 192.168.7.21 22 port [tcp/ssh] succeeded!
    Понятное дело все адреса выданы автоматически первой малиной.
    Код (Bash):

    www-data@raspberrypi:~/ramdisk$ ./sshcmd.sh tcmd www-data@192.168.7.18 www-data ./tt1 "ls -al"

    The programs included with the Debian GNU/Linux system are free software;
    the exact distribution terms for each program are described in the
    individual files in /usr/share/doc/*/copyright.

    Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
    permitted by applicable law.

    SSH is enabled and the default password for the 'pi' user has not been changed.
    This is a security risk - please login as the 'pi' user and type 'passwd' to set a new password.

    total 12
    drwxr-xr-x 3 www-data www-data 4096 Mar  3 19:08 .
    drwxr-xr-x 4 root  root  4096 Mar  3 16:38 ..
    www-data@raspberrypi:~/ramdisk$
     
    Как видно наша директория пуста... и не заходя туда сделаем /home/httpd/ramdisk
    Код (Bash):
    www-data@raspberrypi:~/ramdisk$ ./sshcmd.sh tcmd www-data@192.168.7.18 www-data ./tt1 "mkdir ramdisk"

    The programs included with the Debian GNU/Linux system are free software;
    the exact distribution terms for each program are described in the
    individual files in /usr/share/doc/*/copyright.

    Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
    permitted by applicable law.

    SSH is enabled and the default password for the 'pi' user has not been changed.
    This is a security risk - please login as the 'pi' user and type 'passwd' to set a new password.
    www-data@raspberrypi:~/ramdisk$
    Ну и проверим:
    Код (Bash):
    www-data@raspberrypi:~/ramdisk$ ./sshcmd.sh tcmd www-data@192.168.7.18 www-data ./tt1 "ls -al"

    The programs included with the Debian GNU/Linux system are free software;
    the exact distribution terms for each program are described in the
    individual files in /usr/share/doc/*/copyright.

    Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
    permitted by applicable law.

    SSH is enabled and the default password for the 'pi' user has not been changed.
    This is a security risk - please login as the 'pi' user and type 'passwd' to set a new password.

    total 12
    drwxr-xr-x 3 www-data www-data 4096 Mar  3 19:08 .
    drwxr-xr-x 4 root     root     4096 Mar  3 16:38 ..
    drwxr-xr-x 2 www-data www-data 4096 Mar  3 19:08 ramdisk
    www-data@raspberrypi:~/ramdisk$
    Диск создан! Копируем наш(на малине) /home/httpd/*****:
    Код (Bash):
    www-data@raspberrypi:~/ramdisk$ ./sshcmd.sh tohost www-data@192.168.7.18 www-data ./ttt /home/httpd/bash /home/httpd/bash
    www-data@192.168.7.18 www-data ./ttt /home/httpd/bash /home/httpd/bash
    www-data@raspberrypi:~/ramdisk$ ./sshcmd.sh tohost www-data@192.168.7.18 www-data ./ttt /home/httpd/config /home/httpd/config
    www-data@192.168.7.18 www-data ./ttt /home/httpd/config /home/httpd/config
    www-data@raspberrypi:~/ramdisk$ ./sshcmd.sh tohost www-data@192.168.7.18 www-data ./ttt /home/httpd/src /home/httpd/src
    www-data@192.168.7.18 www-data ./ttt /home/httpd/src /home/httpd/src
    www-data@raspberrypi:~/ramdisk$ ./sshcmd.sh tohost www-data@192.168.7.18 www-data ./ttt /home/httpd/task /home/httpd/task
    www-data@192.168.7.18 www-data ./ttt /home/httpd/task /home/httpd/task
    www-data@raspberrypi:~/ramdisk$
    и после проверяем:
    Код (Bash):
    www-data@raspberrypi:~/ramdisk$ ./sshcmd.sh tcmd www-data@192.168.7.18 www-data ./tt1 "ls -al"

    The programs included with the Debian GNU/Linux system are free software;
    the exact distribution terms for each program are described in the
    individual files in /usr/share/doc/*/copyright.

    Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
    permitted by applicable law.

    SSH is enabled and the default password for the 'pi' user has not been changed.
    This is a security risk - please login as the 'pi' user and type 'passwd' to set a new password.

    total 28
    drwxr-xr-x 7 www-data www-data 4096 Mar  3 19:18 .
    drwxr-xr-x 4 root     root     4096 Mar  3 16:38 ..
    drwxr-xr-x 2 www-data www-data 4096 Mar  3 19:15 bash
    drwxr-xr-x 2 www-data www-data 4096 Mar  3 19:16 config
    drwxr-xr-x 2 www-data www-data 4096 Mar  3 19:08 ramdisk
    drwxr-xr-x 3 www-data www-data 4096 Mar  3 19:17 src
    drwxr-xr-x 2 www-data www-data 4096 Mar  3 19:18 task
    www-data@raspberrypi:~/ramdisk$
    И так всё на месте... и перезапуск. От имени ROOT так, что входим на устройство по SSH и потом перейдя по su перегружаем устройство по reboot

    и... на вскидку проверяем для наглядности:
    Код (Bash):
    www-data@raspberrypi:~/ramdisk$ ./sshcmd.sh tcmd www-data@192.168.7.18 www-data ./tt1 "ps -A"

    The programs included with the Debian GNU/Linux system are free software;
    the exact distribution terms for each program are described in the
    individual files in /usr/share/doc/*/copyright.

    Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
    permitted by applicable law.

    SSH is enabled and the default password for the 'pi' user has not been changed.
    This is a security risk - please login as the 'pi' user and type 'passwd' to set a new password.

      PID TTY          TIME CMD
        1 ?        00:00:03 systemd
        2 ?        00:00:00 kthreadd
        3 ?        00:00:00 ksoftirqd/0
        4 ?        00:00:00 kworker/0:0
        5 ?        00:00:00 kworker/0:0H
        6 ?        00:00:01 kworker/u8:0
        7 ?        00:00:00 rcu_sched
        8 ?        00:00:00 rcu_bh
    ...
    ...
    ...
    7609 ?        00:00:00 spp.sh
    7613 ?        00:00:00 spp.sh
    7616 ?        00:00:00 nc
    7633 ?        00:00:00 spp.sh
    7637 ?        00:00:00 spp.sh
    7644 ?        00:00:00 nc
    7654 ?        00:00:00 sshd
    7657 ?        00:00:00 spp.sh
    7660 ?        00:00:00 spp.sh
    7664 ?        00:00:00 nc
    7666 ?        00:00:00 bash
    7678 ?        00:00:00 spp.sh
    7682 ?        00:00:00 spp.sh
    7683 ?        00:00:00 nc
    7692 ?        00:00:00 spp.sh
    7694 ?        00:00:00 spp.sh
    7696 ?        00:00:00 nc
    7702 ?        00:00:00 spp.sh
    7704 ?        00:00:00 spp.sh
    7706 ?        00:00:00 nc
    7714 ?        00:00:00 spp.sh
    7716 ?        00:00:00 spp.sh
    7718 ?        00:00:00 nc
    7731 ?        00:00:00 ps
    7732 ?        00:00:00 spp.sh
    7734 ?        00:00:00 spp.sh
    7736 ?        00:00:00 nc
    19800 ?        00:00:00 sshd
    24825 ?        00:00:00 sshd
    24827 pts/0    00:00:00 bash
    www-data@raspberrypi:~/ramdisk$
     
    А что собственно произошло?
    1 - наш /etc/rc.local запустил /home/httpd/bash/wwstart - это скрипт... а он скопировал lwork.sh в ramdisk и запустил его там в тени. А lwork.sh рабочий цикл, который проверяя /home/httpd/task запускает процессы (если такие не запущены), указанные там (там только имена). В ряде случаев имена это пустые файлы с именем файла из /home/httpd/bash. Но если он не пустой, то содержимое будет входными параметрами для одноимённого файла в ../bash. Перед запуском каждый запускаемый файл копируется в RAM-диск(/home/httpd/ramdisk), а потом запускается. Цикличность работы скрипта lwork.sh определяется параметром в /home/httpd/config/lwork.cfg. Как можно заметить контролируется не только список хостов с портом 22 в этой сети(подсети), но и наличие и версия проекта в /home/httpd/src... кока что ipmem. Если /home/httpd/src/ipmem/src/work/ipmem ,будет отсутствовать или не соответствовать версии, указанной в /home/httpd/src/ipmem/src/version.h, будет тут же откомпилирован и помещён в /home/httpd/src/ipmem/work/ipmem. Кстати результаты сканирования сети размещаются в ramdisk/sshhost с интервалом 10 сек(за это время успевает проверить адреса с 192.168.7.1 по 192.168.7.254 порт 22)
     
    Последнее редактирование: 13 янв 2018 в 13:05