Wpis z mikrobloga

Chciałbym się uwarunkować na większą efektywność pracy (wiadomo, jestem mistrzem prokrastynacji ;-)) Wymyśliłem, że zrobię sobie jakiś nieprzyjemny trigger jak wchodzę na strony WWW typu FB, kwejk czy wykop (hlip... hlip...).

Prokrastynuje na #desktop #linux więc chciałbym sobie napisać jakiś skrypt który wyzwoli akcję przy wejściu na konkretne strony WWW. Raczej nie chcę zakładać haków na przeglądarki tylko wolał bym "globalnie" na ruchu sieciowym do Internetu. Jak to zrobić? Jakieś regułki w #netfilter, coś przy #dns grzebać?

Poradźcie, pomóżcie :-)
  • 13
@kwanty: najprosciej problem możesz rozwiązać tak jak zaproponował kolega wyżej. Natomiast jeśli chcesz mieć dostęp do stron plus jakieś powiadomienie gdy korzystasz to można postawić lokalnie nginxa jako proxy i patrzeć co będzie w access logach
@yuim: dzięki, brzmi to trochę skomplikowanie :-/ myślałem że jakąś prostą regułką na iptables ogarnę :-/

a czy coś w okolicy DNSa by się nie dało wymodzić? czy jak wpisuję "https://wykop.pl" to DNS jest zawsze odpytywany czy idzie z jakiegoś lokalnego cache?

Po drodze z mojego komputera na "wkop" mam jeszcze router Ubiquiti. Tam pewno mógłbym prościej ustawić regułki w firewallu (jest jakieś deep package inspection ale nigdy nie
@kwanty:

dzięki, brzmi to trochę skomplikowanie :-/


Sam sobie tak wymyśliłeś, mogłeś zacząć od szukania dodatku do przeglądarki :P

W sumie z tym nginxem to taki średni pomysł jednak jest bo trzeba się babrać z własnymi certyfikatami żeby HTTPSa przechwytywać.

a czy coś w okolicy DNSa by się nie dało wymodzić?


Dałoby się tylko trzeba wyłączyć cache DNS w przeglądarce.
Sam sobie tak wymyśliłeś, mogłeś zacząć od szukania dodatku do przeglądarki :P


@yuim: Chciałem zacząć od ogólnego rozwiązania ale coraz bardziej widzę że to jest problematyczne i najpewniej za chwilę zacznę szukać w pluginach do przeglądarki...

Jeszcze się zastanawiam czy nie wykorzystać systemowego proxy. Może tam dało by się to prosto przechwycić ale to wymaga ekstra konfiguracji w przeglądarce.

Tak się zastanawiam czy nie ma jakiś gotowych rozwiązań tego typu -
@kwanty:

Jeszcze się zastanawiam czy nie wykorzystać systemowego proxy


No ale ja Ci to właśnie zaproponowałem, to jest to rozwiązanie z nginxem. Tylko tak jak mówiłem bedzie problem z HTTPS.

Co do gotowych rozwiązań, możesz szukać ale się nic nie nauczysz ;)

Mam chwilę czasu teraz to spróbuje coś na szybko skleić na DNSach.
No ale ja Ci to właśnie zaproponowałem, to jest to rozwiązanie z nginxem. Tylko tak jak mówiłem bedzie problem z HTTPS.


@yuim: Acha, czyli to musi przez nginxa przejść, myślałem że da się inaczej.

Czy z HTTPS będzie problem? Interesuje mnie tylko fakt wejścia na stronę www (sam adres) a nie parsowanie contentu.
Czy z HTTPS będzie problem? Interesuje mnie tylko fakt wejścia na stronę www (sam adres) a nie parsowanie contentu.


@kwanty: poczytaj jak działa https :)

Acha, czyli to musi przez nginxa przejść, myślałem że da się inaczej.


no musi być jakies proxy, tak? nginx moze działac jako proxy i jest chyba najprostszy do tego IMO, chociaz moze byc tez cos innego zamiast niego
@kwanty:

dobra, pospawałem coś na szybko.

całe rozwiazanie bedzie oparte na lokalnym serwerze dns - dnsmasq

generalnie komunikacja po dns bedzie wygladac tak:

przegladarka -> lokalny dns -> twój obecny dns

Instalujesz dnsmasqu, ustawiasz zeby sie odpalał przy starcie
Sprawdzasz obecne ustawienia resolvera

$cat /etc/resolv.conf
nameserver 192.168.122.1

zapamietujesz adres ip

edytujesz /etc/dnsmasq.conf, ma byc w tym pliku tylko to:

no-resolv
listen-address=::1,127.0.0.1
server=192.168.122.1
cache-size=1000
log-facility=/var/log/dnsmasq.log
log-queries
log-async=25
max-ttl=1

ten adres 192.168.122.1, podmieniasz
@kwanty: jak to będzie działać to później trzeba nastukać coś co będzie zaczytywać log i wysyłać powiadomienia. Na moje oko mniej niż 20 linijek w pythonie. Są gotowe moduły do czytania logów - pygtail i moduł do wysyłania powiadomień po dbus