Mga paraan upang maprotektahan ang SSH mula sa pag-hack. Paano protektahan ang isang SSH server mula sa mga malupit na pag-atake gamit ang fail2ban Pagbabago ng default na port

Upang maprotektahan ang aming server mula sa password brute force, maaari mong gamitin ang sshguard o sshit utility.

Mga prinsipyo ng pagpapatakbo.

Gumagana ang sshguard at sshit sa parehong prinsipyo. Sinusuri nila ang mga mensahe ng system tungkol sa maling pagpapatotoo at, kung maabot ang isang tiyak na halaga, ipasok ang umaatakeng IP sa panuntunan sa pagharang ng firewall. Pagkatapos ng isang tiyak na oras, ang ip ay aalisin sa panuntunan.
Alinsunod dito, ang isang naka-configure na firewall ay kinakailangan para sa operasyon.

SSHGuard

Maaaring gumana ang sshguard

  • AIX native firewall- para sa IBM AIX operating system
  • netfilter/iptables- para sa mga operating system na nakabatay sa Linux
  • Packet Filter (PF)- para sa mga operating system ng BSD (Bukas, Libre, Net, DragonFly -BSD)
  • IPFirewall (IPFW)- para sa FreeBSD at Mac OS X
  • IP Filter (IPFILTER)- para sa FreeBSD, NetBSD at Solaris
  • tcpd"s hosts_access (/etc/hosts.allow)- portable sa buong UNIX
  • null- portable do-nothing backend para sa paglalapat ng detection ngunit hindi pag-iwas

Gumagamit ako ng PF, kaya may mga halimbawa sa PF sa tala na ito.

Pag-install ng sshguard.

FreeBSD:

I-install mula sa mga port

Cd /usr/ports/security/sshguard-pf/&& gawing malinis ang pag-install

Kung sa ilang kadahilanan ay hindi ka gumagamit ng mga port, i-download ang pinakabagong bersyon mula sa website ng sshguard at manu-manong buuin ito

./configure --with-firewall=pf && make && make install

Debian:

apt-get install sshguard

Pag-configure ng OS upang patakbuhin ang sshguard.

Lumikha ng isang file upang mag-imbak ng mga log

# pindutin ang /var/log/sshguard

Debian (mahihina):

I-edit ang sumusunod na linya sa //etc/default/sshguard

#mcedit /etc/default/sshguard #ARGS="-a 40 -p 420 -s 1200" ARGS="-a 5 -p 420 -s 2400 -b 5:/etc/sshguard/blacklist"

at i-restart ang sshguard
i-restart ang serbisyo ng sshguard

FreeBSD:

Kailangan nating magdagdag ng dalawang linya sa pagsasaayos ng PF

mesa magpumilit

Nagdedeklara kami ng table kung saan pumapasok ang sshguard sa ip ng mga robot.

Mabilis na mag-block sa $if0 proto tcp mula sa

Sa totoo lang, ang mismong panuntunan sa pag-block ay dapat markahan sa pinakatuktok ng block ng mga panuntunan ng file ng pagsasaayos ng PF. Ang $if0 ay ang interface kung saan ang mga koneksyon ay haharangin sa lahat ng mga interface, palitan ito ng anuman.
Muling basahin ang configuration file

Auth.info;authpriv.info |exec/usr/local/sbin/sshguard

at i-restart ang syslog

#/etc/rc.d/syslogd i-restart

Sa totoo lang, pagkatapos ng mga manipulasyong ito, haharangin ng sshguard ang mga pag-atake na may mga default na parameter.
Kapag umaatake sa /var/log/auth.log makikita natin ang isang bagay tulad ng sumusunod

Jun1611:01:40 www sshd:Invalid user test from61.172.251.183 Jun1612:29:48 www sshd:Invalid user test from85.114.130.168 Jun1612:29:49 www.sshd:29:49 www sshd:815Invalid user test1 from.6115 29: 49 www sshd: hindi wastong pagsubok ng gumagamit mula85.114.130.168jun1612: 29: 50 www sshd: hindi wastong pagsubok ng gumagamit mula85.114.130.168jun1612: 29: 50 www sshguard: blocking85.114.130.168: 4for> 420secs: 4 na pagkabigo sa paglipas ng 2 segundo.

Pag-configure ng mga pagpipilian sa sshguard

Ang sshguard ay may ilang mga parameter na maaari nating i-override
-a ang bilang ng mga nabigong pagtatangka sa pagpapatotoo pagkatapos ay mai-block ang IP. Ang default ay 4.
-p pagkatapos ng ilang segundo ay maa-unblock ang ip. Ang default ay 420.
-s ilang segundo naaalala ng sshguard ang ip. Ang default ay 1200. Upang gawing mas malinaw, kung mayroong isang pag-atake mula sa isang IP bawat 30 minuto, hinding-hindi ito maba-ban gamit ang default na setting.
-w puting ip, mga network, o path sa puting address file. Ang format ng file ay isang linya - isang entry, # tumutukoy sa mga komento.
-b tinutukoy kung gaano karaming mga bloke ng IP ang idaragdag sa blacklist at ang landas patungo dito. Ang blacklist ay na-load kapag nagsimula ang sshguard at hindi awtomatikong na-clear.

Ang sshguard ay walang configuration file; Sa aming kaso, sinisimulan ng sshguard ang syslog, kaya't i-edit natin ang syslog.conf upang harangan ng sshguard ang IP pagkatapos ng 3 hindi matagumpay na pagtatangka sa pagpapatunay sa loob ng 30 minuto, at pagkatapos ng 5 block, i-blacklist ito.

Auth.info;authpriv.info |exec/usr/local/sbin/sshguard -a 3-p 1500-b 5:/usr/local/etc/sshguard.blacklist

sa unang pagkakataon na ito ay naharang sa loob ng 420 segundo at tinanggal pagkatapos ng 7 minuto
ang pangalawang pagkakataon sa 2*420 y ay tinanggal pagkatapos ng 14 minuto
pangatlong beses sa 2*2*420 at tinanggal pagkatapos ng 28 minuto, atbp...
2^(N-1)*420 Nth beses.

Sshit

Ang Sshit ay isang perl script, kaya kinakailangan na ang system ay may perl, pati na rin ang 2 mga module

  • IPC::Naibabahagi
  • Proc::PID::File

Sshit ay maaari lamang gumana sa pf at ipfw.

Nag-i-install ng tae

cd /usr/ports/security/sshit/&& gawing malinis ang pag-install

mga shit na configuration.

Ang Sshit ay may configuration file /usr/local/etc/sshit.conf kung saan maaari mong i-override ang mga default na value.

FIREWALL_TYPE = "pf"; # Aling firewall ang ginagamit namin MAX_COUNT =3; # Bilang ng mga nabigong pagtatangka sa pagpapatotoo pagkatapos na ma-block ang ip WITHIN_TIME =60; # Sa loob ng ilang segundo dapat maganap ang tinukoy na bilang ng mga nabigong pagpapatotoo RESET_IP =300; # Pagkalipas ng ilang segundo maa-unblock ang ip. PFCTL_CMD = "/sbin/pfctl"; PF_TABLE ="badhosts"#table name kung saan ipinasok ang mga bad ips

Pagse-set up ng OS para gumana ang sshit.

Sa pamamagitan ng pagkakatulad sa mga setting para sa sshguard, ini-edit namin ang file ng pagsasaayos ng PF

mesa ipagpatuloy ang pag-block sa mabilis sa $if0 proto tcp mula sa sa $if0 port ssh label na "ssh brute"

basahin muli ang configuration file

#pfctl -f /etc/pf.conf

Pag-edit ng syslog.conf

Auth.info;authpriv.info |exec/usr/local/sbin/sshit

at i-restart ang syslog

Ang SSH ay isang secure na protocol para sa paglilipat ng data (mga command, file, video, atbp.) sa pagitan ng mga computer.

Ito ay pinagana bilang default sa VPS at mga dedikadong server ng karamihan sa mga provider ng pagho-host, dahil pinapayagan ka nitong madali at ligtas na pamahalaan ang isang malayuang makina. Sa pamamagitan ng paraan, maaari kang magrenta ng VPS server nang mura sa serbisyo ng Well-Web. Dahil ang SSH ay pinagana sa lahat ng VPS, upang maiwasan ang mga problema kapag gumagamit ng Secure Shell, kinakailangan ang wastong proteksyon ng SSH.

Huwag paganahin ang pag-access mula sa ugat

Una sa lahat, inirerekomenda na i-deactivate ang kakayahang malayuang kumonekta sa makina sa ilalim ng superuser account (root). Upang gawin ito, kailangan mong hanapin ang sshd_config file, na kadalasan (ngunit hindi palaging) ay matatagpuan sa /etc/ssh/ direktoryo, at buksan ito.

Sa loob nito kakailanganin mong hanapin ang item na PermitRootLogin at palitan ang halaga nito ng "hindi", iyon ay, dapat mong makuha ang sumusunod na entry:

PermitRootLogin no

Naturally, hindi nito mapipigilan ang pag-hack, ngunit mas magiging mahirap pa rin ito.

Upang mabawasan ang posibilidad ng pag-hack, inirerekumenda na gumamit ng awtorisasyon gamit ang mga susi sa halip na awtorisasyon sa pag-login at password. Magagawa ito sa maraming paraan. Ito, sa pamamagitan ng paraan, ay isa ring magandang proteksyon ng SSH laban sa brute force.

Pagbabago ng default na port

Dahil ang pag-hack ng isang server sa pamamagitan ng SSH ay karaniwang nangyayari sa pamamagitan ng paghahanap ng password (brute force), makatuwiran na baguhin ang karaniwang port 22 sa iba. Ito ay napakadaling gawin. Una sa lahat, kailangan mong buksan ang nabanggit na sshd_config file at magdagdag ng isang linya doon:

Port port_number

Ang entry ay magmumukhang, halimbawa, tulad nito:

Port 3048

Ito ay makabuluhang bawasan ang bilang ng mga taong nagnanais na makakuha ng hindi awtorisadong pag-access sa server. Bago palitan ang numero ng port, siguraduhing tiyaking hindi ito makagambala sa iba pang mga application. Kailangan mo ring pumili ng port na hindi pa ginagamit para hindi magkasalungat ang mga program dahil dito.

Paghihigpit sa pag-access sa IP

Ang isa pang paraan ng proteksyon na magbabawas sa posibilidad ng hindi awtorisadong koneksyon sa halos zero ay ang pagtatakda ng mga paghihigpit sa awtorisasyon. Maaaring i-configure ang SSH sa paraang ang mga malalayong makina lamang na may mga partikular na IP address ang maaaring mag-log in sa server. Upang gawin ito, sa sshd_config file sa AllowUser line, kailangan mong magdagdag ng @IP_number sa pangalan ng bawat user. Ang entry ay maaaring magmukhang ganito, halimbawa:

AllowUsers [email protected], [email protected]

Bago gamitin ang pamamaraang ito, inirerekumenda na tiyakin na walang mga sitwasyon kung saan maaaring kailanganin mong mag-log in sa server mula sa isang makina na ang IP address ay hindi ibinigay ng pagsasaayos.

Secure na Password

At siyempre, dapat kang gumamit ng password na lumalaban sa brute force. Mahaba at may maraming iba't ibang mga simbolo hangga't maaari, mas mabuti sa mga krakozyabrs. Ito ay dapat magkaroon.

OpenSSH nagbibigay-daan sa iyo na kumonekta nang malayuan sa server, manipulahin ang mga file at pamahalaan ang system. Ngayon gusto naming pag-usapan ang tungkol sa pinakamahusay na mga pamamaraan na magpapataas ng seguridad ng isang OpenSSH-based system.

Mga file ng pagsasaayos

  • /etc/ssh/sshd_config- OpenSSH server configuration file;
  • /etc/ssh/ssh_config- OpenSSH client configuration file;
  • ~/.ssh/- direktoryo kung saan naka-imbak ang mga setting ng SSH ng user;
  • ~/.ssh/authorized_keys o ~/.ssh/authorized_keys- isang listahan ng mga key (RSA o DSA) na ginagamit upang kumonekta sa mga user account;
  • /etc/nologin- kung ang file na ito ay umiiral sa system, pagkatapos ay ipagbabawal ng sshd ang lahat ng mga gumagamit maliban sa root mula sa pagkonekta sa system;
  • /etc/hosts.allow at /etc/hosts.deny- sistema ng pagbabawal (bahagi ng seguridad). Gumagana katulad ng ACL;
  • Default na SSH port - 22

Hindi kailangan - i-off ito

Kung ang iyong server ay hindi nangangailangan ng mga malayuang koneksyon sa SSH, siguraduhing huwag paganahin ito. Sa mga system tulad ng CentOS/RHEL ito ay ginagawa tulad nito:

Chkconfig sshd off yum burahin openssh-server

Gamitin ang bersyon 2 ng SSH

Ang unang bersyon ng SSH protocol ay may mga problema sa seguridad na tinutugunan sa pangalawang bersyon. Samakatuwid, gamitin ang pangalawang bersyon. Siguraduhin na ang opsyon na Protocol 2 ay tinukoy sa /etc/ssh/sshd_config file.

Limitahan ang pag-access sa SSH

Bilang default, lahat ng user ng system ay may kakayahang kumonekta sa system sa pamamagitan ng SSH. Inirerekomenda namin ang paglilimita sa pag-access sa SSH para sa mga kadahilanang pangseguridad. Halimbawa, upang payagan ang SSH para sa root, merion at mga gumagamit ng network:

AllowUsers root merion network

Sa kabilang banda, maaari mong payagan ang access sa lahat ng mga user maliban sa mga tinukoy:

DenyUsers root merion network

Oras ng kawalan ng aktibidad

Mahalagang ipahiwatig ang oras kung kailan matatapos ang hindi aktibong session (makumpleto). Magagawa ito sa mga sumusunod na opsyon:

ClientAliveInterval 300 ClientAliveCountMax 0

Sa setting na ito, tinukoy namin ang oras ng hindi aktibo na 300 segundo (5 minuto).

Tungkol sa .rhosts file

Ang katotohanan ay ang file na ito ay naglalaman ng isang listahan ng mga host at user. Kung ang file na ito ay naglalaman ng kumbinasyon ng host at user, ang user na ito ay makakakonekta sa system sa pamamagitan ng SSH nang hindi humihingi ng password. Inirerekomenda namin na huwag paganahin ang "kahanga-hangang" feature na ito:

IgnoreRhosts oo

Walang host-based na pagpapatotoo!

Ang tinatawag na Host-Based Authentication Nagbibigay-daan sa isang user mula sa isang partikular na host na kumonekta sa server. Huwag paganahin:

HostbasedAuthentication no

Direktang koneksyon sa pamamagitan ng ugat

PermitRootLogin no

Gumawa ng banner

Para sa bawat koneksyon, gumawa ng banner kung saan maaari mong banta ang mga umaatake na sumusubok na gumawa ng hindi awtorisadong pag-access. Ang parameter ng Banner ay responsable para sa pag-set up ng banner.

Port 22 lang mula sa loob!

Gumawa ng access sa system port 22 lamang sa pamamagitan ng isang hanay ng mga panuntunan sa firewall. Pinakamabuting mag-iwan ng access mula lamang sa loob ng LAN. Halimbawa, sa Iptables maaari kang magbigay ng access sa 192.168.11.0/24:

A RH-Firewall-1-INPUT -s 192.168.11.0/24 -m state --state NEW -p tcp --dport 22 -j ACCEPT

Kung saan makikinig

Bilang default, nakikinig ang SSH para sa mga koneksyon sa lahat ng magagamit na mga interface. Inirerekomenda naming baguhin ang default na port at tukuyin ang IP address kung saan maghihintay para sa koneksyon. Halimbawa, tutukuyin namin ang port 962 at IP address na 192.168.11.24

Port 962 ListenAddress 192.168.11.24

Cryptographically malakas na mga password

Gumamit ng malalakas na password. Mayroong maraming mga tool sa Internet na bubuo ng isang crypto-strong password online, walang bayad at walang SMS :)

Ipagbawal ang mga walang laman na password

May mga user na walang password. Ang kanilang pag-access sa SSH ay dapat ding tanggihan gamit ang opsyon:

Port 962 PermitEmptyPasswords no

Pag-aralan ang mga log

Itakda ang pag-log ng kaganapan sa INFO o DEBUG mode - magbibigay-daan ito sa iyong magkaroon ng pinalawak na kontrol sa system:

IMPORMASYON sa LogLevel

Nakatulong ba sa iyo ang artikulong ito?

Mangyaring sabihin sa akin kung bakit?

Ikinalulungkot namin na ang artikulo ay hindi kapaki-pakinabang para sa iyo: (Pakiusap, kung ito ay hindi mahirap, ipahiwatig kung bakit? Lubos kaming magpapasalamat para sa isang detalyadong sagot. Salamat sa pagtulong sa amin na maging mas mahusay!

Sa artikulong ito titingnan natin ang pangunahing paraan ng pagprotekta sa SSH mula sa misa Mga pag-atake ng Bruteforce. Sa kasong ito, ang isang napakalaking pag-atake ng bruteforce ay hindi nangangahulugan ng naka-target na paghula ng password na partikular para sa iyong SSH, ngunit isang malawak na pagkuha ng isang hanay ng mga server para sa kasunod na pagkakakilanlan ng mga pares ng login-password na hindi lumalaban sa paghula.

Ang mga pangunahing tampok ng isang napakalaking pag-atake ng SSH bruteforce ay ang malawak na pag-scan ng mga saklaw ng IP sa bukas na port 22 at ang paggamit ng karaniwang ginagamit na username at password (halimbawa, root:passwd123, admin:server123, atbp.).

Upang tingnan ang mga istatistika mula sa mga log file ng hindi matagumpay na mga pagtatangka ng awtorisasyon ng SSH sa iyong server, ilagay ang command:

Cat /var/log/secure* | grep "Nabigong password" | grep sshd | awk "(print $1,$2)" | sort -k 1,1M -k 2n | uniq -c

Ang screenshot na ito ay nagbibigay ng mga istatistika sa bilang ng mga nabigong pahintulot sa araw. Kung magnanakaw ka ng katulad na data, dapat kang gumawa ng mga hakbang upang protektahan ang iyong SSH mula sa napakalaking bruteforce.

1. Kung ikaw huwag gumamit para sa pahintulot, madalas na ginagamit na mga username gaya ng root, admin, administrator, user, atbp. at gumamit ng kumplikadong password para sa awtorisasyon, pagkatapos ay maaari kang magpatuloy kaagad sa pangalawang punto. Upang baguhin ang password sa isang mas kumplikado, ipasok ang command:

Passwd #your_login#

saan #your_login#— Ang iyong username.
Kapag nagpasok ng bagong password, ang password ay hindi ipinapakita, ang cursor ay mananatili sa isang lugar.

Mag-log in tayo sa server sa pamamagitan ng SSH, lumikha ng isang bagong user at bigyan siya ng isang password, upang gawin ito ipasok namin ang mga utos:

Adduser #newuser# passwd #newuser#

saan #newuser#— Ang iyong bagong username, huwag gumamit ng mga madalas na ginagamit bilang isang username, isang magandang opsyon your_nameadmin(halimbawa, foxadmin, useralex, rootidler).

2. Pagkatapos nito, mag-log in sa pamamagitan ng SSH gamit ang bagong username at password. At buksan ang SSH daemon configuration (sshd_config) gamit ang command:

Vi /etc/ssh/sshd_config

Pagkatapos nito, dapat mong makita ang isang bagay tulad nito:

Mga linyang nagsisimula sa # ay nagkomento.

Upang protektahan ang SSH mula sa napakalaking bruteforce, alisin sa komento at baguhin o idagdag ang mga sumusunod na parameter file:
a) daungan- ang port kung saan SSHD tumatanggap at mga serbisyo ng koneksyon. Alisin sa komento (tanggalin bago magsimula ang linya # ) at baguhin ang default na halaga 22 , sa alinmang iba pa mula 1024 hanggang 65536, maliban sa mga nakalaan - isang listahan ng mga nakalaan na port, halimbawa:

Port 2022

Upang tanggalin # at baguhin ang halaga port 22, pindutin muna ang iyong keyboard i, pagkatapos i-edit ang kinakailangang linya, pindutin ang key ESC

b) LoginGraceTime— oras ng paghihintay para sa pagpaparehistro ng user sa system. Kung nabigo ang user na mag-log in sa loob ng oras na inilaan ng direktiba na ito, wawakasan ang session. Bawasan natin ang halagang ito:

LoginGraceTime 1m

c) PermitRootLogin- payagan ang user ugat mag-login sa pamamagitan ng SSH protocol. Magpalit tayo sa hindi.

PermitRootLogin no

d) AllowUsers— mga username na pinapayagan para sa pag-log in sa pamamagitan ng SSH protocol, na pinaghihiwalay ng isang puwang. Dito, sa halip na #your_login#, ipinapahiwatig namin ang bagong nilikhang username.

AllowUsers #your_login#

e) MaxAuthTries— bilang ng mga pagtatangka sa pag-log in bawat session. Kapag ang maximum na pinapayagang bilang ng mga pagtatangka ay naabot, ang session ay wawakasan.

MaxAuthTries 2

Bilang resulta, nakukuha namin ang:

Port 2022 LoginGraceTime 1m PermitRootLogin walang AllowUsers #your_login# MaxAuthTries 2

Sa artikulong ito kukumpletuhin namin ang pag-setup SSH para sa proteksyon laban sa napakalaking bruteforce. Pagkatapos mag-edit , pindutin ang keyboard : , lalabas ang isang linya sa ibaba at pagkatapos ay ipasok ito wq at pindutin ang key Pumasok. Sa kasong ito, mase-save ang lahat ng pagbabagong ginawa.

Kung may nagawa kang mali (halimbawa, hindi sinasadyang natanggal ang isang bagay), upang lumabas nang hindi nagse-save gamitin sa halip na keyboard shortcut wq, mga susi q!

Matapos makumpleto ang pag-setup ng SSH, i-restart ang daemon gamit ang command:

I-restart ang service sshd

Ngayon kapag kumokonekta sa pamamagitan ng SSH, gamitin ang bagong port 2022 (o ang tinukoy mo sa mga setting) sa halip karaniwang port 22.

Sa susunod na artikulo sa pag-set up ng SSH, gusto kong sabihin sa iyo na ipagbabawal namin ang pagpapahintulot ng password at pahihintulutan ang awtorisasyon gamit lamang ang isang pribadong SSH key, sa gayon mapoprotektahan ang aming sarili hangga't maaari mula sa paghula ng password.

Sa maikling tala na ito, naglagay ako ng mga paraan upang mapataas ang seguridad ng isang ssh server. Inilarawan ang pinakapangunahing at pinakasimpleng mga diskarte, at ang mga mas kumplikado ay ipinahiwatig lamang para sa mga interesadong mambabasa.

Pangunahing Teknik

Ang lahat ng mga aksyon ay ginagawa sa sshd daemon configuration file - /etc/ssh/sshd_config. Sa ibaba ay magbibigay ako ng bahagi ng aking configuration file na may mga komento.

### Network ### # Gumagamit kami ng hindi karaniwang port (>1024) na port 5679 # Gumagamit lang kami ng mga koneksyon sa IPv4 # inet = IPv4, inet6 = IPv6, any = parehong AddressFamily inet # Maaari ka lamang tumanggap ng mga koneksyon mula sa ilang partikular na IP mga address #ListenAddress 0.0.0 # Ginagamit namin ang pangalawang bersyon ng protocol, dahil ang una ay napapailalim sa # kilalang Protocol 2 vulnerabilities # I-disable ang graphics redirection (X server) hanggang sa # tahasan mong kailanganin ito X11Forwarding no # Disable Disable TCPKeepAlive at sa halip ay gamitin ang ClientAliveInterval # para maiwasan ang mga pag-atake tulad ng TCP Spoofing TCPKeepAlive no # Sipain ang user pagkatapos ng 10min ( 600 sec) ng kawalan ng aktibidad ClientAliveInterval 600 ClientAliveCountMax 3 ### Mga pangunahing configuration file ### # HostKeys para sa bersyon ng protocol 2 HostKey /etc/ssh/ssh_host_rsa_key HostKey /etc/ssh/ssh_host_dsa_key # Gumamit ng isang proseso ng hindi privileged na proseso traffic # sandbox - openSSH >= 5.9 ("yes" - para sa mas mababang bersyon) UsePrivilegeSeparation sandbox # Kapag binago ang mga value na ito, kailangan nitong tanggalin ang lumang key # /etc/ssh/ssh_host_rsa_key(,.pub), at paglikha ng bago # sa pamamagitan ng pag-restart ng sshd. ## Panghabambuhay ng key, ibig sabihin. Pagkalipas ng anong oras bubuo ng bagong key # kung nagamit na ang nauna. KeyRegenerationInterval 1h # lakas ng key ServerKeyBits 2048 # Pahintulutan ang pahintulot gamit ang isang pampublikong key PubkeyAuthentication oo # Lokasyon ng storage ng mga pinagkakatiwalaang key sa direktoryo ng user AuthorizedKeysFile .ssh/authorized_keys ### Pag-log ### # Prefix para sa syslog SyslogFacility na antas ng AUTH # message na detalye mismo LogLevel INFO ### Authentication ### # listahan ng mga pinapayagang user AllowUsers ivan # limitahan ang oras para sa pagpasok ng password para sa ssh key LoginGraceTime 30s # ipagbawal ang malayuang pag-log in sa ilalim ng root account PermitRootLogin no # I-enable ang tahasang pagsusuri ng mga karapatan ng mga file at mga direktoryo na may mga ssh key na StrictModes yes # Ilang beses humingi ng password kung mali ang pagpasok mo dito MaxAuthTries 3 # Ipagbawal ang pag-login gamit ang walang laman na password PermitEmptyPasswords hindi # Ipagbawal ang pag-login gamit ang isang password sa prinsipyo # (Gumamit ng pampubliko/pribadong key sa halip) PasswordAuthentication no # Huwag paganahin ang paggamit ng "challenge-response" authorization, # dahil . walang silbi kapag gumagamit ng mga key ChallengeResponseAuthentication no # Dahil hindi kami gumagamit ng password, hindi namin kailangan (PAM, login(1)) UsePAM no UseLogin no # Payagan ang kliyente na magpasa lamang ng isang tiyak na hanay ng mga variable ng kapaligiran # RH BZ#CVE-2014-2532 # ShellShock exploit AcceptEnv LANG LC_CTYPE LC_NUMERIC LC_TIME LC_COLLATE LC_MONETARY LC_MESSAGES AcceptEnv LC_PAPER LC_NAME LC_ADDRESS LC_TELEPHONE LC_ADDRESS LC_TELEPHONE LC_TIME LC_MESSAGES Tanggapin

Ito ang mga parameter na na-configure sa sshd configuration file. Pagkatapos baguhin ang mga setting, kailangan mong i-restart ang serbisyo ng sshd.

Mga komento

  • Kapag gumagamit ng key authentication, kailangan ng key dati bumuo sa client machine at kopyahin ang pampublikong key sa server. Halimbawa:
kliyente $ ssh-keygen kliyente $ pusa ~/.ssh/id_rsa.pub | ssh -p 5679 [email protected]"cat >> ~/.ssh/authorized_keys"
  • Ang /var/log/auth.log file ay maglalaman ng mga mensahe mula sa sshd. Kung sakaling nawawala ang file na ito, kailangan mong i-configure ang iyong sistema ng pag-log.
halimbawa para sa syslog at syslon-ng. Gumagamit ako ng syslog-ng at kailangan kong idagdag ang mga sumusunod na linya sa /etc/syslog-ng/syslog-ng.conf file:

destination authlog ( file("/var/log/auth.log"); ); log ( source(src); destination(authlog); );

  • at i-restart ang serbisyo ng syslog-ng.
    Kung gumagamit ka ng hindi karaniwang port, maaaring kailanganin mong i-configure ang iyong firewall (iptables, firewalld, atbp). Halimbawa
mga setting para sa iptables:

root# iptables -A INPUT -p tcp -m state --state NEW,ESTABLISHED --dport 5679 -j ACCEPT root# service iptables save root# iptables -L -n Chain INPUT (policy ACCEPT) target prot opt ​​​​source destination ACCEPT icmp -- 0.0.0.0/0 0.0.0.0/0 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state BAGONG tcp dpt:22 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt :80 TANGGAPIN tcp -- 0.0.0.0/0 0.0.0.0/0 estado BAGO, ESTABLISHED tcp dpt:5679 ...

Kung hindi sapat iyon

  • Ito ay mga pangunahing setting lamang. Bilang karagdagan, maaari mong i-configure