Android

Centos 8'de güvenlik duvarı nasıl yapılandırılır ve yönetilir

Настройка Gnome в CentOS 8

Настройка Gnome в CentOS 8

İçindekiler:

Anonim

Güvenlik duvarı, gelen ve giden ağ trafiğini izlemek ve filtrelemek için kullanılan bir yöntemdir. Belirli trafiğe izin verilip verilmeyeceğini belirleyen bir dizi güvenlik kuralı tanımlayarak çalışır. Düzgün yapılandırılmış bir güvenlik duvarı, genel sistem güvenliğinin en önemli yönlerinden biridir.

CentOS 8, firewalld adında bir güvenlik duvarı arka plan programı ile birlikte gönderilir. Sistemin güvenlik duvarını dinamik olarak yönetmenizi sağlayan D-Bus arabirimine sahip eksiksiz bir çözümdür.

Bu eğitimde, CentOS 8'de güvenlik duvarını nasıl yapılandıracağınız ve yöneteceğiniz hakkında konuşacağız. Temel Güvenlik DuvarıD kavramlarını da açıklayacağız.

Ön şartlar

Güvenlik duvarı hizmetini yapılandırmak için sudo ayrıcalıklarına sahip kök veya kullanıcı olarak oturum açmanız gerekir.

Temel Firewalld Kavramları

firewalld bölge ve hizmet kavramlarını kullanır. Yapılandıracağınız bölgelere ve hizmetlere bağlı olarak, sisteme gelen ve sistemden hangi trafiğin izin verildiğini veya engelleneceğini kontrol edebilirsiniz.

Firewalld, firewall-cmd komut satırı yardımcı programı kullanılarak yapılandırılabilir ve yönetilebilir.

CentOS 8'de iptables, firewalld arka plan programının varsayılan güvenlik duvarı arka ucu olarak nftables ile değiştirilir.

Firewalld Bölgeleri

Bölgeler, bilgisayarınızın bağlı olduğu ağların güven düzeyini belirleyen önceden tanımlanmış kural kümeleridir. Bir bölgeye ağ arabirimleri ve kaynakları atayabilirsiniz.

Aşağıda, FirewallD tarafından sağlanan, güvenilmeyenden güvenilene kadar olan bölgenin güven düzeyine göre sıralanan bölgeler verilmiştir:

  • drop: Gelen tüm bağlantılar herhangi bir bildirim yapılmadan bırakılır. Yalnızca giden bağlantılara izin verilir. engelle: Tüm gelen bağlantılar IPv4 için icmp-host-prohibited mesajla ve icmp6-adm-prohibited için icmp6-adm-prohibited mesajla reddedilir. Yalnızca giden bağlantılara izin verilir. public: Güvenilmeyen genel alanlarda kullanım için. Ağdaki diğer bilgisayarlara güvenmezsiniz, ancak seçilen gelen bağlantılara izin verebilirsiniz. external: Sisteminiz bir ağ geçidi veya yönlendirici gibi davrandığında NAT maskeli etkin dış ağlarda kullanım için. Yalnızca seçilen gelen bağlantılara izin verilir. internal: Sisteminiz bir ağ geçidi veya yönlendirici gibi davrandığında dahili ağlarda kullanım için. Ağdaki diğer sistemlere genellikle güvenilir. Yalnızca seçilen gelen bağlantılara izin verilir. dmz: Askersizleştirilmiş bölgenizde bulunan ve ağınızın geri kalanına sınırlı erişimi olan bilgisayarlar için kullanılır. Yalnızca seçilen gelen bağlantılara izin verilir. : İş makineleri için kullanılır. Ağdaki diğer bilgisayarlara genellikle güvenilir. Yalnızca seçilen gelen bağlantılara izin verilir. ev: Ev makineleri için kullanılır. Ağdaki diğer bilgisayarlara genellikle güvenilir. Yalnızca seçilen gelen bağlantılara izin verilir. güvenilir: Tüm ağ bağlantıları kabul edilir. Ağdaki tüm bilgisayarlara güvenin.

Güvenlik duvarı hizmetleri

Firewalld hizmetleri, bir bölge içinde geçerli olan ve belirli bir hizmet için gelen trafiğe izin vermek üzere gerekli ayarları tanımlayan önceden tanımlanmış kurallardır. Hizmetler, birkaç görevi tek bir adımda kolayca gerçekleştirmenizi sağlar.

Örneğin, hizmet bağlantı noktalarını açma, trafiği yönlendirme ve daha fazlası hakkında tanımları içerebilir.

Firewalld Çalışma Zamanı ve Kalıcı Ayarlar

Firewalld iki ayrı yapılandırma kümesi kullanır: çalışma zamanı ve kalıcı yapılandırma.

Çalışma zamanı yapılandırması gerçek çalışan yapılandırmadır ve yeniden başlatma sırasında devam etmez. Firewalld arka plan programı başladığında, çalışma zamanı yapılandırması haline gelen kalıcı yapılandırmayı yükler.

Varsayılan olarak, firewall-cmd yardımcı programını kullanarak Firewalld yapılandırmasında değişiklik yaparken, değişiklikler çalışma zamanı yapılandırmasına uygulanır. Değişiklikleri kalıcı hale getirmek için --permanent seçeneğini komuta ekleyin.

Her iki yapılandırma kümesindeki değişiklikleri uygulamak için aşağıdaki iki yöntemden birini kullanabilirsiniz:

  1. Çalışma zamanı yapılandırmasını değiştirin ve kalıcı hale getirin:

    sudo firewall-cmd sudo firewall-cmd --runtime-to-permanent

    Kalıcı yapılandırmayı değiştirin ve firewalld daemon'u yeniden yükleyin:

    sudo firewall-cmd --permanent sudo firewall-cmd --reload

Güvenlik Duvarını EtkinleştirmeD

CentOS 8'de, firewalld varsayılan olarak kurulur ve etkinleştirilir. Herhangi bir nedenden dolayı sisteminize yüklenmemişse, arka plan programını yazıp yükleyebilirsiniz:

sudo dnf install firewalld sudo systemctl enable firewalld --now

Güvenlik duvarı hizmetinin durumunu aşağıdakilerle kontrol edebilirsiniz:

sudo firewall-cmd --state

Güvenlik duvarı etkinse, komutun çalışmakta olması gerekir. Aksi takdirde, not running görürsünüz.

Ateşli Bölgeler

Varsayılan bölge, açıkça başka bir bölgeye atanmamış olan her şey için kullanılan bölgedir.

Varsayılan bölgeyi yazarak görebilirsiniz:

sudo firewall-cmd --get-default-zone

public

Mevcut tüm bölgelerin bir listesini almak için şunu yazın:

sudo firewall-cmd --get-zones

block dmz drop external home internal public trusted work

Etkin bölgeleri ve bunlara atanmış ağ arabirimlerini görmek için:

sudo firewall-cmd --get-active-zones

Aşağıdaki çıktı, eth0 ve eth1 arabirimlerinin public bölgeye atandığını göstermektedir:

public interfaces: eth0 eth1

Bölge yapılandırma ayarlarını aşağıdakilerle yazdırabilirsiniz:

sudo firewall-cmd --zone=public --list-all

public (active) target: default icmp-block-inversion: no interfaces: eth0 eth1 sources: services: ssh dhcpv6-client ports: protocols: masquerade: no forward-ports: source-ports: icmp-blocks: rich rules:

Yukarıdaki çıktıdan, genel bölgenin etkin olduğunu ve REJECT olan varsayılan hedefi kullandığını görebiliriz. Çıktı ayrıca bölgenin eth0 ve eth1 arabirimleri tarafından kullanıldığını gösterir ve DHCP istemcisi ve SSH trafiğine izin verir.

sudo firewall-cmd --list-all-zones

Komut, kullanılabilir tüm bölgenin ayarlarıyla büyük bir liste yazdırır.

Bölge hedefini değiştirme

Hedef, belirtilmeyen gelen trafik için bölgenin varsayılan davranışını tanımlar. Aşağıdaki seçeneklerden birine ayarlanabilir: default , ACCEPT , REJECT ve DROP .

Bölgenin hedefini ayarlamak için, bölgeyi --zone seçeneğiyle ve hedefi --set-target seçeneğiyle belirtin.

Örneğin, public bölgenin hedefini DROP olarak değiştirmek için şunları çalıştırırsınız:

sudo firewall-cmd --zone=public --set-target=DROP

Farklı bir bölgeye arabirim atama

Farklı bölgeler için belirli kurallar kümesi oluşturabilir ve bu bölgelere farklı arabirimler atayabilirsiniz. Bu özellikle makinenizde birden fazla arabirim oluşturduğunuzda kullanışlıdır.

Farklı bir bölgeye arabirim atamak için --zone seçeneğiyle bölgeyi ve --change-interface seçeneğiyle --change-interface .

Örneğin, aşağıdaki komut eth1 arabirimini work bölgesine atar:

sudo firewall-cmd --zone=work --change-interface=eth1

Değişiklikleri şunu yazarak doğrulayın:

sudo firewall-cmd --get-active-zones

work interfaces: eth1 public interfaces: eth0

Varsayılan Bölgeyi Değiştirme

Varsayılan bölgeyi değiştirmek için, --set-default-zone seçeneğini ve ardından varsayılan yapmak istediğiniz bölgenin adını kullanın.

Örneğin, varsayılan bölgeyi home olarak değiştirmek için aşağıdaki komutu çalıştırırsınız:

sudo firewall-cmd --set-default-zone=home

Değişiklikleri aşağıdakilerle doğrulayın:

sudo firewall-cmd --get-default-zone

home

Yeni Bölgeler Oluşturma

Firewalld ayrıca kendi bölgelerinizi oluşturmanıza izin verir. Uygulama başına kurallar oluşturmak istediğinizde bu kullanışlıdır.

Aşağıdaki örnekte memcached adlı yeni bir bölge oluşturacağız, 11211 bağlantı noktasını açacağız ve yalnızca 192.168.100.30 IP adresinden erişime izin vereceğiz:

  1. Bölgeyi oluşturun:

    sudo firewall-cmd --new-zone=memcached --permanent

    Bölgeye kuralları ekleyin:

    sudo firewall-cmd --zone=memcached --add-port=11211/udp --permanent sudo firewall-cmd --zone=memcached --add-port=11211/tcp --permanent sudo firewall-cmd --zone=memcached --add-source=192.168.100.30/32 --permanent

    Değişiklikleri etkinleştirmek için firewalld arka plan programını yeniden yükleyin:

    sudo firewall-cmd --reload

Firewalld Hizmetleri

Firewalld ile, hizmetler adı verilen önceden tanımlanmış kurallara dayalı olarak belirli bağlantı noktaları ve / veya kaynaklar için trafiğe izin verebilirsiniz.

Varsayılan tüm kullanılabilir hizmetlerin bir listesini almak için:

sudo firewall-cmd --get-services

/usr/lib/firewalld/services dizininde ilişkili.xml dosyasını açarak her hizmet hakkında daha fazla bilgi bulabilirsiniz. Örneğin, HTTP hizmeti şu şekilde tanımlanır:

/usr/lib/firewalld/services/http.xml

WWW (HTTP) HTTP is the protocol used to serve Web pages. If you plan to make your Web server publicly available, enable this option. This option is not required for viewing pages locally or developing Web pages. WWW (HTTP) HTTP is the protocol used to serve Web pages. If you plan to make your Web server publicly available, enable this option. This option is not required for viewing pages locally or developing Web pages.

Genel bölgedeki arabirimler için gelen HTTP trafiğine (bağlantı noktası 80) yalnızca geçerli oturum (çalışma zamanı yapılandırması) türü için izin vermek için:

sudo firewall-cmd --zone=public --add-service=http Varsayılan bölgeyi değiştiriyorsanız --zone seçeneğini --zone .

Hizmetin başarıyla eklendiğini doğrulamak için --list-services seçeneğini kullanın:

sudo firewall-cmd --zone=public --list-services

ssh dhcpv6-client

Yeniden başlatma sonrasında bağlantı noktasını 80 açık tutmak için --permanent seçeneğiyle aynı komutu bir kez daha çalıştırın veya çalıştırın:

sudo firewall-cmd --runtime-to-permanent

Değişikliklerinizi doğrulamak için --permanent seçeneğiyle birlikte --list-services kullanın:

sudo firewall-cmd --permanent --zone=public --list-services

ssh dhcpv6-client

Hizmeti kaldırma sözdizimi, bir hizmet eklerken kullanılanla aynıdır. --remove-service --add-service bayrağı yerine --remove-service kullanın:

sudo firewall-cmd --zone=public --remove-service=http --permanent

Yukarıdaki komut http hizmetini ortak bölge kalıcı yapılandırmasından kaldırır.

Yeni bir FirewallD Hizmeti oluşturma

Daha önce de belirttiğimiz gibi, varsayılan hizmetler /usr/lib/firewalld/services dizininde saklanır. Yeni bir hizmet oluşturmanın en kolay yolu, varolan bir hizmet dosyasını kullanıcı tarafından oluşturulan hizmetlerin konumu olan /etc/firewalld/services dizinine kopyalamak ve dosya ayarlarını değiştirmektir.

Örneğin, Plex Media Server için bir hizmet tanımı oluşturmak için SSH hizmet dosyasını kullanabilirsiniz:

sudo cp /usr/lib/firewalld/services/ssh.xml /etc/firewalld/services/plexmediaserver.xml

Yeni oluşturulan plexmediaserver.xml dosyasını açın ve içindeki hizmetin kısa adını ve açıklamasını ve etiketleri. Değiştirmeniz gereken en önemli etiket, açmak istediğiniz bağlantı noktası numarasını ve protokolü tanımlayan port etiketidir.

Aşağıdaki örnekte, 1900 UDP ve 32400 TCP bağlantı noktalarını açıyoruz.

/etc/firewalld/services/plexmediaserver.xml

plexmediaserver Plex is a streaming media server that brings all your video, music and photo collections together and stream them to your devices at anytime and from anywhere. plexmediaserver Plex is a streaming media server that brings all your video, music and photo collections together and stream them to your devices at anytime and from anywhere.

Dosyayı kaydedin ve FirewallD hizmetini yeniden yükleyin:

sudo firewall-cmd --reload

Artık plexmediaserver hizmetini diğer hizmetlerle aynı şekilde kullanabilirsiniz.

Bağlantı Noktalarını ve Kaynak IP'leri Açma

Firewalld ayrıca, bir hizmet tanımı oluşturmadan güvenilir bir IP adresinden veya belirli bir bağlantı noktasındaki tüm trafiği hızla etkinleştirmenize olanak tanır.

Kaynak IP açma

Belirli bir IP adresinden (veya aralıktan) gelen tüm trafiğe izin vermek için, --zone seçeneğiyle bölgeyi ve --zone --add-source seçeneğiyle kaynak IP'sini belirtin.

Örneğin, public bölgede 192.168.1.10'dan gelen tüm trafiğe izin vermek için şunu çalıştırın:

sudo firewall-cmd --zone=public --add-source=192.168.1.10

Yeni kuralı kalıcı hale getirin:

sudo firewall-cmd --runtime-to-permanent

Aşağıdaki komutu kullanarak değişiklikleri doğrulayın:

sudo firewall-cmd --zone=public --list-sources

192.168.1.10

Bir kaynak IP'yi kaldırma sözdizimi, bir IP eklerken kullanılanla aynıdır. --remove-source --add-source seçeneği yerine --remove-source kullanın:

sudo firewall-cmd --zone=public --remove-source=192.168.1.10

Kaynak bağlantı noktası açma

Belirli bir bağlantı noktasındaki tüm gelen trafiğe izin vermek için --zone seçeneğiyle bölgeyi ve bağlantı noktasını ve --zone --add-port seçeneğiyle protokolü belirtin.

Örneğin, çalıştıracağınız geçerli oturum için genel bölgede 8080 bağlantı noktasını açmak için:

sudo firewall-cmd --zone=public --add-port=8080/tcp

Protokol tcp , udp , sctp veya dccp .

Değişiklikleri doğrulayın:

sudo firewall-cmd --zone=public --list-ports

8080

Yeniden başlatmanın ardından bağlantı noktasını açık tutmak için, --permanent bayrağını kullanarak veya aşağıdaki komutu uygulayarak kuralı kalıcı ayarlara ekleyin:

sudo firewall-cmd --runtime-to-permanent

Bir bağlantı noktasını kaldırma sözdizimi, bir bağlantı noktası eklerken kullanılanla aynıdır. --remove-port --add-port seçeneği yerine --remove-port kullanın.

sudo firewall-cmd --zone=public --remove-port=8080/tcp

Yönlendirme Portları

Trafiği bir porttan başka bir porta iletmek için, önce --add-masquerade seçeneğini kullanarak istenen bölge için maskelemeyi etkinleştirin. Örneğin, external bölge için maskelenmeyi etkinleştirmek için şunu yazın:

sudo firewall-cmd --zone=external --add-masquerade

Trafiği IP adresinde bir bağlantı noktasından diğerine iletme

Aşağıdaki örnekte, trafiği aynı sunucudaki 80 numaralı bağlantı noktasından 8080 numaralı bağlantı noktasına yönlendiriyoruz:

sudo firewall-cmd --zone=external --add-forward-port=port=80:proto=tcp:toport=8080

Trafiği başka bir IP adresine iletme

Aşağıdaki örnekte trafiği IP 10.10.10.2 olan bir sunucuda 80 numaralı bağlantı noktasından 80 numaralı bağlantı noktasına yönlendiriyoruz:

sudo firewall-cmd --zone=external --add-forward-port=port=80:proto=tcp:toaddr=10.10.10.2

Trafiği farklı bir bağlantı noktasındaki başka bir sunucuya iletme

Aşağıdaki örnekte trafiği IP 10.10.10.2 olan bir sunucuda 80 numaralı bağlantı noktasından 8080 numaralı bağlantı noktasına yönlendiriyoruz:

sudo firewall-cmd --zone=external --add-forward-port=port=80:proto=tcp:toport=8080:toaddr=10.10.10.2

Yönlendirme kuralını kalıcı yapmak için şunu kullanın:

sudo firewall-cmd --runtime-to-permanent

Sonuç

CentOS 8 sisteminizdeki firewalld hizmetini nasıl yapılandıracağınızı ve yöneteceğinizi öğrendiniz.

Tüm gereksiz bağlantıları sınırlarken, sisteminizin düzgün çalışması için gerekli olan tüm gelen bağlantılara izin verdiğinizden emin olun.

firewalld güvenlik duvarı centos güvenlik