Zamiana tabulatora na spację [bash]

Bez kategorii Komentarze (0) »

Dziś ponownie zastanawiałem się jak to zamieniałem w pliku tabulacje na spacje.

zadanie wykonałem i w celu utrwalenia informacji dodaje to tutaj, przyda się dla potomnych ;-)

expand -t 2 plik.tabulacje > plik.spacje

Share and Enjoy:
  • Print
  • Facebook
  • Twitter
  • Google Bookmarks

pamięć – utylizacja przez poszczególne procesy

Bez kategorii Komentarze (2) »

czasem pytanie, który proces ile pamięci zabiera staje się kluczowe.

Jest top jest atop… ale nie do końca tego szukałem, szukałem po google i .. nic ciekawego w ręce nie wpadło.

Dlatego napisałem na szybko drobny skrypt:

#!/bin/bash
rm  /tmp/mem
for data in `ps -A | awk ‘{print $1,$4}’ | grep [0-9]`
do
let n=n+1
case $n in
1)
pid=$data
;;
2)
nazwa=$data
echo $nazwa: | tr \\n ” ” >> /tmp/mem
pmap $pid | grep total | awk ‘{print $2}’ >> /tmp/mem
let n=0
;;
esac
done
cat /tmp/mem | sort -g -k 2

#!/bin/bash

rm  /tmp/mem

for data in `ps -A | awk ‘{print $1,$4}’ | grep [0-9]`

do

let n=n+1

case $n in

1)

pid=$data

;;

2)

nazwa=$data

echo $nazwa: | tr \\n ” ” >> /tmp/mem

pmap $pid | grep total | awk ‘{print $2}’ >> /tmp/mem

let n=0

;;

esac

done

cat /tmp/mem | sort -g -k 2

Share and Enjoy:
  • Print
  • Facebook
  • Twitter
  • Google Bookmarks

Kompilacja Skryptów Bash

Bez kategorii Komentarze (0) »

Czasem chcemy ukryć nasze wypociny napisane w bash’u.

Najprościej skompilować skrypt i udostępniać jako binarkę ;-)

do dzieła:

wget http://www.datsi.fi.upm.es/~frosal/sources/shc-3.8.7.tgz

tar -xzvf shc-3.8.7.tgz

cd shc-3.8.7

make

make install

a teraz:

shc -f skrypt.sh

w wyniku otrzymamy plik

skrypt.sh.x

powodzonka

Share and Enjoy:
  • Print
  • Facebook
  • Twitter
  • Google Bookmarks

Automatyczna strona www dla każdej domeny

Bez kategorii Komentarze (0) »

Co mam na myśli przedstawię na podstawie domeny e-zabrze.pl.

Wiadomo, w DNS mamy ileś tam wpisów i dla nich vhosty w Apache, wszystko działa.

Ale…  chcemy aby dla nieistniejących subdomen serwer zwracał adres IP i kierował na stronę www, która będzie informować że ta właśnie domena jest na sprzedaż. Skoro wolna…to warto sprzedać ;-)

Więc na warsztat bierzemy DNS. W strefie e-zabrze.pl dodajemy wpis:

* CNAME e-zabrze.pl.

Od teraz wszelkie zapytania o nieistniejące nazwy zostaną skierowane do hosta e-zabrze.pl

Kolejny krok to Apacze.

Instalujemy moduł:

libapache2-mod-vhost-hash-alias

apt-get install libapache2-mod-vhost-hash-alias

Dodajemy vhosta:

<VirtualHost *:80>

ServerAdmin admin@antynet.pl

VirtualDocumentRoot /home/sites/dynamic/mass

CustomLog /var/log/apache2/dynamic.e-zabrze.pl.log combined

ErrorLog syslog:facility

</VirtualHost>

Restart apache i zapytania będą kierowane do /home/sites/dynamic/mass.

Tam tworzymy index.php o zawartości zbliżonej do:

<?php

$host = $_SERVER['HTTP_HOST'];

?>

Sprzedam domenę <? echo $host; ?>

No i po całej zabawie.

Proste a ile radości ;-)

Share and Enjoy:
  • Print
  • Facebook
  • Twitter
  • Google Bookmarks

mod_security i logi czyli mlogc i AuditConsole

Ściąga Admina Komentarze (0) »

Postanowiłem opisać tutaj konfigurację aplikacji AuditConsole na którą będą wysyłane logi z mod_security i prezentowane na www (szczegóły na http://jwall.org/about)

Będę pisał w równoważnikach zdań bo tak jest krótko i treściwie,
a orginalna wersja jest pisana pod emacs-em w trybie org-mode więc sorrki za ewentualny rozjazd

1 dodatkowe paczki do kompilacji modsecurity

  • libcurl-devel
  • libxml2-devel
  • pcre-devel

2 kompilacja mlogc w modsecurity

  • cd modsecurity-apache_2.5.13
  • make mlogc
  • położenie skompilowanego obiektu
    • modsecurity-apache_2.5.13/rules/util/mlogc

3 przygotowanie środowiska

  • mkdir /etc/httpd/mlogc /etc/httpd/mlogc/logs
  • cp …/mlogc /etc/httpd/mlogc/mlogc
  • touch /etc/httpd/mlogc/mlogc.conf

4 instalacja AuditConsole

  • dowlnoad i unzip AuditConsole-0.4.2-4-standalone.zip z http://jwall.org/web/audit/console/download.jsp
  • sprawdzenie czy wersja java > 1.6 poleceniem java -version
  • zmiana użtkownika i grupy dla plików w [$AuditConsole_HOME]
  • download postgresql jdbc4 driver z http://jdbc.postgresql.org/download.html#current
  • cp postgresql-9.0-801.jdbc4.jar [$AuditConsole_HOME]/lib/
  • stworzenie nowej bazy postgresql dla obsługi w/w:
    • createdb [dbname] -O [owner]
  • chmod o+x [$AuditConsole]/bin/*.sh
  • konfiguracja portu Tomcata [$AuditConsole_HOME]/bin/catalina.sh w sekcji CONSOLE_HTTP_PORT=[port]
  • uruchomienie przez [$AuditConsole_HOME]/bin/startup.sh

5 konfiguracja AuditConsole

  • logowanie na www (uruchomiony zostanie wizzard)
    • http://[AuditConsole_host]:[port]/
    • admin/admin
  • wpisy dla wizzarda (dostępne później w menu System => Setup => Storage Engine
    • jdbc url: jdbc:postgresql://localhost:5432/[dbname]
    • User: [dbuser]
    • Password: [dbpass]
    • Storage Type: Database
    • Data directory: [$AuditConsole_HOME]/var/data
    • Database limit: 1024
  • dodanie sensora
    • menu System => Sensors => New Sensor
    • nadać [sensor_name] i [sensor_password]

6 konfiguracja mlogc

  • wpisy w /etc/httpd/mlogc/mlogc.conf
    CollectorRoot /etc/httpd/mlogc/logs
    ErrorLog mlogc-error.log
    ErrorLogLevel 3
    TransactionLog mlogc-transaction.log
    QueuePath mlogc-queue.log
    LockFile mlogc.lck
    ConsoleURI “http://[AuditConsole_host]:[port]/rpc/auditLogReceiver”
    SensorUsername “[sensor_name]”
    SensorPassword “[sensor_password]”
    LogStorageDir /etc/httpd/modsec/logs

7 konfiguracja modsecurity:

  • zmiana konfiguracji:
    SecAuditLogType Serial
    SecAuditLog logs/modsec_audit.log
  • na
    SecAuditLogType Concurrent
    SecAuditLogStorageDir /etc/httpd/modsec/logs
    SecAuditLog “|/etc/httpd/mlogc/mlogc /etc/httpd/mlogc/mlogc.conf”

inspiracja – amon :)

Date: 2011-06-10 15:26:56 CEST

HTML generated by org-mode 6.33x in emacs 23

Share and Enjoy:
  • Print
  • Facebook
  • Twitter
  • Google Bookmarks

httpd DoS i DDoS – iptables

Iptables, Usługi, Ściąga Admina Komentarze (0) »

Teraz z grubej rury blokada ;-)

iptables -N apache_dos
iptables -A INPUT -p tcp –dport 80 –syn -j apache_dos
iptables -A apache_dos -m hashlimit –hashlimit 2/sec –hashlimit-burst 30 \
–hashlimit-mode srcip –hashlimit-name apache_DDOS \
–hashlimit-htable-expire 30000 \
–hashlimit-htable-max 65535 -j ACCEPT
iptables -A apache_dos -j DROP

iptables -N apache_dos

iptables -A INPUT -p tcp –dport 80 –syn -j apache_dos

iptables -A apache_dos -m hashlimit –hashlimit 10/sec –hashlimit-burst 30 \

–hashlimit-mode srcip –hashlimit-name apache_DDOS \

–hashlimit-htable-expire 30000 \

–hashlimit-htable-max 65535 -j ACCEPT

iptables -A apache_dos -j DROP

Metoda chyba najpewniejsza i najprostsza, można zobaczyć efekty wykonując polecenie:

iptables -vL apache_dos

inspiracja – sow ;-)

Share and Enjoy:
  • Print
  • Facebook
  • Twitter
  • Google Bookmarks

Apache2 – mod_evasive

Usługi, Ściąga Admina Komentarze (0) »

Skoro dziś tak o DoS i DDoS to nie może zabraknąć mod_mod_evasive dla apache2.

apt-get install libapache2-mod-evasive

mcedit /etc/apache2/mods-available/mod-evasive.load

i wpisujemy:

#################################

LoadModule evasive20_module /usr/lib/apache2/modules/mod_evasive20.so
#<IfModule  mod_evasive20.c>
DOSHashTableSize 3097
DOSPageCount 10
DOSSiteCount 200
DOSPageInterval 2
DOSSiteInterval 2
DOSBlockingPeriod 10
DOSLogDir “/var/log/apache2/evasive”
DOSEmailNotify amon@antynet.pl
#</IfModule>

LoadModule evasive20_module /usr/lib/apache2/modules/mod_evasive20.so

<IfModule  mod_evasive20.c>

DOSHashTableSize 3097

DOSPageCount 10

DOSSiteCount 200

DOSPageInterval 2

DOSSiteInterval 2

DOSBlockingPeriod 10

DOSLogDir “/var/log/evasive”

DOSEmailNotify amon@antynet.pl

</IfModule>

######################################

Pamiętamy  utworzeniu i nadaniu odpowiednich uprawnień dla:

/var/log/evasive

Dla pewności włączamy moduł:

a2enmod  mod-evasive

restart apache2:

/etc/init.d/apache2 restart

inspiracja – sow ;-)

Share and Enjoy:
  • Print
  • Facebook
  • Twitter
  • Google Bookmarks

Apache2 QoS – DoS DDoS

Usługi, Ściąga Admina Komentarze (0) »

Jest fajny moduł do apacha2, który w pewnym stopniu blokuje ataki DoS oraz DDoS.

Oczywiście wszystko zależy od możliwości atakującego i naszych zasobów sieciowych oraz sprzętowych.

Ale do rzeczy.

Mowa o mod_qos

aktualna wersja na 10.06.2011:

cd /usr/src

wget http://netcologne.dl.sourceforge.net/project/mod-qos/mod_qos-9.57.tar.gz

tar zxvf mod_qos-9.57.tar.gz

cd mod_qos-9.57/apache2

apxs2 -i -c mod_qos.c

cd / etc/apache2/mods-available

mcedit qos.load

w zawartości:

##########################

LoadModule qos_module /usr/lib/apache2/modules/mod_qos.so
## QoS module Settings
<IfModule mod_qos.c>
# zezwalamy na polaczenia z  1000 różnych IP.
QS_ClientEntries 1000
# Kazde IP moze wykonac 40 polaczen
QS_SrvMaxConnPerIP 40
# Maksymalna ilosc rownoczesnych polaczen TCP
MaxClients 256
# Wylacz keep-alive gdy aktywnych jest polaczen
QS_SrvMaxConnClose 180
# zapytanie / czas odpowiedzi ( ubij polaczenia niczego niezadajace, DoS)
QS_SrvMinDataRate 150 1200
CustomLog               logs/qsaudit_log  ”%{qos-path}n%{qos-query}n”
</IfModule>

LoadModule qos_module /usr/lib/apache2/modules/mod_qos.so

## QoS module Settings

<IfModule mod_qos.c>

# zezwalamy na polaczenia z  1000 różnych IP.

QS_ClientEntries 1000

# Kazde IP moze wykonac 40 polaczen

QS_SrvMaxConnPerIP 40

# Maksymalna ilosc rownoczesnych polaczen TCP

MaxClients 256

# Wylacz keep-alive gdy aktywnych jest polaczen

QS_SrvMaxConnClose 180

# zapytanie / czas odpowiedzi ( ubij polaczenia niczego niezadajace, DoS)

QS_SrvMinDataRate 150 1200

</IfModule>

#####################################

Teraz aktywujemy moduł:

a2enmod qos

no i restartujemy apache2:

/etc/init.d/apache2 restart

Oczywiście gdy DDoS będzie pochodził z większej ilości IP jak określonych w QS_ClientEntries  to się powiedzie.

Dlatego ważne jest ustalić dokładnie parametry pracy modułu mając na uwadze wydolność naszej sieci oraz moc obliczeniową serwera.

inspiracja – sow ;-)


Share and Enjoy:
  • Print
  • Facebook
  • Twitter
  • Google Bookmarks

Apache2, mod_security2 i blokowanie skanerów

Usługi, Ściąga Admina Komentarze (0) »

Automatyczne skanery bezpieczeństwa skanują na ślepo,

odpalają bazę sygnatur i wykonują skanowanie.

Tego typu operacja z oczywistych względów wywoła całą masę 404 w logach apache2.

Więc dlaczego nie wykorzystać tego typu zależności?

SecRule RESPONSE_STATUS “@streq 404″ \
“phase:5,t:none,nolog,pass,setvar:ip.not_found_counter=+1,expirevar:ip.not_found_counter=60″
SecRule IP:NOT_FOUND_COUNTER “@gt 5″ “phase:1,t:none,log,block,msg:’Zbyt wiele 404′,id:’100003′,setvar:’tx.msg=%{rule.msg}’,setvar:tx.anomaly_score=+%{tx.error_anomaly_score}”
.

SecRule RESPONSE_STATUS “@streq 404″ \

“phase:5,t:none,nolog,pass,setvar:ip.not_found_counter=+1,expirevar:ip.not_found_counter=60″

SecRule IP:NOT_FOUND_COUNTER “@gt 5″ “phase:1,t:none,log,block,msg:’Zbyt wiele 404′,id:’100003′,setvar:’tx.msg=%{rule.msg}’,setvar:tx.anomaly_score=+%{tx.error_anomaly_score}”

powodzenia ;-)

inspiracja – sow :P

Share and Enjoy:
  • Print
  • Facebook
  • Twitter
  • Google Bookmarks

Quagga – No buffer space available

Ściąga Admina Komentarze (0) »

W logach OSPF można zobaczyć wpis:

No buffer space available; perhaps a kernel limit on # of multicast group membership
s has been exceeded

Powodem jest domyślna wartość

net.ipv4.igmp_max_memberships

wynosząca 20.

Nie pozostaje nic innego jak zmienić tę wartość na większą, np:

sysctl -w net.ipv4.igmp_max_memberships=400
sysctl -w net.ipv4.igmp_max_memberships=80
sysctl -p

powodzenia

Share and Enjoy:
  • Print
  • Facebook
  • Twitter
  • Google Bookmarks
WordPress - Hosting: Twój hosting - Skórka: N.Design Studio - Spolszczenie: Adam Klimowski.
RSS wpisów RSS komentarzy Zaloguj