Побољшање безбедности за ФрееБСД коришћењем ИПФВ и ССХГуард

Побољшање безбедности за ФрееБСД коришћењем ИПФВ и ССХГуард

ВПС сервери су често на мети уљеза. Уобичајени тип напада се појављује у системским евиденцијама као стотине неовлашћених покушаја пријављивања на ссх. Постављање заштитног зида је веома корисно, али само по себи можда неће на адекватан начин контролисати покушаје ометања упада.

Овај водич показује како да направите побољшану баријеру против упада за ФрееБСД користећи два програма, ipfwзаштитни зид и sshguard. ССХГуард је мали додатни програм који прати системске дневнике за „злоупотребљиве“ уносе. Када прекршиоци покушају да добију приступ, sshguardдаје инструкције ipfwда блокирају саобраћај који потиче са ИП адресе прекршиоца. Преступник је тада практично искључен.

Када се схвати како ови програми функционишу, управљање заштитом сервера је прилично једноставно. Иако је овај водич фокусиран на конфигурисање ФрееБСД-а, његови делови се примењују на друге ОС и софтвер за заштитни зид.

Корак 1. Конфигурисање ИПФВ-а

ФрееБСД обезбеђује 3 заштитна зида у свом подразумеваном ( GENERIC) кернелу ipfw, pf, и ipfilter. Сваки од њих има предности и обожаватеље, али ipfwје ФБСД-ов изворни софтвер за заштитни зид и прилично једноставан за употребу у наше сврхе. Вреди напоменути да ipfwради многе ствари као што показује његова ман страница, међутим могућности као што су НАТ, обликовање саобраћаја, итд., нису потребне за типичну ВПС ситуацију. На срећу, основне карактеристике заштитног зида лако испуњавају наше захтеве.

Да бисте покренули заштитни зид у време покретања, додајте следеће у /etc/rc.conf:

firewall_enable="YES"
firewall_script="/usr/local/etc/IPFW.rules"
firewall_logging="YES"

serviceКоманда је доступна само за старт / стоп ручно заштитни зид:

[user@vultr ~]$ sudo service ipfw start

Наравно, ipfwнеће учинити ништа док не дода правила, често из датотеке, у овом примеру који се налази на /usr/local/etc/IPFW.rules. Датотека правила би у ствари могла да се налази било где или да има било које име, све док се подудара са параметром „фиревалл_сцрипт“. Датотека правила је детаљно описана у наставку.

Корак 2. Инсталирајте и конфигуришите ССХГуард

sshguardдолази у неколико укуса за употребу са различитим заштитним зидовима. Користите pkgуслужни програм да преузмете и инсталирате sshguard-ipfw:

[user@vultr ~]$ sudo pkg install sshguard-ipfw

У већини случајева то је све што треба да урадите. Одговарајућа променљива се аутоматски убацује /etc/rc.confза покретање при покретању:

sshguard_enable="YES"

Подразумеване вредности нормално раде добро. Ако су потребне различите вредности, sshguardман страница даје детаљне информације о параметрима:

# sshguard--program defaults, so don't need to be in rc.conf unless assigning different value
# sshguard_pidfile="/var/run/sshguard.pid"
# sshguard_watch_logs="/var/log/auth.log:/var/log/mail"
# sshguard_blacklist="40:/var/db/sshguard/blacklist.db"
# sshguard_safety_thresh="40"
# sshguard_pardon_min_interval="420"
# sshguard_prescribe_interval="1200"

Можете почети sshguardса уобичајеним serviceпозивањем:

[user@vultr ~]$ sudo service sshguard start

Корак 3. Креирајте скрипту за правила

Најтежи део је креирање скупа правила заштитног зида. ipfwможе да користи обезбеђену /etc/rc.firewallскрипту, али она мора да буде модификована да би се прилагодила ССХГуард-у, као и различитим оперативним сценаријима. Бројне веб странице и ФрееБСД приручник садрже корисне информације о томе. Међутим, писање датотеке правила није тако тешко, осим тога, прилагођени скуп правила може бити лакши за разумевање и мењање када је то потребно.

Важна карактеристика ipfwправила је да први меч побеђује што значи да је редослед правила важан. У ipfw, свако правило је команда, а датотека правила је извршна схелл скрипта. То омогућава да се скуп правила промени изменом правила, а затим покретање датотеке правила као схелл скрипте:

[user@vultr /usr/local/etc]$ sudo ./IPFW.rules

Генерално, датотека са правилима ће дефинисати променљиву за ipfwкоманду, затим ће обрисати тренутна правила, издати генеричка правила, затим наставити са постављањем „излазних“ правила, праћених „улазним“ правилима. Страница упутства за ипфв и други ресурси садрже обиље информација о структури правила и опцијама којих је у најмању руку много.

Пошто је верзија ФрееБСД ссхгуард ажурирана на верзију 1.6.2, начин уметања правила блокирања за прекршиоце се променио. Сада се адресе преступника чувају у ипфв табели (табела 22 да будемо прецизни), уместо да се убацују у правила изнад 55000 као раније.

На срећу, прилично је једноставно подесити датотеку правила за коришћење табеле. Само је питање постављања правила табеле на право место и коришћења исправне синтаксе приликом писања правила.

Када sshguardпронађе прекршиоца, он ставља адресу прекршиоца на своју црну листу, а такође убацује адресу у ipfwтабелу тако да ће "покренути" одбијање приступа. Ово правило ће постићи следеће сврхе:

01000 deny ip from table\(22\) to any

И даље је неопходно поставити правила која дозвољавају улазне услуге изнад 01000 у овом случају. На пример, рецимо да је адреса 10.20.30.40прекршилац у табели 22, и имамо ово ипфв правило:

56420 allow tcp from any to me dst-port 22 in via $vif

Пошто се ipfwсусреће правило 01000 пре правила 56420 , 10.20.30.40је блокирано . Правило „дозволи 22 уласка“ то се никада неће видети. Ако би правило дозволе имало „обичан“ број као што је 00420 , лош саобраћај би био пропуштен и никада би се блокирао (јер је 00420 мање од 01000 и „побеђује у првом мечу“).

Лепа карактеристика ажуриране верзије је да сада када се ссхгуард покрене, све адресе на црној листи се додају у табелу и доступне су за блокирање долазних прекршилаца без одлагања. Црна листа је кумулативна и задржава се између сесија.

У овом тренутку је вероватно разумно приказати комплетан ipfwскуп правила измењен за sshguard. Коментари би требало да олакшају праћење логике правила:

#!/bin/sh

# ipfw config/rules
# from FBSD Handbook, rc.firewall, et. al.

# Flush all rules before we begin.
ipfw -q -f flush

# Set rules command prefix
cmd="ipfw -q add "

vif="vtnet0"

# allow all for localhost
$cmd 00010 allow ip from any to any via lo0

# checks stateful rules.  If marked as "keep-state" the packet has
# already passed through filters and is "OK" without futher
# rule matching
$cmd 00101 check-state

# allow DNS out
$cmd 00110 allow tcp from me to any dst-port 53 out via $vif setup keep-state
$cmd 00111 allow udp from me to any dst-port 53 out via $vif keep-state

# allow dhclient connection out (port numbers are important)
$cmd 00120 allow udp from me 68 to any dst-port 67 out via $vif keep-state

# allow HTTP HTTPS replies
$cmd 00200 allow tcp from any to any dst-port 80 out via $vif setup keep-state
$cmd 00220 allow tcp from any to any dst-port 443 out via $vif setup keep-state

# allow outbound mail
$cmd 00230 allow tcp from any to any dst-port 25 out via $vif setup keep-state
$cmd 00231 allow tcp from any to any dst-port 465 out via $vif setup keep-state
$cmd 00232 allow tcp from any to any dst-port 587 out via $vif setup keep-state

# allow icmp re: ping, et. al. 
# comment this out to disable ping, et.al.
$cmd 00250 allow icmp from any to any out via $vif keep-state

# alllow timeserver out
$cmd 00260 allow tcp from any to any dst-port 37 out via $vif setup keep-state

# allow ntp out
$cmd 00270 allow udp from any to any dst-port 123 out via $vif keep-state

# allow outbound SSH traffic
$cmd 00280 allow tcp from any to any dst-port 22 out via $vif setup keep-state

# otherwise deny outbound packets
# outbound catchall.  
$cmd 00299 deny log ip from any to any out via $vif

# inbound rules
# deny inbound traffic to restricted addresses
$cmd 00300 deny ip from 192.168.0.0/16 to any in via $vif
$cmd 00301 deny ip from 172.16.0.0/12 to any in via $vif
$cmd 00302 deny ip from 10.0.0.0/8 to any in via $vif
$cmd 00303 deny ip from 127.0.0.0/8 to any in via $vif
$cmd 00304 deny ip from 0.0.0.0/8 to any in via $vif
$cmd 00305 deny ip from 169.254.0.0/16 to any in via $vif
$cmd 00306 deny ip from 192.0.2.0/24 to any in via $vif
$cmd 00307 deny ip from 204.152.64.0/23 to any in via $vif
$cmd 00308 deny ip from 224.0.0.0/3 to any in via $vif

# deny inbound packets on these ports
# auth 113, netbios (services) 137/138/139, hosts-nameserver 81 
$cmd 00315 deny tcp from any to any dst-port 113 in via $vif
$cmd 00320 deny tcp from any to any dst-port 137 in via $vif
$cmd 00321 deny tcp from any to any dst-port 138 in via $vif
$cmd 00322 deny tcp from any to any dst-port 139 in via $vif
$cmd 00323 deny tcp from any to any dst-port 81 in via $vif

# deny partial packets
$cmd 00330 deny ip from any to any frag in via $vif
$cmd 00332 deny tcp from any to any established in via $vif

# allowing icmp re: ping, etc.
$cmd 00310 allow icmp from any to any in via $vif

# allowing inbound mail, dhcp, http, https
$cmd 00350 allow udp from any 53 to me in via $vif
$cmd 00360 allow tcp from any 53 to me in via $vif
$cmd 00370 allow udp from any 67 to me dst-port 68 in via $vif keep-state

$cmd 00400 allow tcp from any to me dst-port 80 in via $vif setup limit src-addr 2
$cmd 00410 allow tcp from any to me dst-port 443 in via $vif setup limit src-addr 2

# SSHguard puts offender addresses in table 22. Set up the table rule
# Please note the '\(22\)' syntax, necessary since it's run as shell command
$cmd 01000 deny ip from table\(22\) to any

# allow inbound ssh, mail. PROTECTED SERVICES: numbered ABOVE sshguard blacklist range 
$cmd 56420 allow tcp from any to me dst-port 22 in via $vif setup limit src-addr 2
$cmd 56530 allow tcp from any to any dst-port 25 in via $vif setup keep-state
$cmd 56531 allow tcp from any to any dst-port 465 in via $vif setup keep-state
$cmd 56532 allow tcp from any to any dst-port 587 in via $vif setup keep-state

# deny everything else, and log it
# inbound catchall
$cmd 56599 deny log ip from any to any in via $vif

# ipfw built-in default, don't uncomment
# $cmd 65535 deny ip from any to any

Корак 4. Покретање и тестирање

Системске потребе се разликују и различити избори портова за блокирање или деблокирање одражавају се у скупу правила. Када се скуп правила заврши, сачувајте датотеку у /usr/local/etc/IPFW.rulesи покрените ФБСД услуге:

 # service ipfw start
 # service sshguard start

Проширени заштитни зид би сада требало да ради! Проверите sshguard:

 [user@vultr ~]$ sudo pgrep -lfa ssh

Ако sshguardје покренут, приказује се његов пид и пуна командна линија:

720 /usr/local/sbin/sshguard -b 40:/var/db/sshguard/blacklist.db -l /var/log/auth.log -l /var/log/maillog -a 40 -p 420 -s 1200 -w /usr/local/etc/sshguard.whitelist -i /var/run/sshguard.pid

Ово показује скуп правила заштитног зида са статистиком и последњи пут када је пакет одговарао правилу:

 [user@vultr ~]$ sudo ipfw -cat list

После сати или дана, адресе прекршилаца се додају на црну листу, а такође и табела 22. Да видите све адресе у табели, користите ову команду:

ipfw table 22 list

Резултат се штампа као:

10.10.10.118/32 0
10.10.10.72/32 0
...

Као што је горе описано, везе са ових адреса су забрањене. Наравно, при првом покретању sshguardнеће бити адреса на листи, али временом може постати прилично дуга. Једна опција је креирање засебних правила за блокирање за адресе са вишеструким уносима у табели, а затим њихово брисање са црне листе.

Корак 5. Будите опрезни...

Добра је идеја да повремено проверавате евиденцију како бисте били сигурни да су упади контролисани. Генерално, /var/log/auth.logи /var/log/securityинформативни су. Могу постати очигледни недостаци или грешке у покривању мрежних услуга. Измена скупа правила заштитног зида по потреби је нормалан део администрације сервера.

У претходним верзијама ссхгуарда, када је /var/db/sshguard/blacklist.dbдатотека нарасла, могла је спречити sshguardпокретање при покретању система. Уклањање или преименовање датотеке црне листе дозвољено је sshguardда почне. Чини се да је овај проблем решен у најновијој верзији ссхгуарда, тако да ово решење вероватно више није потребно.

Обавезно ставите на белу листу ИП адресу са које сте повезани на ССХ сесију. Ако се случајно закључате, увек можете да се повежете на ноВНЦ конзолу на хттпс://ми.вултр.цом и ставите своју ИП адресу на белу листу.

Сумирајући, коришћење комбинације ipfwи sshguardпомаже да ваш ФрееБСД систем буде сигуран и да ради свој посао. Минимизирање интрузивне мрежне активности има додатну предност: мање „буке“ олакшава праћење и подешавање рада система, доприносећи сигурнијем серверу који боље ради.

Ефикасна заштита ФрееБСД система/сервера није посебно компликована. Иако је потребан скроман труд да би се покренуо и покренуо, он се исплати у знатно већој ВПС и сигурности пројекта.


Како инсталирати Тини Тини РСС Реадер на ФрееБСД 11 ФАМП ВПС

Како инсталирати Тини Тини РСС Реадер на ФрееБСД 11 ФАМП ВПС

Користите другачији систем? Тини Тини РСС Реадер је бесплатан читач и агрегатор вести (РСС/Атом) са сопственим хостовањем отвореног кода, дизајниран за

Како инсталирати Вики.јс на ФрееБСД 11

Како инсталирати Вики.јс на ФрееБСД 11

Користите другачији систем? Вики.јс је бесплатна модерна вики апликација отвореног кода изграђена на Ноде.јс, МонгоДБ, Гит и Маркдовн. Вики.јс изворни код је јавни

Како инсталирати Пагекит 1.0 ЦМС на ФрееБСД 11 ФАМП ВПС

Како инсталирати Пагекит 1.0 ЦМС на ФрееБСД 11 ФАМП ВПС

Користите другачији систем? Пагекит 1.0 ЦМС је прелеп, модуларан, проширив и лаган, бесплатан систем за управљање садржајем отвореног кода (ЦМС) са

Како инсталирати МОДКС Револутион на ФрееБСД 11 ФАМП ВПС

Како инсталирати МОДКС Револутион на ФрееБСД 11 ФАМП ВПС

Користите другачији систем? МОДКС Револутион је брз, флексибилан, скалабилан, опен соурце систем за управљање садржајем (ЦМС) за предузећа написан у ПХП-у. Ит и

Подешавање ОпенБСД 5.5 64-бит

Подешавање ОпенБСД 5.5 64-бит

Овај чланак вас води кроз подешавање ОпенБСД 5.5 (64-бит) на КВМ-у са Вултр ВПС-ом. Корак 1. Пријавите се на Вултр контролну таблу. Корак 2. Кликните на УПОТРЕБА

Како инсталирати осТицкет на ФрееБСД 12

Како инсталирати осТицкет на ФрееБСД 12

Користите другачији систем? осТицкет је систем за продају карата за корисничку подршку отвореног кода. ОсТицкет изворни код је јавно хостован на Гитхубу. У овом туторијалу

Како инсталирати Фларум Форум на ФрееБСД 12

Како инсталирати Фларум Форум на ФрееБСД 12

Користите другачији систем? Фларум је бесплатан форумски софтвер нове генерације отвореног кода који чини дискусију на мрежи забавном. Фларум изворни код је хостован о

Како омогућити ТЛС 1.3 у Нгинк-у на ФрееБСД 12

Како омогућити ТЛС 1.3 у Нгинк-у на ФрееБСД 12

Користите другачији систем? ТЛС 1.3 је верзија протокола Транспорт Лаиер Сецурити (ТЛС) који је објављен 2018. године као предложени стандард у РФЦ 8446

Инсталирајте ВордПресс на ОпенБСД 6.2

Инсталирајте ВордПресс на ОпенБСД 6.2

Увод ВордПресс је доминантан систем за управљање садржајем на интернету. Покреће све, од блогова до сложених веб локација са динамичким садржајем

Како инсталирати Субрион 4.1 ЦМС на ФрееБСД 11 ФАМП ВПС

Како инсталирати Субрион 4.1 ЦМС на ФрееБСД 11 ФАМП ВПС

Користите другачији систем? Субрион 4.1 ЦМС је моћан и флексибилан систем за управљање садржајем отвореног кода (ЦМС) који доноси интуитиван и јасан садржај

Како конфигурисати ДЈБДНС на ФрееБСД-у

Како конфигурисати ДЈБДНС на ФрееБСД-у

Овај водич ће вам показати како да конфигуришете ДНС услугу која је лака за одржавање, лака за конфигурисање и која је генерално безбеднија од класичног БИН-а

Како инсталирати Нгинк, МиСКЛ и ПХП (ФЕМП) стек на ФрееБСД 12.0

Како инсталирати Нгинк, МиСКЛ и ПХП (ФЕМП) стек на ФрееБСД 12.0

ФЕМП стек, који је упоредив са ЛЕМП стеком на Линук-у, је колекција софтвера отвореног кода који се обично инсталира заједно да би омогућио ФрееБС

Инсталирање МонгоДБ-а на ФрееБСД 10

Инсталирање МонгоДБ-а на ФрееБСД 10

МонгоДБ је НоСКЛ база података светске класе која се често користи у новијим веб апликацијама. Пружа упите високих перформанси, дељење и репликацију

Како инсталирати Моницу на ФрееБСД 12

Како инсталирати Моницу на ФрееБСД 12

Користите другачији систем? Моника је систем управљања личним односима отвореног кода. Замислите то као ЦРМ (популарни алат који користе продајни тимови у тх

ОпенБСД као решење за е-трговину са ПрестаСхоп-ом и Апацхе-ом

ОпенБСД као решење за е-трговину са ПрестаСхоп-ом и Апацхе-ом

Увод Овај водич демонстрира ОпенБСД као решење за е-трговину користећи ПрестаСхоп и Апацхе. Апацхе је неопходан јер ПрестаСхоп има сложен УР

Инсталирање Форк ЦМС-а на ФрееБСД 12

Инсталирање Форк ЦМС-а на ФрееБСД 12

Користите другачији систем? Форк је ЦМС отвореног кода написан у ПХП-у. Изворни код Форкс се налази на ГитХуб-у. Овај водич ће вам показати како да инсталирате Форк ЦМ

Како инсталирати Дирецтус 6.4 ЦМС на ФрееБСД 11 ФАМП ВПС

Како инсталирати Дирецтус 6.4 ЦМС на ФрееБСД 11 ФАМП ВПС

Користите другачији систем? Дирецтус 6.4 ЦМС је моћан и флексибилан, бесплатан и отвореног кода Хеадлесс Цонтент Манагемент Систем (ЦМС) који пружа програмеру

Побољшање безбедности за ФрееБСД коришћењем ИПФВ и ССХГуард

Побољшање безбедности за ФрееБСД коришћењем ИПФВ и ССХГуард

ВПС сервери су често на мети уљеза. Уобичајени тип напада се појављује у системским евиденцијама као стотине неовлашћених покушаја пријављивања на ссх. Подешавати

Поставите хттпд у ОпенБСД

Поставите хттпд у ОпенБСД

Увод ОпенБСД 5.6 је представио нови демон под називом хттпд, који подржава ЦГИ (преко ФастЦГИ) и ТЛС. Није потребан додатни рад да бисте инсталирали нови хттп

Подесите иРедМаил на ФрееБСД 10

Подесите иРедМаил на ФрееБСД 10

Овај водич ће вам показати како да инсталирате групни софтвер иРедМаил на нову инсталацију ФрееБСД 10. Требало би да користите сервер са најмање једним гигабајтом о

Успон машина: Примене вештачке интелигенције у стварном свету

Успон машина: Примене вештачке интелигенције у стварном свету

Вештачка интелигенција није у будућности, она је овде управо у садашњости. У овом блогу Прочитајте како су апликације вештачке интелигенције утицале на различите секторе.

ДДОС напади: кратак преглед

ДДОС напади: кратак преглед

Да ли сте и ви жртва ДДОС напада и збуњени сте методама превенције? Прочитајте овај чланак да бисте решили своја питања.

Да ли сте се икада запитали како хакери зарађују новац?

Да ли сте се икада запитали како хакери зарађују новац?

Можда сте чули да хакери зарађују много новца, али да ли сте се икада запитали како зарађују толики новац? Хајде да причамо.

Гоогле-ови револуционарни изуми који ће вам олакшати живот.

Гоогле-ови револуционарни изуми који ће вам олакшати живот.

Да ли желите да видите револуционарне изуме Гугла и како су ти изуми променили живот сваког људског бића данас? Затим читајте на блогу да бисте видели Гооглеове изуме.

Фридаи Ессентиал: Шта се десило са аутомобилима које покреће вештачка интелигенција?

Фридаи Ессентиал: Шта се десило са аутомобилима које покреће вештачка интелигенција?

Концепт самовозећих аутомобила који путују на путеве уз помоћ вештачке интелигенције је сан који већ неко време имамо. Али упркос неколико обећања, њих нема нигде. Прочитајте овај блог да сазнате више…

Технолошка сингуларност: далека будућност људске цивилизације?

Технолошка сингуларност: далека будућност људске цивилизације?

Како се наука развија великом брзином, преузимајући многе наше напоре, расте и ризик да се подвргнемо необјашњивој сингуларности. Прочитајте шта би сингуларност могла да значи за нас.

Еволуција складиштења података – Инфографика

Еволуција складиштења података – Инфографика

Методе складиштења података су се развијале можда од рођења података. Овај блог покрива еволуцију складиштења података на основу инфографике.

Функционалности слојева референтне архитектуре великих података

Функционалности слојева референтне архитектуре великих података

Прочитајте блог да бисте на најједноставнији начин упознали различите слојеве у архитектури великих података и њихове функционалности.

6 невероватних предности поседовања паметних кућних уређаја у нашим животима

6 невероватних предности поседовања паметних кућних уређаја у нашим животима

У овом дигиталном свету, паметни кућни уређаји постали су кључни део живота. Ево неколико невероватних предности паметних кућних уређаја о томе како они чине наш живот вредним живљења и једноставнијим.

Ажурирање додатка за мацОС Цаталина 10.15.4 изазива више проблема него што их решава

Ажурирање додатка за мацОС Цаталина 10.15.4 изазива више проблема него што их решава

Недавно је Аппле издао мацОС Цаталина 10.15.4 додатак за исправку проблема, али изгледа да ажурирање изазива више проблема који доводе до квара Мац машина. Прочитајте овај чланак да бисте сазнали више