Report this

What is the reason for this report?

Disable incoming requests on Public IP

Posted on July 6, 2014

Hi guys,

Set up a droplet having the private networking option enabled. My aim is to:

  1. Keep internet available on the droplet (so killing eth0 interface is not an option).
  2. Block all incoming traffic from the internet.
  3. Communicate with the droplet using the private IP (from another droplet).

I tried both these iptables (flipped order between two options), to absolutely no avail:

:INPUT ACCEPT [3:180]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [255:30170]
-A FORWARD -i eth0 -j DROP
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
COMMIT

and

:INPUT ACCEPT [3:180]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [255:30170]
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -i eth0 -j DROP
COMMIT

Testing the changes this way: Go on another droplet, and ssh using both of these: ssh username@targetpublicip and ssh username@targetprivateip

In both cases, both keep working fine.

When I tried just this in the iptables: iptables -I INPUT -i eth0 -j DROP

I couldn’t SSH using the private IP either.

I’m using the ams2 datacentre for both droplets.

Thanks and regards



This textbox defaults to using Markdown to format your answer.

You can type !ref in this text area to quickly search our full set of tutorials, documentation & marketplace offerings and insert the link!

These answers are provided by our Community. If you find them useful, show some love by clicking the heart. If you run into issues leave a comment, or add your own answer to help others.

First clear the existing iptables rules by running these commands

iptables -F
iptables -X

After you clean you can view the rules with

iptables -L

Then run in terminal the following rules

iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT DROP

allow loopback device, some software requires it

iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT

allow ssh connection

iptables -A INPUT -i eth0 -p tcp --dport 22 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -o eth0 -p tcp --sport 22 -m state --state ESTABLISHED -j ACCEPT

replace x.x.x.x with the droplet ip you want to allow connections with, this is for ipv4

iptables -A INPUT -s x.x.x.x -j ACCEPT
iptables -A OUTPUT -d x.x.x.x -j ACCEPT

Note: Save the iptables rules before restarting your droplet so they don’t get lost

The developer cloud

Scale up as you grow — whether you're running one virtual machine or ten thousand.

Get started for free

Sign up and get $200 in credit for your first 60 days with DigitalOcean.*

*This promotional offer applies to new accounts only.