Ubuntu'da basit güvenlik duvarı nasıl kurulur?


18

Birisi, Ubuntu'da basit bir güvenlik duvarının nasıl kurulacağına ilişkin yapılandırma örneğiyle bazı basit adımlar atabilir mi (yalnızca konsolu kullanarak)? Yalnızca ssh, http ve https erişimine izin verilmelidir.


Bir ağ güvenlik duvarından mı yoksa sadece bir sistem güvenlik duvarından mı bahsediyorsunuz?
Brad Gilbert

Ağ güvenlik duvarı ile ne demek istiyorsun? Yönlendiricideki bir güvenlik duvarı mı? Evetse, sistem güvenlik duvarından bahsediyordum.
klew

Yanıtlar:


20

sudo ufw varsayılan reddet

sudo ufw izin http

sudo ufw izin https

sudo ufw izin ver ssh

sudo ufw etkinleştirme


Bu komutları ssh ile sırayla çağırırsam bağlantımı keser mi?
klew

Buna inanmıyorum, ama emin olmak için kontrol etmelisin. Bu aynı zamanda yeniden başlatmalar arasındaki durumunu da korur, bu yüzden sadece bir kez yapmanız gerekir.
Nerdfest

Bu bilgisayara yakın olacağım zaman kontrol edeceğim ...
klew

Bir betiğe koyabilir ve çalıştırabilirsiniz ve daha sonra bağlantınız kesilse bile daha sonra yeniden bağlanabilirsiniz. Senaryo için aşağıdaki cevabıma bakın.
Hamish Downer

2
Önceki yorum doğrudur. Temel olarak, yukarıdaki komut dosyasındaki ilk komutu en son çalıştırın.
Nerdfest

14

Bu komut dosyasını kullanın.

Gelen ICMP'ye (ping) izin vermek isteyip istemediğinize karar vermeniz yeterlidir.

# Clear any existing firewall stuff before we start
iptables --flush
iptables -t nat --flush
iptables -t mangle --flush

# As the default policies, drop all incoming traffic but allow all
# outgoing traffic.  This will allow us to make outgoing connections
# from any port, but will only allow incoming connections on the ports
# specified below.
iptables --policy INPUT DROP
iptables --policy OUTPUT ACCEPT

# Allow all incoming traffic if it is coming from the local loopback device
iptables -A INPUT -i lo -j ACCEPT

# Accept all incoming traffic associated with an established
# connection, or a "related" connection
iptables -A INPUT -i eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT

# Allow incoming connections
# SSH
iptables -A INPUT -p tcp -i eth0 --dport 22 -m state --state NEW -j ACCEPT
# HTTP
iptables -A INPUT -p tcp -i eth0 --dport 80 -m state --state NEW -j ACCEPT
# HTTPS
iptables -A INPUT -p tcp -i eth0 --dport 443 -m state --state NEW -j ACCEPT

# Allow icmp input so that people can ping us
iptables -A INPUT -p icmp -j ACCEPT

# Reject all other incoming packets
iptables -A INPUT -j REJECT

8

Başka bir cevaba yapılan yorumlarda belirtildiği gibi, ssh portuna izin vermeden önce bağlantınızı kaybetmek istemezsiniz. Man sayfasından:

"UZAKTAN YÖNETİM

Ufw enable komutunu çalıştırırken veya ufw'yi initscript ile başlatırken, ufw zincirlerini temizler. Bu, ufw'nin tutarlı bir durumu koruyabilmesi için gereklidir, ancak mevcut bağlantıları düşürebilir (örn. Ssh). ufw, güvenlik duvarını etkinleştirmeden önce kural eklemeyi destekler, böylece yöneticiler şunları yapabilir:

ufw allow proto tcp from any to any port 22

'ufw enable' komutunu çalıştırmadan önce. Kurallar yine de temizlenir, ancak güvenlik duvarı etkinleştirildikten sonra ssh bağlantı noktası açılır. Ufw 'etkinleştirildikten' sonra, ufw'nin kural eklerken veya kaldırırken zincirleri temizlemeyeceğini unutmayın (ancak bir kuralı değiştirirken veya varsayılan ilkeyi değiştirirken). "

İşte işte bunu ayarlamak için bir komut dosyası kullanan bir yaklaşım. Bu komut dosyasını çalıştırdığınızda oturumu kapatırsınız, ancak çalıştırdıktan sonra ssh üzerinden tekrar oturum açabilirsiniz.

Aşağıdakileri bir komut dosyasına yerleştirin ve start-firewall.sh olarak adlandırın.

#!/bin/sh
ufw allow ssh
ufw enable
ufw default deny
ufw allow http
ufw allow https

Ve sonra çalıştırılabilir yapın ve yaparak çalıştırın

$ chmod + x start-firewall.sh
$ sudo ./start-firewall.sh

Daha fazla bilgi edinmek için kılavuz sayfasını okuyun .


2

Komut dosyası oluşturma hakkında bilginiz varsa iptables, tüm güvenlik duvarı özellikleri üzerinde tam denetime sahip olursunuz. Firestarter kadar kolay değil, ancak konsolda nano/ vieditörlerle yapılabilir. Ubuntu'ya yönelik bu eğiticiye göz atın .


1

Quicktables iptables kurallarını öğrenmeme yardımcı oldu. Sadece betiği çalıştırın ve sizin için bir iptables betiği üretecektir ... o zaman açıp sizden sorduğu sorular tarafından üretilen ilgili komutları görüntüleyebilirsiniz. Harika bir öğrenme kaynağı.

Ne yazık ki, artık korunmamaktadır.

http://qtables.radom.org/


1

Firehol ( paket ) kullanmayı çok seviyorum .

İstediğiniz kurulum kurallarını oluşturmak için / etc / default / firehol dosyasını düzenlemeniz ve değiştirmeniz gerekir START_FIREHOL = YES

Ve /etc/firehol/firehol.conf dosyanızın böyle görünmesini istersiniz.

version 5

interface any IfAll
    client any AnyClient accept
    server "ssh http https" accept
    # Accept everything from trusted networks
    server anystateless AllInside accept src "10.3.27.0/24"

Firehol ile ilgili en güzel şeylerden biri 'dene' komutudur. Yapılandırma dosyanızı ayarlayabilir ve bir 'firehol denemesi' yapabilirsiniz, eğer ssh ile bağlıysanız ve değiştirdiğiniz şeyle ilgili bir şey ağ erişiminizi öldürdüğünde firehol değişiklikleri geri alacaktır. Değişikliklerin gerçekten yürürlüğe girmesi için taahhüt etmelisiniz.


1
Firehol iptables kurallarını değiştirmek için mükemmeldir. '$ firehol try' "Güvenlik duvarını etkinleştirir, ancak kullanıcı exec kelimesini yazana kadar bekler. Bu sözcük 30 saniye içinde yazılmazsa, önceki güvenlik duvarı geri yüklenir."
Gareth

Sooo kuralları ekleyebilir / düzenleyebilir / kaldırabilir ve daha sonra test edebilirsiniz. Bunu SSH üzerinden uzaktan yapıyorsanız, sizi kendi sunucunuzdan kilitlemeyecektir!
Gareth



-1

sudo apt-get install firestarter

Ardından, Sistem-> Yönetim menüsüne bakın.


sorgulayıcı yalnızca konsolu kullanmak istiyor
Mikeage

Ahh, hatam. Alternatif. admin yine de sunucuya ssh -X ekleyebilir ve uzaktan ateşleyici çalıştırabilir.
spoulson

1
Ben de ssh -X :) başlatmak için bazı X sunucusu yüklemeniz gerekir.
Nisan012

@klew, X uygulamalarını ssh üzerinden çalıştırmak için tam bir X sunucusu yüklemenize gerek yoktur. Birkaç kütüphaneye ihtiyacınız var, ama her şeye ihtiyacınız yok. Çıplak minimum için sadece xauth ve xbase-client paketlerine ihtiyacınız var.
Zoredache
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.