Blokování www dle časového rozvrhu



Dobrý den,  
vím že se to zde již několikrát probíralo, ale nenašel jsem žádnou konkrétní odpověď.  
Potřeboval bych některým uživatelům v doméně povolit přístup na Internet jen po určitý čas. IP přiděluje DHCP, brána / fw je samostatný PC (linux). Existuje nějaký centrální způsob, nebo se to musí řešit lokálně nějakým firewallem s omezenými uživatelskými právy? Proxy raději ne. Díky.
slo by to blokovanim na tom centralnom FW, kedze je to linux, tak by to asi slo pekne naskriptovat, aby sa v danom case zamenil jeden konfiguracny subor s pravidlami za iny konfiguracny subor s pravidlami a restartla sa sluzba.  
  
pripadne by to slo aj tymi lokalnymi obmedzeniami s dobre chranenymi pravami, ale to nie je velmi 'elegantne' riesenie ![](/Client.Images/smileys/3.gif)
<p>způsob, jak přejít přes brány firewall: dotaz přes typický port (80):<br> <code>sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 7f0ceb10</code><br> dalším problémem může být síťový proxy server. pokud se potřebujete připojit k internetu přes proxy, exportovat nastavení proxy serveru do bash konfigurace - přidejte řádek s vaší proxy adresou (av případě potřeby: uživatelské jméno/heslo - bez toho, aby to bylo jen <code>http://proxyserver:port</code>): <br> <code>export http\_proxy=http://username:password@proxyserver:port/</code><br> na konci souboru <code>/etc/bash.bashrc</code><br></p> <p>mise byla vyplněna! tato <a href="http://thismightbehelpful.blogspot.com/2008/09/remote-access-to-cups-web-interface.html">stránka mi hodně pomohla</a> .</p><p>jediné, co jsem musel udělat, bylo přidat "povolit vše" k přístupu na server a na administrátorské stránky, takže moje konfigurace nyní vypadala takto:</p><pre><code># restrict access to the admin pages... &lt;location /admin&gt; order allow,deny allow all &lt;/location&gt; # restrict access to configuration files... &lt;location /admin/conf&gt; authtype default require user @system order allow,deny &lt;/location&gt; </code></pre><p>teď už jen musím přijít na to, abych umožnil pouze těm v mé lokální síti přístup k administrátorským stránkám a konfiguračním souborům :) (i když to pravděpodobně není velký problém, protože nemám přeposílání portů pro 631 nastavený na routeru? ).</p><p>edit: abych mohl povolit pouze určitý počítač, mohl jsem něco udělat</p><pre><code>&lt;location /admin&gt; order allow,deny allow from 10.10.10.5 &lt;/location&gt; </code></pre><p>nebo pro celou podsíť 10.10.10,</p><pre><code>&lt;location /admin&gt; order allow, deny allow from 10.10.10.* &lt;/location&gt; </code></pre> <p>záleží. myslete na svou ip adresu jako na stejnou věc jako na skutečnou adresu. pokud zločinec zná adresu banky, co může dělat? <em>zcela záleží</em> na tom, jaké zabezpečení je na místě.</p><p>pokud máte spuštěn firewall (např. windows firewall) nebo jste za routerem nat), jste pravděpodobně v bezpečí. většina vzdálených exploitů.</p><p>moje návrhy:</p><ul> <li>povolte bránu firewall systému windows nebo cokoli, co je k dispozici ve vašem operačním systému.</li> <li>udržujte krok s opravami pro váš operační systém. to jsou kritické!</li> <li>neustále aktualizujte záplaty pro váš prohlížeč a jakékoli doplňky (např. flash)</li> <li>mějte aktuální informace o opravách svých aplikací (např. office, adobe pdf atd.)</li> <li>pokud v počítači provozujete nějaké internetové služby (např. httpd), pravidelně je aktualizujte a odpovídajícím způsobem nakonfigurujte jejich zabezpečení.</li> <li>pokud máte opravdu obavy, nainstalujte základní av balíček. microsoft security essentials (mse) je skvělou volbou pro windows, protože je zdarma, nenápadný a nemá moc výkonu.</li> </ul> <p><code>hi</code> je čas strávený přerušením zpracování hardwaru. hardwarová přerušení jsou generována hardwarovými zařízeními (síťové karty, řadič klávesnice, externí časovač, hardwarové senzory, ...), když potřebují něco signalizovat do procesoru (například data dorazila).</p><p>protože k tomu může dojít velmi často a protože v podstatě blokují aktuální cpu, zatímco jsou spuštěny, jsou popisovače hardwarového přerušení jádra psány tak rychle, jak je to jen možné.</p><p>pokud je třeba provést dlouhé nebo složité zpracování, jsou tyto úkoly odloženy pomocí mechanického volání <code>softirqs</code>. jsou naplánovány nezávisle, mohou běžet na jakémkoli cpu, mohou běžet souběžně (nic z toho neplatí pro popisovače přerušení hardwaru).</p><p><sub>část o tvrdých irq blokujících aktuální procesor a část o tom, že <code>softirqs</code> budou moci běžet kdekoli, nejsou úplně správné, mohou existovat omezení a některé tvrdé irq mohou přerušit jiné.</sub></p><p>jako příklad lze uvést, že hardwarové přerušení ze síťové karty „přijatá data“ by mohlo jednoduše uložit informace „karta ethx musí být obsluhována“ a naplánovat <code>softirq</code>. <code>softirq</code> by byla věc, která spouští skutečné směrování paketů.</p><p><code>si</code> představuje čas strávený v těchto <code>softirqs</code>.</p><p>dobré čtení o mechanismu <code>softirq</code> (s trochou historie) je také <a href="https://www.cs.unca.edu/brock/classes/spring2013/csci331/notes/paper-1130.pdf">dělám to později: softirqs, tasklets, dolní poloviny, fronty úkolů, pracovní fronty a časovače</a> = (pdf, 64 kb).</p><p><code>st</code>, „ukrást čas“, je relevantní pouze ve virtualizovaných prostředích. představuje čas, kdy skutečný procesor nebyl k dispozici aktuálnímu virtuálnímu počítači - byl „odcizen“ z toho vm) hypervizorem (buď pro spuštění jiného vm, nebo pro vlastní potřeby).</p><p>dokument <a href="https://www.ibm.com/developerworks/linux/linux390/perf/tuning\_cputimes.html">cpu time accounting</a> od ibm obsahuje více informací o krádeži času a účetnictví cpu ve virtualizovaných prostředích. (zaměřuje se na hardware typu zseries, ale obecná myšlenka je stejná pro většinu platforem.)</p> <p><strong> <a href="http://en.wikipedia.org/wiki/ipconfig">ipconfig</a> </strong> (<strong> i </strong> nternet <strong> p </strong> rotocol <strong> config </strong> uration) v <strong> microsoft windows </strong> je aplikace konzoly, která zobrazuje všechny aktuální konfigurační hodnoty sítě tcp/ip a může upravovat nastavení dhcp a dns dns systému dynamic host configuration protocol.</p><p><strong> <a href="http://en.wikipedia.org/wiki/ifconfig">ifconfig</a> </strong> (zkratka pro <strong> i </strong> nter <strong> f </strong> eso <strong> config </strong> uration) je nástroj pro správu systému v <strong> unixové </strong> operační systémy pro konfiguraci, řízení a dotazování parametrů síťového rozhraní tcp/ip z rozhraní příkazového řádku (cli) nebo ve skriptech pro konfiguraci systému.</p><p><strong> <a href="http://wiki.linuxquestions.org/wiki/dhcpcd">dhcpcd</a> </strong> je klient dhcp. slouží k získání adresy ip a dalších informací ze serveru dhcp, obnovení doby zapůjčení adresy ip a automatické konfiguraci síťového rozhraní. program plní podobnou funkci jako dhclient.</p> <pre><code>sudo apt update sudo apt install ssh sudo ufw allow 22 # if you have ufw running, but it doesn't hurt to run. </code></pre><p>to je velmi minimum. umožňuje neomezený počet neúspěšných pokusů o heslo na známém portu. přímé přihlášení root je zakázáno (po přihlášení se stále můžete <code>su</code> a <code>sudo</code>). pokud je vaše uživatelské jméno a heslo hádatelné a internet vidí server, někdo <em> se nakonec </em> vnikne.</p><p>nemohu to dostatečně zdůraznit: <strong> <em> je třeba zatvrdit výchozí nastavení. </em> </strong> pro pravděpodobnost, že budou napadeni, ale <a href="https://thepcspy.com/read/making-ssh-secure/">prošel jsem několika návrhy na svém blog</a> . alespoň bych navrhl:</p><ul> <li>přihlášení pomocí klíčů. zakázat přihlášení heslem.</li> <li>přesuňte jej z portu 22. použijte něco šíleného v rozsahu 20000-60000.</li> <li>použijte <code>fail2ban</code> zakazovat lidem, kteří to najdou, a pokusit se to přenést.</li> </ul><p>zabere vám to méně než 10 minut a oni vás vezmou z 1/10000 šance, že se dostanou do pravděpodobnosti tak malé, že na světě není dost papíru, aby mohl napsat její zlomek. vše za předpokladu, že jste opatrní s vaším klíčem, má vlastní přístupové fráze a vy nebudete trubat vaše pověření po celé síti.</p><p>pokud jde o přístup k tomuto serveru ssh z internetu, můžete čelit překážkám v místní síti. pokud je počítač za routerem nat (např. většina domácích sítí) bez přímého příchozího přístupu z internetu, možná budete muset podívat na <a href="https://portforward.com/">přesměrování portů</a> . samozřejmě, pokud nepotřebujete přístup mimo síť, přeskočení tohoto kroku zajistí zabezpečení sítě.</p> <p>ano, můžete, protokol apache vám poskytuje informace o lidech, kteří navštívili váš web, včetně robotů a pavouků. vzory, které můžete zkontrolovat:</p><ul> <li>někdo podal více žádostí v méně než druhém nebo akceptovaném časovém rámci.</li> <li>přístup k zabezpečené nebo přihlašovací stránce vícekrát v jednominutovém okně.</li> <li>přístup na neexistující stránky pomocí různých parametrů dotazu nebo cesty.</li> </ul><p>skalp apache <a href="http://code.google.com/p/apache-scalp/">http://code.google.com/p/apache-scalp/</a> je velmi dobrý v dělání všech výše uvedených věcí</p> <p>s ulimitem jsou nějaké problémy. zde je užitečné přečíst si toto téma: <a href="http://coldattic.info/shvedsky/pro/blogs/a-foo-walks-into-a-bar/posts/40">omezení času a spotřeby paměti programu v linux</a> , což vede k nástroji <a href="https://github.com/pshved/timeout">timeout</a> , který vám umožní proces v kleci (a jeho vidličky) ) podle času nebo spotřeby paměti.</p><p>nástroj timeout vyžaduje perl 5+ a <code>/proc</code> připojený souborový systém. poté zkopírujete nástroj do např. <code>/usr/local/bin</code> jako tak:</p><pre><code>curl https://raw.githubusercontent.com/pshved/timeout/master/timeout | \ sudo tee /usr/local/bin/timeout &amp;&amp; sudo chmod 755 /usr/local/bin/timeout </code></pre><p>poté můžete svůj proces „klecovat“ podle spotřeby paměti jako ve vaší otázce:</p><pre><code>timeout -m 500 pdftoppm sample.pdf </code></pre><p>nebo můžete použít <code>-t &lt;seconds&gt;</code> a <code>-x &lt;hertz&gt;</code> pro omezení procesu podle času nebo omezení cpu.</p><p>způsob, jakým tento nástroj funguje, je několikanásobná kontrola za sekundu, pokud proces tření nepřesáhl stanovené hranice. to znamená, že ve skutečnosti existuje malé okno, ve kterém by proces <em> mohl potenciálně </em> být nadměrně odebírat před vypršením časového limitu a proces zabije.</p><p>správnější přístup by tedy pravděpodobně zahrnoval cgroups, ale to je mnohem více zapojeno do nastavení, i když byste použili docker nebo runc, což mimo jiné nabízí uživatelsky příjemnější abstrakci kolem cgroups.</p> <p>myslím, že se to opravdu rozpadne na váš provoz. pomalejší hardware, pomalejší (již pomalejší) generování stránky. není to specifické pro wp, je to stejné pro všechny velké php skripty.</p><p>pokud dostanete serverový hit každou chvíli, jako na dev boxu nebo rodinném blogu, není to žádný velký problém. bude to jen vyplivnout stránky pomaleji. dostanete-li pravidelně souběžné zásahy, vaše stránky se dostanou z webu poměrně snadno.</p><p>všimněte si také, že mnoho low-end sdílené host směšuje více lokalit na low-end hardware. je to samozřejmě ne tak nízké, jako to, na co jste se připojili, ale nečekal bych, že velký rozdíl ve výkonu ve srovnání s přeplněným sdíleným serverem.</p> <p>samozřejmostí je autentizace klienta. může být použit ke zlepšení zabezpečení v kombinaci s přístupovým heslem nebo čipovou kartou nebo jako pohodlná náhrada za zadání hesla.</p><p>zajímavý návrh v tomto kontextu je <a href="http://webid.info/">webid single sign on protocol</a> .</p><p>hlavní problém s klientskými certifikáty je v tom, že je vázán na prohlížeč. takže pokud jste na jiném počítači, nemáte k nim přístup, pokud jste neučinili preventivní opatření.</p>