LINUX.ORG.RU

Избранные сообщения pinachet

Captive Portal для самых маленьких

Форум — Talks

Здравствуйте мои маленькие любители авиационного спирта =) !

Последние пару дней занимался настройкой Wi-Fi, да не простого, а стильного-модного-молодёжного, со своим Captive Portal. Для тех, кто в танке: это когда ты подключаешься к Wi-Fi сети, но прежде чем допускать тебя к интернетам и ЛОРу в частности, нужно пройти какую-никакую дополнительную авторизацию на веб-страничке, third-party так сказать.

Такой подход я считаю более секурным, потому как, доступ каждого клиента по Wi-Fi регулируется лично через iptables, а не тупо форвардится всё подряд. Какой простор для творчества! Во-вторых, авторизация происходит через веб-страничку, а не WPA и прочие нативные механизмы wireless-сетей, которые как и всё в нашем мире, не вечны и надёжность их хромает.

После вступления, приступим.

hostapd? checked!

iptables? checked!

nginx? checked!

Рассказывать о настройке NAT лишний раз не буду, думаю, у вас уже должна быть настроена раздача Wi-Fi, и всё, что вам ненужно, это только Captive Portal.

wlan0 — имя интерфейса Wi-Fi
eth0 — имя интерфейса с интернетами
192.168.0.0/24 — локалка

# создаём кольцо
iptables -t mangle -N captive

# все пакеты из ви-фи отправляем в это кольцо
iptables -t mangle -A PREROUTING -i wlan0 -j captive

# доверенные клиенты из кольца выходят сразу же (адреса инсертим в начало списка)
# фильтр хоть по MAC, хоть по IP
# этот список должен редактироваться через сайт (Captive Portal)
# iptables -t mangle -I captive -m mac --mac-source 00:00:00:00:00:00 -j RETURN
# iptables -t mangle -I captive -s 192.168.0.137 -j RETURN

# если ты всё ещё в кольце, тогда ставим метку
iptables -t mangle -A captive -j MARK --set-mark 1

# всех с меткой перенаправляем к себе, когда они открывают сайты 80
# про 443 забудьте
iptables -t nat -A PREROUTING -i wlan0 -m mark --mark 1 -p tcp --dport 80 -j DNAT --to-destination 192.168.0.1

# всех с меткой при прочем трафике просто дропаем
iptables -t filter -A FORWARD -i wlan0 -m mark --mark 1 -j DROP

# успешно натим оставшихся доверенных
iptables -t filter -A FORWARD -i wlan0 -j ACCEPT
iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o eth0 -j MASQUERADE

Вот и всё. Здесь включена проверка через -i wlan0, таким образом это не вызовет никаких конфликтов с другими сетями, т.к. у меня в продакшене под кроватью очень много правил iptables и я знаю, о чём говорю.

Подводные камни, на которые я наткнулся и спешу поделиться с вами. В соседнем треде мне научно-популярно объяснили, что тщетно пытаться настроить редирект по HTTPS на свой Captive Portal, это просто не сработает, это уже MitM атака. Не очень-то и хотелось! ;p

Если у вас используются личные DNS, то наверняка у вас есть правило, разрешающее локальные запросы к серверу (tcp/53 udp/53). Не забудьте разрешить запросы и к локальному веб-серверу (tcp/80). Но а если вы сообщаете Wi-Fi клиентам какие-то публичные NS, то не забудьте разрешить доступ клиентам к ним: iptables -t filter -I FORWARD -i wlan0 -s 192.168.0.0/24 -d 8.8.8.8/32 -j ACCEPT. А суть такова. Когда клиент подключается к Wi-Fi, он проверяет доступность интернета в целом, для этого смартфоны качают со своих серверов файлы и проверяют корректность полученных данных. Если оно не сможет резолвить хост запрашиваемого сайта, то на этом и споткнётся и проверка на наличие Captive Portal в сети не пройдёт.

Собственно, теперь к механизму Captive Portal.

Как уже замечено, это личная прерогатива каждого клиента, проверять доступность интернета, и если в результате проверки что-то пошло не так, — значит либо интернета нет, либо Captive Portal.

Мы перенаправили все запросы на 80 порт к себе, на свой локальный сервер. Теперь nginx должен в ответ на все HTTP запросы отвечать кодом 302. Не 200, не 301, не 511, а именно 302, а затем перенаправлять вас на страничку с third-party авторизацией, и только таким макаром например мой Андрюша-9 смог обнаружить, что у меня таки Captive Portal, а не какой-то сломанный интернет. В результате сразу после подключения к Wi-Fi сети должно появиться Push-уведомление: Скриншот #1, при нажатии которого откроется страничка, куда редиректит nginx Скриншот #2.

Сам скрипт странички я оставляю вам на откуп: думаю, вам не составит никакого труда наслюнявить однострочник на php добавляющий $_SERVER['REMOTE_ADDR'] в iptables через shell_exec(); или типа того. Да? Да. Ваш Captive Portal полностью в ваших руках.

Вот и весь механизм работы Captive Portal. Спрашивайте ответы.

 , ,

Spoofing ()

Запуск GUI-программы через Ansible на 15-ти хостах

Форум — Development

Мне нужно запустить через Ansible программу сразу на ~15 хостах. Программа GUI-шная, но запустить ее надо в терминале, чтобы в случае вылета программы, терминал остался, можно было быстро посмотреть выхлоп.

  - name: Запуск программы
    shell: "export DISPLAY=:0.0 ; fly-term --noclose --workdir /usr/share/ourProject -e \"./programm\""

Проблема в том, что Ansible ждет завершения всей команды модуля shell. И работает Ansible в 5 потоков, то есть, запускает прогу только на 5 хостах и ждет.

Я пробовал отвязываться от терминала так:
    shell: "export DISPLAY=:0.0 ; (fly-term --noclose --workdir /usr/share/ourProject -e \"./programm\" &)"

Но тогда программа запускается и сразу завершается. Блоками по 5 хостов: сначала на первых 5 хостах, через секунду на следующих 5 и так далее.

Я курил маны на модули shell, raw, command, но ничего работающего как нада сделать не смог.

Что нужно прописать в команду, чтобы программа просто была запущена на хостах, а Ansible поехала работать дальше без ожидания?

 , , , ,

Xintrea ()

Туториал или фундаментальные знания

Форум — Talks

Коллеги, в виду того, что за компом мы сидим за 8+ часов , хотелось бы что то по типу туториала или ссылку на какой то относительно короткий мануал , как правильно организовать такое рабочее место, чтобы не было проблем со здоровьем или они были минимальны.

В продолжении так сказать этой темы Ищу бюджетный удобный стул

 ,

pinachet ()

Перейти c Perl на go

Форум — Development

Коллеги, подскажите маленький проект на go(ну или большой в котором можно относительно быстро разобраться ) для обучения на golang.

Сам сталкиваюсь с тем, что хоть и Perl программист { вот старый пример https://www.youtube.com/watch?v=1ucdC9V-p8Y } с большим опытом разработки в телекомуникациях(в основном OSS/BSS , биллинги ) , но довольно часто стучаться по go .

P.S по книгам - перечитываю Effective Go ( я так понимаю это аналог книги Modern perl ? ) , если есть другие полезные в этом вопросе книги,то буду премного благодарен

 ,

pinachet ()

MariaDB-Galera-cluster+corosync+pacemaker несколько вопросов

Форум — Admin

Сейчас занимаюсь постройкой нового кластера MariaDB+Galera. Кластер планируется из трёх нод + арбитратор (на данный момент в наличии только две, для третей и арбитратора ещё железо не готово), на каждой ноде стоит Debian Jessie, запущена MariaDB в режиме MM-репликации, так же стоит corosync и pacemaker для мониторинга состояния MariaDB и в случае её отказа, переноса vip-адреса на живую ноду.

В процессе конфигурирования столкнулся со следующими проблемами: 1. Если демону mysqld сделать kill -9, то corosync, вместо того, что бы передвинуть ip на живую ноду, пытается снова запустить mysqld на этой же ноде. Как сделать так, что бы айпишник переезжал при недоступности, а в идеале, при неработоспособности демона (например, выполнялся тестовый запрос, если результат отличен от ожидаемого, передвинуть адрес на другую ноду и оповестить админа)?

2. При рестарте демона corosync, зачем-то рестартится и MariaDB. Как сделать, что бы оно не трогало mysqld при рестарте?

3. Как при запущенном mysld сбросить статус OFFLINE/Fail/Stopped в corosync? (reprobe не подходит, потому-что при resource reprobe mariadb-01 так же происходит рестарт mysqld).

Зачем оно вообще на каждый чих рестартит то, бесперебойную работу чего должно обеспечивать?

Конфиги: /etc/corosync/corosync.conf:

totem {
        version: 2
        token: 3000
        nodeid: 10
        token_retransmits_before_loss_const: 10
        clear_node_high_bit: yes
        crypto_cipher: none
        crypto_hash: none
        transport: udpu
        interface {
                ringnumber: 0
                bindnetaddr: 10.100.22.50
                mcastaddr: 224.0.0.50
        }
}

logging {
        to_logfile: yes
        logfile: /var/log/corosync/corosync.log
        debug: off
        timestamp: on
        logger_subsys {
                subsys: QUORUM
                debug: off
        }
}

quorum {
        provider: corosync_votequorum
        expected_votes: 3
}

nodelist {
        node {
                ring0_addr: mariadb-01.sdn
        }
        node {
                ring0_addr: mariadb-02.sdn
        }
        node {
                ring0_addr: mariadb-03.sdn
        }
}

crm configure show:

node 10: mariadb-01
node 20: mariadb-02
primitive IP-rsc_mysqld IPaddr2 \
        params ip=10.100.22.50 nic=bond0.22 cidr_netmask=24 \
        meta migration-threshold=2 \
        op monitor interval=2 timeout=20 on-fail=restart
primitive mysqld mysql \
        params binary="/usr/bin/mysqld_safe" config="/etc/mysql/my.cnf" user=mysql group=mysql log="/var/log/mysql/mysql_err.log" pid="/run/mysqld/mysqld.pid" datadir="/var/lib/mysql" socket="/run/mysqld/mysqld.sock" replication_user=root replication_passwd=MY_SECRET_PASS \
        meta migration-threshold=2 target-role=Started is-managed=true \
        op monitor timeout=30s interval=2s on-fail=restart role=Master interleave=true ordered=true \
        op start interval=0 timeout=300s \
        op stop interval=0 timeout=300s
ms mariadb_cluster mysqld \
        meta target-role=Started is-managed=true
colocation ip_with_mariadb inf: IP-rsc_mysqld mariadb_cluster
property cib-bootstrap-options: \
        dc-version=1.1.12-561c4cf \
        cluster-infrastructure=corosync \
        stonith-enabled=no \
        no-quorum-policy=ignore \
        default-resource-stickiness=100 \
        stop-all-resources=no \
        symmetric-cluster=true
property mysql_replication: \
        mysqld_REPL_INFO="mariadb-01|mariadb-bin.000867|345"

 , ,

dronozavr ()

Error: Let's Encrypt validation status 400

Форум — Admin

Добрый день, при добавлении к сайту управляемому VestaCP сертификата SSL от Let's Encrypt происходит данная ошибка.

В логе /var/log/vesta/error.log

2019-10-21 15:01:09 v-add-letsencrypt-domain  'obr86' 'multisite.edu-nv.ru' 'www.multisite.edu-nv.ru,shablon2.edu-nv.ru,shablon.edu-nv.ru,dou66.edu-nv.ru,school18.edu-nv.ru,dou68.edu-nv.ru,dou52.edu-nv.ru,obr86.edu-nv.ru,dou1.edu-nv.ru,dou4.edu-nv.ru,dou5.edu-nv.ru,dou7.edu-nv.ru,dou8.edu-nv.ru,dou9.edu-nv.ru,dou10.edu-nv.ru,dou15.edu-nv.ru,dou17.edu-nv.ru,dou21.edu-nv.ru,dou25.edu-nv.ru,dou27.edu-nv.ru,dou29.edu-nv.ru,dou31.edu-nv.ru,dou32.edu-nv.ru,dou37.edu-nv.ru,dou38.edu-nv.ru,dou40.edu-nv.ru,dou41.edu-nv.ru,dou44.edu-nv.ru,dou45.edu-nv.ru,dou47.edu-nv.ru,dou48.edu-nv.ru,dou49.edu-nv.ru,dou54.edu-nv.ru,dou56.edu-nv.ru,dou60.edu-nv.ru,dou61.edu-nv.ru,dou62.edu-nv.ru,dou67.edu-nv.ru,dou69.edu-nv.ru,dou71.edu-nv.ru,dou77.edu-nv.ru,dou78.edu-nv.ru,dou79.edu-nv.ru,dou80.edu-nv.ru,dou83.edu-nv.ru,dou86.edu-nv.ru,dou90.edu-nv.ru,school1.edu-nv.ru,school2.edu-nv.ru,school3.edu-nv.ru,school5.edu-nv.ru,school6.edu-nv.ru,school7.edu-nv.ru,school8.edu-nv.ru,school9.edu-nv.ru,school10.edu-nv.ru,school11.edu-nv.ru,school12.edu-nv.ru,school14.edu-nv.ru,school15.edu-nv.ru,school17.edu-nv.ru,school19.edu-nv.ru,school22.edu-nv.ru,school23.edu-nv.ru,school24.edu-nv.ru,school25.edu-nv.ru,school29.edu-nv.ru,school30.edu-nv.ru,school31.edu-nv.ru,school32.edu-nv.ru,school34.edu-nv.ru,school40.edu-nv.ru,school42.edu-nv.ru,school43.edu-nv.ru,gymnasium.edu-nv.ru,gymnasium2.edu-nv.ru,lyceum.edu-nv.ru,lyceum2.edu-nv.ru,kunosh.edu-nv.ru,choupg.edu-nv.ru,cdt.edu-nv.ru,patriot.edu-nv.ru' 'no' [Error 15]

Есть ди идеи?

 ,

Shulman ()

Perl прямиком из 1987 года

Галерея — Скриншоты

Прочитав новость «Код интерпретатора Perl официально перенесён на GitHub» я решил взглянуть на репозиторий Perl 5, который теперь уже находится на GitHub’е.

Удивительно, как трепетно и качественно его перенесли, сохранив не только абсолютно всю 32-летнюю историю проекта, но и багрепорты (Issues), патчи (PRs), релизы и ветки. Надпись «32 years ago» рядом с файлами вызывает улыбку.

Что ещё делать в этот унылейший пятничный вечер, когда на улице неприятно моросит дождь со снегом, а все дорожки погрязли в осенней слякоти? Правильно, красноглазить! Так что я ради эксперимента и интереса решил взять и собрать древний Perl на современной x86_64-машинке с gcc (GCC) 9.2.0 в качестве компилятора. Сможет ли такой старый код пройти проверку временем?

Чтобы было совсем уж аутентичненько и некрофильненько, я развернул виртуальную машину с голыми иксами и twm, который тоже родом из 1987 года. Кто знает, может быть Larry Wall писал свой Perl используя именно twm, так сказать bleeding edge technology того времени. Используемый дистрибутив – Arch Linux. Просто потому что в его репозитории есть некоторые полезные вещи, которые впоследствии мне пригодились.

( читать дальше... )

>>> Просмотр (1605x600, 55 Kb)

 , , , ,

EXL ()

SQUID не фильтрует HTTPS

Форум — Admin

Поднял squid по статье https://habr.com/post/354708/ и не работает https. Сборку и настройки делаю на debian 9.6 x64 Сквид запустился.

squid -v
Squid Cache: Version 3.5.27
Service Name: squid
Debian linux

This binary uses OpenSSL 1.0.2l  25 May 2017. For legal restrictions on distribution see https://www.openssl.org/source/license.html

configure options:  '--build=x86_64-linux-gnu' '--prefix=/usr' '--includedir=${prefix}/include' '--mandir=${prefix}/share/man' '--infodir=${prefix}/share/info' '--sysconfdir=/etc' '--localstatedir=/var' '--libexecdir=${prefix}/lib/squid3' '--srcdir=.' '--disable-maintainer-mode' '--disable-dependency-tracking' '--disable-silent-rules' 'BUILDCXXFLAGS=-g -O2 -fdebug-prefix-map=/root/SQUIDNEW/squid3-3.5.27-2018=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -Wl,-z,relro -Wl,-z,now -Wl,--as-needed' '--datadir=/usr/share/squid' '--sysconfdir=/etc/squid' '--libexecdir=/usr/lib/squid' '--mandir=/usr/share/man' '--enable-inline' '--disable-arch-native' '--enable-async-io=8' '--enable-storeio=ufs,aufs,diskd,rock' '--enable-removal-policies=lru,heap' '--enable-delay-pools' '--enable-cache-digests' '--enable-icap-client' '--enable-follow-x-forwarded-for' '--enable-auth-basic=DB,fake,getpwnam,LDAP,NCSA,NIS,PAM,POP3,RADIUS,SASL,SMB' '--enable-auth-digest=file,LDAP' '--enable-auth-negotiate=kerberos,wrapper' '--enable-auth-ntlm=fake,smb_lm' '--enable-external-acl-helpers=file_userip,kerberos_ldap_group,LDAP_group,session,SQL_session,time_quota,unix_group,wbinfo_group' '--enable-url-rewrite-helpers=fake' '--enable-eui' '--enable-esi' '--enable-icmp' '--enable-zph-qos' '--enable-ecap' '--enable-ssl' '--enable-ssl-crtd' '--with-openssl' '--disable-translation' '--with-swapdir=/var/spool/squid' '--with-logdir=/var/log/squid' '--with-pidfile=/var/run/squid.pid' '--with-filedescriptors=65536' '--with-large-files' '--with-default-user=proxy' '--enable-build-info=Debian linux' '--enable-linux-netfilter' 'build_alias=x86_64-linux-gnu' 'CFLAGS=-g -O2 -fdebug-prefix-map=/root/SQUIDNEW/squid3-3.5.27-2018=. -fstack-protector-strong -Wformat -Werror=format-security -Wall' 'LDFLAGS=-Wl,-z,relro -Wl,-z,now -Wl,--as-needed' 'CPPFLAGS=-Wdate-time -D_FORTIFY_SOURCE=2' 'CXXFLAGS=-g -O2 -fdebug-prefix-map=/root/SQUIDNEW/squid3-3.5.27-2018=. -fstack-protector-strong -Wformat -Werror=format-security'


 systemctl status squid
● squid.service - LSB: Squid HTTP Proxy version 3.x
   Loaded: loaded (/etc/init.d/squid; generated; vendor preset: enabled)
   Active: active (running) since Wed 2018-12-05 15:27:22 +07; 14min ago
     Docs: man:systemd-sysv-generator(8)
  Process: 21303 ExecStop=/etc/init.d/squid stop (code=exited, status=0/SUCCESS)
  Process: 21345 ExecStart=/etc/init.d/squid start (code=exited, status=0/SUCCESS)
 Main PID: 21386 (squid)
    Tasks: 5 (limit: 4915)
   Memory: 22.7M
      CPU: 957ms
   CGroup: /system.slice/squid.service
           ├─21384 /usr/sbin/squid -YC -f /etc/squid/squid.conf
           ├─21386 (squid-1) -YC -f /etc/squid/squid.conf
           ├─21387 (logfile-daemon) /var/log/squid/access.log
           ├─21388 (unlinkd)
           └─21389 (pinger)

Dec 05 15:27:21 vcgateway systemd[1]: Starting LSB: Squid HTTP Proxy version 3.x...
Dec 05 15:27:22 vcgateway squid[21384]: Squid Parent: will start 1 kids
Dec 05 15:27:22 vcgateway squid[21384]: Squid Parent: (squid-1) process 21386 started
Dec 05 15:27:22 vcgateway squid[21345]: Starting Squid HTTP Proxy: squid.
Dec 05 15:27:22 vcgateway systemd[1]: squid.service: PID file /var/run/squid.pid not readable (yet?) after start: No such file or directory
Dec 05 15:27:22 vcgateway systemd[1]: squid.service: Supervising process 21386 which is not our child. We'll most likely not notice when it exits.
Dec 05 15:27:22 vcgateway systemd[1]: Started LSB: Squid HTTP Proxy version 3.x.

Конфиг squid получился следующий:

cat /etc/squid/squid.conf
acl localnet src 192.168.8.0/24 # Ваша локалка

acl SSL_ports port 443
acl Safe_ports port 80          # http
acl Safe_ports port 21          # ftp
acl Safe_ports port 443         # https
acl Safe_ports port 70          # gopher
acl Safe_ports port 210         # wais
acl Safe_ports port 1025-65535  # unregistered ports
acl Safe_ports port 280         # http-mgmt
acl Safe_ports port 488         # gss-http
acl Safe_ports port 591         # filemaker
acl Safe_ports port 777         # multiling http
acl CONNECT method CONNECT
acl SSL method CONNECT

#Укажем DNS для Squid. Крайне рекомендую использовать одинаковые DNS тут и у клиентов
dns_nameservers 192.168.8.1 #dns поднят на этом же сервере

http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
http_access allow localhost manager
http_access deny manager
http_access allow localnet
http_access allow localhost
http_access deny all
icp_access deny all
htcp_access deny all

#прозрачный порт указывается опцией intercept
http_port 192.168.8.1:3128 intercept options=NO_SSLv3:NO_SSLv2

#также нужно указать непрозрачный порт, ибо если захотите вручную указать адрес
#прокси в браузере, указав прозрачный порт, вы получите ошибку доступа, поэтому нужно
#указывать непрозрачный порт в браузере, если конечно такое желание будет, к тому же в логах #сыпятся ошибки о том, что непрохрачный порт не указан=)
http_port 192.168.8.1:3130 options=NO_SSLv3:NO_SSLv2

#и наконец, указываем HTTPS порт с нужными опциями
https_port 192.168.8.1:3129 intercept ssl-bump options=ALL:NO_SSLv3:NO_SSLv2 connection-auth=off cert=/etc/squid/squidCA.pem

sslproxy_cert_error allow all
sslproxy_flags DONT_VERIFY_PEER
#укажем правило со списком блокируемых ресурсов (в файле домены вида .domain.com)
acl blocked ssl::server_name  "/etc/squid/blocked_https.acl"
acl step1 at_step SslBump1
ssl_bump peek step1

#терминируем соединение, если клиент заходит на запрещенный ресурс
ssl_bump terminate blocked
ssl_bump splice all

sslcrtd_program /usr/lib/squid/ssl_crtd -s /var/lib/ssl_db -M 4MB

cache_dir ufs /var/spool/squid 100 16 256
coredump_dir /var/spool/squid
refresh_pattern ^ftp:           1440    20%     10080
refresh_pattern ^gopher:        1440    0%      1440
refresh_pattern -i (/cgi-bin/|\?) 0     0%      0
refresh_pattern .               0       20%     4320
logfile_rotate 4
pid_filename /var/run/squid.pid
squid -k parse
2018/12/05 15:50:47| Startup: Initializing Authentication Schemes ...
2018/12/05 15:50:47| Startup: Initialized Authentication Scheme 'basic'
2018/12/05 15:50:47| Startup: Initialized Authentication Scheme 'digest'
2018/12/05 15:50:47| Startup: Initialized Authentication Scheme 'negotiate'
2018/12/05 15:50:47| Startup: Initialized Authentication Scheme 'ntlm'
2018/12/05 15:50:47| Startup: Initialized Authentication.
2018/12/05 15:50:47| Processing Configuration File: /etc/squid/squid.conf (depth 0)
2018/12/05 15:50:47| Processing: acl localnet src 192.168.8.0/24        # Ваша локалка
2018/12/05 15:50:47| Processing: acl SSL_ports port 443
2018/12/05 15:50:47| Processing: acl Safe_ports port 80         # http
2018/12/05 15:50:47| Processing: acl Safe_ports port 21         # ftp
2018/12/05 15:50:47| Processing: acl Safe_ports port 443                # https
2018/12/05 15:50:47| Processing: acl Safe_ports port 70         # gopher
2018/12/05 15:50:47| Processing: acl Safe_ports port 210                # wais
2018/12/05 15:50:47| Processing: acl Safe_ports port 1025-65535 # unregistered ports
2018/12/05 15:50:47| Processing: acl Safe_ports port 280                # http-mgmt
2018/12/05 15:50:47| Processing: acl Safe_ports port 488                # gss-http
2018/12/05 15:50:47| Processing: acl Safe_ports port 591                # filemaker
2018/12/05 15:50:47| Processing: acl Safe_ports port 777                # multiling http
2018/12/05 15:50:47| Processing: acl CONNECT method CONNECT
2018/12/05 15:50:47| Processing: acl SSL method CONNECT
2018/12/05 15:50:47| Processing: dns_nameservers 192.168.8.1
2018/12/05 15:50:47| Processing: http_access deny !Safe_ports
2018/12/05 15:50:47| Processing: http_access deny CONNECT !SSL_ports
2018/12/05 15:50:47| Processing: http_access allow localhost manager
2018/12/05 15:50:47| Processing: http_access deny manager
2018/12/05 15:50:47| Processing: http_access allow localnet
2018/12/05 15:50:47| Processing: http_access allow localhost
2018/12/05 15:50:47| Processing: http_access deny all
2018/12/05 15:50:47| Processing: icp_access deny all
2018/12/05 15:50:47| Processing: htcp_access deny all
2018/12/05 15:50:47| Processing: http_port 192.168.8.1:3128 intercept options=NO_SSLv3:NO_SSLv2
2018/12/05 15:50:47| Starting Authentication on port 192.168.8.1:3128
2018/12/05 15:50:47| Disabling Authentication on port 192.168.8.1:3128 (interception enabled)
2018/12/05 15:50:47| Processing: http_port 192.168.8.1:3130 options=NO_SSLv3:NO_SSLv2
2018/12/05 15:50:47| Processing: https_port 192.168.8.1:3129 intercept ssl-bump options=ALL:NO_SSLv3:NO_SSLv2 connection-auth=off cert=/etc/squid/squidCA.pem
2018/12/05 15:50:47| Starting Authentication on port 192.168.8.1:3129
2018/12/05 15:50:47| Disabling Authentication on port 192.168.8.1:3129 (interception enabled)
2018/12/05 15:50:47| Processing: sslproxy_cert_error allow all
2018/12/05 15:50:47| Processing: sslproxy_flags DONT_VERIFY_PEER
2018/12/05 15:50:47| Processing: acl blocked ssl::server_name  "/etc/squid/blocked_https.acl"
2018/12/05 15:50:47| Processing: acl step1 at_step SslBump1
2018/12/05 15:50:47| Processing: ssl_bump peek step1
2018/12/05 15:50:47| Processing: ssl_bump terminate blocked
2018/12/05 15:50:47| Processing: ssl_bump splice all
2018/12/05 15:50:47| Processing: sslcrtd_program /usr/lib/squid/ssl_crtd -s /var/lib/ssl_db -M 4MB
2018/12/05 15:50:47| Processing: cache_dir ufs /var/spool/squid 100 16 256
2018/12/05 15:50:47| Processing: coredump_dir /var/spool/squid
2018/12/05 15:50:47| Processing: refresh_pattern ^ftp:           1440    20%     10080
2018/12/05 15:50:47| Processing: refresh_pattern ^gopher:        1440    0%      1440
2018/12/05 15:50:47| Processing: refresh_pattern -i (/cgi-bin/|\?) 0     0%      0
2018/12/05 15:50:47| Processing: refresh_pattern .               0       20%     4320
2018/12/05 15:50:47| Processing: logfile_rotate 4
2018/12/05 15:50:47| Processing: pid_filename /var/run/squid.pid
2018/12/05 15:50:47| Initializing https proxy context
2018/12/05 15:50:47| Initializing https_port 192.168.8.1:3129 SSL context
2018/12/05 15:50:47| Using certificate in /etc/squid/squidCA.pem

 cat /etc/iptables.sh
IPTABLES=/sbin/iptables
INT_IP=192.168.8.1
INT_DEV=enp3s0

EXT_IP=XX.XX.XX.XX
EXT_DEV=ppp777


date
echo 0 > /proc/sys/net/ipv4/ip_forward

$IPTABLES -F
$IPTABLES -t filter   -A FORWARD    -j TCPMSS     -p tcp --tcp-flags SYN,RST SYN --clamp-mss-to-pmtu
$IPTABLES -t filter   -A INPUT      -j ACCEPT     -m state --state RELATED,ESTABLISHED
$IPTABLES -t filter   -A INPUT      -j ACCEPT     -s 127.0.0.1         -d 127.0.0.1
$IPTABLES -t filter   -A INPUT      -j ACCEPT  -i $INT_DEV   -p udp -m multiport --dport 53,67,68
$IPTABLES -t filter   -A INPUT      -j ACCEPT  -i $INT_DEV    -p tcp -m multiport --dport 53,80,445,5038,5060,3306,3128
$IPTABLES -t filter   -A INPUT      -j ACCEPT  -i $INT_DEV    -p tcp --dport 22
$IPTABLES -t filter   -A INPUT      -j ACCEPT  -i $INT_DEV    -p tcp -m multiport --dport 8006
$IPTABLES -t filter   -A INPUT      -j ACCEPT  -i $INT_DEV    -p icmp
$IPTABLES -t filter   -A INPUT      -j ACCEPT  -i $INT_DEV    -p igmp
$IPTABLES -t filter   -A INPUT      -j ACCEPT  -i $INT_DEV    -p ospf
$IPTABLES -t filter   -A INPUT      -j REJECT  -i $INT_DEV

$IPTABLES -t filter   -A FORWARD    -j TCPMSS     -p tcp --tcp-flags SYN,RST SYN --clamp-mss-to-pmtu
$IPTABLES -t filter   -A INPUT      -j ACCEPT     -m state --state RELATED,ESTABLISHED
$IPTABLES -t filter   -A INPUT      -j ACCEPT     -s 127.0.0.1         -d 127.0.0.1

$IPTABLES -t filter   -A INPUT      -j ACCEPT  -i $EXT_DEV   -p tcp --dport 22
$IPTABLES -t filter   -A INPUT      -j ACCEPT  -i $EXT_DEV   -p tcp -m multiport --dport 10050,8011
$IPTABLES -t filter   -A INPUT      -j ACCEPT  -i $EXT_DEV   -p icmp
$IPTABLES -t filter   -A INPUT      -j ACCEPT  -i $EXT_DEV   -p igmp
$IPTABLES -t filter   -A INPUT      -j ACCEPT  -i $EXT_DEV   -p ospf
$IPTABLES -t filter   -A INPUT      -j ACCEPT  -i $EXT_DEV   -p gre
$IPTABLES -t filter   -A INPUT      -j DROP  -i $EXT_DEV


$IPTABLES -t mangle -F
$IPTABLES -t mangle   -A FORWARD    -j TCPMSS     -p tcp --tcp-flags SYN,RST SYN --clamp-mss-to-pmtu

$IPTABLES -t mangle -A OUTPUT -j TOS -o $INT_DEV -p udp --set-tos 0x10
$IPTABLES -t mangle -A INPUT -j TOS -i $INT_DEV -p udp --set-tos 0x10


$IPTABLES -t nat -F


$IPTABLES -t nat -A PREROUTING  -p tcp -m tcp -s 192.168.8.0/24   --dport 80  -j REDIRECT --to-ports 3128 #redirect HTTP to proxy
$IPTABLES -t nat -A PREROUTING  -p tcp -m tcp -s 192.168.8.0/24   --dport 443 -j REDIRECT --to-ports 3129 #redirect HTTPS to proxy


$IPTABLES -t nat -A POSTROUTING -s 192.168.8.0/24  -j SNAT -o $EXT_DEV --to-source $EXT_IP #internet access

echo 1 > /proc/sys/net/ipv4/ip_forward

С такими настройка http трафик фильтруется и видно в логах сквида, но при открытие сайтов https страница не доступна, в логах сквида никакой инфы не появляется. Подскажите куда копать, уже кучу версий сквида перепробовал и 3.5.X и 4.X и везде одно и тоже http фильтруется, а вот https нет.

 , ,

Dmit84 ()

Передать данные и звук по укв радио

Форум — Development

С передачей данных по укв радио ранее дел не имел, потому вопросы могут казаться совсем простые и/или неправильные

Пусть есть комп «передатчик» и множество компов «приемников»
Нужно передать всем одинаковых немного байт и речь ?
Решение примерно видеться такое: через COM|USB|ETH подключаюсь к радиостанции (или промежуточному блоку) и передаю данные, затем передаю речь - со звуковой карты «как есть» в аналоге т.к. скорость канала данных мала (1200 бод) или промежуточный блок принимает по ETH и сам аналог подает на радиостанцию.

Нашел, что так примерно работает mototrbo http://www.sagatelecom.ru/radiosystems/DMR/mototrbo.php, но какое оборудование нужно и описание его для программирования не вижу. Возможно это закрытые решение «по ключ», что не подходит.
Мотороллу смотрю т.к. она наверно наиболее распространена, например в авто, не дорога. Не хотелось бы «уникальных» решений.

Встречал описания разного рода радио модемов для «телеметрии», но мне такое не подойдет т.к. они только данные, без речи толкают.

 , ,

x905 ()

LXC

Форум — Admin

Коллеги , а кто как мониторит по ресурсам( i/o , cpu,ram,net ) lxc контейнеры ?
Нужно , icinga/nagios отдавать с клиента ( хост на котором запущенно несколько контейнеров) выдавать по каждому основные метрики загрузки ( то есть по сути не ставить/не настраивать) в каждый контейнер ключ .

Нашел это https://www.claudiokuenzler.com/nagios-plugins/check_lxc.php , насколько оно нормальное , что можете посоветовать взамен этого плагина ?

 ,

pinachet ()

Чего мне не хватает в Perl?

Форум — Development

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

Итак, претензии к Perl от человека, который его осилил и знает особенности языка не по наслышке:

1) Не хватает собственно скорости. Скорость исполнения кода, т.е. его непосредственной интерпретации - Ахиллесова пята не только Perl, но и Ruby, и Python, и PHP. Но если интерпретаторы PHP и Python становятся быстрее с каждым годом, то интерпретатор Perl застрял в своём развитии - и при этом язык не имеет LLVM-компиляторов, как тот же Crystal, реализующий очень быстрый диалект Ruby. Для Perl есть RPerl, который непонятно как работает и работает ли у кого-то, кроме самого Вина Бразвелла. Ну и да, RPerl - это всё-таки не вполне Perl, по сути это какой-то «perl'оподобный диалект языка Си»

2) Не хватает адекватной проверки входных параметров. Есть куча сторонних модулей для этого: MooseX::Method::Signatures, Params::Validate и ещё тысячи их, но все они добавляют дикий оверхед к и без того не быстрой работе интерпретатора

3) Отсутствует как класс нормальный параллелизм: без пула потоков работать с потоками невозможно (создание потока - крайне медленная операция), с пулом потоков в принципе удобно, но всё одно памяти они жрут как не в себя. На Perl в 100 раз всё лучше с процессами, в том числе есть неплохие модули для работы с shared memory (правда, Redis для того же самого намного удобнее).

4) CPAN конечно замечательный репозиторий пакетов, но выкладывать что-то туда - это лишняя трата времени, да и все эти инструкции по правильному выкладыванию немного бесят: мне что, заняться больше нечем? ИМХО подход того же Crystal'а с его shards'ами намного удобнее.

5) Отсутствие макрогенерации кода. Есть конечно eval, но это, мягко говоря, всё равно что бульдозером шпалы укладывать: неудобно, анахронично, работает в рантайме (что просто ппц на самом деле), чревато ошибками. Учитывая стоимость вызова процедур в Perl5 отсутствие макрогенерации негативно влияет на потенциальную производительность

Относительно удобства ООП претензий не имею - те, у кого они есть, просто пришли из других языков и пытаются применять к совершенно иначе устроенному Perl'у свои «обобщённые» знания.

 ,

DRVTiny ()

Проблема

Форум — Development

Коллеги, возникла задача по компиляции для модема на arm . доступ на консоль есть . Однако выдает стандартную ошибку :

# ./programm
sh: ./programm: not found

Внутри железки какой-то Dopra Linux .Вывод cpuinfo

BusyBox v1.4.1 (2011-07-29 10:25:20 HKT) Built-in shell (ash)
Enter 'help' for a list of built-in commands.

WAP(Dopra Linux) # cat /proc/cpuinfo 
Processor	: ARMv6-compatible processor rev 7 (v6l)
BogoMIPS	: 532.48
Features	: swp half thumb fastmult edsp java 
CPU implementer	: 0x41
CPU architecture: 6TEJ
CPU variant	: 0x0
CPU part	: 0xb76
CPU revision	: 7
Cache type	: write-back
Cache clean	: cp15 c7 ops
Cache lockdown	: format C
Cache format	: Harvard
I size		: 16384
I assoc		: 4
I line length	: 32
I sets		: 128
D size		: 16384
D assoc		: 4
D line length	: 32
D sets		: 128

Hardware	: SD5113-V100-PILOT-B01
Revision	: 0000
Serial		: 0000000000000000

При компиляции того же софта под raspeberry pi разница в ELF такая

http://quickdiff.net/?unique_id=DDB128D1-B643-C4DB-7450-F11C4705D694

Подскажите флаги и какой gcc( и откуда) мне надо использовать, SDK вестимо под этого китайца нету ?

 , ,

pinachet ()

Эксперементально подтверждено существование сил Хендрика Казимира

Форум — Science & Engineering

Группа американских и китайских ученых доказала существование сил Казимира — крошечных объемов энергии, возникающих при сближении объектов на квантовом уровне, пишет


Не так давно считалось, что силы Казимира в принципе не могут существовать, потому что они предполагают наличие своего рода «вечного двигателя», нарушающего законы физики. Однако, как доказали американские и китайские ученые, на квантовом уровне такое «вечное» взаимодействие возможно. После их теоретических и экспериментальных изысканий наличие сил, возникающих из квантовых колебаний атомов в зазоре, окончательно подтверждено.



Сообщение о сабже на русском:https://hightech.fm/2017/04/22/casimir-forces

Оригинал на английском:https://phys.org/news/2017-04-harness-mysterious-casimir-tiny-devices.html

 ,

torvn77 ()

Линковка статических библиотек

Форум — Development

Привет! Меня сегодня кольнуло в задницу, надо мне собрать одну програмку с гита и прилинковать к ней библиотеки libcurl и libcrypto (curl и openssl, если не ошибаюсь). Вот сам гит: https://github.com/lucasjones/cpuminer-multi Опишите нубу, что и как мне делать (там make везде). Где брать библиотеки, как их статически линковать? Надо, чтобы на другом ПК без этих либ программа работала.

 , , ,

AxReal ()

VDI, OPENRDP, BROKER, X2GO, SPICE, FOSS-Cloud etc. Помогите выбрать инфрастуктуру для thin client

Форум — Admin

Привет. В данный момент у меня все работает так: thin client при загрузке получает небольшой имидж с установленным x2go client, с помощью которого пользователь коннектится на через broker на ноды. /home/ на всех нодах подцеплен на файлсервер через NFS. Основная проблема в NX протоколе- он не поддерживает форваринг видео карты и еще кучи всего, туповат протокол. Например, прокрутка в браузере лагает. Есть у кого хорошая рабочая схема? В идеале я бы хотел грузить полноценную ось на thin. Типа загружается клиент, под него создается виртаулка, он на ее использует, после использования виртуалка уничтожается.

 , ,

constin ()

Какой системой мониторинга пользуетесь?

Голосования — Голосования

Опрос для тех, кто всё-таки какой-либо СМ пользуется, посему варианта «Не пользуюсь» здесь и не предусмотрено (иначе он просто испортит статистику).

  1. Zabbix273 (63%)

    ********************************************************************************************************************************************************************************************************************************************************************************************************************************

  2. Nagios (и его клоны)97 (22%)

    *****************************************************************************************************************

  3. Другая OpenSource СМ52 (12%)

    ************************************************************

  4. Munin44 (10%)

    ***************************************************

  5. Cacti35 (8%)

    *****************************************

  6. Другая проприетарная СМ31 (7%)

    ************************************

  7. Prometheus25 (6%)

    *****************************

  8. Microsoft SCOM10 (2%)

    ***********

  9. ZenOSS9 (2%)

    **********

  10. OpenNMS9 (2%)

    **********

  11. NetXMS9 (2%)

    **********

  12. IBM Tivoli Monitoring8 (2%)

    *********

  13. HP OpenView8 (2%)

    *********

Всего голосов: 610, всего проголосовавших: 432

>>> Результаты

 , ,

DRVTiny ()

Почему DNAT внутри сети не работает?

Форум — Admin
-A PREROUTING -d 11.11.11.11 -i eth1 -p tcp -m tcp --dport 80 -j DNAT --to-destination 192.168.11.142:8082

eth1 - LAN интерфейс.

11.11.11.11 это внешний интерфейс.

Вроде по логике:

Заходит пакет на интерфейс eth1, попадает в цепочку PREROUTING, фильтр видит в заголовке адрес направления 11.11.11.11 и порт 80, и перенаправляет пакет на 192.168.11.142:8082

 

steemandlinux ()

nDPI как замена l7filter [продолжение]

Форум — Admin

Продолжение длинной истории

Оригинальный рецепт для тех кто умеет самостоятельно прикладывать патчи и собирать ядра/софт.

Отдельно и более подробно для Ubuntu и CentOS от as_lan

На большом потоке ( ~300мбит/с ) cо всеми протоколами используется примерно 50-60% одного ядра Intel(R) Xeon(R) CPU E31230@3.20GHz. Если поток больше или процессор слабее, то включаем RPS или используем сетевые карты с multi-queue и irq-affinity. У меня оно тестируется на трафике до 400Мбит/~100к conntrack/~90kpps для x86 и x86_64.

В понятиях netfilter оно умеет проверять пакеты на принадлежность к протоколам (match) и ставить на пакеты метки/классы (target) по аналогии с MARK & CLASSIFY. Есть поддержка NET_NS и IPv6.

Требуется много памяти. На каждое соединение расходуется примерно ~850+280*0.7 байт. Этот объем варьируется в зависимости от 32/64 бита, с/без IPv6.

Исходники теперь есть на https://github.com/vel21ripn/nDPI/tree/netfilter

От основной ветки на github/ntop/nDPI/1.7-stable отличается меньшим потреблением памяти и «улучшением» определения bittorrent.

из-за значительных изменений пока не ясно, можно ли будет включить в оригинальный проект.

 , ,

vel ()

Альтернатива RTMP, будущее FLASH

Форум — Web-development

Какие есть альтернативы протоколу Adobe RTMP для real time вещания? Сейчас тенденция к удалению флеша(в андроиде уже удалили, в ФФ вроде как через год удалят).
WebRTC подходит, в браузерах уже вроде хорошая поддержка, но серверных решений мало, нашел только 1 рабочий вариант - Kurento media server. Но его не получается поставить на Debain(пакеты есть полько под Ubuntu) и вообще у меня он дико тормозит уже на 10-20 стримах. Интересует прежде всего схема peer to many, т.е. чел со своего браузера вещает на сервер, а сервер раздает всем клиентам

Собственно самый главный вопрос: стоит ли вкладываться в flash или ждать развития html5 и тестировать его баги и тормоза..?

 ,

gobot ()

Полноразмерный человекоподобный робот

Галерея — Рабочие места

Привет, господа. Последние 6 месяцев я занимаюсь разработкой полноразмерного, полностью рабочего человекоподобного робота. Робот работает под Debian Linux. Механическая часть робота основана на открытом проекте inmoov. Основное моё достижение не просто распечатанные готовые файлы, а проработанные с точки зрения мехмата части для повышения прочности, электроника основанная не на arduino, рассчитанные переходные характеристики, высокая скорость и точность позиционирования движущихся частей

>>> Просмотр (3264x2448, 2029 Kb)

 ,

disee ()