Ok, wundert mich nur, da es ja nun immer mit diesen Einstellungen lief. Verfolge gerade noch die Spur mit den iptables. Wobei dies ja nicht im Zusammenhang mit einem imscp Update steht.
-
-
Ich habe nun mal das Script zum Sperren von Ländern etwas angepasst und nur einen Ländercode eingetragen. Aktuell ist die Last wieder im Normalzustand. Sollte es wirklich daran liegen, wundert mich nur die Verbindung mit dem imscp Update. Habt ihr auch "Ländersperren" aktiv und ggfs. einen Verbesserungsvorschlag? Danke euch!
Shell-Script- #!/bin/bash
- ### Block all traffic from AFGHANISTAN (af) and CHINA (CN). Use ISO code ###
- ISO="ve dz ml ar mn sd ro ly af vn id in bd pk kr my ph tw th cm lk ru"
- ### Set PATH ###
- IPT=/sbin/iptables
- WGET=/usr/bin/wget
- EGREP=/bin/egrep
- ### No editing below ###
- CBLIST=“countrydrop“
- ZONEROOT=“/var/iptables“
- IPTCBRESTORE=“/etc/sysconfig/iptables.cb“
- ALLOWPORTS=1
- MAXZONEAGE=7
- DLROOT=“http://www.ipdeny.com/ipblocks/data/countries“
- cleanOldRules(){
- $IPT -L $CBLIST > /dev/null 2>&1
- if [ $? = 0 ] ; then
- $IPT -D INPUT -j $CBLIST
- $IPT -D OUTPUT -j $CBLIST
- $IPT -D FORWARD -j $CBLIST
- fi
- TOPIP=`$IPT -L -n | grep Chain | cut -f 2 -d ‚ ‚ | grep ‚\-$CBLIST’`
- for i in $TOPIP
- do
- $IPT -F ${i}
- $IPT -X ${i}
- done
- $IPT -X $CBLIST
- }
- updateZoneFiles() {
- ZONEARCH=${ZONEROOT}/arch
- mkdir -p ${ZONEARCH}
- find ${ZONEROOT} -maxdepth 1 -mindepth 1 -ctime +${MAXZONEAGE} -exec mv {} ${ZONEARCH} \;
- for c in $ISO
- do
- # local zone file
- tDB=$ZONEROOT/$c.zone
- if [ -f $tDB ] ; then
- printf „Zone file %s is new enough – no update required.\n“ $tDB
- else
- # get fresh zone file if it is newer than MAXZONEAGE days
- $WGET -O $tDB $DLROOT/$c.zone
- fi
- done
- oldzones=`find ${ZONEROOT} -mindepth 1 -maxdepth 1 -type f -exec basename {} \; | cut -f 1 -d ‚.’`
- # Archive old zones no longer blocked
- for z in $oldzones ; do
- archme=${c}
- for c in $ISO ; do
- if [ $c = $z ] ; then archme=“X“; fi
- done
- if [ $archme = $z ] ; then
- mv ${archme} ${ZONEARCH}
- else
- printf „Working from previous zone file for %s\n“ ${z}
- fi
- done
- }
- createIPTLoadFile() {
- printf „# Generated by %s on“ $0 > ${IPTCBRESTORE}
- printf „%s “ `date` >> ${IPTCBRESTORE}
- printf „\n*filter\n“ >> ${IPTCBRESTORE}
- # Create CBLIST chain
- printf „:$CBLIST – [0:0]\n“ >> ${IPTCBRESTORE}
- printf „%s INPUT -j $CBLIST\n“ „-I“ > ${IPTCBRESTORE}.tmp
- printf „%s OUTPUT -j $CBLIST\n“ „-I“ >> ${IPTCBRESTORE}.tmp
- printf „%s FORWARD -j $CBLIST\n“ „-I“ >> ${IPTCBRESTORE}.tmp
- if [ „Z${ALLOWPORTS}“ = „Z“ ] ; then
- printf „Blocking all traffic from country – no ports allowed\n“
- else
- printf „%s $CBLIST -p tcp -m multiport ! –dports ${ALLOWPORTS} -j RETURN\n“ „-I“>> ${IPTCBRESTORE}.tmp
- fi
- for c in $ISO
- do
- # local zone file
- tDB=$ZONEROOT/$c.zone
- # country specific log message
- SPAMDROPMSG=“$c Country Drop“
- # Create drop chain for identified packets
- CBLISTDROP=${c}-${CBLIST}-DROP
- printf „:${CBLISTDROP} – [0:0]\n“ >> ${IPTCBRESTORE}
- printf „%s ${CBLISTDROP} -j LOG –log-prefix \“$SPAMDROPMSG\“\n“ „-A“ >> ${IPTCBRESTORE}.tmp
- printf „%s ${CBLISTDROP} -j DROP\n“ „-A“ >> ${IPTCBRESTORE}.tmp
- # Load IP ranges into chains correlating to first octet
- BADIPS=$(egrep -v „^#|^$“ $tDB)
- for ipblock in $BADIPS
- do
- topip=`echo $ipblock | cut -f 1 -d ‚.’`
- chainExists=`grep -c :${topip}-${CBLIST} ${IPTCBRESTORE}`
- if [ $chainExists = 0 ] ; then
- printf „Creating chain for octet %s\n“ ${topip}
- printf „:$topip-$CBLIST – [0:0]\n“ >> ${IPTCBRESTORE}
- sip=${topip}.0.0.0/8
- printf „%s $CBLIST -s ${sip} -j $topip-$CBLIST\n“ „-A“ >> ${IPTCBRESTORE}.tmp
- fi
- printf “ Adding rule for %s to chain for octet %s\n“ ${ipblock} ${topip}
- printf „%s $topip-$CBLIST -s $ipblock -j ${CBLISTDROP}\n“ „-A“ >> ${IPTCBRESTORE}.tmp
- done
- done
- cat ${IPTCBRESTORE}.tmp >> ${IPTCBRESTORE} && rm -f ${IPTCBRESTORE}.tmp
- printf „COMMIT\n# Completed on “ >> ${IPTCBRESTORE}
- printf „%s “ `date` >> ${IPTCBRESTORE}
- printf „\n“ >> ${IPTCBRESTORE}
- }
- directLoadTables() {
- # Create CBLIST chain
- $IPT -N $CBLIST
- $IPT -I INPUT -j $CBLIST
- $IPT -I OUTPUT -j $CBLIST
- $IPT -I FORWARD -j $CBLIST
- if [ „Z${ALLOWPORTS}“ = „Z“ ] ; then
- printf „Blocking all traffic from country – no ports allowed\n“
- else
- $IPT -I $CBLIST -p tcp -m multiport ! –dports ${ALLOWPORTS} -j RETURN
- fi
- for c in $ISO
- do
- # local zone file
- tDB=$ZONEROOT/$c.zone
- # country specific log message
- SPAMDROPMSG=“$c Country Drop“
- # Create drop chain for identified packets
- CBLISTDROP=${c}-${CBLIST}-DROP
- $IPT -N ${CBLISTDROP}
- $IPT -A ${CBLISTDROP} -j LOG –log-prefix „$SPAMDROPMSG“
- $IPT -A ${CBLISTDROP} -j DROP
- # Load IP ranges into chains correlating to first octet
- BADIPS=$(egrep -v „^#|^$“ $tDB)
- for ipblock in $BADIPS
- do
- topip=`echo $ipblock | cut -f 1 -d ‚.’`
- $IPT -L $topip-$CBLIST > /dev/null 2>&1
- if [ $? = 1 ] ; then
- printf „Creating chain for octet %s\n“ ${topip}
- $IPT -N $topip-$CBLIST
- sip=${topip}.0.0.0/8
- $IPT -A $CBLIST -s ${sip} -j $topip-$CBLIST
- fi
- printf “ Adding rule for %s to chain for octet %s\n“ ${ipblock} ${topip}
- $IPT -A $topip-$CBLIST -s $ipblock -j ${CBLISTDROP}
- done
- done
- }
- loadTables() {
- createIPTLoadFile
- ${IPT}-restore -n ${IPTCBRESTORE}
- #directLoadTables
- }
- # create a dir
- [ ! -d $ZONEROOT ] && /bin/mkdir -p $ZONEROOT
- # clean old rules
- cleanOldRules
- # update zone files as needed
- updateZoneFiles
- # create a new iptables list
- loadTables
- exit 0
-
-
Hello,
About your hight CPU usage
- Distro?
- Codename?
- Kernel version?
However, the migration processes are kernel processes. i-MSCP is not involved here. Please google about those migration processes.
You can try to mitigate your problem by running the following command:
If the problem get solved, you should either update your kernel to a newer version or make that parameter persistent.
About your swapiness (not related to your current problem)
Recommended swapiness is 10 for a server. 60 is the default value which means: You system will start to swap once 40% of your memory is used. That is very bad for a server.
About backup parameters
I don't understand why you're talking about the backup parameter here...
-
Hi @Nuxwin
ich habe nur festgestellt, dass immer Montags die Auslastung des System um kurz nach Mitternacht beginnt. Daraufhin habe ich mir die Cronjobs angeschaut und das Backup sowie jetzt auch das iptable script gefunden. Das das Problem erst nach dem Update auf Version 1.3.0 besteht habe ich es auf das Backup eingegrenzt.
Danke für die Hinweise.
-
-
Es lag nun tatsächlich an dem Script für die "Ländersperren". Wenn ich es mit mehreren Ländercodes laufen lasse, geht die CPU gleich wieder nach oben. Wenn ich bspw. 2 Codes nehmen bleibt alles ruhig. Kann ich mir nicht erklären.
Danke euch für die Unterstützung! -
Es lag nun tatsächlich an dem Script für die "Ländersperren". Wenn ich es mit mehreren Ländercodes laufen lasse, geht die CPU gleich wieder nach oben. Wenn ich bspw. 2 Codes nehmen bleibt alles ruhig. Kann ich mir nicht erklären.
Danke euch für die Unterstützung!
Could you elaborate a bit? What you mean by Ländersperren exactly? Please, try to be clear enough (at least for other users which could have the same problem).Thank you.
-
-
Ok.
Das Script holt sich die aktuellen IP's der unter "ISO" eingetragenen Ländercodes und blockt diese dann per iptables. Es können so bspw. keine Zugriffe mehr aus China, Russland etc. erfolgen.