---
# System prepended metadata

title: Basic Linux iptables/firewall

---

# Basic Linux iptables/firewall

## Install
```sudo apt-get install iptables```
**Note** : It should come default with the OS, if not then install.

## Types Of Chain

1. **Input**
For controlling incoming traffic.

2. **Forward**
Often used by router to forward traffic.

3. **Output**
For controlling outgoing traffic.

## Connection-Specific Responses

1. **Accept**
Allows Connection.

2. **Drop**
Drop the connection, act like it never happened. This is best if you don’t want the source to realize your system exists.

3. **Reject**
Don’t allow the connection, but send back an error. This is best if you don’t want a particular source to connect to your system, but you want them to know that your firewall blocked them.

## Commands

1. **View** : ```iptables -L -v```
Shows you the different chains and their policies.

2. **Adding Rules** :
* ```iptables -A INPUT -s 10.10.10.10 -j DROP```
Explanation : Here we are appending a rule to INPUT chain to drop all incoming traffic from sourch 10.10.10.10
* ```iptables -A INPUT -s 10.10.10.0/24 -j DROP```
Explanation : Blocking range of addresses, by subnet mask. 
* ```iptables -A INPUT -p tcp --dport ssh -s 10.10.10.10 -j DROP```
Explanation : ```-p``` specifies ```tcp``` protocol, ```-dport``` specifies ```ssh``` port address. This command blocks ssh connection from 10.10.10.10
* ```iptables -A INPUT -p tcp --dport ssh -j DROP``` 
Explanation : Blocks ssh for all.

3. **Save** : ```sudo /sbin/iptables-save```(Ubuntu). To make rules effective immediately .

4. **Clear Rules** : ```iptables -F```

<!-- ## Experiment(Sudo Mode) : 

* ```ping evatix.com ``` -> ip **51.255.238.26**
* ```iptables -L -v``` 
Output :  
```
Chain INPUT (policy ACCEPT 169 packets, 11351 bytes)
 pkts bytes target     prot opt in     out     source               destination
 ....
```
* ```iptables -A INPUT -s 172.217.160.46 -j DROP```
* ```/sbin/iptables-save```
* ```iptables -L -v``` 
Output :  
```
Chain INPUT (policy ACCEPT 67 packets, 4592 bytes)
 pkts bytes target     prot opt in     out     source               destination
    0     0 DROP       all  --  any    any     sin10s11-in-f14.1e100.net  anywhere
 ....
```







 -->