SSH protokolü, ana uygulama ve Telnet'ten farkı. Güvenli SSH Ağ İletişimi Protokolü, Temel

SSH (Güvenli kabuk- Korumalı kabuk) -- bu ağ protokolüÜzerinden geçen trafiği olası veri sıkıştırma ile şifreleyerek ağ ana bilgisayarları arasında güvenli kimlik doğrulama, bağlantı ve güvenli veri aktarımı sağlar. Bir diğer önemli işlevsel özellik, güvenli olmayan bir ortam (örneğin İnternet), diğer ağ protokolleri üzerinden güvenli aktarım için güvenli, şifreli tüneller oluşturma ve trafiği sıkıştırma yeteneğidir. Ek olarak, protokol SSH uzak istemcilerin iletilmesi de dahil olmak üzere, bir makinenin bağlantı noktalarının diğerinin bağlantı noktalarına iletilmesi (yönlendirme, iletme) ile harika çalışır X Penceresi... Şimdi protokol SSH, bir standarttır ve örneğin sunucu sistemleri için, yani güvenli bir bağlantı aracılığıyla sunucu kabuğunda çeşitli komutlar ve manipülasyonlar yürütmek, veri yedeklemeleri gibi dosyaları ağ üzerinden kopyalamak için yaygın olarak kullanılır.

Protokol SSH tarafından geliştirilen ticari bir versiyon olmak üzere iki versiyonda mevcuttur. SSH inc ve ücretsiz, açık kaynak, OpenSSHçoğunlukla çoğu sunucu platformunda kullanılır. uygulama OpenSSH, Unix ailesinin herhangi bir işletim sisteminde mevcuttur ve bunların çoğunda, SSH sunucu ve SSH müşteri, standart yardımcı programlar... Aşağıda yazılan her şey ilgilendirecek OpenSSH ve FreeBSD işletim sistemi. Protokolün iki versiyonu var SSH birbiriyle uyumlu değil. Protokolün ilk uygulaması SSH, SSH - 1, 1995 yılında geliştirilmiştir. İkinci versiyon, SSH - 2, 1996 yılında yayınlandı. 2006 yılında protokol SSH IETF tarafından bir İnternet standardı olarak kabul edilmiştir. Şimdi yaygın olarak kullanılan protokolün ikinci versiyonudur. SSHçünkü öncelikle protokol SSH ciddi güvenlik açıklarından muzdarip olan sürüm 1, ikincisi, sürüm 2 daha güçlü şifreleme algoritmaları kullanır, ayrıca kasıtlı veri bozulmalarını tespit etme yeteneğini destekler. Şifreleme algoritmaları:

  • SSH protokolü sürüm 1 DES, 3DES, balon balığı
  • SSH protokolü sürüm 2 AES-128, AES-192, AES-256, balon balığı, CAST-128, ArcFour
Özet işlevi:
  • SSH protokolü sürüm 1 hayır
  • SSH protokolü sürüm 2 HMAC-MD5, HMAC-SHA-1, HMAC-RIPEMD
Gördüğünüz gibi, fark çok büyük, bu yüzden protokol SSH versiyonlar 1 , şimdi genel olarak, hiçbir yerde kullanılması kesinlikle önerilmez.

SSH Kimlik Doğrulama Yöntemleri, OpenSSH Yazılım Paketi

Protokol güvenliği SSH aşağıdaki yazılım çözümleri tarafından sağlanır:
  • Üzerinden geçen tüm trafiğin şifrelenmesi SSH tarafların iletişim oturumu görüşmeleri sırasında seçilen olası algoritmalardan birine göre gerçekleştirilen bir bağlantı. Bağlantı trafiğini şifrelemek, bu trafiğin ele geçirilmesini ve kötü amaçlı amaçlarla kullanılmasını engeller. Farklı şifreleme algoritmaları seçerek, sistem çok esnek hale gelir, örneğin, güvenlik açıklarının veya olası güvenlik tehditlerinin bulunduğu algoritmaların kullanılmamasına veya yalnızca tarafların her biri tarafından desteklenen algoritmaların kullanılmasına izin verir;
  • kimlik doğrulama SSH sunucu her zaman trafiğin veya sunucunun kendisinin değiştirilmesine izin vermeyen herhangi bir bağlantıyla gerçekleştirilir;
  • kimlik doğrulama SSH müşteri oluşabilir Farklı yollar bir yandan kimlik doğrulama sürecinin kendisini daha güvenli hale getirirken, diğer yandan sistemi daha da esnek hale getirerek onunla çalışmayı kolaylaştıran;
  • Ağ paketlerinin bütünlüğünün kontrolü, bağlantı trafiğindeki yasa dışı değişiklikleri izlemeyi mümkün kılar, bu gerçek tespit edilirse bağlantı derhal sonlandırılır;
  • Geçici kimlik doğrulama parametreleri, ele geçirilen ve bir süre sonra şifresi çözülen bağlantı verilerinin kullanımını engeller.
Protokol SSH uzak istemciler için oldukça çeşitli kimlik doğrulama ve yetkilendirme yöntemlerini destekler. SSH sunucu, işte bunlardan bazıları:
  • GSSAPI tabanlı kimlik doğrulama
  • ana bilgisayar tabanlı kimlik doğrulama;
  • Bir ortak anahtar kullanarak kullanıcı kimlik doğrulaması;
  • Meydan okuma-yanıt kimlik doğrulaması ( meydan okuma-cevap);
  • Ve son olarak, bir parola kullanarak olağan kullanıcı kimlik doğrulaması;
Kimlik doğrulama yöntemleri bu sırayla kullanılır, ancak protokol sürüm 2'de bir seçenek vardır, Tercih Edilen Kimlik Doğrulamaları, varsayılan sırayı değiştirmenize izin verir. Ek olarak, SSH, belirli işletim sistemine bağlı olarak (örneğin, bsd_auth veya PAM) ek kullanıcı kimlik doğrulama yöntemlerini destekler.Genel olarak, kullanıcı kimlik doğrulaması genel anahtarlara dayanır. İstemci uzaktan yüklemeye çalışıyor SSH Bağlantı, sunucuya ilk kez bağlanırken aldığı, bildiği genel sunucu anahtarı ile verileri şifreler ve sunucuya iletir. SSH sunucu. Sunucu ise sadece kendisinin bildiği verilerin şifresini gizli bir anahtarla çözer ve istemciye gönderir. Böyle bir şemada istemci, sunucunun iddia ettiği kişi olduğundan emin olabilir. Yani güvenmek zorunda değilsin DNS ve saldırgan girişi taklit etmeyi başarsa bile yönlendirme DNS veya paketleri kendi ana makinenize yönlendirirseniz, yabancı ana bilgisayarlar bunun için gerekli anahtarlara sahip olmadığı için kimlik doğrulama başarısız olur. Çünkü SSH bu tam teşekküllü bir ağ protokolüdür, elbette, bu, hem temel işlevsellik hem de çeşitli çalışması için gerekli olan belirli bir program kümesidir. ek fırsatlar... FreeBSD işletim sisteminden bahsettiğimiz için (Unix'in diğer sürümlerinde set biraz farklı olabilir), ana bileşenler SSH NS:
  • sshd aslında SSH sunucu, daemon programı;
  • ssh- yerine geçen bir müşteri programı rlogin ve telnet;
  • scp- protokol aracılığıyla uzaktan kopyalama programı SSH, yerine rcp;
  • sftp- güvenli ftp istemcisi;
  • sftp sunucusu- protokol aracılığıyla dosya aktarımı sağlayan bir alt sistem SSH;
  • ssh-keygen- anahtar üreteci
  • ssh-tuş taraması- genel ana bilgisayar anahtarlarının "toplayıcısı";
  • ssh aracısı- özel anahtarları tutmak için bir kimlik doğrulama aracısı;
  • ssh-ekleme- anahtar eklemek için küçük bir program ssh aracısı;
Yukarıda belirtildiği gibi, sshd, bu, sunucu işlevinden sorumlu programdır. SSH, işletim sistemi önyüklendiğinde başlar. Protokolü kullanmak için SSH FreeBSD'yi kurduktan hemen sonra, arka plan programının başlamasını etkinleştirmeniz gerekir. sshd kurulum programında sistem kurulumu... Bu, sunucu terminaline erişiminiz olması koşuluyla daha sonra yapılabilir. Daemon'un başlamasına izin ver sshd, başlangıç ​​​​komut dosyası aracılığıyla yapabilirsiniz /etc/rc.conf, aşağıdaki satırı yazarak: Doğal olarak bunu yapamazsınız, ancak arka plan programını konsoldan başlatmanız yeterlidir. / usr / sbin / sshd, ancak bir sonraki yeniden başlatmada, sırasıyla protokolü kullanarak sunucuya erişim kendi başına başlamaz SSH buna sahip olmayacaksınız, ancak sunucu barındırma sağlayıcısının veri merkezinde bulunuyorsa, uzaktan yönetemezsiniz. Bu nedenle sunucuyu uzaktan yönetmeyi düşünüyorsanız, sshd kurulum aşamasında dahildir.

SSH, farklı şifreleme algoritmaları seçimine izin verir. Çoğu ağ işletim sistemi için SSH istemcileri ve SSH sunucuları mevcuttur.

SSH
İsim Güvenli kabuk
Seviye (OSI modeli) Uygulamalı
Aile TCP / IP
Bağlantı Noktası / Kimlik 22 / TCP
Protokolün amacı Uzaktan erişim
Şartname RFC 4251
Ana uygulamalar (istemciler)
  1. Parola doğrulama en yaygın olanıdır. Her bağlantıda, https gibi, trafiği şifrelemek için paylaşılan bir gizli anahtar oluşturulur.
  2. Anahtar çifti kimlik doğrulaması için, belirli bir kullanıcı için önceden bir genel ve özel anahtar çifti oluşturulur. Bağlanmak istediğiniz makine kayıtlı Özel anahtar ve uzak makinede açın. Bu dosyalar kimlik doğrulama sırasında aktarılmaz, sistem yalnızca ortak anahtarın sahibinin aynı zamanda özel anahtarın da sahibi olduğunu doğrular. NS bu yaklaşım Kural olarak, işletim sisteminde belirli bir kullanıcı adına otomatik oturum açma yapılandırılır.
  3. IP adresiyle kimlik doğrulama güvenli değildir, bu özellik çoğunlukla devre dışıdır.

Diffie-Hellman (DH) algoritması, paylaşılan bir sır (oturum anahtarı) oluşturmak için kullanılır. İletilen verileri şifrelemek için simetrik şifreleme, AES, Blowfish veya 3DES algoritmaları kullanılır. Veri aktarımının bütünlüğü, SSH1'de CRC32 veya SSH2'de HMAC -SHA1 / HMAC -MD5 kullanılarak kontrol edilir.

Şifrelenmiş veriler, ZIP arşivleyici ile aynı sıkıştırma seviyesini sağlayan LempelZiv (LZ77) algoritması kullanılarak sıkıştırılabilir. SSH sıkıştırması yalnızca istemcinin isteği üzerine etkinleştirilir ve pratikte nadiren kullanılır.

Standartlar ve yazılım uygulamaları

Protokolün ilk versiyonu olan SSH-1, 1995 yılında Helsinki Teknoloji Üniversitesi'nden (Finlandiya) araştırmacı Tatu Ulönen tarafından geliştirilmiştir. SSH-1, rlogin, telnet ve rsh protokollerinden daha fazla gizlilik sağlamak için yazılmıştır. 1996 yılında, protokolün daha güvenli bir versiyonu olan SSH-1 ile uyumlu olmayan SSH-2 geliştirildi. Protokol daha da popülerlik kazandı ve 2000 yılına kadar yaklaşık iki milyon kullanıcıya sahipti. Şu anda, "SSH" terimi genellikle tam olarak SSH-2 anlamına gelir, çünkü protokolün ilk sürümü önemli eksiklikler nedeniyle artık pratik olarak kullanılmamaktadır.

Python'da SSH kullanmak için python-paramiko ve python-twisted-conch gibi modüller vardır.

SSH tünelleme

SSH tüneli, SSH bağlantısı üzerinden oluşturulan ve tünellenmiş verileri şifrelemek için kullanılan bir tüneldir. İnternette veri iletimini güvence altına almak için kullanılır (IPsec'in de benzer bir amacı vardır). Bir SSH tüneli üzerinden gönderildiğinde, herhangi bir protokolün şifrelenmemiş trafiği SSH bağlantısının bir ucunda şifrelenir ve diğer ucunda şifresi çözülür.

Pratik uygulama birkaç şekilde yapılabilir:

  • SSH tüneli üzerinden çalışamayan ancak bir Socks proxy'si üzerinden çalışabilen uygulamalar için bir Socks proxy'si oluşturma
  • SSH tüneli üzerinden çalışabilen uygulamaları kullanma.
  • Hemen hemen her uygulama için uygun VPN tüneli oluşturma.
  • Uygulama belirli bir sunucuyla çalışıyorsa, SSH istemcisini, SSH tüneli üzerinden TCP bağlantılarının SSH istemcisinin çalıştığı makinenin belirli bir TCP bağlantı noktasına gelmesine izin verecek şekilde yapılandırabilirsiniz. Örneğin, Jabber istemcileri varsayılan olarak 443 numaralı bağlantı noktasından bağlanır. Ardından, bir SSH tüneli aracılığıyla Jabber sunucusuna bağlantı kurmak için SSH istemcisi, bağlantıları yerel makinenin herhangi bir bağlantı noktasından (örneğin, bağlantı noktası 4430'dan) yeniden yönlendirecek şekilde yapılandırılır. ) uzak bir sunucuya (örneğin, jabber .example.com ve 443 numaralı bağlantı noktası):

$ ssh -L 4430: jabber.example.com: 443 bazı ana bilgisayar

V bu durum Jabber istemcisi, localhost sunucusunun 4430 numaralı bağlantı noktasına bağlanacak şekilde yapılandırılmıştır (ssh istemcisi Jabber istemcisi ile aynı makinede çalışıyorsa).

Bir ssh tüneli oluşturmak için, çalışan bir ssh sunucusuna ve jabber.example.com'a erişimi olan bir makineye ihtiyacınız vardır. Bu yapılandırma, yerel makineden jabber.example.com'a erişim bir güvenlik duvarı tarafından kapatılırsa kullanılabilir, ancak İnternet erişim kısıtlaması olmayan bazı ssh sunucularına erişim varsa.

SSH (Secure Shell) bir ağ protokolüdür. uzaktan erişim iletilen veriler için şifreleme ve sıkıştırma kullanan. Basitçe söylemek gerekirse, bu, sistemde kimlik doğrulaması yapmanıza ve tamamen sistem adına çalışmanıza izin veren çok kullanışlı ve güçlü bir araçtır. yerel kullanıcıçalışan bir makineden kilometrelerce uzakta olmak. Ayrıca, telnet ve rsh'den farklı olarak - SSH, iletilen tüm bilgilerin gizli kalması için tüm trafiği şifreler.

Bu nedenle, zaten ssh yükledik ve sistem başlangıcında başlatmaya ssh-daemon eklendi. Komutla kontrol edebilirsiniz:

hizmet ssh stop | başlat | yeniden başlat

Ubuntu'da veya:

/etc/init.d/ssh (başlat | durdur | yeniden yükle | zorla yeniden yükle | yeniden başlat | durum)

Debian'da veya:

systemctl başlat | durdur | sshd.service'i yeniden başlat

ArchLinux'ta (yapılandırmanın her düzenlenmesinden sonra yeniden başlatmanız gerekir). Kit, bir istemci ve bir sunucu içerir.

Eylemde deneyelim! İlk önce bir klasör oluşturun ~ / .ssh

mkdir ~ / .ssh

için anahtarlar oluşturun verilen kullanıcı komutla sunucu:

ssh-keygen (normal bir kullanıcı olarak).

Oluştururken, anahtar için bir parola belirleyebilirsiniz (uzun bir parola belirlemeniz önerilir - daha sonra anahtarı almış olsanız da ancak anahtardan parolayı bilmesek bile, saldırgan oturum açamaz) veya sadece "Enter" tuşuna basarak atlayın - bu durumda şifre asla sorulmayacaktır. Aynı genel ve özel anahtarlar ~ / .ssh klasöründe göründü.

Başka bir makine bulun (bir akıllı telefon bile yapar - Android'de ConnectBot veya JuiceSSH gibi bazı harika SSH istemcileri vardır), üzerine ssh yükleyin ve şu komutla sunucuya bağlanın:

ssh [e-posta korumalı]

Her şey doğru yapılırsa, sizden kullanıcı şifresi istenecek ve girdikten sonra komut satırından bir görünümle kendinizi sisteminizde bulacaksınız.

Bu arada Windows için ssh sunucuları ve istemcileri de var.

Emeklerimizin sonucunun tadını çıkardıktan sonra, daha da sıkıcı bir kısma geçelim - istemci / sunucu kurulumu.

İstemci tarafı yapılandırması / etc / ssh / ssh_config, ve sunucu bir - / etc / ssh / sshd_config... Çoğu tam rehberlik konfigürasyon için muhtemelen man - man ssh ve man sshd_config içinde bir sayfa vardır, bu yüzden okumanızı tavsiye ederiz. Ve bu yazıda en gerekli şeyleri ele alacağız.

özelleştirme

Standart ssh bağlantı noktası 22'dir. Standart olmayan herhangi bir bağlantı noktasıyla değiştirilebilir (belirsizlik nedeniyle güvenlik nedeniyle hacklemeyi zorlaştırır veya potansiyel saldırganların dikkatini çeker :) - bunu yapmak için satırın yorumunu kaldırın:

#22 numaralı bağlantı noktası

Ve 65535'e kadar istediğinizi ekleyin (bağlantı noktasının komutla diğer hizmetlerle çakışmadığından emin olun #netstat -tupln | grep DİNLE).

Şimdi, sunucuya bağlanırken, istemcinin anahtarla yazması gerekecek:

ssh -p [bağlantı noktası]:

Varsayılan olarak, kök erişimine izin verilir. Kısıtlamanız şiddetle tavsiye edilir (ve bunun yerine sudo kullanarak yerel kullanıcı haklarını uygun şekilde sınırlandırın). Bunu yapmak için "PermitRootLogin" satırını bulun ve değeri "hayır" olarak değiştirin. Ayrıca "şifresiz" olarak da değiştirebilirsiniz - bu durumda, root altında oturum açmaya yalnızca güvenilir bir anahtara sahip makinelerin altından izin verilecektir.

Parola doğrulamayı devre dışı bırakabilir ve yalnızca tuşlarla çalışabilirsiniz - "PasswordAuthentication" satırını bulun ve değeri "hayır" olarak değiştirin. Ne için? Birisi gerçekten sisteminize erişmek istiyorsa, yetkilendirmeye çalışırken parolayı kaba kuvvet uygulayabilir veya bağlantınızı dinleyip şifresini çözebilir. Parola doğrulamayı devre dışı bırakırsanız ve örneğin iş dizüstü bilgisayarınızın genel anahtarını sunucuda ~ / .ssh / yetkili_keys'e eklerseniz, hatırladığımız gibi, sunucuya hemen izin verilir. Peki ya başka birinin makinesinde çalışıyorsanız ve acilen ssh sunucusuna erişmeniz gerekiyorsa, ancak beklendiği gibi içeri girmemize izin vermiyorsa? O zaman parola doğrulamasını devre dışı bırakamazsınız, ancak fail2ban yardımcı programını kullanabilirsiniz. Sadece deponuzdan kurun, ardından varsayılan ayarları uygulayacak ve en azından ssh kanalınızı kaba kuvvet saldırılarından koruyacaktır. fail2ban hakkında daha fazla bilgi - http://putty.org.ru/articles/fail2ban-ssh.html.

Sunucunuzun nükleer füze fırlatma anahtarlarını saklaması durumunda, şöyle bir şey yapabilirsiniz:

PermitRootLogin no - root altında oturum açmak yasaktır.

PasswordAuthentication no - şifresiz oturum açma

Uzak makinede uzun bir anahtar oluşturalım (-t şifreleme_tipi, -b bit uzunluğu):

ssh-keygen -t rsa -b 4096

Eşit derecede karmaşık bir parola ile (kurtarma Unutulan Şifre, bu arada, yapamazsın. "ssh-keygen -p" komutuyla değiştirebilirsiniz ama yine de eskisi istenecektir). Uzak yerel makinenin ortak anahtarını sunucudaki ~ / .ssh / yetkili_anahtarlara aktaralım ve işte - şimdi özel anahtarın parolası kullanılarak tek bir makineden erişim elde edilebilir. SSH, çok sayıda güvenlik yapılandırması kurmanıza izin verir ve bunun için çok sayıda özel ayara sahiptir - bunlar hakkında man'da okuyun.

İki sshd_config seçeneği aynı amaca hizmet eder:

GirişGraceTime- kimlik doğrulama gerçekleşmezse bağlantının kesileceği süreyi ayarlar.

MaxAuthDeneme- bağlantının sonlandırılacağına ulaşıldığında oturum açmaya yönelik yanlış girişimlerin sayısını ayarlar.

MaxSessions- eşzamanlı oturum sayısı (sunucu, üniversiteden veya işten bağlanacağınız ev bilgisayarınızsa, oturum sayısını bir ile sınırlamak makul olacaktır - bu durumda reddedilen bir oturum açma, paranoyayı artırmak, yeni anahtarlar üretmek ve şifre değiştirmek için bir neden haline gelir). Ancak dikkatli iseniz, sunucuya her girişte "Son Giriş" satırının görüntülendiğini fark etmiş olabilirsiniz. Buna ek olarak, kendi selamlama mesajınızı ekleyebilirsiniz - "Banner" satırını bulun ve hiçbiri yerine, oturum açma sırasında okunacak ve görüntülenecek metinle dosyanın yolunu ayarlayın.

Diğer şeylerin yanı sıra, yalnızca belirli kullanıcıların oturum açmasına veya belirli kullanıcılar dışında herkese izin verebilirsiniz:

AllowUsers user1- sadece user1'in girmesine izin verin.

Kullanıcıları Reddet kullanıcı1- user1 hariç herkese izin ver.

Ve erişim için benzer parametreler belirli gruplar- AllowGroups ve DenyGroups.

Ayrıca bir X11 oturumunu SSH yapabilirsiniz. Bunu yapmak için "ForwardX11" satırını bulun ve değeri "evet" olarak değiştirin.

İstemci yapılandırmasında benzer bir satır bulun - / etc / ssh / ssh_config ve ayrıca "evet" olarak değiştirin.

Şimdi sunucuya -X argümanıyla ssh üzerinden bağlanmanız gerekiyor:

ssh -X [e-posta korumalı]>

Bağlandığınızda uygulamayı hemen başlatabilirsiniz:

ssh -X [e-posta korumalı]"başvuru"

Çalışan bir GIMP, bir ssh oturumunda şöyle görünür:

Veya şüphelenmeyen bir kullanıcının dizüstü bilgisayar web kamerasından çıktı alabilirsiniz :)

Hesaplamalar doğrudan sunucu üzerinde yapılır ve çıktı istemci makineye gönderilir (yani sunucunun kendisinde X11 olmasa bile, uzak makinenizde grafiksel uygulamalar oluşturulabilir). Bu şema oldukça yavaş çalışır (tüm trafiğin dinamik olarak şifrelendiğini unutmayın) - ancak bu işlev çok kullanışlıdır.

Dosyaları bir SSH oturumu üzerinden de kopyalayabilirsiniz - bunun için basit bir "scp" yardımcı programı vardır. Dosyaları sunucudan istemciye doğrudan oturumda aktarabilirsiniz:

scp [e-posta korumalı]: / yol / dosya / dosya / sunucu / nerede / kaydet / yerel / makine

Yani istemciden sunucuya:

scp yolu / dosya / istemci [e-posta korumalı]: / yol / açık / sunucu

Bu, bir ders kitabını veya bir fotoğrafı kopyalamanız gerektiğinde oldukça kullanışlıdır, ancak birçok dosyayla çalışmanız gerektiğinde ne olacak? Bunun için çok uygun bir şey var - sshfs (çoğu * nix sisteminin depolarında kurulum için kullanılabilir).

Sadece yolu scp gibi ayarlayın:

sshf'ler [e-posta korumalı]: / ana sayfa / kullanıcı / mnt /

Ve sunucunun / home / user klasörü yerel makinenin / mnt bağlama noktasında görünecektir!

Kaldırma işlemi umount ile yapılır.

Ve son olarak, az bilinen bir özellikten bahsedelim. Bir dosya oluşturursanız /.ssh/config ve şu şekilde doldurun:

[ad] barındırıcısı

ana bilgisayar adı

Kullanıcı [sunucu kullanıcı adı]

istenilen seçenekler

sevmek

ileriX11 evet

30000 numaralı bağlantı noktası

Daha sonra şu şekilde giriş yapabiliriz:

ssh [isim]

ssh -X -p 30000 [e-posta korumalı]

Ve tüm seçenekler otomatik olarak alınacaktır. Böylece, belirli bir sunucuda sık kimlik doğrulama ile bu işlemi birkaç dakika içinde basitleştireceksiniz.

Günlük kullanımı için SSH hakkında bilmeniz gereken her şeyi (ve hatta daha fazlasını) ele aldık - anahtar kimlik doğrulamasının nasıl kullanılacağını öğrendik, sunucuyu kaba kuvvet saldırılarından koruduk ve genel olarak olası açıkların çoğunu yamaladık. Aslında, SSH başka pek çok şey yapabilir - örneğin, bir ssh oturumu aracılığıyla tünel oluşturma ve bağlantı noktası iletme, ancak sıradan bir kullanıcı olarak bunu kullanmanız pek olası değildir. Ek kaynaklar

Tanıtım

Bir önceki sayımızda, İnternet sunucularının güvenliği ile ilgili yazıda, İnternet sunucusunun platform ve işletim sistemi seçimi, genel olarak sunucunun güvenliği ile ilgili konular, kullanıcılarla çalışmanın yanı sıra aşağıdaki konular hakkında da tartışıldı. çalışma ve güvenlik duvarı ayarları... Size kısaca hatırlatmama izin verin, bir veya iki özel bilgisayarınız olduğunda küçük bir ofis veya ev ağını yönetmeyi düşünüyoruz. İlk durumda, bir bilgisayar bir güvenlik duvarı artı posta sunucusu, Bir web sunucusu ve belki bir ftp sunucusu. Basitçe söylemek gerekirse, özel bir bilgisayar bir tür paylaşılan kaynak olarak kullanılır. İkinci durumda, varlığı ima eden büyük ağ, bir bilgisayar ağ geçidi artı güvenlik duvarı olarak kullanılır ve diğeri posta sunucusu, web sunucusu vb. olarak kullanılır. Prensip olarak, ikinci yöntem tercih edilir, çünkü ağ geçidini bilgisayar korsanları tarafından ilk olası saldırının nesnesi olarak fiziksel olarak ayırırsınız. paylaşılan sunucu ağlar. Her durumda, gelecekte, iki tane olsa bile, onları başka görevlerle yüklemenin mantıksız olduğunu hatırlayarak, ayrılmış bilgisayarların sayısından soyutlayabilirsiniz.

Aşağıdakilerin tümü bir önceki makalenin satırına devam eder, bir Linux makinesinin sunucu olarak kullanıldığını ve kullanıcının Linux ve ağ oluşturmaya temel düzeyde aşina olduğunu varsayar. Bu örnekler için fikirler çeşitli Linux eğitimlerinden ödünç alınmıştır. Peki bu sefer hangi sorulara bakacağız? Öncelikle sunucuya kurmak isteyeceğiniz sunucu uygulamaları. İkincisi, ağ saldırıları (Linux ve Truva atlarındaki virüs türleri dahil) ve bunlarla başa çıkma yöntemleri. Bu sorular neden bir makalede birleştirildi? Gerçek şu ki, bilgisayar korsanlığı genellikle yöneticinin ihmali veya sunucu uygulamalarının korunmasındaki boşluklar nedeniyle gerçekleşir. İstemci, kelimenin kendisinden de anlaşılacağı gibi, sistemin kaynaklarını kontrol etmez, bu nedenle bir saldırıya konu olabilecek sunucular olduğu açıktır.

Sunucu uygulaması koruması

UNIX'e aşina olan herkes, hemen hemen her ağ programı hem istemci hem de sunucu olarak kullanılabilir. İlk durumda, hizmetleri kullanırsınız, ikincisinde bunları sağlarsınız. Bir ağ hizmetinde her iki parçanın da gerekli olduğu açıktır. Soru, ağınızdaki bir sunucuda ne tür sunucu programlarına ihtiyaç duyulduğudur. Linux kurarken, elbette en azından her şeyi seçebilirsiniz, çünkü bir diske kurmak henüz başlamak anlamına gelmez. Ama hangileri daha sonra etkinleştirilecek? Sunucularla çalışırken benim de her zaman uyguladığım basit bir tarif var - ne kadar az aktif sunucu olursa o kadar iyi (daha genel olarak: bir şey ne kadar karmaşıksa, onu kırmak o kadar kolay olur). UNIX'in güvenilirliği hakkında ne kadar konuşursanız konuşun, burada delikler düzenli olarak keşfedilir ve onarılır. Bu nedenle, ne kadar az program çalıştırırsanız, onları o kadar az izlemeniz gerekir. Gerçek hayatta, elbette, bu, kullanıcıları kelimenin tam anlamıyla her şeyden yasakladığınız gerçeğine indirgenmemelidir. Elbette güvenli, ama neden bir yöneticiyle uğraşasınız ki? Ancak wai gibi gereksiz şeyler kesinlikle konulmamalıdır.

Telnet ve ssh

Şimdi hem iç hem de dış kullanıcıların gerçekten neye ihtiyacı olduğuna daha yakından bakalım. Telnet ve ssh'ye (güvenli kabuk) ihtiyacımız var. Belki bu çok uygun bir erişim değildir, ancak en azından yöneticiler için gereklidir. Bu, bilgisayarınızda 80x25 karakterlik bir pencere göründüğünde, aranan sunucuyu tamamen yansıtan terminal modunda erişim sağlayan bir programdır. Herhangi bir komutu yürütebilir ve grafik kullanmayan programları çalıştırabilirsiniz - genel olarak, bu normal bir uzak terminaldir. Telnet ve ssh arasındaki fark isimlerden kaynaklanır, ancak yine de açıklamamıza izin verin: telnet bilgileri korumasız olarak iletir, şifre bile ağ üzerinden düz metin olarak iletilir ve ssh iletilen tüm bilgileri şifreler. Korumadan az çok emin olmak istiyorsanız, telnet kullanımını devre dışı bırakın veya hiç başlatmayın. Hâlâ kullanmak istiyorsanız, elbette bir güvenlik duvarı kullanmanız gerekir. Standart komutlar aşağıdaki gibi olabilir:

ipfwadm için -

Ipfwadm -I -a kabul -P tcp -S 10.0.0.0/8 -D 0.0.0.0/0 23 ipfwadm -I -a kabul -P tcp -S some.trusted.host -D 0.0.0.0/0 23 ipfwadm - I -a reddet -P tcp -S 0.0.0.0/0 -D 0.0.0.0/0 23

ipchains için -

ipchains -A input -p all -j KABUL -s 10.0.0.0/8 -d 0.0.0.0/0 23

Ipchains -A input -p tümü -j KABUL -s bazı.trusted.host -d 0.0.0.0/0 23 ipchains -A input -p tümü -j DENY -s 0.0.0.0/0 -d 0.0.0.0/0 23

Sırasıyla yazmanız gereken /etc/hosts.allow ve /etc/hosts.deny dosyalarını da kullanabilirsiniz:

ilk dosyada -

In.telnetd: 10.0.0.0/255.0.0.0, bazı.trusted.host

ikinci dosyada -

Telnetd: TÜMÜ

Bu kurallar etkinleştirilse bile, bir paketin yolu boyunca bir yerde ağda bir parola ile dinleyen herhangi bir programın onu engelleyebileceğini unutmayın.

Sistem güvenliği ile ilgili bilgileri içeren diğer iki önemli dosya, /etc/securitytty ve /etc/shells'dir. Birincisi, kök kullanıcının oturum açabileceği terminalleri belirtir. Çoğu sistemde, varsayılan olarak, kök kullanıcı yalnızca konsoldan oturum açabilir. İkinci dosya, bir kullanıcı oturum açtığında çalışabilecek geçerli sarmalayıcıların bir listesini belirtir. Linux kılavuzundan aldığım güzel bir örnek, passwd'yi kabuk olarak kullanmaktır. Bu, kullanıcılara kolay bir şifre değişikliği sağlar ve ayrıca terminal modunda başka bir şey yapmamalarını sağlar. Bunu yapmak için, passwd programının kendisini / etc / shells dosyasına girin, yani şu satırı girin:

/ usr / bin / şifre

ve / etc / passwd dosyasında kullanıcı hakkında şunu yazın:

Kullanıcı adı: x: 1000: 1000 :: / ana sayfa / kullanıcı adı: / usr / bin / şifre

Artık kullanıcı ağda oturum açtığında sadece şifreyi değiştirebilir. Terminalin çıktısı şöyle görünür:

1.2.3.4 deneniyor ... localhost'a bağlandı. Kaçış karakteri "^]". Bir i586 oturumunda Red Hat Linux sürüm 5.2 (Apollo) Çekirdeği 2.2.5: testçi Parola: Test kullanıcısı (geçerli) için parola değiştirme UNIX parolası: Yeni UNIX parolası: Yeni UNIX parolasını yeniden yazın: passwd: tüm kimlik doğrulama belirteçleri başarıyla güncellendi Bağlantı yabancı tarafından kapatıldı ev sahibi.

Şifre değiştirme girişimi başarısız olsa bile sistemden bağlantısı kesilecektir. Bağlanırken başlangıç ​​çıktısına da dikkat etmelisiniz: telnet dürüstçe sistem adını ve sürümünü yazar. Genel olarak, bu uygundur, ancak bu durumda potansiyel bir bilgisayar korsanına kendi amaçları için kullanabileceği bilgileri verirsiniz. Bundan nasıl kaçınabilirsiniz? Bir kullanıcı oturum açtığında telnet, sistem başlangıcında oluşturulan /etc/issue.net dosyasını görüntüler. rc.local dosyasındaki komutlar tarafından oluşturulur:

# Bu, her açılışta / etc / sorununun üzerine yazacaktır. Bu nedenle, / etc / sorununa # yapmak istediğiniz değişiklikleri burada yapın, yoksa yeniden başlattığınızda bunları kaybedersiniz. echo ""> / etc / issue echo "$ R" >> / etc / issue echo "Çekirdek $ (uname -r) $ a $ (uname -m) üzerinde" >> / etc / issue cp -f / etc / issue /etc/issue.net echo >> / etc / sorun

Bu nedenle, sistemi aşırı yüklemiyorsanız, /etc/issue.net dosyasını düzenleyebilirsiniz, aksi takdirde rc.local'ın kendisini düzenleyebilirsiniz. Her durumda, telnet yalnızca gerçekten ihtiyaç duyulduğunda önerilir ve ssh ile değiştirilemez.

Ssh, kullanıcının bakış açısından telnet'e benzer. 23 numaralı bağlantı noktasını kullanan telnet'ten farklı olarak 22'yi kullanır, ancak asıl dahili fark, tüm trafiğin şifrelenmiş olmasıdır. Diğer tüm açılardan, benzerler. ssh için, aynı güvenlik duvarı kurallarını (bağlantı noktası numarası değiştirilerek) ve /etc/hosts.allow, /etc/hosts.deny dosyalarındaki ayarları kullanabilirsiniz. Güzel bir özellik, aşağıdaki yapılandırma satırlarını içeren kendi / etc / sshd / sshd_config yapılandırma dosyasının varlığıdır:

Port 22 # 22'den fazla olabilen port numarası ListenAddress 0.0.0.0 # HostKey arka plan programının hangi adreslere hizmet ettiği / etc / ssh / ssh_host_key # istemci kodları dosyası RandomSeed / etc / ssh / ssh_random_seed # kodları oluşturmak için kullanılan rastgele sayıların dosyası ServerKeyBits 768 # kodun bit cinsinden uzunluğu LoginGraceTime 300 # ad ve parola girme süresi KeyRegenerationInterval 3600 # kod yenileme sıklığı PermitRootLogin no # root kullanıcısının ssh ile oturum açıp açamayacağı IgnoreRhosts evet # Kullanıcının dosyasındaki bilgileri yoksay veya alma rhosts StrictModes evet # katı mod, kullanıcı kusurlarını engelleme, örneğin 5 kez şifre girme # veya yanlışlıkla basmak QuietMode'a girin hayır # evet - günlük dosyasını hiç yazmamak ve hayır - aksi halde X11Forwarding hayır # ssh kanalı aracılığıyla X sunucusundan bilgi iletmek FacistLogging hayır # günlük dosyalarının tamlık derecesi PrintMotd evet # günün bazı cümlelerini göster KeepAlive evet # standart bağlantı kesme sağlayarak iletişimi sürdür SyslogFacility DAEMON # günlük oluşturmaktan sorumlu olan RhostsAuthentication no # rhosts aracılığıyla kullanıcı kimlik doğrulamasına izin ver RhostsRSAAuthentication no # rhosts veya /etc/hosts.equiv aracılığıyla doğrulama olsun veya olmasın # varsayılan olarak evet olarak ayarlandı RSAAuthentication evet # sadece RSA kimlik doğrulamasını kullanın PasswordAuthentication evet # kullanıcıların normal şifrelerini kullanın veya kullanmayın PermitEmptyPasswords hayır # şifresiz kullanıcılara izin verin veya vermeyin

Ayrıca bazı yararlı ayarlar da vardır, özellikle:

AllowGroups, DenyGroups, AllowUsers, DenyUsers, AllowHosts, DenyHosts, IdleTimeout süresi (hareketsizlik durumunda bağlantının kesileceği süre).

Yukarıdan da görebileceğiniz gibi, genel olarak ssh o kadar çok seçeneğe sahiptir ki, tam olarak kimin ve nasıl giriş yapabileceğini kontrol edebilirsiniz. Ama bu sunucuyla ilgili ve ağ kullanıcılarının ssh istemcilerini çalıştırması gerekiyor. Windows'ta bulunan telnet'in aksine, ssh standart dağıtıma dahil değildir. Linux'ta bu sorun yok - istemci de orada. Ssh arka plan programının hem birinci hem de ikinci sürümlerde mevcut olduğuna dikkat etmek önemlidir. Geriye dönük uyumluluk olmaması elbette hoş değil, ancak bir yönetici olarak, kullanıcılara sunucuyla iletişim kurabilecek istemcileri sağlayacağınızdan eminim. İşte Windows için bazı ssh istemcileri:

  • Taze Bedava FiSSH. http://www.massconfusion.com/ssh/
  • Terim Terim. http://hp.vector.co.jp/authors/VA002416/teraterm.html telnet istemcisi. http://www.zip.com.au/~roca/ttssh.html - ssh desteği için ek dll
  • Macun. http://www.chiark.greenend.org.uk/~sgtatham/putty.html - sadece yaklaşık 200K
  • Mindterm http://www.mindbright.se/mindterm/ - Java ssh istemcisi
  • Java Telnet Uygulaması. http://www.mud.de/se/jta/ - ssh desteği var
  • Güvenli CRT. http://www.vandyke.com/ - ticari müşteri

rlogin, rexec, rsh gibi programlarla bağlantılı olarak terminal erişiminden bahsetmek gerekir. Kullanımları herhangi bir korumadan yoksundur ve bazen kullanıcıların şifre girmeden makineden makineye geçmesine bile izin verir. Bu, güvenlik açısından uygun olmasına rağmen, hiçbir şey için iyi değildir. Bu hizmetler genellikle varsayılan olarak başlatılır. Bunları geri almak için /etc/inetd.conf dosyasını düzenlemeniz ve inetd arka plan programını yeniden başlatmanız gerekir. Genel olarak telnet ve ssh, sisteme terminal erişim olanaklarını tüketir. Bu nedenle, kullanıcılar için yararlı olan diğer sunucu uygulamalarına geçelim.

Posta veya e-posta

İnsanların postaya sahip olması için neye ihtiyaç vardır, bu olmadan insanlar arasındaki iletişim genellikle artık düşünülemez? Oldukça yaygın bir yol, bir posta sunucusu kurmak, oradaki her kullanıcı için bir posta kutusu oluşturmak ve insanların bu postayı alabilmesi için bir açılır arka plan programı yapılandırmaktır. Ancak sunucunun mektup alıp gönderebilmesi için üzerine kurulu olması gerekir. posta programı UNIX makinesinde postaları işleyen sendmail, postfix veya qmail gibi. Geleneksel olarak, sendmail bu amaç için kullanılmıştır. Şimdi çoğu makinede de kullanılıyor, ancak bahsedilen diğer iki program iyi ve hatta geliştirilmiş ikamelerdir. Her zaman olduğu gibi, ana endişeler koruma ile ilgilidir, ancak en son sürümler sendmail (8.9.x) oldukça sağlamdır.

Sendmail, muhtemelen 8.9.x sürümünü içeren en son dağıtımlarla birlikte tüm Linux sistemlerinde mevcuttur. Program, süreçte analiz ettiği birkaç yapılandırma dosyası kullanır. Ancak konfigürasyondan bahsetmeden önce, programın hem arka plan programı olarak hem de bekleme modunda başlatılabileceğini not ediyoruz. İlk durumda, sürekli olarak bağlantı noktasını dinleyecek ve ikincisinde bir kez etkinleştirilecek ve gelen tüm bilgileri basitçe işleyecektir. İkinci yöntem, güvenlik açısından tercih edilir. Bunu yapmak için, başlangıç ​​satırındaki -bd parametresini kaldırmanız yeterlidir.

Şimdi yapılandırma hakkında. Ana dosya sendmail.cf'dir ve diğer dosyalara bağlantıları olabilir veya olmayabilir. Hangi (veya hangi) mektupların gönderilmeyeceği adresleri koyabileceğiniz erişim dosyası da analiz edilir. Örneğin, girişler:

10.0.0 RÖLE spam.com REDDET

.spam.com adreslerinden gelen e-postaların kabul edilmeyeceği ve dahili ağdan gelen e-postaların kabul edilip gönderilebileceği anlamına gelir.

Bir diğer yararlı ve kullanılan dosya takma adlardır. Hangi adların verilen posta kutusunun adı olarak yorumlanacağını belirtir. Örneğin, ayarlarsanız

Petrov: yıldız

Petrov'a gelen mektuplar [e-posta korumalı] kutusuna gönderilecektir [e-posta korumalı] kimse bilmese bile gerçek adres... Bu, özellikle e-postaların yöneticinin adıyla değil de kendi posta kutusuna sahip olmak isteyen bir yöneticiye gönderilmesini istiyorsanız kullanışlıdır. Bu, yöneticinin adresini yalnızca uygun gördüğü kişilere vereceği ve yöneticinin Web sayfasında asılı kalacağı anlamına gelir. Açıkçası, bu bir yönetici değişikliği durumunda maksimum kolaylık sağlayacaktır. Herhangi bir sayıda isim aynı posta kutusuna yönlendirilebilir.

Virtusertable dosyası, bir adresin diğerine eşlenmesini belirtir, örneğin:

[e-posta korumalı] yönetici

Bu iki dosyayı (takma adlar ve virtusertable) kullanarak, gelen tüm postaları kaydedecek olan posta çoğaltması uygulanabilir. İşin püf noktası, önce virtusertable dosyasına, ardından takma adlara bakılmasıdır. Takma adlar dosyasındaki virtusertable'daki son girişle şunu yazarsak:

Yönetici: yıldız, "/ var / biriktirme / mail2 / yıldız"

daha sonra hem yönetici hem de yıldız adreslerine gelen mailler normal / var / spool / mail dizinine ve / var / spool / mail2'ye yazılacaktır.

Postfix ve sendmail arasındaki temel farklardan biri modülerliktir (qmail'de de vardır). sendmail'den farklı olarak, kodun sadece küçük bir kısmı, sadece bir modül root olarak çalışır ve diğer tüm kısımlar gerektiği gibi çalıştırılır ve kendi ayarlarına sahiptir. Genel olarak, postfix yapılandırma dosyaları genellikle / etc / postfix içinde bulunur. manager.cf dosyası, altında çalıştıkları kullanıcıları ve işlem sayısını belirterek çeşitli modüllerin çalışmasını yönetir. main.cf dosyası ana yapılandırma dosyasıdır ve postanın kendisinin temel parametrelerini ayarlar. Açıklamalarla birlikte yaklaşık formu (daha doğrusu, büyük olasılıkla düzenlenmesi gerekecek olan bileşenler):

# makine adı myhostname = mail.example.org # domain mydomain = example.org # e-postaları hangi adresten gönderiyorsunuz myorigin = $ mydomain # programı çalıştırmak için hangi arayüzlerde inet_interfaces = tüm # sanal adlar dosyası virtual_maps = hash: / etc / postfix / sanal # isim değiştirme dosyası alias_maps = hash: / etc / postfix / aliases # kullanıcı postayı aldığında postanın saklanacağı dizin home_mailbox = Maildir / # postanın nerede saklanacağı mail_spool_directory = / var / spool / mail # almak için komut mailmailbox_command = / usr / sbin / scanmails # postanın hangi adreslerden ve hangi adreslere iletileceğini gösteren bir dosya # röle_alanları = / etc / postfix / rölealanları # yerel makineler mynetworks = 10.0.0.0/24, 127.0.0.0/8 # kullanıcılar 25 numaralı bağlantı noktasına bağlanırsa ne çıkacak smtpd_banner = $ myhostname ESMTP $ mail_name

Postfix programı http://www.postfix.org adresinden edinilebilir.

Şimdi POP ve IMAP protokollerinden bahsedelim. Birincisi 110. limanda, ikincisi - 143'te çalışıyor. Prensip olarak, her ikisi de aynı hedefi takip eder, ancak farklı şekillerde uygulanırlar. POP (postane protokolü) oldukça eski ve zayıf bir protokoldür. Tek izin verdiği şey, sunucuya bağlanmak, posta almak ve sunucudaki posta kutusundan silmek. IMAP protokolü daha ileri. Postanızı doğrudan sunucu üzerinde yönetmenize olanak tanır. Tüm postaları indirmeniz gerekmez, yalnızca harflerin başlıklarını almanız, sunucuda dizinler oluşturmanız ve postaları aralarında dağıtmanız gerekir. Güvenlik açısından bakıldığında, bu protokoller aynıdır, bu nedenle sorun yaşamamak için bir güvenlik duvarı kullanılması tavsiye edilir. Bu protokollerin trafiğini de ssh içine koyabilirsiniz. Postanızı virüslere karşı kontrol etmek çok önemlidir. UNIX'te virüsler korkutucu olmasa da, birçok kullanıcı Windows kullandığından, e-postaları AMAVIS gibi bir tarayıcı programı aracılığıyla çalıştırmak akıllıca olacaktır. Bunu yapmanın en kolay yolu (elbette, AMAVIS programının zaten kurulu olduğu varsayılır), eğer yapılandırma satırında postfix ise

Mailbox_command = / usr / bin / procmail

Mailbox_command = / usr / sbin / scanmails

Bir kullanıcının işyerinde nasıl posta aldığı ve gönderdiği hakkında kısaca. Neyse ki, tüm popüler programlar POP veya IMAP istemcileridir (en azından Netscape ve Outlook'u kastediyorum). Ayrıca, yönetici sunucuya telnet veya ssh aracılığıyla erişim izni vermişse, postayı görüntüleyebilir ve onunla terminal modunda çalışabilirsiniz (bu durumda onu almak daha zordur). Bunu yapmak için, sunucuya bağlanmanız ve terminalde posta veya pine gibi bir posta programı çalıştırmanız gerekir. İkincisi çok daha uygundur ve yalnızca metin modunda bir menü içeren tam ekran bir programdır.

Dosya erişimi ve ağdan yazdırma

Bir UNIX sisteminde iki standart araçlar-NFS ve LPD. Birincisi ağ dosya sistemleri oluşturmanıza, ikincisi - bir yazıcıya yazdırmanıza izin verir. Windows'tan bir UNIX makinesinin kaynaklarını kullanmak söz konusu olduğunda, Samba (SMB) bunun için en uygun gibi görünüyor. Bu program, dosyalara erişmenizi sağlar ve ayrıca bir UNIX sunucusu aracılığıyla bir Windows makinesinden ağ üzerinden yazdırma yeteneği sağlar. Bu makale ağırlıklı olarak sunucu güvenliği ile ilgili olduğu için, harici güvenlik duvarı kurallarının normal konfigürasyonu ile ağ içindeki kaynakların paylaşımının elbette tehlikeli olmadığını belirtmek gerekir. Burada, herkesin bu veya bu bilgilere erişmemesi gerektiği gerçeğiyle bağlantılı farklı bir planın sorunları ortaya çıkabilir, ancak bu tamamen dosya ve dizinlerin özniteliklerinin ayarları tarafından düzenlenir. Ne kadar zeki bir yönetici olursanız olun, örneğin birinin ssh oturumunu kapatmayı unutup bilgisayarı terk etmesi gibi bir durumu engelleyemezsiniz. Bazı dosyalara okuma erişimi verirseniz bu başka bir konudur, ancak bunlar üzerinde fazla durulmayacak kadar bariz şeylerdir. Bu nedenle, şimdi yalnızca dahili kullanıcılar için değil, aynı zamanda harici kullanıcılar için de yararlı olan sunucu uygulamalarının değerlendirilmesine dönüyoruz. Öncelikle bir web sunucusu ve belki de ftp'yi kastediyorum. Artık en küçük şirketi veya hatta birincisi olmayan bir ağı hayal etmek zor ve ikincisinin varlığı, bir ftp sunucusuna bazı verileri ayrı olarak yüklemeye gerçekten ihtiyacınız olup olmadığına bağlıdır.

Web ve ftp sunucuları

Apache, şu anda var olan birkaç Web sunucusu arasında popülerlik ve performans açısından tartışmasız liderdir. Bu sunucu hız, kararlılık, yüksek güvenliği bir araya getirir ve aynı zamanda ücretsizdir. Kendi amaçları için böyle bir program bulmak her zaman mümkün değildir, ama işte burada. Ve programın yazarlarının maksimum verimlilik ve güvenilirlik elde etmek için çok çaba sarf ettiğini kabul etmeliyiz. Her şeyden önce, Web sunucunuzu yalnızca sistem yönetimi veya dosya paylaşımı gibi dahili amaçlarla kullanıyorsanız, kesinlikle dış dünyadan güvenlik duvarı yapmanız gerektiğini unutmayın. Bu herkes için bir sunucuysa, o zaman herkese açık olduğunu anlamanız gerekir. Bu nedenle, onu uygun şekilde izlemek gerekir, yani: olası bir saldırıyı önceden belirlemek için dikkatlice ve doğru bir şekilde yapılandırın ve günlük dosyalarını izleyin. Güvenlik söz konusu olduğunda, yalnızca ilk kopyası kök olarak başlatıldığından ve geri kalanı genellikle hiç kimse olarak başlatıldığından, sunucunun kendisinin sisteme çok az erişimi vardır. Ayrıca sunucu ayarlarında yani httpd.conf, smr.conf, access.conf dosyalarında sunucunun hangi dizinlere erişimi olduğu ve hangilerine erişimi olmadığı açıkça belirtilir. httpd.conf dosyasına yazarsanız, örneğin:

Seçenekler Yok AllowOverride Yok Seçenekler Dizinler FollowSymLinks AllowOverride'ı içerir Yok

o zaman, sunucunun yalnızca, çalışmaları sunucu tarafından sağlanan sitenin (veya sitelerin) tüm materyallerini yerleştirmeniz gereken / WWW dizinine erişimi olduğunu açıkça belirteceksiniz. Örneğin, .htaccess dosyasını bir dizine ekleyerek kimsenin erişim haklarını değiştiremeyeceğinden emin olmak istiyorsanız, o zaman srm.conf'a şunu girmelisiniz:

izin ver, reddet hepsini reddet

Güvenlik açısından, özellikle Apache sunucusunun kurulumu ve minimum yapılandırması önceki sayıda bu konuya ayrılmış bir makalede açıklandığı için, diğer ayarlar hakkında daha ayrıntılı konuşmak mantıklı değildir.

https (secure http) protokolünün kullanımı üzerinde ayrıca durmak gerekir. Bu protokol genellikle 443 numaralı bağlantı noktasında çalışır (80 numaralı bağlantı noktasında çalışan standart http'nin aksine). Apache'yi güvenli http ile zenginleştirmenin en az iki yolu vardır. Birincisi open-ssl'den eklenti kullanmak, ikincisi mod_ssl modülünü kullanmak. Her iki seçenek de neredeyse aynı sonuçlara yol açar. Genel olarak, 443 numaralı bağlantı noktasında https kullanarak bağlantı kurmak mümkün hale gelir. Bu, bağlantı üzerine istemciler tarafından doğrulanacak olan sunucu için bir sertifika oluşturur. Bu, (tabii ki, mutlak bir garanti ile değil) trafiği gizlice dinlemeyi hariç tutacaktır. Openssl kullanırken sertifika oluşturmak için şu komutları vermeniz gerekir:

Openssl genrsa -des3> httpsd.key openssl req -new -key httpsd.key> httpsd.csr

ayrıca dosyalar, sunucunun yapılandırma dosyalarının bulunduğu dizinde olmalıdır. Sunucunun 443 numaralı bağlantı noktasıyla düzgün çalışması için yapılandırma dosyalarını da değiştirmeniz gerekecektir. Gibi bir şey yazmaları gerekiyor

# 443 numaralı bağlantı noktasında dinleme (varsayılan olarak, sunucu yalnızca 80. bağlantı noktasını dinler) Dinle 443 # devre dışı bırak küresel kullanım ssl SSLDisable # ssl bağlantısı sırasında sunucunun geçici bilgileri depolayacağı yer. # Bu ayar olmadan, sunucu SSLCacheServerPath / usr / bin / gcache # sunucunun CashServer ile iletişim kurduğu bağlantı noktası SSLCacheServerPort 12345 # CashServer zaman aşımı SSLSessionCacheTimeout 300

Bu ayarlardan sonra sunucunuz temelde https ile çalışmaya hazırdır ancak şimdilik bu protokol yasaktır. Standart sunucunuzla aynı ada sahip, ancak 443 numaralı bağlantı noktasının açık bir göstergesi olan bir sanal ana bilgisayar oluşturmanız önerilir, başka bir deyişle, artık çalışan bir web sunucunuz var. 80 numaralı bağlantı noktasında çalışır ve http protokolünü kullanır. apache-ssl ve yukarıda açıklanan ayarları ekleyerek kullanıcılara https protokolü üzerinden sunucunuzla iletişim kurma olanağı vermiş olursunuz. Sunucunuzdaki tüm bilgilerin, yalnızca güvenli bir bağlantı modunda vermek isteyeceğiniz kadar sınıflandırılmış olması pek olası değildir. Apache sunucusu, sanal makineler oluşturmanıza izin verir, yani, bir ana bilgisayar için bir kök alt dizini bildirebilir, ona bir ad verebilir, bir dizi yapılandırma dosyası ve gerekli olan her şeyi yazabilirsiniz, ancak fiziksel olarak bilgisayarınızda bulunacaktır. ve kendi sunucunuz tarafından kontrol edilecektir... Bizim durumumuzda, aynı olduğu için farklı bir isim vermek bile gerekli değildir, sadece farklı bir port. Bunun gibi bir kurulum şöyle görünebilir:

DocumentRoot / www / güvenli / SunucuAdı www.example.com SunucuYöneticisi [e-posta korumalı] ErrorLog günlükleri / https_error.log TransferLog günlükleri / https_access.log # Bu sanal ana bilgisayar için ssl'ye izin ver SSLEnable # Yalnızca ssl iste SSLRequireSSL SSLCertificateFile /usr/conf/httpsd.crt SSLCertificateKeyFile /usr/conf/httpskeyClient

Http'ye ek olarak ftp de vardır - özellikle kullanıcıların indirmesi gereken çok sayıda dosyanız varsa (örneğin, bazı araştırma verileri sağlarsınız) kullanışlı ve kullanışlı bir hizmettir. ftp'nin http'ye göre avantajı hızdır. ftp protokolünün minimum ek yükü vardır. Ancak, onunla ilgili birçok sorun var. Bunlardan en önemlisi "yaşı"dır: ftp, telnet kadar eskidir. Buradan güvenlikle ilgili komplikasyonlar hemen ortaya çıkar: kullanıcı adı ve şifre açık bir şekilde iletilir ve iletilen bilgilerin trafiği hiçbir şey tarafından korunmaz. Ayrıca ftp sadece dosya aktarabilir. Bu nedenle, herkesin erişebileceği bazı bilgileriniz varsa, herkesin adı altında gireceği bir kullanıcı oluşturmak mantıklıdır. Bu tür ftp arşivlerinde genellikle bu kullanıcıya anonim denir ve e-posta adresini şifre olarak geçirir. Bu durumda, çok daha az güvenlik sorunu vardır. Ayrıca, birkaç kullanıcıya ftp erişimi sağlamanız gerektiğinde, dosyaları yalnızca kendi dizinlerine koyabilmeleri için bir chroot yapın. Sunuculara gelince, elbette, standart paketlerde mevcutturlar, ancak belki de standart bir ftpd değil, başka bir tane kurmak istersiniz.

Popüler ftp sunucularından biri proftpd'dir. Yapılandırma dosyaları Apache dosyalarına benzer, bu da büyük olasılıkla web sunucunuz Apache olduğundan bunlara uyum sağlamayı kolaylaştırır. Ana yapılandırma dosyası /etc/proftpd.conf'dur. Yaklaşık formu şöyle olabilir:

SunucuAdı "ProFTPD Varsayılan Kurulumu" ServerType inetd DefaultServer on Port 21 Umask 022 MaxInstances 30 Kullanıcı kimse kimse Grup yok Üzerine Yazmaya İzin Ver

Yukarıdaki liste, sunucunun standart 21. bağlantı noktasında inetd üzerinden başlatıldığını, maksimum kopya sayısının 30 olduğunu ve grup ve kullanıcı kimse olarak başlatıldığını gösterir. 022 - başlangıçta standart olarak uygulanacak, oluşturma sırasında dosya özniteliklerinin maskesi. Bu yapılandırma, anonim kullanıcıya erişim sağlamaz. Bunu yapmak için yaklaşık olarak aşağıdaki yapılandırma ayarlarını yazmanız gerekir:

Kullanıcı ftp Grubu ftp RequireValidShell off UserAlias ​​​​anonim ftp MaxClients 10 DisplayLogin Welcome.msg DisplayFirstChdir .message Hepsini inkar etmek

Bu eklemeden sonra, anonim olarak çalışmak ve sadece okumak, yani indirmek, dosyalar mümkün hale gelir. Dizinleri kullanma haklarını ayarlamak için başka bir örnek vereceğim:

Hepsine izin ver Hepsini inkar etmek

Yapılandırma dosyasındaki böyle bir giriş, yazma erişimi sağlar, ancak dosya indirme hakkı vermez. Bu, kullanıcıların dosya yükleyebilmesini, ancak başkalarının ne koyduğunu görememesini istiyorsanız kullanışlıdır.

Bu, sunucu uygulamaları konusunu sonlandırıyor. Tabii ki, daha birçok sunucu uygulaması olduğunu belirtmek gerekir: DNS, haber sunucuları, NIS sunucuları, X sunucusu ve daha birçok ilginç ve kullanışlı uygulama da vardır. Ancak, küresel bir siber polis veya sağlayıcı olduğunu iddia etmeyen bir ağı işletirken gerçekte neye ihtiyaç duyulabileceğine odaklanmaya çalıştım. Şimdi makalenin başında belirtilen ikinci sorunun ele alınmasına geçelim - ağ saldırıları ve hack'ler.

Ağ saldırıları ve hack'ler

Her şeyden önce, birkaç genel kelime. UNIX'te Windows'tan farklı olarak virüslerle ilgili bir sorun yoktur. Bellek tahsisinin ve dosya izinlerinin dahili yapısı, virüslerin genellikle eski DOS veya Windows'ta yaptıklarıyla kendi başına başa çıkabilir. Virüsler için ana engel (standart anlamda), sıradan bir kullanıcı adına çalışan programlar için fiziksel cihazlara erişimin olmaması ve dosya özniteliklerinin genel olarak değil, kullanıcı, grup ve tüm kullanıcılar. Windows'ta böyle bir şey yoktur (bu, kısmen Windows 2000'de uygulanmaktadır). Geleneksel virüslerin neden olduğu sıkıntı neredeyse imkansız olsa da, UNIX sistemleri hala saldırıya uğramakta ve yok edilmektedir. Bunun nedeni, kabaca iki kategoriye ayrılabilen tamamen farklı teknolojilerin varlığıdır. Birincisi, görünüşte ve belki de aslında oldukça makul ve yasal işlemler gerçekleştiren programlar olan sözde Truva atları. Bununla birlikte, paralel olarak başka "işler" yapıyorlar: ağı dinlemek veya şifreler hakkında bilgi toplamak ve ağa göndermek vb. Bu programların kendilerinin doğrudan zarar vermesi olası değildir - bunun yerine, sisteminiz ile harici bir saldırgan arasında aracı olacaklardır. İkinci kategori ağ hack'leridir. Bu eylemler başlangıçta makinenin dahili içeriğine hitap etmez, ancak kasıtlı olarak yanlış ağ paketleri gibi bazı bilgiler göndererek veya özel olarak oluşturulmuş istekler yoluyla bazı gizli verileri "çekmeye" çalışarak sistemi yok etmeye veya sisteme erişim elde etmeye çalışır. . Neden sistemleri hackleyelim ki? Bu, pratikten çok psikolojik bir sorudur. Gerçek şu ki, gerçekte, makine hacklerinin oldukça büyük bir kısmı bencil amaçlardan değil, sadece sürecin kendisine olan ilgiden kaynaklanmaktadır. Genellikle bilgisayar korsanı olarak adlandırılan kişiler arasında yalnızca gerçek bir çıkar için bilgisayar korsanlığı yapanlar değil, aynı zamanda kendisini hacklemek için ağı hackleyen "meraklılar" da vardır. Beklenmedik geliyor, ama öyle ve istatistikler bunu gösteriyor. Ek olarak, bir kişiyi yaptıklarından dolayı suçlamak genellikle oldukça zordur, çünkü bazen o olduğunu ve bu bilgisayardan bazı yasadışı eylemleri gerçekleştirdiğini kanıtlamak imkansızdır. Bununla birlikte, bu makalede, psikolojik ve yasal yönlerini değil, hack'lerin kendilerini tartışıyoruz ve bu nedenle belirli şeylere geçeceğiz.

Ağın hacklenmesi, ne kadar dikkatli yapılırsa yapılsın ve hangi yöntemler kullanılırsa kullanılsın kaçınılmaz olarak sistemde bazı değişikliklere yol açmaktadır. Bu, dinleme portlarının yeni bir listesi, tanıdık olmayan programlar, mevcut programların, özellikle ps veya netstat'ın yeniden boyutlandırılması ve hatta yeni kullanıcılar olabilir. Öyle ya da böyle, mesele şu ki bir şeylerin değişmesi gerekiyor ve bu kaçınılmaz. Bu nedenle, sistem kurulumu ve konfigürasyonundan hemen sonra yapmanızı önerdiğim ilk makul eylem, sistem hakkında bilgi içeren bir dosya oluşturmaktır. Olan her şeyin doğru olduğunu düşündüğünüz anda fotoğraf gibi bir şey. Daha doğrusu netstat, vmstat, free, du, df programlarının verdiği bilgileri kastediyorum. İkinci ipucu, sistem yapılandırma dosyalarını ve başlangıç ​​ayarlarını yedeklemektir. Bunları birbirleriyle karşılaştırmak, sistemde son zamanlarda neler olduğu hakkında da bilgi verebilir.

Sadece dosya sisteminin (du ve df komutlarıyla yapılabilir) kullanımının izlenmesini değil, aynı zamanda belirli dosyaların (örneğin, sistem dosyaları) değişmezliğini kontrol etmeyi de içeren dosya sistemini izleyerek başlayalım. Bu işlevleri yerine getiren birkaç program vardır:

  • AIDE - dosyalar için sağlama toplamları oluşturmanıza ve böylece bütünlüklerini kontrol etmenize izin veren bir program; birden fazla algoritmanın kullanılmasına izin verir. http://www.cs.tut.fi/~rammer/aide.html. (Programların geri kalanı benzer işlevleri yerine getirir, hepsi ücretsizdir.)
  • Gog & Magog - özniteliklerin ve dosya sahiplerinin bir listesini oluşturur, otomatik karşılaştırmalara izin verir. http://www.multimania.com/cparisel/gog/
  • Sentinel - oluşturur sağlama toplamı RIPEMD-160bit MAC algoritmasını kullanarak grafik arayüzü... http://zurk.netpedia.net/zfile.html
  • SuSEauditdisk, bir diskete yerleştirilmiş ve doğrudan bir disketten ön yükleme yaparak tamamen otonom olarak bir sistem denetimi gerçekleştirmeyi mümkün kılan bir programdır. SuSELinux ile standart olarak sağlanır. http://www.suse.de/~marc
  • ViperDB - Gerçekleşen değişiklikleri kaydeden günlük dosyaları oluşturarak dosya sahiplerini ve özniteliklerini kontrol eder. Programın üç parametresi vardır: -init - dosyalara göre veritabanları oluşturur, -check - dosyaları veritabanına karşı kontrol eder ve diskte meydana gelmişlerse veritabanında değişiklikler yapar, -checkstrict - dosyaları veritabanına karşı kontrol eder ve değişiklikler meydana gelirse eski parametreleri döndürür . http://www.resentment.org/projects/viperdb
  • Sxid - Dosyaların sağlama toplamlarını oluşturur ve öznitelikleri ve sahipleri doğrular. ftp://marcus.seva.net/pub/sxid/
  • nannie - dosyanın oluşturulma zamanını hatırlar. ftp://tools.tradeservices.com/pub/nannie/
  • confcollect - hatırlar sistem bilgisi kurulan gibi yazılım, yönlendirici tabloları vb. http://www.skagelund.com/confcollect/
  • Pikt için dahili bir betik dili içeren bir araçtır. programlar oluşturma standart olarak gerçekleştiren ancak belirli komutlar, işlevler şeklinde uygulanmayan (sistemin saatlik kullanımının izlenmesi, uzun ömürlü işlemlerin ortadan kaldırılması, boyutun ayarlanması) posta kutusu vesaire.). Çeşitli platformlar için kullanılabilir: Solaris, Linux ve FreeBSD. http://pikt.uchicago.edu/pikt/

Yedekleme işlevi gören programlardan da bahsedebilirsiniz, ancak bence bu doğrudan sistem güvenliği ile ilgili değil ve ayrıca UNIX dağıtımında çeşitli standart araçlar yer alıyor. Güvenlik yalnızca şu durumlarda geçerlidir: yedekler yapmak gereklidir, ancak bu zaten yukarıda belirtilmiştir.

Şimdi ağ saldırılarını önlemek için ne yapacağımızı bulalım. Tabii ki, ağ geçidine bir güvenlik duvarı yüklemeniz gerekiyor. Öyle ya da böyle paket düzeyinde koruma gereklidir. Güvenlik duvarı herhangi bir şekilde atlanırsa, aşağıdaki programlar gereklidir:

  • DTK - standart hizmetleri ve programları taklit eder ve bu programlara gönderilen standart dışı istekler durumunda, saldırganın kafasını karıştırmak için kasıtlı olarak yanlış bilgiler verilir. http://all.net/dtk/
  • Psionic PortSentry - Port taramalarını izler. Ana görev, tarama için bağlantı noktalarını kontrol etmek ve her şeyi bir günlük dosyasında görüntülemektir. http://www.psionic.com/abacus/portsentry/
  • Psionic HostSentry - Kaynak kullanımı anormal olduğunda bir mesaj görüntüleyerek kullanıcılar tarafından makine kullanım bilgilerinin bir veritabanını oluşturur. http://www.psionic.com/abacus/hostsentry/
  • Scanlogd - ağ paketlerini tarar, ayarlara göre günlük dosyaları oluşturur. http://www.openwall.com/scanlogd/
  • Güvenlik duvarları, güvenlik duvarı programlarının toplu adıdır.
  • TCP-WRAPPERS - belirli kaynaklara erişimi ada veya bilgisayar numarasına göre kısıtlayan programlar. Bu programlardan bazıları adresinde mevcuttur. ftp://ftp.porcupine.org/pub/security/
  • NFR, yapı olarak bir sniffer'a benzer bir programdır (sniffer, ağ trafiğini dinlemek için bir programdır). Günlük dosyalarını kaydeder ve saldırıları ve bağlantı noktası taramalarını gerçek zamanlı olarak algılar. http://www.nfr.com/
  • Ağ saldırıları ve bunların algılanması hakkında ayrıntılı ve yararlı bir SSS, http://www.robertgraham.com/pubs/network-intrusion-detection.html adresinde bulunabilir.

Ağ saldırıları sırasında ne ve nasıl yapılması gerektiği sorusuna net bir şekilde cevap vermek zordur. Burada çok şey, hem belirli ağın hem de bulunduğu kuruluşun özelliklerine bağlıdır. Aynı türden bir saldırı olsa bile, bir durumda önce verileri kaydetmek isteyeceksiniz ve ikincisinde saldırının kaynağını engellemek isteyeceksiniz, yani her şey önceliklere bağlı. Ağ kesinti süresinin kabul edilemez olduğu kuruluşlarda saldırılar çok zor bir sorundur. Orada tüm işlemleri çevrimiçi olarak, mümkün olduğunca dış dünyayla iletişim halindeyken yapmanız gerekecek. Oldukça fazla aynı zamanda saldırının doğasına da bağlıdır. Bilgisayar korsanlığı için bilgisayar korsanlığı yapmak bir şeydir ve sınıflandırılmış verilerin kasıtlı olarak çalınması başka bir şeydir. Belki de, yöneticiyi paralel olarak yürütülen daha karmaşık ve düşünceli bir hacklemeden uzaklaştırmak amacıyla saldırı gerçekleştirildiğinde, bu doğru ve daha karmaşık bir versiyondur. Ancak bir saldırının sadece dışarıdan gelebileceğini düşünmeyin. İçeriden başlayabilir. Olası bir senaryo, dahili ağdaki bir Windows bilgisayarında Truva atının başlatılmasıdır. Açıkçası, bu sadece posta yoluyla bir mektup göndererek yapılabilir. Şimdi sniffer programlarına daha yakından bakalım.

Genel olarak koklamak, koklamak anlamına gelir. Bu nedenle, koklayıcılar, bir şekilde ağı ve içinden geçen tüm bilgileri dinleyen programlardır. Açıklayıcı bir örnek, şifresiz metin olarak gelen bir şifredir. dahili bilgisayar sunucuya. Paketler bir alıcı bulana kadar ağda dolaştığından, dahili ağdaki en az bir bilgisayara bir sniffer yüklemek (örneğin, yukarıda bahsedildiği gibi bir mektup kullanarak) kullanışlı araç harici bir kraker için. Çoğu durumda, koklayıcılar çok pasiftir ve bu da onların tespit edilmesini zorlaştırır. Aşağıda, ağda neler olup bittiğini izlemek için kullanılabilecek birkaç sniffer programının bir listesi bulunmaktadır:

  • Tcpdump, tüm UNIX ile birlikte gönderilen en eski programdır.
  • Sniffit - paketleri filtreleme ve bilgileri metin formatına çevirme yeteneğine sahiptir; grafik arayüz ile donatılmıştır. http://sniffit.rug.ac.be/~coder/sniffit/sniffit.html
  • Ethereal bir ağ protokolü analizörüdür.
  • Snort - ağı izlemek için tasarlanmıştır, port taramalarını algılayabilir. http://www.clark.net/~roesch/security.html
  • SPY bir koklayıcıdır, ancak özgür değildir. Beş makineye kadar ücretsiz tek kullanıcılı ağ lisansı vardır. http://pweb.uunet.de/trillian.of/Spy/

Bununla birlikte, yazılıma ek olarak, örneğin başka bir bilgisayarı basitçe bağlamak veya sadece bir kabloya bağlamak gibi donanım dinlemenin de olduğu unutulmamalıdır. Merakla, eğer ince bir Ethernet (koaksiyel kablo) kullanıyorsanız, onu açmadan dinleyebilirsiniz.

  • AntiSniff, ağı koklayıcılara karşı tarayan bir programdır. Çalışma prensibi çok basittir: bir istek gönderir ve yanıt ve yanıt süresi ile başka bir program tarafından işlenip işlenmediğini belirler. http://www.l0pht.com/antisniff/

Ayrıntılı ve faydalı bir sniffer SSS adresinde bulunabilir. http://www.robertgraham.com/pubs/sniffing-faq.html.

Saldırıları önlemeye yardımcı olabilecek başka bir teknik, saldırıları taklit eden programları veya bu saldırıların gerçekleştirildiği programları kullanarak sistemi test etmektir. Bir nevi savaş koşullarında sistemi kontrol ediyorsunuz. Bu makine için koruma gerçekten en önemli öncelikse, fişe takmadan önce sistem yapılandırmasını kontrol etmek çok önemli bir adımdır. Bu programlardan bazılarını dikkatinize sunuyorum.

Sistemi içeriden kendi kendine tarayan programlar:

  • Tiger hala geliştirilmekte olan bir programdır. ftp://net.tamu.edu/pub/security/TAMU/
  • check.pl, dizin ağacını ve içindeki dosyaları kontrol eden ve çeşitli şüpheli niteliklere ve sahip adlarına işaret eden bir Perl betiğidir. http://opop.nols.com/proggie.html

Başka bir sistemdeki hazır hizmetlere işaret eden ağ tarayıcıları (örneğin, güvenlik duvarı ayarlarını kontrol etmek iyi bir fikirdir):

  • Strobe, eski ama hızlı ve hala etkili bir ağ tarayıcısıdır. Bazen UNIX'e dahildir. ftp://suburbia.net/pub/
  • Nmap, yeni port tarama yöntemlerini kullanan ve son derece yapılandırılabilir bir programdır. İşletim sistemi parametrelerinin (ad, sürüm) alınmasına izin verir. http://www.insecure.org/nmap/index.html
  • Portscanner, işlenmiş bilgilerin çıktısını almak için birçok formata sahip küçük bir port tarayıcıdır. http://www.ameth.org/~veilleux/portscan.html
  • Queso gerçekten bir tarayıcı değildir; uzak bir bilgisayardaki işletim sisteminin türünü belirlemek için tasarlanmış bir programdır. http://www.apostols.org/projectz/queso/

Potansiyel güvenlik açıkları için tarama yazılımı, şüphesiz bağlantı noktası tarayıcılarından bir adım ileridir. Burada, daha yüksek düzeyde bir bilgi analizi uygulanır ve açık bağlantı noktalarının kendileri değil, bu bağlantı noktalarından geçen yolun açık olduğu sistemdeki güvenlik açıkları belirlenir. Bu tür birkaç program adlandıracağım:

  • Nessus, bir istemci-sunucu saldırı izleme yazılımıdır. Linux, FreeBSD, NetBSD ve Solaris için sunucular ve Linux ve Windows için istemciler vardır. Bağlantı noktalarını taramaya ve saldırıları izlemeye ek olarak, program, güvenliği ihlal edilmiş makineyle ilişkili bilgisayarları bulmak için DNS aramaları yapabilir. http://www.nessus.org/
  • Saint, eskiden arabalar hakkında bilgi toplamak için en popüler olanlardan biri olan Şeytan programının soyundan geliyor. Saint bir istemci-sunucu mimarisi kullanır, ancak istemciyi bir Web programıyla değiştirir. Temel amaç, sistemin korunmasındaki güvenlik açıkları hakkında bilgi toplamaktır. http://www.wwdsi.com/saint/
  • Cheops, bilgisayarlarda çalışan işletim sisteminin bir göstergesi ile IP ağ ortamının haritasını çıkaran bir programdır. http://www.marko.net/cheops/
  • SARA (Security Auditor's Research Assistant), Saint'e benzer bir programdır. Aynı anda birkaç makineyi tarayabilir, ayrıca çalışmanın sonucunu HTML formatında üretir. http://home.arc.com/sara/
  • BASS (Bulk Auditing Security Scanner), ideolojisi İnternet'in korunmadığı gerçeğine dayanan bir programdır. Ana görev, sistemleri içlerinde "güvenlik açıkları" olup olmadığını taramaktır. http://www.securityfocus.com/data/tools/network/bass-1.0.7.tar.gz

Güvenlik duvarını tarayan ve doğru yapılandırılıp yapılandırılmadığını kontrol eden program Firewalk'tur. Program, çeşitli paketler göndererek, güvenlik duvarının çalıştığı kuralları hesaplamaya çalışır. http://www.packetfactory.net/firewalk/

http://www.rootshell.com/ adresindeki arşiv, sistem korumasındaki hatalarla ilgili bilinen verileri ve bu hataları düzelten işletim sistemi üreticilerinin eklentilerine bağlantılar içerir. Doğru, bazen böyle bir bağlantı yerine, özellikle sistem ticari ise rahatsız edici olan "Sonraki sürüme yükseltin" mesajını görebilirsiniz. Bu, örneğin, IBM AIX'te genellikle böyledir.

Bununla, sistemlerin güvenliği ile ilgili konuların açıklamasını sonlandırmak istiyorum. İnternet sunucuları... Bu bir açıklamadır, bir eylem kılavuzu değildir ve ayrıntılı bir referans değildir. Asıl amacım sistemin korunması için yapılması gerekenler hakkında fikir vermekti. Bazı durumlarda bazı ipuçlarının gereksiz veya basitçe gereksiz görünmesi muhtemeldir ve belki de verilen programlara bağlantılar yeterli olmayacaktır. Ancak, bana öyle geliyor ki, UNIX sistemlerinin ve ağlarının korunmasıyla ilgili ana noktalar bir dereceye kadar yansıtıldı. Belki de bazı özel konular derginin sonraki sayılarında ele alınacaktır.

BilgisayarBasın 3 "2001

  • İdari zorlama ve diğer devlet zorlama türlerinden farkı, bir idari zorlama önlemleri sistemidir.
  • Protokolü tamamlayan kurumun adresi _______________________________________
  • Eylemler, protokoller. Kanun ve protokolün ayrıntılarının bileşimi. A4 formundaki gereksinimlerin yeri. Kanun ve protokolün tescili için gerekenler. Belgeye yasal güç vermek.
  • Af: kavram ve işaretler. Af: kavram, yasal sonuçlar, aftan farkı.
  • Rusya Federasyonu tahkim mahkemesi sistemi. Vergi mevzuatının uygulanmasına ilişkin ihtilaflar da dahil olmak üzere ekonomik ihtilafların çözümünde yargı sisteminin rolü.
  • SSH - (Güvenli Kabuk) - yapmanızı sağlayan bir ağ protokolü uzaktan kumanda bilgisayar ve dosya aktarımı. İşlevsel olarak Telnet ve rlogin protokollerine benzer, ancak iletilen bilgiler için şifreleme algoritmaları kullanır.
    Telnet'in eksiklikleri, protokolün daha güvenli ve işlevsel SSH protokolü lehine çok hızlı bir şekilde kaldırılmasına yol açtı. SSH tüm bunları sağlar işlevsellik kullanıcı adları ve şifreler gibi verilerin ele geçirilmesini önlemek için etkili kodlamanın eklenmesiyle telnet'te sunuldu. SSH ortak anahtar kimlik doğrulama sistemi, uzak bilgisayar gerçekten olduğunu iddia ettiği kişidir.

    SSH protokolünün kriptografik güvenliği sabit değildir; farklı şifreleme algoritmalarının seçimi mümkündür. Bu protokolü destekleyen istemciler ve sunucular çeşitli platformlar için mevcuttur. Ek olarak, protokol yalnızca makinede güvenli bir uzak kabuğun kullanılmasına değil, aynı zamanda grafik arabirimin tünellenmesine de izin verir - X Tünel Açma (yalnızca Unix benzeri işletim sistemi veya X Pencere Sistemi grafik arabirimini kullanan uygulamalar için). SSH aynı zamanda güvenli bir kanal (Port Yönlendirme) aracılığıyla başka herhangi bir ağ protokolünü iletebilir ve (uygun yapılandırma ile) yalnızca X arayüzünü değil, aynı zamanda örneğin sesi de güvenli bir şekilde iletme yeteneği sağlar.
    Ancak SSH, tüm ağ güvenliği sorunlarını çözmez. Dikkatini sadece sağlamaya odaklıyor. güvenli iş terminal emülatörleri gibi uygulamalar. Sunucularda ve istemci uygulamalarında SSH protokolü uygulamalarının kullanılması, yalnızca aktarım sırasında verilerin korunmasına yardımcı olur. SSH hiçbir şekilde güvenlik duvarlarının, izinsiz giriş tespit sistemlerinin, ağ tarayıcılarının, kimlik doğrulama sistemlerinin veya korumaya yardımcı olan diğer araçların yerini alamaz. Bilgi sistemi ve saldırılara karşı ağlar.
    39. Sunucunun yerel ağdaki rolü ve görevleri.

    Genel anlamda, sunucu, kural olarak, yerel veya küresel bir ağdaki bilgisayarlar için belirli yetenekler sağlamak üzere tasarlanmış, yüksek performanslı ve diğer bilgi işlem kaynaklarına sahip bir bilgisayardır. Bu fırsatlara denir ağ hizmetleri .

    Sunucu görevleri:

    1.Kurumun sunucu disklerinde depolanan verilere erişim sağlamak;

    2. şirketin veritabanlarına depolama, işleme ve erişim;

    3. Kullanıcının kendisine gönderdiği verilerin programlanmış olarak işlenmesi ve bu kullanıcıya nihai sonuçların verilmesi;

    4. bir web sayfasının, onu talep eden kullanıcıya teslimi;

    5. gönderme, alma, saklama ve dağıtma e-postalar yerel ağın tüm kullanıcıları tarafından gönderilir.


    Ağ hizmetleri.

    Son kullanıcı için ağ bilgisayarlar, kablolar ve hub'lar veya hatta bilgi akışları değildir, onun için ağ, her şeyden önce, ağdaki bilgisayarların listesini görüntüleyebileceği, uzaktan kumanda okuyabileceği ağ hizmetleri kümesidir. dosya, belgeyi "yabancı" bir yazıcıda yazdırın veya bir posta mesajı gönderin. Kullanıcı için belirli bir ağın görünümünü belirleyen, sağlanan yeteneklerin toplamıdır - seçimlerinin ne kadar geniş olduğu, ne kadar kullanışlı, güvenilir ve güvenli oldukları -.
    Gerçek veri alışverişine ek olarak, ağ hizmetleri, örneğin dağıtılmış veri işleme tarafından oluşturulan görevler gibi diğer, daha spesifik görevleri çözmelidir. Bu tür görevler arasında, farklı makinelerde bulunan verilerin birden çok kopyasının tutarlılığının sağlanması (çoğaltma hizmeti) veya ağdaki çeşitli makinelerde paralel olarak bir görevin yürütülmesinin düzenlenmesi (uzaktan prosedür çağrısı hizmeti) yer alır. Ağ hizmetleri arasında, yönetimsel olanları, yani esas olarak basit bir kullanıcıya değil, bir yöneticiye odaklanan ve ağın bir bütün olarak doğru çalışmasını düzenlemeye hizmet edenleri ayırt etmek mümkündür.
    Ağ hizmetlerinin uygulanması gerçekleştirilir yazılım tarafından... Birincil hizmetler – dosya hizmeti ve yazdırma hizmeti – tipik olarak ağ işletim sistemi tarafından sağlanırken, veri tabanı, faks veya ses hizmeti gibi destekleyici hizmetler, sistem ağ uygulamaları veya sistemle yakın çalışan yardımcı programlar tarafından sağlanır. ağ işletim sistemi. Genel olarak konuşursak, hizmetlerin işletim sistemi ve yardımcı programlar arasındaki dağılımı oldukça keyfidir ve belirli işletim sistemi uygulamalarında değişiklik gösterir.
    "Şeffaflık" terimi genellikle paylaşılan bir kaynağın uygunluğunu tanımlamak için kullanılır. Şeffaf erişim, kullanıcının ihtiyaç duyduğu kaynağın nerede olduğunu fark etmediği bir erişimdir - bilgisayarında veya uzak bir bilgisayarda. Uzak dosya sistemini dizin ağacına bağladıktan sonra, silinen dosyalar onun için tamamen şeffaf hale gelir. Bağlama işleminin kendisi de farklı bir şeffaflık derecesine sahip olabilir - daha az şeffaflığa sahip ağlarda, kullanıcı uzak dosya sisteminin depolandığı bilgisayarın adını komutta bilmeli ve belirtmelidir; daha yüksek derecede şeffaflığa sahip ağlarda , ağın ilgili yazılım bileşeni, konumlarından bağımsız olarak paylaşılan dosya hacimlerini arar ve daha sonra bunları kullanıcıya kendisi için uygun bir biçimde, örneğin bir liste veya bir dizi simge biçiminde sağlar.
    Paylaşılan ağ kaynaklarının adreslenme (adlandırma) yolu şeffaflık için önemlidir. Paylaşılan ağ kaynaklarının adları, belirli bir bilgisayardaki fiziksel konumlarına bağlı olmamalıdır. İdeal olarak, ağ yöneticisi bir birimi veya dizini bir bilgisayardan diğerine taşıdıysa, kullanıcı çalışmalarında hiçbir şeyi değiştirmemelidir. Yöneticinin kendisi ve ağ işletim sistemi konum bilgisi var dosya sistemleri, ancak kullanıcıdan gizlenir. Bu şeffaflık derecesi ağlarda hala nadiren görülür - genellikle, belirli bir bilgisayarın kaynaklarına erişmek için önce onunla mantıklı bir bağlantı kurmanız gerekir. Bu yaklaşım, örneğin, Windows ağları NT