MikroTik – blokowanie programów p2p przy użyciu protokołów L7

Od wersji 6.39 RouterOS, protokoły P2P można zablokować wyłącznie używając wyrażeń regularnych (tzw. Regexp) w zakładce  Layer 7 Protocols (w Filter Rule -> General zniknęła funkcja P2P). Poniżej przedstawiona są restrykcyjne reguły, które bardzo skutecznie blokują ruch P2P (w skrypcie poniżej tylko BitTorrent).
Cała konfiguracja opiera się na 5 krokach.

Dodanie wpisów L7:

/ip firewall layer7-protocol
add comment="bittorrent" name=bittorrent regexp="^(\\x13bitt\
 orrent protocol|azver\\x01\$|get /scrape\\\?info_hash=get /announce\\\?inf\
 o_hash=|get /client/bitcomet/|GET /data\\\?fid=)|d1:ad2:id20:|\\x08'7P\\)[\
 RP]"

Markowanie ruchu BitTorrent:

/ip firewall mangle
add action=mark-connection chain=forward comment=mark_dw_connection in-interface=pppoe-out1 log-prefix=\
 all-connections new-connection-mark=mark_dw_connection passthrough=yes
add action=mark-packet chain=forward comment=mark_dw_packet connection-mark=mark_dw_connection new-packet-mark=\
 mark_dw_packet passthrough=yes

add action=mark-packet chain=forward comment=torrent_dw_pk layer7-protocol=bittorrent log-prefix=BitTorrent-log \
 new-packet-mark=torrent_dw_pk packet-mark=mark_dw_packet passthrough=no

Dodanie hostów do listy P2P-users, którym będą blokowane porty 0 – 1024. Komputery, które mają mieć pełen dostęp do internetu i mogą ściągać z BT można umieścić na liście, np o nazwie allow-p2p:

/ip firewall filter
add action=add-src-to-address-list address-list=P2P-Conn address-list-timeout=30m chain=forward comment=\
 "bittorrent - dodanie hostow na liste do blokowania portow" log=yes log-prefix=P2P-users packet-mark=\
 torrent_dw_pk src-address-list=!allow-p2p

Blokowanie portów komputerom, które korzystają z BitTorrent:

/ip firewall raw
add action=drop chain=prerouting comment="Blokowanie portow hostom korzystajacym z programow p2p" dst-port=!0-1024 \
 protocol=tcp src-address-list=P2P-Conn
add action=drop chain=prerouting dst-port=!0-1024 protocol=udp src-address-list=P2P-Conn

Jest to ostatnia reguła blokująca wcześniej zamarkowane pakiety – na wypadek gdy ruch przejdzie przez niezablokowany port z przedziału 0 – 1024.

/ip firewall filter
add action=drop chain=forward comment=\
 "BitTorrent - blokowanie pozostalego ruchu BitTorrent, przechodzacego przez niezablokowane porty: 0 - 1024" \
 packet-mark=torrent_dw_pk src-address-list=!allow-p2p

 

Poniżej przedstawione są filtry L7 (definicje Regexp), które blokują również inne protokoły (programy) p2p:

add name=chomikuj regexp="^.+(chomikuj.p).*\$"
add name=emule regexp="^[\\xc5\\xd4\\xe3-\\xe5].\?.\?.\?.\?([\\x01\\x02\\x05\\x14\\x15\\x16\\x18\\x19\\x1a\\x1b\\x1c\
 \\x20\\x21\\x32\\x33\\x34\\x35\\x36\\x38\\x40\\x41\\x42\\x43\\x46\\x47\\x48\\x49\\x4a\\x4b\\x4c\\x4d\\x4e\\x4f\\x\
 50\\x51\\x52\\x53\\x54\\x55\\x56\\x57\\x58[\\x60\\x81\\x82\\x90\\x91\\x93\\x96\\x97\\x98\\x99\\x9a\\x9b\\x9c\\x9e\
 \\xa0\\xa1\\xa2\\xa3\\xa4]|\\x59................\?[ -~]|\\x96....\$)"
add name=goboogy regexp=\
 "<peerplat>|^get /getfilebyhash\\.cgi\\\?|^get /queue_register\\.cgi\\\?|^get /getupdowninfo\\.cgi\\\?"
add name=soribada regexp="^GETMP3\r\
 \nFilename|^\01.\?.\?.\?(Q:\\+|Q2:)|^\10[\14-\16]\10[\15-\17].\?.\?.\?.\?\$"
add name=gnutella regexp="^(gnd[\01\02]\?.\?.\?\01|gnutella connect/[012]\\.[0-9]\r\
 \n|get /uri-res/n2r\\\?urn:sha1:|get /.*user-agent: (gtk-gnutella|bearshare|mactella|gnucleus|gnotella|limewire|i\
 mesh)|get /.*content-type: application/x-gnutella-packets|giv [0-9]*:[0-9a-f]*/|queue [0-9a-f]* [1-9][0-9]\?[0-9]\
 \?\\.[1-9][0-9]\?[0-9]\?\\.[1-9][0-9]\?[0-9]\?\\.[1-9][0-9]\?[0-9]\?:[1-9][0-9]\?[0-9]\?[0-9]\?|gnutella.*content\
 -type: application/x-gnutella|...................\?lime)"
add name=shoutcast regexp="icy [1-5][0-9][0-9] [\t-\r -~]*(content-type:audio|icy-)"
add name=bittorrent2 regexp=\
 "^(\13bittorrent protocol|azver\01\$|get/scrape\\\?info_hash=)|d1:ad2:id20:|\08'7P\\)[RP]"
add name=directconnect regexp="^(\\\$mynick |\\\$lock |\\\$key )"
add name=ares regexp="^\03[]Z].\?.\?\05\$"
add name=fasttrack regexp="^get (/.download/[ -~]*|/.supernode[ -~]|/.status[ -~]|/.network[ -~]*|/.files|/.hash=[0-9\
 a-f]*/[ -~]*) http/1.1|user-agent: kazaa|x-kazaa(-username|-network|-ip|-supernodeip|-xferid|-xferuid|tag)|^give \
 [0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]\?[0-9]\?[0-9]\?"
add name=napster regexp="^(.[\02\06][!-~]+ [!-~]+ [0-9][0-9]\?[0-9]\?[0-9]\?[0-9]\? \"[\t-\r -~]+\" ([0-9]|10)|1(send\
 |get)[!-~]+ \"[\t-\r -~]+\")"
add name=soulseek regexp="^(\05..\?|.\01.[ -~]+\01F..\?.\?.\?.\?.\?.\?.\?)\$"
add name=imesh regexp="^(post[\t-\r -~]*<PasswordHash>................................</PasswordHash><ClientVer>|4\80\
 \?\r\?\FC\FF\04|get[\t-\r -~]*Host: imsh\\.download-prod\\.musicnet\\.com|\02(\01|\02)\83.\?.\?.\?.\?.\?.\?.\?.\?\
 .\?.\?.\?.\?.\?.\?.\?.\?.\?.\?.\?.\?.\?.\?.\?.\?.\?.\?.\?.\?\02(\01|\02)\83)"
add name=mohaa regexp="^\FF\FF\FF\FFgetstatus\
 \n"
add name=tor regexp=TOR1.*<identity>
add name=bittorrent regexp="^(\\x13bittorrent protocol|azver\\x01\$|get /scrape\\\?info_hash=get /announce\\\?info_ha\
 sh=|get /client/bitcomet/|GET /data\\\?fid=)|d1:ad2:id20:|\\x08'7P\\)[RP]"
add name=bittorrent-sites regexp="^.+(|torrenty.org|thepiratebay|isohunt|entertane|demonoid|btjunkie|mininova|flixflu\
 x|torrentz|vertor|h33t|btscene|bitunity|bittoxic|thunderbytes|entertane|zoozle|vcdq|bitnova|bitsoup|meganova|full\
 dls|btbot|flixflux|seedpeer|fenopy|gpirate|commonbits|super-torrent|ex-torrenty-org|shadows-torrents|best-torrent\
 y|miliontorrent|mega-torrenty|torrent.top-100|polskitorrent).*\$"
add name="emule\?" regexp="\\xe3[\\x01-\\xff].\?.\?.\?\\x01.*\\xc5[\\x01-\\xff].\?.\?.\?\\x01.*\\xc5[\\x01-\\xff].\?.\
 \?.\?\\x02.\r\
 \n*\\xe3[\\x01-\\xff].\?.\?.\?\\x4c"

 

PowerShell – włączenie Windows PowerShell Web Access (PSWA) w Windows 2012 R2

 

Enable-PSRemoting -SkipNetworkProfileCheck
Install-WindowsFeature WindowsPowerShellWebAccess -IncludeAllSubFeature -IncludeManagementTools
Install-PswaWebApplication –WebSiteName "Default Web Site" –WebApplicationName "PSWA" –UseTestCertificate
Add-PswaAuthorizationRule -UserName server\Administrator -ComputerName server -ConfigurationName Microsoft.PowerShell
Add-PswaAuthorizationRule -UserName win2k8r2\Administrator -ComputerName win2k8r2 -ConfigurationName Microsoft.PowerShell

 

DD-WRT – SSH – lista aktualnie podłączonych klientów

Gdy Access Point jest skonfigurowany i zaczyna pracować w środowisku produkcyjnym, często zachodzi potrzeba logowania się do urządzenia np. w celu sprawdzania jego poprawnej pracy i m.in. siły sygnału, z jaką podłączeni są klienci.

W nowszych wersjach DD-WRT próba  połączenia przez protokół HTTPS kończy się niepowodzeniem. Aby bezpiecznie połączyć się z urządzeniem, należy wybrać program Putty oraz protokół SSH. Poniżej przedstawione są polecenia umożliwiające wyświetlenie aktualnie podłączonych klientów WLAN.

wl assoclist
wl rssi <MAC-ADDRESS>

 

WordPress 4.1 – BreadCrumbs na stronie

Element BreadCrumbs, czyli wyświetlana ścieżka do aktualnej strony internetowej nie tylko pomaga użytkownikowi w sprawnej nawigacji, ale również wg. dokumentu Google SEO Starter Guide (http://static.googleusercontent.com/media/www.google.com/en//webmasters/docs/search-engine-optimization-starter-guide.pdf) ma duży wpływ na jej efektywne pozycjonowanie.
Aby dodać BreadCrumbs do strony WP należy:

  1. umieścić poniższą funkcję w pliku functions.php:
    function showBreadCrumbs() {
        echo '<a href=”',get_option('home'),'”>',bloginfo('name')," Home</a> &raquo; ";
        if (is_category() || is_single()) {
            the_category(', ','&title_li=');
            if (is_single()) {
                echo " &raquo; ", the_title();
    }
    } elseif (is_page()) {
        echo the_title();
    }
    }
    
  2. umieścić div z wywołaniem powyższej funkcji na stronie, np. category.php, single.php, page.php zaraz za wywołaniem nagłówka: get_header(); ?>
    <div id="breadcrumbs"><?php showBreadCrumbs(); ?></div>
    
  3. umieścić style CSS w pliku style.css, np.:
    #breadcrumbs {    margin-left:60px;    margin-bottom:20px; }
    

 

 

WordPress 4.1 – wykonanie kopii bazy, migracja na innych serwer (hosting)

Migracja WP na innych serwer (hosting):

  1. wgranie nowego (czystego) WP na nowy host,
  2. skopiowanie pluginów, szablonów, pliku wp-config.php i folderu upload na nowy host,
  3. eksport bazy przez phpMyAdmin:
    Export → Export Method: Custom – display all possible options
    Output: Character set of the file: UTF8
    Compression: None
    Format: SQL
    Object Creation Options → zaznaczone: Add DROP TABLE / VIEW… → odznaczone: Add CREATE PROCEDURE / FUNCTION …
    Można tez użyć wtyczki BackWPup ze strony https://wordpress.org/plugins/backwpup
  4. w pliku .sql zmiana linków URL przy pomocy edytora tekstu (np. Notepad++),
    Przykład: eksport strony z hosta http://localhost/wordpress na host http://nazwadomeny.pl/wp :
    a) zamiana w edytorze wszystkich nazw zawierających link http://localhost/wordpress na http://nazwadomeny.pl/wp
    b) zamiana wszystkich nazw /wordpress na /wp
    c) w przypadku witryny z funkcją MULTISITE należy zmienić nazwę przy parametrze ‚source_domain’, która występuje w końcowych liniach pliku SQL i przyjmuje postać np. w przypadku hostingu http://localhost/wp – samo słowo localhost (bez przedrostka http://)
    d) wejście na nową stronę: http://nazwadomeny.pl/wp. WP wyświetli stronę instalacyjną ponieważ nie będzie się mógł połączyć z bazą.
  5. import bazy przez phpMyAdmin na nowy host przez phpMyAdmin: Import → OK,
  6. wejście do panelu administracyjnego nowej strony http://nazwadomeny.pl/wp/wp-admin. WP poprosi o update bazy.

Szczególnie krok 4a i 4b są istotne jeśli przenosiny odbywają się z podkatalogu do podkatalogu.

Oczywiście w pliku wp-config.php trzeba wpisać nowe parametry serwera MySQL.

Dobrym pluginem wspomagającym proces przenoszenia bazy jest WP Migrate DB: https://wordpress.org/plugins/wp-migrate-db/