Server

How To Restrict/Block IP Address In Apache Ubuntu?

I am going to show you example of how to restrict ip address in apache ubuntu. i explained simply step by step how to block ip address in apache ubuntu. it's simple example of apache block ip address. if you have question about apache restrict ip address access then i will give simple example with solution.

  • 4.5/5.0
  • Last updated 08 September, 2022
  • By Admin

In this post, i will show you how to restrict ip address to access our website in apache2 server in ubuntu 21.10, ubuntu 21.04, ubuntu 20.04, ubuntu 18.04 and ubuntu 16.04 server. we need to add Directory tag on config file and add "deny from". so let's see bellow solution:

Restrict/Block IP Address in Apache2:

Here, we will add Directory tag for restrict ip address. i added "111.111.111.111", you can replace which ip you want to block.

Let's run bellow command and update file as bellow:

sudo nano /etc/apache2/sites-available/000-default.conf

/etc/apache2/sites-available/000-default.conf

<VirtualHost *:80>
  # The ServerName directive sets the request scheme, hostname and port that
  # the server uses to identify itself. This is used when creating
  # redirection URLs. In the context of virtual hosts, the ServerName
  # specifies what hostname must appear in the request's Host: header to
  # match this virtual host. For the default virtual host (this file) this
  # value is not decisive as it is used as a last resort host regardless.
  # However, you must set it for any further virtual host explicitly.
  #ServerName www.example.com
  
  ServerAdmin webmaster@localhost
  DocumentRoot /var/www/html
  
  # Available loglevels: trace8, ..., trace1, debug, info, notice, warn,
  # error, crit, alert, emerg.
  # It is also possible to configure the loglevel for particular
  # modules, e.g.
  #LogLevel info ssl:warn
  
  ErrorLog ${APACHE_LOG_DIR}/error.log
  CustomLog ${APACHE_LOG_DIR}/access.log combined
  
  # For most configuration files from conf-available/, which are
  # enabled or disabled at a global level, it is possible to
  # include a line for only one particular virtual host. For example the
  # following line enables the CGI configuration for this host only
  # after it has been globally disabled with "a2disconf".
  #Include conf-available/serve-cgi-bin.conf
  
  <Directory /var/www/html>
     order allow,deny
     deny from 111.111.111.111
     allow from all
  </Directory>
         
</VirtualHost>

Now, let's restart apache2.

sudo service apache2 reload

After installing successfully, you can go to the browser and check your IP as like bellow and layout:

http://your_server_ip
OR
http://localhost

I hope it can help you...