Kaip apriboti „Linux“ sistemoje naudojamų programų pralaidumą naudojant „Trickle“


Ar kada teko susidurti su situacijomis, kai viena programa dominavo jums visiems tinklo pralaidumui? Jei kada nors buvote tokioje situacijoje, kai viena programa suvalgė visą srautą, vertinsite srauto juostos pločio formavimo programos vaidmenį. Arba esate sistemos administratorius, arba tiesiog „Linux“ vartotojas, turite išmokti valdyti programų įkėlimo ir atsisiuntimo greitį, kad įsitikintumėte, jog tinklo pralaidumas nedeginamas vienos programos.

Kas yra „Trickle“?

„Trickle“ yra tinklo pralaidumo formavimo įrankis, leidžiantis mums valdyti programų įkėlimo ir atsisiuntimo spartą, kad nė vienas iš jų neužkirstų viso (ar daugumos) galimo pralaidumo. Keliais žodžiais, „trickle“ leidžia valdyti tinklo srauto greitį kiekvienai programai, o ne vartotojo valdymui, kuris yra klasikinis pralaidumo formavimo kliento ir serverio aplinkoje pavyzdys, ir tikriausiai tai mes esame labiau linkę pažįstamas su.

Kaip veikia „Trickle“?

Be to, „trickle“ gali padėti nustatyti prioritetus kiekvienai programai, kad nustačius bendrus apribojimus visai sistemai, prioritetinės programos vis tiek automatiškai gaus didesnį pralaidumą. Norėdami atlikti šią užduotį, „trickle“ nustato srauto ribas būdui, kuriuo duomenys siunčiami ir gaunami iš lizdų naudojant TCP ryšius. Turime pažymėti, kad, išskyrus duomenų perdavimo spartą, srautas jokiu būdu nekeičia proceso, kurį jis formuoja, elgesio bet kuriuo momentu.

Ko „Trickle“ negali padaryti?

Vienintelis, taip sakant, apribojimas yra tai, kad „trickle“ neveiks su statiškai susietomis programomis ar dvejetainiais failais su nustatytais SUID arba SGID bitais, nes jis naudoja dinaminį susiejimą ir pakrovimą, kad įsitvirtintų tarp formos proceso ir su juo susijusio tinklo lizdo. Tada „Trickle“ veikia kaip tarpinis tarp šių dviejų programinės įrangos komponentų.

Kadangi „trickle“ vykdyti nereikia vartotojo privilegijų, vartotojai gali nustatyti savo srauto apribojimus. Kadangi tai gali būti nepageidautina, mes ištirsime, kaip nustatyti bendras ribas, kurių sistemos vartotojai negali viršyti. Kitaip tariant, vartotojai vis tiek galės valdyti savo srauto tarifus, tačiau visada neperžengdami sistemos administratoriaus nustatytų ribų.

Šiame straipsnyje mes paaiškinsime, kaip apriboti tinklo pralaidumą, kurį „Linux“ serveryje naudoja programos. Norint sugeneruoti reikiamą srautą, kliente („CentOS 7“ serveryje - dev1: 192.168.0.17) ir „vsftpd“ serveryje („Debian Wheezy 7.5 - dev2: 192.168“) naudosime „ncftpput“ ir „ncftpget“ (abu įrankius galima įdiegti įdiegiant „ncftp“). 0,15) demonstravimo tikslais. Tos pačios instrukcijos taip pat veikia „RedHat“, „Fedora“ ir „Ubuntu“ sistemose.

1. Jei naudojate RHEL/CentOS 7/6, įjunkite EPEL saugyklą. „Extra Packages for Enterprise Linux“ (EPEL) yra aukštos kokybės nemokamos ir atviro kodo programinės įrangos, palaikomos „Fedora“ projekto, saugykla ir 100% suderinama su jos „spinoff“, tokiomis kaip „Red Hat Enterprise Linux“ ir „CentOS“. Tiek „trickle“, tiek „ncftp“ yra prieinami šioje saugykloje.

2. Įdiekite „ncftp“ taip:

# yum update && sudo yum install ncftp		[On RedHat based systems]
# aptitude update && aptitude install ncftp	[On Debian based systems]	

3. Nustatykite FTP serverį atskirame serveryje. Atkreipkite dėmesį, kad nors FTP iš esmės yra nesaugus, jis vis dar plačiai naudojamas tais atvejais, kai nereikia kelti ar atsisiųsti failų saugumo. Mes jį naudojame šiame straipsnyje, norėdami iliustruoti „trickle“ gausą ir todėl, kad kliento perdavimo greičiai rodomi stdout, ir mes paliksime diskusiją, ar jis turėtų būti naudojamas kitai datai ir laikui :).

# yum update && yum install vsftpd 		[On RedHat based systems]
# aptitude update && aptitude install vsftpd 	[On Debian based systems]

Dabar redaguokite failą /etc/vsftpd/vsftpd.conf FTP serveryje taip:

anonymous_enable=NO
local_enable=YES
chroot_local_user=YES
allow_writeable_chroot=YES

Po to įsitikinkite, kad pradėjote „vsftpd“ savo dabartiniam seansui ir įgalinote jį automatiškai paleisti būsimuose įkrovose:

# systemctl start vsftpd 		[For systemd-based systems]
# systemctl enable vsftpd
# service vsftpd start 			[For init-based systems]
# chkconfig vsftpd on

4. Jei nuotolinei prieigai nusprendėte nustatyti FTP serverį „CentOS/RHEL 7“ lašelyje su SSH raktais, jums reikės slaptažodžiu apsaugotos vartotojo abonemento su atitinkamais katalogais ir failų teisėmis norimam turiniui įkelti ir parsisiųsti OUTSIDE root. namų katalogas.

Tada galite naršyti savo namų kataloge, savo naršyklėje įvesdami šį URL. Atsidarys prisijungimo langas, raginantis FTP serveryje nurodyti galiojančią vartotojo abonementą ir slaptažodį.

ftp://192.168.0.15

Jei autentifikavimas pavyks, pamatysite savo namų katalogo turinį. Vėliau šioje pamokoje galėsite atnaujinti tą puslapį, kad būtų rodomi failai, kurie buvo įkelti per ankstesnius veiksmus.