Losowo wybrane artykuły

squid

Transparentne proxy w Squid

W dużych sieciach trudno jest wymóc na użytkownikach obowiązek korzystania z serwera proxy. Wielu po reinstalacji systemu zapomina o ponownej konfiguracji przeglądarki. Rozwiązaniem tej kwesti jest wymuszenie komunikacji z serwerami www za pośrednictwem serwera proxy. Aby tego dokonać musimy mieć skompilowanego squida-a z opcją:'--enable-linux-netfilter'. Piewrszym krokiem jest odpowiednie skonfigurowanie squid-a. W tym celu edytujemu plik squid.conf. W zależności od wersji na której pracujemy dokonujemy następujących modyfikacji:

  • Squid 2.5

  • httpd_accel_host virtual
    httpd_accel_port 80
    httpd_accel_with_proxy on
    httpd_accel_single_host off
    httpd_accel_uses_host_header on
  • Squid 2.6

  • http_port 3128 transparent

Teraz (przy założeniu że squid słucha np. na porcie 3128 i uruchomiony jest na komputerze pełniącym rolę bramy sieciowej - natomiast eth1 to wewnętrzny interfejs) dodajesz do firewalla prostą regułkę:
iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 80 -j REDIRECT --to-port 3128 Jeśli mamy więcej wewnętrznych interfejsów i chcemy żeby na każdym działał transparentnie Squid dodajemy poniższą regułkę:
iptables -t nat -I PREROUTING -p tcp --dport 80 -j REDIRECT --to-ports 3128
Na koniec restartujemy firewalla, squid-a i możemy się cieszych przezroczystym proxy.

securetty

Blokada konsoli dla root-a

Złym nawykiem jest siedzenie na koncie root-a, przeważnie korzystamy z konta zwykłego uzytkownika, przełączając sie na konto administratora dopiero kiedy jest to konieczne. Wówczas mamy do dyspozycji takie polecenia jak su czy sudo. Jeśli chcemy możemy na stałe zablokować logowanie się z konsoli edytując plik /etc/securetty a następnie komentując wszystkie wpisy (tty1, tty2...). Chciałbym tu powrócić do postu Dodatkowe konsole tam po aktywacji dodatkowych konsol jeśli już koniecznie chcemy logować sie jako root, musimy uzupełnić nowo aktywowane konsole (tty8, tty9) w pliku /etc/securetty

PHP Warning: strftime

PHP Warning: strftime(): It is not safe to rely on the system's timezone settings...

Po aktualizacji PHP do wersji 5.3 możemy zapewnie pojawi się następujące ostrzeżenie:

 PHP message: PHP Warning:  strftime(): It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the
date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We
selected the timezone 'UTC' for now, but please set date.timezone to select your timezone.

Naprawa błędu polega na skonfigurowaniu odpowiedniej strefy czasowej. Można zrealizować to na kilka sposbów w zależności od sposobu dostępu do konfiguracji PHP.

  • Jeśli mammy dostęp do pliku php.ini możemy skonfigurować globalnie strefę czasową dodając opcję: date.timezone = "Europe/Warsaw".
  • W przypadku braku dostępu do konfiguracji serwera PHP, możemy ustawić strfę w pliku .htaccess poprzez dodanie wpisu: php_value date.timezone "Europe/Warsaw"
  • Korzystając z PHP-FPM osobno do każdej konfiguracji pool można zdefiniować strefy: php_admin_value[date.timezone] = 'Europe/Paris'
  • Nie posiadając ww. uprawnień nie stoimy na straconej pozycji. Do pliku php, który generuje nam ostrzeżenie dodajemy na początku: date_default_timezone_set('Europe/Warsaw');

I to w zasadzie wszytsko, oczywiście Europe/Warsaw jest tylko przykadową strefą. Listę stref czasowych znajdziemy pod tym adresem: http://php.net/manual/pl/timezones.php.

ntop

ntp - pobieranie i synchronizacja czasu z zegarami atomowymi

Zegar systemu Linux może być zsynchronizowany z wzorcem czasowym zamieszczanym na serwerach ntp. Synchronizacja może się odbywać w czasie rzeczywistym, bądź jednorazowo. Do wykonania tej operacji potrzebujemy programu ntp. Po udanej mamy do dyspozycji polecenie ntpdate. Teraz musimy tylko znać adresy serwerów czasu np.tempus1.gum.gov.pl. Wydajemy polecenie ntpdate tempus1.gum.gov.pl i już mamy zaktualizowaną datę i czas.
Trzeba jadnak pamiętać o dwóch rzeczach. Warunkiem do synchronizacji czasu przez protokół ntp jest brak blokady portu UDP 123 przez naszego firewalla. Drugą sprawą jest aktualizacja synchronizacji. Możemy skorzystać z crona.
Wystarczy storzyć skrypt, który codziennie będzie przeprowadzał synchronizację z serwerem czasu.W tym celu wykonujemy następujace kroki:

  • tworzymy plik touch /etc/cron.daily/czas
  • zmieniamy prawa dostępu chmod ug+x /etc/cron.daily/czas
  • echo '#!/bin/sh' > /etc/cron.daily/czas
  • echo "ntpdate -u tempus1.gum.gov.pl" >> /etc/cron.daily/czas
  • Jeśli chcemy zsynchronizowac czas systemowy z czasem zegara sprzętowego:
    echo "/sbin/hwclock --systohc" >> /etc/cron.daily/czas

Jeszcze musimy upewnić sie czy czas mamy ustawiony na czas lokalny czy uniwersalny.W tym celu wydajemy polecenie timeconfig, wybieramy opcję No. Później wybieramy strefę czasową: Europe/Warsaw.