Iptables üzerinden giden bağlantılara nasıl izin veririm?


17

İki sunucum var. İlk program 2194 numaralı bağlantı noktasında ikinci programla iletişim kurmalıdır.

Bunun işe yaramadığını biliyorum, çünkü ne zaman yaparım:

root@server1 [~]# telnet myserver2.com 2194
Trying 123.123.123.98...
telnet: connect to address 123.123.123.98: Connection timed out
telnet: Unable to connect to remote host: Connection timed out

server1# iptables -L -n

Chain INPUT (policy DROP)
...
...

Chain FORWARD (policy DROP)
target     prot opt source               destination

Chain OUTPUT (policy DROP)
...

Chain LOCALINPUT (1 references)
target     prot opt source               destination
...

Chain LOCALOUTPUT (1 references)
target     prot opt source               destination
...

Chain LOGDROPIN (1 references)
target     prot opt source               destination
DROP       all  --  0.0.0.0/0            0.0.0.0/0

Chain LOGDROPOUT (1 references)
target     prot opt source               destination
DROP       all  --  0.0.0.0/0            0.0.0.0/0

ama server1 üzerinde telnet localhost 2194 yaptığınızda çalışır? sunucu1'den telnet server1spublicip 2194 ne olacak?
Geraint Jones

telnet localhost 2194 server2 üzerinde çalışıyor. telnet server2ipaddress 2194 server2 üzerinde de çalışıyor.
siliconpi

1
do you do: iptables -L -n her iki sunucuda ve aşağıdakilerden daha fazlasını alıyorsanız bana söyleyin (kurallarınızı görmek istemiyorum vb ;-)) Zincir INPUT (politika KABUL) hedef prot opt ​​kaynak hedef Zincir İLERİ ( politika KABUL ET) hedef prot opt ​​kaynak hedef Zincir ÇIKIŞ (politika KABUL) hedef prot opt ​​kaynak hedef
Geraint Jones

Merhaba! Düzenlemeye bakınız lütfen ...
siliconpi

Yanıtlar:


21

TCP bağlantı noktası 2194'te sunucu1'den sunucu2'ye giden bağlantılara izin vermek için bunu sunucu1'de kullanın:

iptables -A OUTPUT -p tcp -d <server2ip> --dport 2194 -j ACCEPT

TCP bağlantı noktası 2194'te sunucu1'den sunucu2'ye gelen bağlantılara izin vermek için bunu sunucu2'de kullanın:

iptables -A INPUT -p tcp -s <server1ip> --dport 2194 -j ACCEPT

Saçmalık - İlkini yaptım, işe yaramadı. İkincisini yaptım, bu da işe yaramadı ... Yerinde çok kısıtlayıcı ayarlara sahip olabilirim ... daha önceki düzenlemeye bakın
siliconpi

1
"-A" yerine "-I" kullanmayı deneyin; bu, yeni kuralları halihazırda mevcut olabilecek diğer kuralların üzerine koyar .
Massimo

Uygulama doğrudan ip adresi yerine etki alanı adını kullanıyorsa farklı bir şey yapmalı mıyım?
siliconpi

Woah ... sadece ilk ifadeyi kullanarak komut isteminden telnet yapabiliyorum ...
siliconpi

3
Onun eksi-Bir L olarak okumak kimin "i" millet gibi
siliconpi

6

Sadece birkaç işaretçi

Çalıştırdığınız hizmet yalnızca localhost üzerinden mi dinleniyor? Çalıştırmak

netstat -ltn

Eğer böyle bir çizgi 0.0.0.0:2194görürseniz, sorun olmaz. Görüyorsanız 127.0.0.1:2194, yalnızca yerel bağlantıları ( :::2194ve ::1:2194sırasıyla tcp6hat olarak gösterilen IPv6 adreslerini ) dinliyorsunuz demektir .

Mevcut iptables kuralları nelerdir?

iptables -L

Politika DROP / REJECT mi (eğer değilse, tüm zincirler için)? İhtiyacınız olan liman için belirli bir kural var mı?

Bu bir güvenlik duvarı sorunuysa, rahatsız edici kuralı değiştirmek veya aşağıdaki gibi bir kural eklemek

iptables -A INPUT -p tcp --dport 2194 -j ACCEPT 

hile yapmalı (denenmemiş)

=== DÜZENLE ===

Ağ sorunu test etmek için iyi bir araçtır tcpdump. Bağlanmaya ve paketlerin nereye gittiğini görmeye çalışırken her iki sunucuda da çalıştırın. örneğin sunucu 1'de:

tcpdump -i eth0 -n host server2.com

ve sunucu 2'de:

tcpdump -i eth0 -n host server1.com

Ardından bağlanmayı deneyin. Kaynak ve hedeften ekranda dökülen tüm TCP paketlerini görmelisiniz. Bu bilgi ile sorunun nerede olduğunu tespit edebilmelisiniz.


Merhaba Dan - Ben server2 bağlantı kabul herhangi bir sorun olduğunu sanmıyorum (benim ev pc kullanarak bağlanmak mümkün), ama sanırım server1 giden bağlantıya izin vermez ...
siliconpi

iptables -A ÇIKIŞ -p tcp --dport 2194 -j KABUL
Geraint Jones

Merhaba c10k, bu işe yaramadı ... Ve telnet için
çalıştım

Birkaç fikir daha eklendi
Dan Andreatta

Merhaba 2194 numaralı bağlantı noktası veya hedef IP bağlantı noktası numaram?
Tommy
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.