Iptables Linux ditolak - Bagaimana saya mengaktifkannya kembali?

8

jadi saya memiliki klien di jaringan saya terhubung ke router melalui komputer saya dengan arpspoof. Ketika saya tahu ingin menghentikan paket forwarding saya jalankan:

iptables -A FORWARD -j REJECT

itu bekerja seperti yang saya harapkan. Tetapi ketika saya mencoba melakukan sesuatu seperti:

iptables -A FORWARD -j ACCEPT

Saya tidak bisa mengatur paket-paket seperti pada awalnya.

Apakah saya melakukan sesuatu yang salah atau adakah argumen lain yang harus saya gunakan berbeda dari "MENERIMA"?

Snipy
sumber
4
Ngomong-ngomong Anda menggunakan -A, mungkin Anda ingin menggunakan -Puntuk mengatur P olicy (aksi default ketika tidak ada aturan lain dalam rantai berlaku). Misalnya, iptables -P FORWARD DROP(tidak bisa REJECT).
JoL
Apa artinya "pertanyaan harus menunjukkan keterampilan manajemen sistem yang masuk akal"? :)
Marco

Jawaban:

35

IPtables memiliki daftar aturan, dan untuk setiap paket, ia memeriksa daftar aturan secara berurutan. Setelah aturan ditemukan yang cocok dengan paket dan menentukan kebijakan (MENERIMA, MENOLAK, DROP), nasib paket yang cocok ditentukan; tidak ada aturan yang diperiksa.

Ini berarti bahwa urutan Anda menjalankan perintah penting. Saat Anda menggunakan iptables -A, Anda menambahkan aturan ke akhir daftar aturan, sehingga Anda akan berakhir dengan daftar aturan yang terlihat seperti ini:

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

Karena REJECTaturan datang sebelum itu ACCEPTaturan, hal itu akan memicu pertama, dan dengan demikian forwarding tidak akan terjadi.

Karena itu Anda harus menghapus REJECTaturan alih-alih menambahkan ACCEPTaturan. Untuk menghapus aturan TOLAK, jalankan

iptables -D FORWARD -j REJECT 

Untuk informasi lebih lanjut, baca halaman manual iptables.

Jenny D
sumber
18

The -Aflag mengatakan iptables untuk menambahkan aturan untuk rantai, berarti itu berakhir di bawah Anda REJECTkekuasaan, dan sejak pertandingan aturan pertama, itu tidak pernah digunakan.

Anda membuat daftar aturan iptables -L FORWARDdan akan melihatnya sendiri. Untuk menyingkirkan aturan yang Anda tambahkan, jalankan

iptables -D FORWARD -j REJECT 

Sampai tidak ada lagi aturan seperti itu dalam rantai.

Petter H
sumber
1

Apa yang akan terjadi pada akhir FORWARDaturan untuk melompat ke rantai baru di mana hanya akan ada satu aturan. Mungkin ACCEPTatau REJECT. Mengatakan...

iptables -N accept-chain
iptables -A accept-chain -j ACCEPT
iptables -A FORWARD -j accept-chain

Setelah itu, Anda bisa mengubah aturan yang satu ini menjadi accept-chainsesuatu seperti

iptables -R accept-chain 1 -j REJECT

untuk menonaktifkan lalu lintas atau -j ACCEPTuntuk mengaktifkan.

Juga apa yang harus dihidupkan dan dimatikan peruteannya

echo "0" > /proc/sys/net/ipv4/ip_forward

untuk menonaktifkan penerusan paket dan "1"- untuk mengaktifkan.

gooamoko
sumber
0

Urutan penting. Ini akan memasukkan aturan Anda di atas alih-alih menambahkan.

iptables -I FORWARD 1 -j ACCEPT

-Saya menyisipkan dan # 1 adalah posisi

chandru-ops
sumber