19

I’m using CentOS and when type in the following iptables command:

iptables -L -v

The output is as follows:

Chain INPUT (policy ACCEPT 19614 packets, 2312K bytes)  pkts bytes target     prot opt in     out     source               destination   

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)  pkts bytes target    prot opt in     out     source               destination         

Chain OUTPUT (policy ACCEPT 13881 packets, 32M bytes)  pkts bytes target     prot opt in     out     source               destination

What does this mean? I’m able to connect using SSH. Where can I see that rule?

3 Answers 3

24

Empty iptables rules simply mean you have no rules. Having no rules means the table “policy“ controls what happens to each packet traversing that table. The policy ACCEPT on each table means that all packets are allowed through each table. Thus, you have no firewall active.

1
  • 1
    @JakeGould Sure, that makes sense. Sill, iptables uses two distinct terms rule and policy, and I was trying to stick to the tool's terminology.
    – Fran
    Apr 25, 2015 at 18:30
4

You don’t have any rules set up. Take a look at the following iptables tutorial on how to add your rules.

You can add your SSH rule like so, which will allow all SSH through Port 22:

iptables -A INPUT -p tcp --dport 22 -j ACCEPT     
2
  • Thanks, maybe I was not clear. I'm surprising that how can I connect using SSH if I don't have any rule yet. What means empty table? Allow all connections or what?
    – Memochipan
    Jun 15, 2012 at 3:48
  • @Memochipan Note how the listing contains the policy: "policy ACCEPT" -> that's the default rule, which in this case, is accept all traffic. Your iptables is effectively disabled as a firewall without any rules to block traffic. Jun 15, 2012 at 15:27
2

I found this question when I wondered why iptables-save came up empty. So although it's not an answer for the OP I thought I'd leave this here :)

It turns out that iptables-save needs the iptable_filter (and/or iptable_nat) modules loaded.

root@mgmt:~# iptables-save 
root@mgmt:~# modprobe iptable_filter
root@mgmt:~# iptables-save 
# Generated by iptables-save v1.6.0 on Fri Aug  4 09:21:14 2017
*filter
:INPUT ACCEPT [7:488]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [4:424]
COMMIT
# Completed on Fri Aug  4 09:21:14 2017

This matters when you try to a 'safe' test of some new rules:

iptables-save > /tmp/ipt.good; (sleep 60; iptables-restore < /tmp/ipt.good) & iptables-restore < iptables.rules.test

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .