Kroko Just another WordPress weblog

April 21, 2014

Cpanel Disable mod_security2 for a single domain

Filed under: Cpanel — admin @ 10:10 pm

Mod_security is an open source Apache module.

This can be considered as firewall for web applications. It secures the system from the attackers.

The following steps can be used to disable mod_security2 rule for one domain in cPanel servers.

1. Make the directory “/usr/local/apache/conf/userdata/std/2/username/domain.com

2. Create a file “vhost.conf” in the above location

3. Add the following lines :

———-

<IfModule mod_security2.c>

SecRuleEngine Off

</IfModule>

———-

To disable mod_security2 for a particular location :

———

<LocationMatch specify_the_path_here>

<IfModule mod_security2.c>

SecRuleEngine Off

</IfModule>

</LocationMatch>

———

To disable a particular mod_security2 rule :

———

<IfModule mod_security2.c>

SecRuleRemoveById give_ruleID_here

</IfModule>

———

Run the following script after making the changes.

———

/scripts/ensure_vhost_includes --user=username

———

This script will uncomment the following line in apache configuration and restart apache.

———–

Include “/usr/local/apache/conf/userdata/std/2/username/domain.com/*.conf”

March 7, 2014

Linux usbreset

Filed under: Linux — admin @ 10:35 am
Force Linux's USB stack to perform a port reset and re-enumerate a device using
 usbfs.
Note however, that reset followed by re-enumeration is _not_ the same thing as
 power-cycle followed by reconnect and re-enumeration.

Run the following commands in terminal:

  1. Compile the program:
    $ cc usbreset.c -o usbreset
    
  2. Get the Bus and Device ID of the USB device you want to reset:
    $ lsusb
    Bus 004 Device 002: ID 19d2:0016 ZTE WCDMA Technologies MSM
    Make our compiled program executable:
    
  3. $ chmod +x usbreset
    
  4. Execute the program with sudo privilege; make necessary substitution for <Bus>
  5.  and <Device> ids as found by running the lsusb command:
    $ sudo ./usbreset /dev/bus/usb/004/002  

code:

/* usbreset -- send a USB port reset to a USB device */

#include <stdio.h>
#include <unistd.h>
#include <fcntl.h>
#include <errno.h>
#include <sys/ioctl.h>

#include <linux/usbdevice_fs.h>

int main(int argc, char **argv)
{
    const char *filename;
    int fd;
    int rc;

    if (argc != 2) {
        fprintf(stderr, "Usage: usbreset device-filename\n");
        return 1;
    }
    filename = argv[1];

    fd = open(filename, O_WRONLY);
    if (fd < 0) {
        perror("Error opening output file");
        return 1;
    }

    printf("Resetting USB device %s\n", filename);
    rc = ioctl(fd, USBDEVFS_RESET, 0);
    if (rc < 0) {
        perror("Error in ioctl");
        return 1;
    }
    printf("Reset successful\n");

    close(fd);
    return 0;
}

March 5, 2014

.htaccess file to block IP’s coming from Nginx reverse proxy

Filed under: Cpanel — admin @ 9:16 pm

If you have a Nginx reverse proxy in front of your Apache webserver the .htaccess format is:

# ALLOW USER BY IP
order deny,allow
SetEnvIF X-Forwarded-For "1.2.3.4" DenyIP
SetEnvIF X-Forwarded-For "10." DenyIP
Deny from env=DenyIP
 

You must use X-Forward or it will not work unless the reverse proxy is setup in a certain way. As you can see, just update the IP’s you want blacklisted and they will be blocked. Yes, you can do the same thing with a firewall, but webmasters don’t have control of those.

Why?
The reason I did this recently is because of a Nginx + cPanel server setup running shared hosting. When a domain gets caught spamming due to insecure scripts or it’s getting hammered by an exploit, it is best to suspend the domain. Yes, but then when the client wants to work on it, they can’t.

« Newer PostsOlder Posts »

Powered by WordPress