masuk MENERIMA semua aturan iptables masih muncul


8

Saya mengikuti panduan ini di sini: http://isalazyadmin.net/2009/07/02/configuring-a-basic-firewall-for-debian-linux/

Dan saya memiliki iptables yang tercantum ditampilkan, tetapi server saya tampaknya masih menerima semua koneksi masuk (yaitu: rekan-rekan bittorrent masih terhubung, meskipun saya tidak mengizinkan port tersebut).

/etc/iptables.rules

*filter

# This will allow all loopback (lo0) traffic and drop all traffic to 127/8
# that does not use lo0
-A INPUT -i lo -j ACCEPT
-A INPUT ! -i lo -d 127.0.0.0/8 -j REJECT

#  This accepts all already established connections
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

# This allows all outbound traffic
-A OUTPUT -j ACCEPT

# This will allow HTTP and HTTPS connections from anywhere, this are the normal
# ports used for a web server
-A INPUT -p tcp --dport 80 -j ACCEPT
-A INPUT -p tcp --dport 443 -j ACCEPT

# Allow SSH connections
-A INPUT -p tcp -m state --state NEW --dport 22 -j ACCEPT

# Allow bittorrent/rtorrent ports, from ~/.rtorrent.rc
## -A INPUT -p tcp --dport 8071:8079 -j ACCEPT


# Allow ICMP ping
-A INPUT -p icmp -m icmp --icmp-type 8 -j ACCEPT

# Reject all other inbound traffic
-A INPUT -j REJECT
-A FORWARD -j REJECT

COMMIT

Ketika saya menjalankan iptables -L setelah reboot, saya masih mendapatkan ini sebagai aturan pertama saya:

iptables -L

Chain INPUT (policy ACCEPT)
target     prot opt source               destination         
ACCEPT     all  --  anywhere             anywhere  

Tidak yakin dari mana ini berasal.

Berikut daftar lengkapnya:

Chain INPUT (policy ACCEPT)
target     prot opt source               destination         
ACCEPT     all  --  anywhere             anywhere            
REJECT     all  --  anywhere             loopback/8          reject-with icmp-port-unreachable 
ACCEPT     all  --  anywhere             anywhere            state RELATED,ESTABLISHED 
ACCEPT     tcp  --  anywhere             anywhere            tcp dpt:www 
ACCEPT     tcp  --  anywhere             anywhere            tcp dpt:https 
ACCEPT     tcp  --  anywhere             anywhere            state NEW tcp dpt:ssh 
ACCEPT     icmp --  anywhere             anywhere            icmp echo-request 
REJECT     all  --  anywhere             anywhere            reject-with icmp-port-unreachable 

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         
REJECT     all  --  anywhere             anywhere            reject-with icmp-port-unreachable 

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination         
ACCEPT     all  --  anywhere             anywhere

Ini adalah output dari iptables-save:

# Generated by iptables-save v1.4.8 on Fri Jan 11 09:54:19 2013
*raw
:PREROUTING ACCEPT [6701:942626]
:OUTPUT ACCEPT [8927:989420]
COMMIT
# Completed on Fri Jan 11 09:54:19 2013
# Generated by iptables-save v1.4.8 on Fri Jan 11 09:54:19 2013
*nat
:PREROUTING ACCEPT [3281:284415]
:INPUT ACCEPT [9:720]
:OUTPUT ACCEPT [1758:148908]
:POSTROUTING ACCEPT [1758:148908]
COMMIT
# Completed on Fri Jan 11 09:54:19 2013
# Generated by iptables-save v1.4.8 on Fri Jan 11 09:54:19 2013
*mangle
:PREROUTING ACCEPT [6701:942626]
:INPUT ACCEPT [6701:942626]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [8928:989684]
:POSTROUTING ACCEPT [8928:989684]
COMMIT
# Completed on Fri Jan 11 09:54:19 2013
# Generated by iptables-save v1.4.8 on Fri Jan 11 09:54:19 2013
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -i lo -j ACCEPT 
-A INPUT -d 127.0.0.0/8 ! -i lo -j REJECT --reject-with icmp-port-unreachable 
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT 
-A INPUT -p tcp -m tcp --dport 80 -j ACCEPT 
-A INPUT -p tcp -m tcp --dport 443 -j ACCEPT 
-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT 
-A INPUT -p icmp -m icmp --icmp-type 8 -j ACCEPT 
-A INPUT -j REJECT --reject-with icmp-port-unreachable 
-A FORWARD -j REJECT --reject-with icmp-port-unreachable 
-A OUTPUT -j ACCEPT 
COMMIT
# Completed on Fri Jan 11 09:54:19 2013

Berikut ini adalah keluaran iptables -vL:

$ sudo iptables -vL
[sudo] password for ettinger: 
Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         
 8303 1206K ACCEPT     all  --  lo     any     anywhere             anywhere            
    0     0 REJECT     all  --  !lo    any     anywhere             loopback/8          reject-with icmp-port-unreachable 
  12M 7191M ACCEPT     all  --  any    any     anywhere             anywhere            state RELATED,ESTABLISHED 
   18   980 ACCEPT     tcp  --  any    any     anywhere             anywhere            tcp dpt:www 
    7   344 ACCEPT     tcp  --  any    any     anywhere             anywhere            tcp dpt:https 
  379 22728 ACCEPT     tcp  --  any    any     anywhere             anywhere            state NEW tcp dpt:ssh 
18316 1110K ACCEPT     tcp  --  any    any     anywhere             anywhere            tcp dpts:8071:8079 
 120K   15M ACCEPT     udp  --  any    any     anywhere             anywhere            udp dpt:6881 
24809 1489K ACCEPT     tcp  --  any    any     anywhere             anywhere            tcp dpt:9001 
  688 35244 ACCEPT     tcp  --  any    any     anywhere             anywhere            tcp dpt:9030 
  874 73072 ACCEPT     icmp --  any    any     anywhere             anywhere            icmp echo-request 
12705  871K REJECT     all  --  any    any     anywhere             anywhere            reject-with icmp-port-unreachable 

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         
    0     0 REJECT     all  --  any    any     anywhere             anywhere            reject-with icmp-port-unreachable 

Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         
  14M   12G ACCEPT     all  --  any    any     anywhere             anywhere      

Apakah Anda tidak memperhatikan aturan INPUT pertama Anda ACCEPT all -- anywhere anywhere?
ott--

1
Tampaknya aturan tidak dimuat saat boot. Pastikan Anda menambahkan baris "pre-up iptables-restore </etc/iptables.rules" ke file / etc / network / interfaces Anda (seperti yang disarankan oleh tutorial)
mzet

1
@ott: hanya menyangkut inteface saja, jadi tidak masalah
mzet

2
Bisakah Anda mengulang daftar Anda iptables -vL?
ott--

Aturan Anda dan keadaan boot postingan Anda benar-benar cocok, itu bukan masalah - lihat jawaban saya;)
goldilocks

Jawaban:


17

Garis yang Anda khawatirkan:

Chain INPUT (policy ACCEPT)
target     prot opt source               destination         
ACCEPT     all  --  anywhere             anywhere       

sebenarnya karena ini dalam aturan Anda:

-A INPUT -i lo -j ACCEPT

Perhatikan antarmuka secara eksplisit dalam aturan, tetapi tidak dalam -Loutput. Pindahkan aturan itu ke tengah daftar, gunakan iptables-restoredan perhatikan "MENERIMA semua - di mana saja" juga telah turun. Sekarang coba ubah sedikit aturan:

-A INPUT -i lo -s 127.0.0.1 -j ACCEPT

dan -Lhasilnya akan menjadi:

target     prot opt source                 destination  
ACCEPT     all  --  localhost.localdomain  anywhere

"localhost.localdomain" akan menjadi hostname 127.0.0.1 Anda dari /etc/hosts. Setidaknya ini membuatnya lebih jelas dari mana aturan itu berasal.

Anda juga dapat melihat informasi lebih rinci termasuk antarmuka dengan iptables -vL.

BTW, Anda mungkin ingin memulai aturan Anda:

*filter
:INPUT DROP [0:0]
:FORWARD DROP [0:0]
:OUTPUT DROP [0:0]

Tetapkan semuanya secara default sebagai pengaman untuk keselamatan. Namun ini dianggap perilaku buruk (lihat tautan dalam komentar Gilles di bawah), jadi Anda mungkin ingin membuat tangkapan akhir semua untuk setiap tabel yang digunakan -j REJECT --reject-with icmp-net-prohibited.


4
FYI, iptables -vLakan menunjukkan aturan penuh, termasuk antarmuka. Jadi itu akan menghilangkan kebingungan seperti ini.
derobert

Terima kasih @derobert - Saya lupa tentang tampilan itu. Akan mengedit ini menjadi jawabannya!
goldilocks


@derobert +1 aktif -v. Aturan firewall saya tidak terlihat seburuk yang saya kira :)
Matt Borja

1

Sama seperti masalah kelengkapan, untuk menghindari masalah ini di masa depan, gunakan -vopsi baris perintah verbose saat menampilkan tabel. Dengan demikian:

iptables -Lv

Output sekarang harus mencakup antarmuka yang mempengaruhi kolom "dalam" dan "keluar":

Chain INPUT (policy DROP 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination
  151 13073 ACCEPT     all  --  *      *       0.0.0.0/0            0.0.0.0/0           state RELATED,ESTABLISHED
    0     0 ACCEPT     icmp --  *      *       0.0.0.0/0            0.0.0.0/0
    0     0 ACCEPT     all  --  lo     *       0.0.0.0/0            0.0.0.0/0
    0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           state NEW tcp dpt:22
  126 33414 REJECT     all  --  *      *       0.0.0.0/0            0.0.0.0/0           reject-with icmp-host-prohibited

-1

Masalahnya ada di bagian rantai INPUT ini:

Chain INPUT (policy ACCEPT)
target     prot opt source               destination         
ACCEPT     all  --  anywhere             anywhere

terutama di baris terakhir. Segala sesuatu setelah baris ini tidak perlu, karena baris ini menerima semuanya.

Anda harus menghapus baris ini dari aturan dengan perintah ini:

iptables -D INPUT 1

Anda harus memeriksa aturan firewall Anda, di mana aturan, yang menambahkan baris ini.


7
"MENERIMA semua - di mana saja di mana saja" berasal dari aturan ini: "-A INPUT -i lo -j MENERIMA" jadi ini hanya menyangkut antarmuka, jadi bukan masalahnya.
mzet

Saya menghapus semuanya, tetapi masih muncul dengan iptables -L
chovy

ok, itu yang orang lain sebutkan. Terima kasih. Saya bisa dengan aman mengabaikannya.
chovy

1
@ Chovy: aturan Anda ok. Masalahnya terletak pada mengembalikannya setelah reboot. Coba ikuti langkah-langkah ini: debian-administration.org/articles/445
mzet
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.