IPTable'lar: yalnızca SSH erişimine izin ver, içeri veya dışarı başka bir şey yok


11

IPTable'ları yalnızca SSH'ye izin verecek ve içeri veya dışarı başka trafiğe izin vermeyecek şekilde nasıl yapılandırabilirsiniz ?

Herkesin önerebileceği herhangi bir güvenlik önlemi var mı?

GoDaddy'den başarıyla taşındığına inandığım bir sunucum var ve artık kullanımda olmadığına inanıyorum .

Ama emin olmak istiyorum çünkü ... asla bilemezsin. :)

Bu GoDaddy sanal bir sunucu olduğunu unutmayın ... Bu hiçbir yedekleme ve neredeyse hiç destek anlamına gelir.

Yanıtlar:


13

INPUT ve OUTPUT zincirlerinde DROP olarak varsayılan ilkeyi ayarlamanız yeterlidir.

SSH'ye izin vermek için aşağıdaki komutlara ihtiyacınız vardır:

$ sudo iptables -P INPUT DROP
$ sudo iptables -P OUTPUT DROP
$ sudo iptables -A INPUT -i lo -j ACCEPT
$ sudo iptables -A INPUT -p tcp -m tcp --dport 22 -j ACCEPT
$ sudo iptables -A OUTPUT -o lo -j ACCEPT
$ sudo iptables -A OUTPUT -p tcp --sport 22 -m state --state ESTABLISHED -j ACCEPT

Son iki komut, bazı uygulamaların düzgün çalışması için gerekli olduğundan geri döngü trafiğine izin verir. -s source_ipSeçeneği kullanarak SSH erişimini belirli IP'den kısıtlayabilirsiniz .

Komutları yukarıda gösterildiği gibi yürütmek, geçerli SSH oturumunuzun askıda kalmasına neden olur. Bunun nedeni iptables komutlarının hemen etkili olmasıdır. Uzaktan çalıştırırken makinenize bağlanma yeteneğini kaybetmemek için bunları bir kabuk komut dosyasında yürütmeniz gerekir.


4
--state RELATEDson kuralda gereksizdir; --state ESTABLISHEDyeterlidir. DNS trafiğine de izin vermek isteyebilirsiniz ve muhtemelen geri döngü arabiriminde herhangi bir şeye izin vermelisiniz, aksi takdirde her türlü şey tuhaf davranabilir.
MadHatter

@MadHatter: Evet, özellikle geridönüşlü şeyler hakkında haklısın :)
Khaled

Teşekkürler, tüm dosyayı sizden almak mümkün mü? Yani, kopyalayıp doğrudan / etc / sysconfig / iptables içine yapıştırabileceğim bir şey mi? Uygun düzenlemeleri yapma sezgime güvenecek kadar tecrübeli değilim.
Disco

2
ps. kurmak kurmak ilk komuttan sonra zorla kapanacak
user956584

3
Bu komutların sırasını gerçekten değiştirmelisiniz. Politika satırları son satırlar olarak görünmelidir. Bunu sadece bir ssh oturumuna kopyalayan herkes YÜKSELECEK ve hemen kapatılacak
AndreasT

4

Bunun gibi bir şey:

iptables -A INPUT -p tcp --dport 22 -j ACCEPT
iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -j REJECT  # or iptables -P INPUT DROP

iptables -A OUTPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -j REJECT # or iptables -P OUTPUT DROP

1
Bence demek -i loistemiyorsun -s lo; yine, sadece ESTABLISHEDdevlet kurallarında gereklidir ve muhtemelen orada da bir tane olmalıdır --sport 22. Neden herkes izin vermek istiyor RELATED?
MadHatter

@MadHatter: Hakkında RELATED: Aslında ping yanıtları ve DNS yanıtları gibi TCP olmayan şeyleri eşleştirmek için kullanışlıdır. En azından, hep böyle varsaymıştım.
Steven Pazartesi

2
İnancım, bunların hiçbiriyle eşleşmeyeceği. Örneğin, ICMP ana bilgisayarının yönetimsel olarak yasaklanmış bir yanıtıyla eşleşir, ancak bu yaklaşık olarak yardımcı olur; ve nitelikli değilse, yalnızca önceki satırla ilgili trafikle değil, ilgili trafikle eşleşir.
MadHatter

@MadHatter: Haklı olup olmadığınızı görmek için birkaç test yapmam gerekecek. Varsayımımı sorguladığınız için teşekkürler.
Steven Pazartesi

Evet, UDP DNS yanıtları ve ICMP yankı yanıtlarıyla eşleştirmek için gereken tek şey KURULDU durumu.
Steven Pazartesi
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.