0

I need to create a file to filter traffic.

It should work like this:

  • Input traffic from 192.168.5.0/24 should be blocked unless it's ICMP or from 192.168.5.200
  • Output traffic to 192.168.5.0/24 should be blocked unless it's ICMP or to 192.168.5.200
  • The remaining traffic should be allowed.

This is my solution:

iptables -P INPUT DROP
iptables -F INPUT
iptables -A INPUT -i eth0 -p ICMP -s 192.168.5.200 -j ACCEPT
iptables -A INPUT -i eth0 -s 192.168.5.0 -j DROP
iptables -A OUTPUT -o eth0 -p ICMP -d 192.168.5.200 -j ACCEPT
iptables -A OUTPUT -o eth0 -d 192.168.5.0 -j DROP
iptables -A OUTPUT ACCEPT
iptables -A INPUT ACCEPT

I'm new to iptables, so I appreciate any help I can get.

Daniela
  • 471
  • 7
  • 25

2 Answers2

1

You need to allow the incoming SSH. Add this to your script:

iptables -A INPUT -i eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -i eth0 -p tcp --dport ssh -j ACCEPT
iptables -A INPUT -i eth0 -p icmp -j ACCEPT

You can also take a look here on this link: Linux Iptables - Block All Incoming Traffic But Allow SSH

Chun
  • 2,230
  • 5
  • 24
  • 46
1

Try rules like this:

iptables -P INPUT ACCEPT
iptables -A INPUT -s 192.168.5.200 -j ACCEPT
iptables -A INPUT -s 192.168.5.0/24 -p icmp -j ACCEPT
iptables -A INPUT -s 192.168.5.0/24 -j DROP
iptables -P OUTPUT ACCEPT
iptables -A OUTPUT -d 192.168.5.200 -j ACCEPT
iptables -A OUTPUT -d 192.168.5.0/24 -p icmp -j ACCEPT
iptables -A OUTPUT -d 192.168.5.0/24 -j DROP
Joel C
  • 2,958
  • 2
  • 15
  • 18