Server wird angegriffen jedoch keine logs

Rund um die Sicherheit des Systems und die Applikationen
Post Reply
memo1003
Posts: 24
Joined: 2005-07-08 23:34
 

Server wird angegriffen jedoch keine logs

Post by memo1003 »

Hallo habe seit einpaar tagen das selbe problem.
Mein server wird von einem ip angegriffen, während dem angriff können keine seiten aufgerufen werden. "Seite kann nicht angezeigt werden"
Die Ip wird nirgendswo geloggt, bei apache2 warn nicht und auch nirgendswo anders. Alle anderen IP´s werden geloggt.

So ich gebe ein netstat -tplaen ich sehe dann eine IP der ca 60 verbindungen hat. Nur diese ip wird nirgends geloggt. Ich deneke mal der greift direkt die IP an.

Ich gebe ein iptables -I input -s (ip des angreifers) -j DROP

danach /etc/init.d/apache2 restart und wegg is es alles geht wieder, biss dieser person einen neuen IP bekommt denke das er sich neu verbindet ins internet.

Was kann ich da machen? bei IP trace wird die IP nicht aufgelöst es kommt einfach der fehler time out. sogar während des angriffs.

Server ist von s4y linux suse und confixx.

jedoch hat glaube ich es nichts mit dem webserver zu tun sondern direkt mit dem server.

Habe schon s4y angerufen die konnten keine infos geben, haben angeboten gegen einen bestimmten preis einen firewall zu instalieren der dann eine IP höchstens 10 verbindungen zulässt.

falls ihr irgendwelche loggs braucht kann ich es sofort reinstellen.

Danke schonmal im voraus
aquajo
Posts: 145
Joined: 2003-02-25 21:07
Contact:
 

Re: Server wird angegriffen jedoch keine logs

Post by aquajo »

Kann es seien, dass dein Apache nur maximal 60 Verbindungen annimmt, und der Angreifer einfach 60 Verbindungen aufmacht, aber keine Daten anfordert?!
memo1003
Posts: 24
Joined: 2005-07-08 23:34
 

Re: Server wird angegriffen jedoch keine logs

Post by memo1003 »

wo kann ich das einsehen? in httpd.conf habe ich nichts gefunden.

könnte es sein das es vieleicht vom my.cnf her kommt?
die sieht so aus:

Code: Select all

[client]
#password	= your_password
port		= 3306
socket		= /var/lib/mysql/mysql.sock


[mysqld]
port		= 3306
socket		= /var/lib/mysql/mysql.sock
skip-locking 
skip-innodb 
query_cache_limit=1M 
query_cache_size=32M 
query_cache_type=1 
max_connections=2000 
interactive_timeout=100 
wait_timeout=100 
connect_timeout=10 
thread_cache_size=128 
key_buffer=16M 
join_buffer=1M 
max_allowed_packet=16M 
table_cache=1024 
record_buffer=1M 
sort_buffer_size=2M 
read_buffer_size=2M 
max_connect_errors=10

thread_concurrency=4 
myisam_sort_buffer_size=64M 
server-id       = 1

[safe_mysqld]
err-log=/var/lib/mysql/mysqld.log

[mysqldump]
quick
max_allowed_packet = 16M

[mysql]
no-auto-rehash


[isamchk]
key_buffer = 256M
sort_buffer = 256M
read_buffer = 2M
write_buffer = 2M

[myisamchk]
key_buffer = 256M
sort_buffer_size = 256M
read_buffer = 2M
write_buffer = 2M

[mysqlhotcopy]
interactive-timeout
Es läuft ein foren server drauf (phpbb hosting)
aquajo
Posts: 145
Joined: 2003-02-25 21:07
Contact:
 

Re: Server wird angegriffen jedoch keine logs

Post by aquajo »

memo1003 wrote:wo kann ich das einsehen? in httpd.conf habe ich nichts gefunden.
Bei mir gibbet nen Entrag 'MaxClients' ...
memo1003
Posts: 24
Joined: 2005-07-08 23:34
 

Re: Server wird angegriffen jedoch keine logs

Post by memo1003 »

bei mir gibts das nicht.
Kannst du mal bitte die ganze zeile reinkopieren?
aquajo
Posts: 145
Joined: 2003-02-25 21:07
Contact:
 

Re: Server wird angegriffen jedoch keine logs

Post by aquajo »

da fehlen nur noch viele Leerzeichen/Tabs und die Zahl, ist also die Zeile.

Es kann natürlich seien das die Option irgendwo anders konfiguriert wird, in einer Datei die included wird, oder garnicht gesetzt wird und ein defaultwert genommen wird der einkompiliert ist.
lord_pinhead
Posts: 774
Joined: 2004-04-26 15:57
 

Re: Server wird angegriffen jedoch keine logs

Post by lord_pinhead »

Eine Möglichkeit besteht noch Kerneloptionen zu setzen in /proc

Code: Select all

EXTDEV=eth0

echo 1 > /proc/sys/net/ipv4/tcp_abort_on_overflow
echo 30 > /proc/sys/net/ipv4/tcp_fin_timeout
# Sperre Verbindungsaufbau nach 3 SYN-Paketen
# Standard ist 6
echo 3 > /proc/sys/net/ipv4/tcp_syn_retries
# Sperre Verbindungsaufbau nach 3 SYN/ACK-Paketen
# Standard ist 6
echo 3 > /proc/sys/net/ipv4/tcp_synack_retries 

# Routing und Arpschutz
echo 0 > /proc/sys/net/ipv4/conf/$EXTDEV/accept_source_route
echo 2 > /proc/sys/net/ipv4/conf/$EXTDEV/rp_filter
echo 0 > /proc/sys/net/ipv4/conf/$EXTDEV/accept_redirects
echo 1000 > /proc/sys/net/ipv4/neigh/$EXTDEV/locktime
echo 0 > /proc/sys/net/ipv4/conf/$EXTDEV/proxy_arp

iptables -A INPUT  -i $EXTDEV -p tcp --dport 80 -j LOG  --log-prefix "Apache Zugriff " --log-level 6 -m limit --limit 3/m
Das sollte eigentlich schon reichen um den DoS zu unterbinden. Den Apache kannst du noch zusätzlich Konfigurieren mit den maxClients, was aber glaub ich nicht mehr erforderlich sein sollte. Aber Doppelt hält besser ;)

Code: Select all

MaxClients 10
Das kommt dann in die httpd.conf rein bzw. du musst es umändern.
User avatar
Joe User
Project Manager
Project Manager
Posts: 11191
Joined: 2003-02-27 01:00
Location: Hamburg
Contact:
 

Re: Server wird angegriffen jedoch keine logs

Post by Joe User »

Du hast drei CPUs im System?

Bitte zur httpd.conf hinzufügen und/oder vorhandene Optionen ersetzen:

Code: Select all

Timeout 300
KeepAlive On
MaxKeepAliveRequests 100
KeepAliveTimeout 15
<IfModule prefork.c>
    StartServers         5
    MinSpareServers      5
    MaxSpareServers     10
    ServerLimit        150
    MaxClients         150
    MaxRequestsPerChild  0
</IfModule>
<IfModule worker.c>
    StartServers         2
    MinSpareThreads     25
    MaxSpareThreads     75
    MaxClients         150
    ThreadsPerChild     25
    MaxRequestsPerChild  0
</IfModule>
my.cnf (Pfade anpassen!):

Code: Select all

[client]
port                  = 3306
socket                = /var/run/mysqld/mysqld.sock

[mysqld_safe]
err-log               = /var/log/mysql/mysql.err

[mysqld]
user                  = mysql
pid-file              = /var/run/mysqld/mysqld.pid
socket                = /var/run/mysqld/mysqld.sock
log-error             = /var/log/mysql/mysqld.err
basedir               = /usr
datadir               = /var/lib/mysql
tmpdir                = /tmp
language              = /usr/share/mysql/english
bind-address          = 127.0.0.1
port                  = 3306
server-id             = 1
skip-locking
skip-networking
skip-name-resolve
skip-external-locking
local-infile = 0
key_buffer_size = 64M
sort_buffer_size = 4M
read_buffer_size = 1M
read_rnd_buffer_size = 512K
myisam_sort_buffer_size = 8M
max_allowed_packet = 16M
net_buffer_length = 8K
thread_stack = 128K
thread_cache = 8
table_cache = 256
query_cache_type = 1
query_cache_size = 16M
query_cache_limit = 1M
thread_concurrency = 2
skip-innodb
#innodb_buffer_pool_size = 32M
#innodb_additional_mem_pool_size = 4M
#innodb_data_home_dir = /var/lib/mysql/
#innodb_log_arch_dir = /var/lib/mysql/
#innodb_log_group_home_dir = /var/lib/mysql/
#innodb_data_file_path = ibdata1:10M:autoextend:max:128M
#innodb_log_file_size = 8M
#innodb_log_buffer_size = 8M
#innodb_log_files_in_group = 2
#innodb_flush_log_at_trx_commit = 1
#innodb_lock_wait_timeout = 50
#bdb_cache_size = 4M
#bdb_max_lock = 10000

[mysqldump]
quick
max_allowed_packet = 16M

[mysql]
#no-auto-rehash
#safe-updates

[isamchk]
key_buffer_size = 64M
sort_buffer_size = 4M
read_buffer_size = 1M
write_buffer_size = 1M

[myisamchk]
key_buffer_size = 64M
sort_buffer_size = 4M
read_buffer_size = 1M
write_buffer_size = 1M

[mysqlhotcopy]
interactive-timeout
php.ini anpassen:

Code: Select all

sed 's/(.*allow_persistent).*/1 = Off/g' -i /path/to/php.ini
MySQL und Apache restarten.
PayPal.Me/JoeUserFreeBSD Remote Installation
Wings for LifeWings for Life World Run

„If there’s more than one possible outcome of a job or task, and one
of those outcomes will result in disaster or an undesirable consequence,
then somebody will do it that way.“ -- Edward Aloysius Murphy Jr.
memo1003
Posts: 24
Joined: 2005-07-08 23:34
 

Re: Server wird angegriffen jedoch keine logs

Post by memo1003 »

@Joe User eigentlich ist nur ein CPU,

Code: Select all

Timeout 300 
KeepAlive On 
MaxKeepAliveRequests 100 
KeepAliveTimeout 15 
<IfModule prefork.c> 
    StartServers         5 
    MinSpareServers      5 
    MaxSpareServers     10 
    ServerLimit        150 
    MaxClients         150 
    MaxRequestsPerChild  0 
</IfModule> 
<IfModule worker.c> 
    StartServers         2 
    MinSpareThreads     25 
    MaxSpareThreads     75 
    MaxClients         150 
    ThreadsPerChild     25 
    MaxRequestsPerChild  0 
</IfModule> 
hat funktioniert danke dafür vielmals, aber my.cnf hat nicht funktioniert, alle pfade habe ich richtig geändert. Sobald ich es so ändere ist mysql nicht erreichbar. Ich habe die pfade von meinem orig my.cnf genommen. Kann ja eigentlich nicht falsch sein oder?

@Lord_Pinhead Danke für dein tip nur problem ist habe nicht gefunden o dies reingehört:

Code: Select all

EXTDEV=eth0 

echo 1 > /proc/sys/net/ipv4/tcp_abort_on_overflow 
echo 30 > /proc/sys/net/ipv4/tcp_fin_timeout 
# Sperre Verbindungsaufbau nach 3 SYN-Paketen 
# Standard ist 6 
echo 3 > /proc/sys/net/ipv4/tcp_syn_retries 
# Sperre Verbindungsaufbau nach 3 SYN/ACK-Paketen 
# Standard ist 6 
echo 3 > /proc/sys/net/ipv4/tcp_synack_retries 

# Routing und Arpschutz 
echo 0 > /proc/sys/net/ipv4/conf/$EXTDEV/accept_source_route 
echo 2 > /proc/sys/net/ipv4/conf/$EXTDEV/rp_filter 
echo 0 > /proc/sys/net/ipv4/conf/$EXTDEV/accept_redirects 
echo 1000 > /proc/sys/net/ipv4/neigh/$EXTDEV/locktime 
echo 0 > /proc/sys/net/ipv4/conf/$EXTDEV/proxy_arp 

iptables -A INPUT  -i $EXTDEV -p tcp --dport 80 -j LOG  --log-prefix "Apache Zugriff " --log-level 6 -m limit --limit 3/m
habe nur mal die MaxClients 10 ind httpd.conf eingefügt. Auch dir vielmals danke.
andreask2
Posts: 696
Joined: 2004-01-27 14:16
Location: Aachen
 

Re: Server wird angegriffen jedoch keine logs

Post by andreask2 »

memo1003 wrote:[..]aber my.cnf hat nicht funktioniert, alle pfade habe ich richtig geändert. Sobald ich es so ändere ist mysql nicht erreichbar. Ich habe die pfade von meinem orig my.cnf genommen. Kann ja eigentlich nicht falsch sein oder?
Es wird sinnvollerweise "skip-networking" verwendet, das führt aber dazu, dass der MySQL-Server nicht mehr per TCP/IP bzw. localhost erreichbar ist, sondern nur noch per Unix-Socket "/var/run/mysqld/mysqld.sock"

Falls Du z.B. mit PHP fest eine Verbindung per TCP/IP konfiguriert hast, kannst Du im Manual nachlesen, wie man an Stelle eines Hostnamens zu einem lokalen Socket verbindet: http://de3.php.net/mysql_connect
memo1003
Posts: 24
Joined: 2005-07-08 23:34
 

Re: Server wird angegriffen jedoch keine logs

Post by memo1003 »

Aha... danke dir vielmals, jetzt klappt es
eof__
Posts: 30
Joined: 2005-07-12 17:40
 

Re: Server wird angegriffen jedoch keine logs

Post by eof__ »

php.ini anpassen:

Code: Select all

sed 's/(.*allow_persistent).*/1 = Off/g' -i /path/to/php.ini
...
Wobei das noch in eine Datei umgeleitet werden will, richtig?
Ich glaube mit Perl geht das ersetzen und schreiben, mit sed
nur das ersetzen.

:wink:
User avatar
Joe User
Project Manager
Project Manager
Posts: 11191
Joined: 2003-02-27 01:00
Location: Hamburg
Contact:
 

Re: Server wird angegriffen jedoch keine logs

Post by Joe User »

eof__ wrote:Wobei das noch in eine Datei umgeleitet werden will, richtig?
GNU sed ab Version 4 besitzt hierfür die Option -i (man sed).
eof__ wrote:Ich glaube mit Perl geht das ersetzen und schreiben, mit sed
nur das ersetzen.
sed kann ebenfalls Beides ;)

IMO ganz brauchbar:
http://sed.sourceforge.net/sedfaq.html
http://www.student.northpark.edu/pement ... d1line.txt
PayPal.Me/JoeUserFreeBSD Remote Installation
Wings for LifeWings for Life World Run

„If there’s more than one possible outcome of a job or task, and one
of those outcomes will result in disaster or an undesirable consequence,
then somebody will do it that way.“ -- Edward Aloysius Murphy Jr.
eof__
Posts: 30
Joined: 2005-07-12 17:40
 

Re: Server wird angegriffen jedoch keine logs

Post by eof__ »

Alles klar. Gibts hier auch.
Vermutlich habe ich beim Testen was falsch gemacht.
"The -i option is a non-standard FreeBSD extension
and may not be available on other operating systems."
Lese grade Useless Use of cat award:twisted:
lord_pinhead
Posts: 774
Joined: 2004-04-26 15:57
 

Re: Server wird angegriffen jedoch keine logs

Post by lord_pinhead »

memo1003 wrote:@Joe User eigentlich ist nur ein CPU,

@Lord_Pinhead Danke für dein tip nur problem ist habe nicht gefunden o dies reingehört:
Pass auf, relativ easy. Mach eine Datei in deinen Homedir (touch ~/proc.sh && chmod +x ~/proc.sh) dann mach die Datei mit einen Editor auf den du magst und pastest einfach den Code mal rein:

Code: Select all

#!/bin/bash
EXTDEV=eth0

echo 1 > /proc/sys/net/ipv4/tcp_abort_on_overflow
echo 30 > /proc/sys/net/ipv4/tcp_fin_timeout
echo 3 > /proc/sys/net/ipv4/tcp_syn_retries
echo 3 > /proc/sys/net/ipv4/tcp_synack_retries
echo 0 > /proc/sys/net/ipv4/conf/$EXTDEV/accept_source_route
echo 2 > /proc/sys/net/ipv4/conf/$EXTDEV/rp_filter
echo 0 > /proc/sys/net/ipv4/conf/$EXTDEV/accept_redirects
echo 1000 > /proc/sys/net/ipv4/neigh/$EXTDEV/locktime
echo 0 > /proc/sys/net/ipv4/conf/$EXTDEV/proxy_arp

iptables -A INPUT  -i $EXTDEV -p tcp --dport 80 -j LOG  --log-prefix "Apache Zugriff " --log-level 6 -m limit --limit 3/m
Dann mit ~/proc.sh mal ausführen und schon sollte der Käse gegessen sein :) Sorry wenn ich etwas verwirrend geredet habe. Kurzum, die Netzwerkoptionen die der Linuxkernel hat werden etwas abgeändert und sollte eigentlich schon relativ nutzbringend sein, jedenfalls bin ich bisher recht glücklich damit und schon so manchen Versuch einer Serverauslastung dadurch entgangen :)

Btw.: Mach mal man iptables , das durchlesen und dann mal ein Script überlegen wie du dann auch noch allgemeine DoS unterbinden kannst ;) Google ist auch ein guter Freund wenn dir nix einfällt :)
User avatar
Joe User
Project Manager
Project Manager
Posts: 11191
Joined: 2003-02-27 01:00
Location: Hamburg
Contact:
 

Re: Server wird angegriffen jedoch keine logs

Post by Joe User »

Warum /root/proc.sh statt /etc/sysctl.conf?
PayPal.Me/JoeUserFreeBSD Remote Installation
Wings for LifeWings for Life World Run

„If there’s more than one possible outcome of a job or task, and one
of those outcomes will result in disaster or an undesirable consequence,
then somebody will do it that way.“ -- Edward Aloysius Murphy Jr.
lord_pinhead
Posts: 774
Joined: 2004-04-26 15:57
 

Re: Server wird angegriffen jedoch keine logs

Post by lord_pinhead »

Wäre auch möglich, aber dann müsste er ja rebooten :) Hab ich aber net dran gedacht *fg* Ich meld glaub ich mal Urlaub an irgendwo, wo es keine Rechner gibt :D
captaincrunch
Userprojekt
Userprojekt
Posts: 7066
Joined: 2002-10-09 14:30
Location: Dorsten
Contact:
 

Re: Server wird angegriffen jedoch keine logs

Post by captaincrunch »

Seit wann muss man für sysctl-Ã?nderungen rebooten?
DebianHowTo
echo "[q]sa[ln0=aln256%Pln256/snlbx]sb729901041524823122snlbxq"|dc
lord_pinhead
Posts: 774
Joined: 2004-04-26 15:57
 

Re: Server wird angegriffen jedoch keine logs

Post by lord_pinhead »

Stimmt, sysctl -p tuts auch :roll:
Post Reply