Antynet.pl protestuje przeciwko podpisaniu przez Polskę umowy ACTA.
Dlaczego? Dlatego.

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

Ściągaj programy antywirusowe szybko na swój komputer!

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 ;-)

Ściągaj programy antywirusowe szybko na swój komputer!

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 ;-)

Ściągaj programy antywirusowe szybko na swój komputer!

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 ;-)


Ściągaj programy antywirusowe szybko na swój komputer!

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

Ściągaj programy antywirusowe szybko na swój komputer!

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

Ściągaj programy antywirusowe szybko na swój komputer!

PPPoE vlan i problem z MTU

Bez kategorii, Iptables, Ściąga Admina Komentarze (0) »

Po skonfigurowaniu koncentratora PPPoE na vlan pojawił się malutki problem.
Otóż stacje z MS działały prawidłowo ale z Ubuntu już nie, pingi działały prawidłowo ale próba otwarcia strony kończyła się niepowodzeniem.
Aby było śmieszniej strony zagraniczne w większości działały, polskie… w mniejszości ;-)
Generalnie na pierwszy rzut oka jakaś magia i/lub czeski błąd w testach.

Problemem okazało się zamieszanie z MTU, koncentrator pracuje na 1472, vlan na 1500. Synchronizacja tych wartości
nie przyniosła efektów. Więc tak na 100% gdzie problem to nie wiem, niemniej jednak przypomniałem sobie że kiedyś podobny problem był ze stroną
avon.com.
Wtedy zamiast martwić się MTU starczyło zainteresować się maksymalnym rozmiarem segmentu, czyli MSS.
Manipulacja tego pola także pozwala ustalać maksymalny rozmiar pakietu.
Więc pomijając zamieszanie z MTU vlan, eth, ppp zajmiemy się konfiguracją MSS.

iptables -A FORWARD -p tcp –tcp-flags SYN,RST SYN -j TCPMSS –clamp-mss-to-pmtu

Tym sposobem system samodzielnie wyliczy odpowiednie MSS dla połączenia.
Oczywiście problem z MTU został zażegnany ;-)

Dedykowany Serwer PPPoE , wysoka wydajność

Ściągaj programy antywirusowe szybko na swój komputer!

Prosty routing OSPF w Linux ( quagga)

Ściąga Admina Komentarze (0) »

Zalety tego routingu nie będę tutaj opisywać, konieczność oszczędzania numerków IP zmusiła mnie do znalezienia rozwiązania na wprowadzenie rozsądnej metody dynamicznego przydziału numerów IP dla klientów.
Padło na Radius(sql)/PPPoE/OSPF.
Całość powstała w konsorcjum szyman-amon, teraz opisze tylko zagadnienie uruchomienia OSPF, reszta może kiedyś …. z mojej strony PPPoE, Radiusa zostawiam szymanowi :P

instalujemy pakiet quagga.

Konfiguracja ospfd.conf na maszynie 1.

hostname router
password xxx
enable password xxxyyy
log file /var/log/ospf.log
log syslog
interface eth1
router ospf
ospf router-id 172.0.0.1
network 0.0.0.0/0 area 0.0.0.0
area 0.0.0.0 authentication message-digest
line vty

Konfiguracja ospfd.conf na maszynie 2.

hostname osiedle
password xxx
enable password xxxyyy
log file /var/log/ospf.log
log syslog
interface eth0
router ospf
ospf router-id 172.0.0.100
network 0.0.0.0/0 area 0.0.0.0
area 0.0.0.0 authentication message-digest
line vty

w debianie pamiętajmy o daemons:

zebra=yes
bgpd=no
ospfd=yes
ospf6d=no
ripd=no
ripngd=no
isisd=no

Po uruchomieniu tych konfiguracji zobaczycie w logach że wszystko wstaje, stara się połączyć ale… nic z tego. Tablice routingu nieuzupełnianą się. OSPF komunikuje się multicastem ;-) dlatego też musimy załączyć obsługę multicastu.

ip link set dev ethx allmulticast on

Teraz wszystko powinno poprawnie zadziałać. Oczywiście prawdę Ci powie

route -n

Ściągaj programy antywirusowe szybko na swój komputer!

Dodatkowa przestrzeń wymiany (SWAP) w Linux

Ściąga Admina Komentarze (0) »

Jeśli czytasz ten wpis to pewnie znaczy że skończył się swap na maszynie.
Najprościej podpiąć kolejny dysk i na nim zrobić swap, ale co jeśli kolejny dysk odpada, wolnej przestrzeni też nie ma?
Pozostaje utworzyć na jednej z partycji plik, który będzie pracował jako swap.

Zakładam że masz sporo wolnego miejsca na /home.

Tworzymy pusty plik o pojemności kolejnego swap:
dd if=/dev/zero of=/home/swap bs=1M count=10240

Formatujemy plik:
mkswap /home/swap

Włączamy kolejny swap:
swapon /home/swap

Sprawdzamy czy faktycznie system obsługuje dwa pliki wymiany:
swapon -s

Pamiętaj o fstab!

Ściągaj programy antywirusowe szybko na swój komputer!

Tuning linuxa – router 1GigE – ograniczenie przepustowości

Iptables, Ściąga Admina Komentarze (2) »

Standardowo skonfigurowany Linux, pracujący jako router w dużej sieci zaczyna się męczyć przy 250 Mbit/s. Okazało się tak na maszynie Debian / 2.80GHz / 1GB Ram / eth – 1GigE / ~800 klientów. Do tego oczywiście firewall oraz htb ( filtry mieszające ) no i BGP z dwoma operatorami. Taka maszyna w godzinach szczytu wykazywała load 1-2.5, ponadto poważnie wzrastała temperatura procesora.

Znasz ten problem?
Nasłuchałeś się o ograniczeniach transferu Linuxa?
Proponuje czytać dalej!

Jak zawsze rozwiązanie okazało się banalne, szybki tuning sysctl i nasza maszyna przy 600 Mbit/s pracuje z load 0.07 ;-)
Oczywiście komfort pracy w sieci wzrasta naprawdę zauważalnie.

Więc co zrobić?

net.ipv4.tcp_no_metrics_save = 1
net.ipv4.tcp_moderate_rcvbuf = 1
net.core.netdev_max_backlog = 2500
net.ipv4.core.rmem_default = 262144
net.ipv4.core.wmem_default = 262144

net.ipv4.tcp_rmem = 4096 87380 8388608

net.ipv4.tcp_wmem = 4096 87380 8388608
net.ipv4.tcp_mem = 8388608 8388608 8388608
net.ipv4.core.rmem_max = 8388608
net.ipv4.core.wmem_max = 8388608

Warto także stuningować obsługę arp:
echo 1 > /proc/sys/net/ipv4/conf/all/arp_filter

Twój Linux zatrzymał się na 250 Mbit/s to zobacz to:

W przypadku Linuxa z Quagga ( BGP ), opis tutaj to absolutna podstawa konfiguracji.
Pamiętaj też o rozsądnym zastosowaniu smp_affinity oraz wyłączeniu ( jeśli to możliwe ) modułów NAT.

powodzonka ;-)

Masz problem z samodzielnym uruchomieniem routera 1GigE opartego o Linux?
Zapraszamy do współpracy:
Usługa Instalacji Routera BGP opartego o LINUX

Ściągaj programy antywirusowe szybko na swój komputer!
WordPress - Hosting: Twój hosting - Skórka: N.Design Studio - Spolszczenie: Adam Klimowski.
RSS wpisów RSS komentarzy Zaloguj