LINUX.ORG.RU

Сообщения censured

 

NFT перенаправить с 80 на 8080 только тех кто содержится в сете или списке

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

У меня есть тестовый сервер с debian 11 на борту. Там установлен NGINX и php. В конфиге NGINX создано 2 сайта:

  • Первый работает на порту 80
  • Второй работает на порту 8080

Предпологается что второй сайт будет ловушкой для ботов и брутфорсеров.

ЗАДАЧА: создать список(или сет) в котором будут ip адреса в формате CIDR. (Возможно и просто обычные ip адреса без маски - вроде бы так тоже можно)
Далее всех кто СОДЕРЖИТСЯ в этом списке отправлять на порт 8080 - на сайт ловушку.
А всех кто НЕ СОДЕРЖИТСЯ в этом списке - спокойно пропускать на 80 порт (если возможно указать пример как их редиректить сразу на 443 порт).\

Вроде бы простая задача но чёт не выходит. Пока что получилось только всех редиректить таким образом (но так не подходит конечно):
nft add table nat
nft add chain nat prerouting { type nat hook prerouting priority dstnat ; }
nft add rule nat prerouting tcp dport 80 redirect to 8080

ps: Я знаю что можно делать перенаправление в самом NGINX но хотелось бы решить вопрос именно с nft.

ps2: на всякий случай прилагаю скрипт, который использую для всех моих правил nft https://pastebin.com/iXNmnMex

 , ,

censured
()

Не могу перевести wi-fi адаптер в monitor mode BCM4352

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

Несколько месяцев назад купил материнскую плату asus x79-deluxe в которой есть bt + wi-fi адаптер. Как в книге пользователя, так и на офф сайте асуса модель этого модуля не указана(написаны только стандарты по которым он работает). Вот так выглядит сам адаптер.

Путем проб и ошибок выяснил что это:

##### lspci #############################

00:19.0 Ethernet controller [0200]: Intel Corporation 82579V Gigabit Network Connection [8086:1503] (rev 06)
Subsystem: ASUSTeK Computer Inc. P8P67 Deluxe Motherboard [1043:849c]
Kernel driver in use: e1000e

0a:00.0 Network controller [0280]: Broadcom Corporation BCM4352 802.11ac Wireless Network Adapter [14e4:43b1] (rev 03)
Subsystem: ASUSTeK Computer Inc. Device [1043:855c]
Kernel driver in use: wl

0c:00.0 Ethernet controller [0200]: Realtek Semiconductor Co., Ltd. RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller [10ec:8168] (rev 11)
Subsystem: ASUSTeK Computer Inc. Device [1043:859e]
Kernel driver in use: r8169

Изначально этот «модуль» не видно в ifconfig и в iwconfig

После установки этих пакетов в убунте

sudo apt-get install firmware-b43-installer
sudo apt-get install bcmwl-kernel-source
sudo apt-get install broadcom-sta-dkms

Модуль появляется в ifconfig и в iwconfig. Сразу появляются вай фай сети, и я могу подключится к своей.

Но при sudo airmon-ng start wlan0

Interface Chipset Driver

wlan0 Unknown wl - [phy0]mon0: ERROR while getting interface flags: No such device

(monitor mode enabled on mon0)

В Kali-1.0.9a некоторых пакетов из перечисленных выше - нет, и вай-фай адаптер там вообще не видно.

Видео этого безобразия https://www.youtube.com/watch?v=WHA1SQ8x8VY

 , ,

censured
()

Вывести строки из 1 фаила, которые не содержатся во 2ром фаиле

Привет, есть 2 фаила их разница в дате создания и в размере содержащихся строк.
Хочу отобразить только те строки из фаила 2.txt, которые не содержатся в фаиле 1.txt(старая версия).

Пробовал так

cat 2.txt | grep -v -f 1.txt > 3.txt 
и так 
grep -f 2.txt 1.txt
но пишет: grep: Неверный конец диапазона

Подскажите пожалуйста как можно сделать такое? Отобразить строки фаила 2.txt которые не содержатся в 1.txt

cat 2.txt | wc -l && cat 1.txt | wc -l
150376
11017

 

censured
()

Проблема с ipset

Привет по данному мануалу поставил на debian module-assistant xtables-addons-source ipset

Далее создал правила:
ipset -N dropip iphash (сейчас тут пусто)
ipset -N dropnet nethash (сейчас тут пусто)
ipset -N chinasubnet nethash
ipset -N indiasubnet nethash


После выполнил:
iptables -A INPUT -m set --match-set dropip src -j DROP
iptables -A INPUT -m set --match-set dropnet dst -j DROP
iptables -A INPUT -m set --match-set chinasubnet dst -j DROP
iptables -A INPUT -m set --match-set indiasubnet dst -j DROP

Затем скачал список всех ip индии и китая в формате CIDR и выполнил:
for i in $( cat /home/china.txt ) ; do ipset -A chinasubnet $i ; done
for i in $( cat /home/india.txt ) ; do ipset -A indiasubnet $i ; done

Сохранил правила:
ipset -S > /etc/ipset/ipset-save

и записал в /etc/rc.local
cat /etc/ipset/ipset-save | /usr/sbin/ipset -R

Перезагрузил впс подстраховавшись:
crontab -e
*/5 * * * * ipset -F
sudo shutdown -r now

Таким образом хотел отсечь нежелательный траффик. После ребута убрал ipset -F и проверил список правил ipset -L правила загружались.

Спустя какое то время обнаружил что боты все равно лезут, это было видно по статистике одного скрипта. После этого сделал проверку, ip бота перевел в CIDR и проверил: ipset -L | grep «xxx.xxx.xxx.xxx/xx» - и несколько раз убеждался что такая запись уже присутствует, то есть не работают правила почему то.

На сервере стоит nginx + apache2, ставил их не я а сапорт хостинга. Подскажите пожалуйста:

1) Как починить? Хотел бы блочить траффик из данных стран на веб сервер.

2) Как фильтровать не только запросы на 80,443 а полностью отрубить эти страны на всех портах?(чтобы даже пингануть не могли)

 , , ,

censured
()

Чем можно обьединить содержимое двух фаилов с одинаковым кол-вом строк

Привет, есть 2 фаила с одинаковым количеством строк

cat url.txt | wc -l && cat pristavka.txt | wc -l
3277
3277

Пытаюсь обьединить эти 2 фаила так, чтобы в выхлопе в конце первой строки первого фаила, была первая строка второго фаила и так до самого конца.
Например: в первом фаиле:
http://site.ru
http://site.ru
http://site.ru

Во втором:
/index.php
/index.php
/index.php

Хочу сделать так:
http://site.ru/index.php
http://site.ru/index.php
http://site.ru/index.php

Пробовал делать так:

paste --delimiters='/' url.txt pristavka.txt > file4
и так
paste --delimiters='' url.txt pristavka.txt > file4

Но почему то записывает /index.php/http://site.ru (конец пишет в начало)

Если так:
paste pristavka.txt url.txt > result.txt то записывает

/index.php http://site.ru
/index.php http://site.ru
/index.php http://site.ru

Но даже если я делаю потом хитрость:
paste pristavka.txt url.txt > result.txt | awk {'print $2,$1'}
то все равно выводит с ошибками.

 ,

censured
()

sed удалить все кроме русских слов и пробелов между ними

Пытаюсь в большом текстовом фаиле оставить только русские слова с пробелами, чтобы потом с помощью sort -u получить только уникальные слова. Но почему то остается куча мусора.

пробовал вот так

sed -i -e 's/[^а-яА-ЯёЁ\ ]\+//g;s/\ \{2,\}/\ /g' file.txt

В выхлопе остаются русские слова и мусор наподобие:

«»…—”•

С седом никогда не имел дело, поэтому сначала все удалял по 1 символу, затем уже понял что можно удалить [:punct:] и т.д. а потом подсказали решение сверху, но почему то все равно не все удаляет

Подскажите пожалуйста - как можно побороть?

p.s. выхлоп после приведенной команды + в нем прошелся:

nice -10 sed -i 's/^ *//g' 123.txt пробел в начале строки
nice -10 sed -i '/./!d' 123.txt Удаляет все пустые строки из файла

 ,

censured
()

Вопрос про парсинг на баше от падавана

Привет, хочу написть скрипт который бы парсил книги в txt но зашел в тупик

#!/bin/bash

MAINURL=http://url.com
RAZDEL=/fantastic/

Не понятно сразу 2 вещи:

1. Как определить $nomer чтобы он был например от 1 до 10?
BOOKLINK=$(curl '$MAINURL$RAZDEL$nomer' | grep 'bookimage' | grep -o «a href*[^>]*/» | cut -d '«' -f2

2. Как потом передать выхлоп $BOOKLINK в следующую команду?(В выхлопе будет что то вроде /B13131)

Вот так?
TXTLINK=$(curl '$MAINURL$BOOKLINK' | grep 'txt' | grep -o „a href*[^>]*/“ | cut -d '»' -f2

Если да, то в конце скрипта, по идее будет вот так?(без других переменных) wget $TXTLINK

 ,

censured
()

как кликнуть в опр. координатах в мозилле через скрипт

Привет после прочтения этой темы появился интерес написать простенький бот для браузернуй игрушки - просто кликать по нужным координатам через определенные промежутки времени. Но заступорился в самом начале. Ввожу:

xdotool getmouselocation
получаю x:429 y:266 screen:0 window:50331819

затем делаю

#!/bin/bash

xdotool mousemove x=429 y=266
xdotool click 1

Но какого то фига кликается в одно и тоже место какие бы координаты я не задавал. Если точнее, то кликает кнопочку на панельке xfce в самом верху.

xdotool mousemove x=429 y=266 screen:0 window:50331819 тоже не хочет

Сама игрушка открыта в Firefox, сделана она на flash. Подскажите что я делаю не так?

 ,

censured
()

Как с помощью bash спарсить динамически подгружаемый контент?

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

Сейчас решил немного усложнить скрипт, т.к. в rss довольно мало постов. Попробовал с помощью архива статей заполучить все картинки. Но столкнулся с проблемой. Выполняю:

$ curl http://antoshabrain.tumblr.com/archive | iconv -f iso8859-1 -t utf-8 | grep -o 'class=«post_notes»[^>]*'

Но получаю гораздо меньше результатов, чем есть на самом деле(сори за качество).

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

 , , , ,

censured
()

shazam при проигровании подкаста в clementine

Есть андроед на нем стоит shazam. Дома во время понравившегося трека активирую, получаю достоверную информацию об исполнителе.

На работе стоит xubuntu 12.04. Вафля там не работает как и мобильный интернет. Да и через динамики особо не послушаешь, соратники сожрут)

Возможно ли, как то без использования андройда, это сделать на убунте? Может есть какие альтернативы shazam? Tunatic и wine сразу не катит т.к. распознает не более 10%.

 shazam, trackid, ,

censured
()

RSS подписка на новые темы