Aliases (Бүркеншік аттар)
Бүркеншік аттар – бұл желі, хост немесе порт тізімдерін атпен сақтап, оларды брандмауэрдің әртүрлі бөлімдерінде бір нысан ретінде қолдануға мүмкіндік беретін механизм.
Бұл әдіс ережелерді ықшамдау мен конфигурация өзгерістерін азайтуға көмектеседі.
Firewall → Aliases беті арқылы бүркеншік аттарды қосуға, өзгертуге немесе жоюға болады.
Шолу
Бет ашылғанда қолжетімді барлық бүркеншік аттар тізімі көрсетіледі. Бұған орнатылған қосымшалардан алынған ішкі жүйелік бүркеншік аттар да кіреді.
Беттің жоғарғы бөлігінде бүркеншік аттарды іздеуге, сондай-ақ белгілі бір түрлер мен санаттар бойынша сүзуге болады.
Қосымша ақпарат көрсеткіштері
- Loaded# – Жүктелуі тиіс жазбалар саны. Жады жеткіліксіз болған жағдайда, қай бүркеншік ат мәселе тудырып тұрғанын анықтауға болады.
- Last updated – Соңғы рет жазбалар дискіге сақталған уақыт белгісі.
Ескерту: Бұл көрсеткіштер тек желілер мен хосттарды қамтитын бүркеншік аттар үшін көрсетіледі. Порттар ереженің бір бөлігі болғандықтан, бұл кестеде көрінбейді.
Бүркеншік ат түрлері
OPNsense келесі түрлерді ұсынады:
Түрі |
Сипаттамасы |
Hosts |
Жеке хосттар – IP немесе толық домен атауы арқылы, сондай-ақ алып тастау (! белгісімен) |
Networks |
Желілер (мыс: 192.168.1.0/24), желіні алып тастау арқылы да болады |
Ports |
Порт нөмірлері немесе диапазон (мыс: 20:30) |
MAC addresses |
MAC мекенжайлар (толық немесе ішінара: f4:90:ea) |
URL (IPs) |
Бір реттік жүктелетін IP-адрестер кестесі |
URL Tables (IPs) |
Белгілі уақыт аралығында жаңартылатын IP кестесі |
URL Table in JSON format (IPs) |
JSON құрылымындағы IP кестесі, үнемі жаңартылып отырады |
GeoIP |
Елдер немесе аймақтарды таңдау арқылы IP ауқымдарын пайдалану |
Network group |
Әртүрлі желілік бүркеншік аттарды біріктіру |
Dynamic IPv6 Host |
IPv6 мекенжайы өзгергенде автоматты түрде жаңартылатын хост жазбасы |
BGP ASN |
Автономды жүйе нөмірлерін (ASN) желілерге сәйкестендіру |
OpenVPN group |
VPN қолданушылар топтарын OpenVPN арқылы сәйкестендіру |
Internal (automatic) |
Жүйе арқылы басқарылатын ішкі бүркеншік аттар |
External (advanced) |
Сыртқы көздерден (API, плагин) басқарылатын аттар. Мұнда тек орын (placeholder) болады |
Hosts түріндегі бүркеншік аттар
Hosts түріндегі бүркеншік аттарға келесі мәліметтерді енгізуге болады:
- Жеке IP мекенжай (мыс:
192.168.1.10
)
- IP ауқымы, дефис арқылы бөлінген (мыс:
10.0.0.1-10.0.0.10
)
- Толық домен атауы (мыс:
www.example.com
)
Егер сіз толық домен атауын қолдансаңыз, бұл атау жүйе арқылы белгілі интервалда (әдепкі бойынша 300 секунд сайын) қайта шешіледі (resolve).
Мысал
Мысалы, біз www.youtube.com үшін бүркеншік ат кестесін жасағымыз келеді:
Өзгерістерді қолданған соң, осы жасалған кестенің мазмұнын тексерейік:
Firewall → Diagnostics → Aliases бөліміне өтіп, жаңа жасаған youtube кестесін таңдаңыз.
Көріп тұрғаныңыздай, бұл домен атауына бірнеше IP мекенжай сәйкес келеді.
Кеңес
Домен атауын қайта шешу интервалын өзгерту үшін Firewall → Settings → Advanced бөліміне өтіңіз де, Aliases Resolve Interval параметрін қажетті секунд мәніне орнатыңыз.
Хосттарды алып тастау (Exclusion)
Hosts типіндегі бүркеншік аттардан нақты мекенжайларды алып тастауға болады. Мұны “!” белгісі арқылы жасайды.
Мысалы: !192.168.0.1
— бұл мекенжай желі тобына енгізілмейді.
Ескерту
Flush әрекеті тұрақты емес екенін ескеріңіз!
Flush әрекеті ағымдағы кестені тазалайды, бірақ бұл кесте (егер ол сыртқы емес түрге жатса) қайтадан автоматты түрде толтырылады.
Бұл әрекет API-де alias_util flush
шақыруымен де дәл осылай жұмыс істейді.
Желілер (Networks), Порттар және MAC-мекенжайлар түріндегі бүркеншік аттар
Желілер (Networks)
Желілер CIDR (Classless Inter-Domain Routing) форматында көрсетіледі. Әр жазбаға дұрыс CIDR маскасын қолданған жөн:
/32
— жеке IPv4 хост
/128
— жеке IPv6 хост
/24
— желі маскасы 255.255.255.0
/64
— стандартты IPv6 желісі
Желі типіндегі бүркеншік аттардан хост немесе желіні алып тастауға болады. Мұны “!
” белгісімен көрсету қажет:
Мысалы: !192.168.0.0/24
— бұл желі Alias құрамынан шығарылады.
Қосымша мүмкіндік: CIDR орнына wildcard mask қолдануға болады.
Кеңес: Егер сіз барлық .1
адреспен аяқталатын серверлерді (мысалы 192.168.X.1
) сәйкестендіргіңіз келсе, 192.168.0.1/0.0.255.0
секілді масканы қолданыңыз.
Порттар (Ports)
Порттар жеке сандар немесе ауқым ретінде көрсетіледі:
80
— жеке порт (мыс: HTTP)
20:25
— порт ауқымы (мыс: FTP диапазоны)
MAC-мекенжайлар (MAC addresses)
MAC мекенжайлар толық немесе жартылай оналтылық мән ретінде жазылады. Кіріс регистрге тәуелді емес:
F4:90:EA
— белгілі бір өндірушінің барлық құрылғылары
f4:90:ea:00:00:01
— нақты бір құрылғы
Бұл бүркеншік аттар arp және ndp кестелерінен мезгіл сайын жаңартылып отырады.
Ескерту
MAC spoofing: Аппараттық мекенжайларды қолдан жасауға болады, сондықтан MAC-фильтрацияны қауіпсіз деп санауға болмайды. IP сүзгілеу сияқты, MAC сүзгі де осал болуы мүмкін.
Кеңес
Бүркеншік аттардың нақты күйін тексеру үшін Firewall → Diagnostics → Aliases бетіне өтіңіз.
URL Table және JSON форматындағы URL Table
URL Table
URL Table арқылы қашықтағы серверден IP мекенжайлар тізімін автоматты түрде жүктеп алуға болады.
Жаңарту жиілігін (Refresh frequency) көрсету арқылы қаншалықты жиі жаңарту керек екенін анықтай аласыз.
Ескерту: Жүктелетін файл мазмұны келесі талаптарға сай болуы керек:
- Әр жолда бір IPv4 немесе IPv6 мекенжай болуы тиіс
- Ақ кеңістік (whitespace),
, ; | #
таңбаларымен басталатын жолдар еленбейді
URL Table (JSON форматындағы)
JSON пішіміндегі IP тізімдері бар файлдарды алыстатылған серверден жүктеу мүмкіндігін береді.
Path Expression өрнегін пайдалану арқылы JSON ішінен нақты өрістерді таңдап алуға болады.
Кейбір мысалдар:
Мазмұн (Content) |
Path Expression |
Мақсаты |
https://ip-ranges.amazonaws.com/ip-ranges.json |
.prefixes[] | select(.region=="us-east-1") | select(.service=="EC2") | .ip_prefix |
us-east-1 аймағындағы EC2 қызметіне тиесілі барлық IP мекенжайлар |
https://api.github.com/meta |
.web + .api + .git | .[] |
GitHub веб, API және git IP мекенжайлары |
https://endpoints.office.com/endpoints/worldwide?clientrequestid=b10c5ed1-bad1-445f-b386-b919946339a7 |
.[] | select(.serviceArea=="Exchange") | select(".ips") | .ips | .[]? |
Microsoft Exchange қызметінің желілері |
Кеңес
https://play.jqlang.org/ сайтын пайдалану арқылы
jq тілінде жазылған өрнектерді тексеріп көруге болады.
GeoIP
GeoIP алиастары арқылы белгілі бір елдер немесе тұтас құрлықтар бойынша желі трафигін рұқсат ету немесе бұғаттауға болады.
Барлығын таңдау (toggle all) құсбелгісін пайдалану арқылы өңір ішіндегі барлық елдерді бірден таңдауға болады.
GeoIP пайдалану үшін Firewall ‣ Aliases ‣ GeoIP settings қойындысында дереккөз (source) орнату қажет.
Ең жиі қолданылатын дереккөз — MaxMind, оған арнайы нұсқаулық бар: MaxMind GeoIP Setup
Ескерту
Егер сіз Business Edition нұсқасын қолдансаңыз, URL өрісін бос қалдыруға болады — бұл жағдайда қажетті дерекқорды OPNsense автоматты түрде жүктеп алады.
CSV файлдарының құрылымы
GeoIP дерекқор zip файл түрінде болуы керек және келесі 3 негізгі CSV файлдарды қамтуы қажет:
Атауы |
Файл атауы |
Мақсаты |
Формат |
Мысал |
Ел локациясы |
%prefix%-locations-en.csv |
Geo ID мен ISO ел кодын байланыстырады |
geoname_id,,,,country_iso_code |
1,,,,NL |
IPv4 желілері |
%prefix%-IPv4.csv |
IPv4 желі мен Geo ID байланысы |
network,geoname_id |
2.21.241.0/28,1 |
IPv6 желілері |
%prefix%-IPv6.csv |
IPv6 желі мен Geo ID байланысы |
network,geoname_id |
2001:470:1f15:210::/64,1 |
%prefix% мәні өнім атауын немесе жеткізушіні білдіреді.
MaxMind үшін мысалы:
GeoLite2-Country-Locations-en.csv
,
GeoLite2-Country-Blocks-IPv4.csv
,
GeoLite2-Country-Blocks-IPv6.csv
Кеңестер
- GeoIP тізімдері көлемді болуы мүмкін, әсіресе IPv6 желілерінде. Қағидалар жазғанда тек қажет IP мекенжайларын ғана таңдауға тырысыңыз.
- Мысалы: бүкіл әлем елдерін таңдап, тек Нидерландтан басқа деп көрсету орнына, тек Нидерландты рұқсат етсеңіз жеткілікті болады.
- Егер таңдалған мекенжайлар саны жүйенің alias лимитінен асып кетсе, Firewall ‣ Settings ‣ Advanced бөлімінде Firewall Maximum Table Entries параметрін арттыруға болады.
Network group
Network group — бұл әртүрлі network типтегі алиастарды бір логикалық топқа біріктіруге мүмкіндік беретін алиас түрі. Бұл типке host, network және басқа да сәйкес алиас түрлерін қосуға болады.
Техникалық тұрғыдан қарағанда, бұл Networks
типтегі алиаспен бірдей жұмыс істейді, бірақ қолдану мен басқару жағы жеңілдетілген.
BGP ASN
BGP ASN алиасы арқылы желілерді олардың жауапты ұйымдарына қарай таңдай аласыз.
BGP (Border Gateway Protocol) арқылы ұйымдар өздеріне тиесілі мекенжай ауқымдарын бір-біріне жариялайды.
Мысалы, Cloudflare — AS13335, ал Microsoft — AS8075 пайдаланады.
Бұл ұйымдар өздерінің IP ауқымдарын осы ASN арқылы BGP арқылы жариялайды.
ASN және IP мекенжайларын тағайындау туралы толық ақпаратты Wikipedia бетінде табуға болады.
External
External алиастарының мазмұны OPNsense-тің кәдімгі интерфейсі арқылы басқарылмайды.
Бұл түр сыртқы бағдарламалар немесе сценарийлер арқылы IP мекенжайларын firewall ережелеріне қосқыңыз келгенде пайдалы.
Мысалы, бұғаттау жүйелері, кіруді бақылау (access control) немесе оқшаулау (lockout) жүйелері арқылы IP мекенжайларын автоматты түрде қосуға болады.
Firewall ‣ Diagnostics ‣ Aliases бөлімінде External типтегі алиастың ағымдағы мазмұнын қарап, қолмен IP мекенжай қосуға немесе алып тастауға болады.
Кеңестер
-
Егер бұл алиас stateful ережеде қолданылып жатса, жаңа IP-мекенжай күшіне енуі үшін бұрынғы трафик күйін (state) жою қажет болуы мүмкін.
Бұл үшін Firewall ‣ Diagnostics ‣ States Dump бөлімін қолданыңыз.
-
External алиастар OPNsense арқылы жаңартылмайтындықтан, оларды басқару үшін тікелей
pfctl
утилитасын пайдалануға болады.
Мысал:
pfctl -t MyAlias -T add 10.0.0.3
— MyAlias алиасына 10.0.0.3
мекенжайын қосу.
OpenVPN group
OpenVPN group алиас түрі арқылы OpenVPN арқылы қосылған пайдаланушыларға олардың тиісті топтарына (System ‣ Access ‣ Groups бөлімінде орнатылған) байланысты firewall саясаттарын жасауға болады.
Мысалы, егер fred
атты пайдаланушы remote_users
тобының мүшесі болса және OpenVPN арқылы қосылып, 10.10.10.2
IP-мекенжайын алса, онда remote_users
тобымен байланысты алиас бұл IP-адресті автоматты түрде қамтиды.
Ағымдағы OpenVPN пайдаланушыларының күйін VPN ‣ OpenVPN ‣ Connection Status бөлімінен көруге болады. Алиас осы ақпаратқа сүйеніп, сәйкес IP мекенжайларын автоматты түрде жаңартып отырады.
Ескерту: Бұл механизмнің дұрыс жұмыс істеуі үшін, пайдаланушы сертификатындағы common-name пайдаланушы атымен дәл сәйкес келуі керек. Бұл әдетте пайдаланушы менеджері арқылы сертификат құрылған жағдайда автоматты түрде сақталады.
Кеңес: Егер сіз LDAP немесе Active Directory қолдансаңыз, топ мүшелігін автоматты түрде синхрондау арқылы OPNsense ішінде екі есе әкімшілендіруден аулақ болуға болады.
Internal (automatic)
Internal (automatic) алиастары жүйемен автоматты түрде жасалады және олардың атауы __
префиксімен басталады (мысалы: __lan
, __wan
).
Бұл алиастар пайдаланушы жасаған алиастармен қайшылыққа түспеуі үшін арнайы белгіленген. Олар OPNsense жүйесіндегі кейбір ішкі тұжырымдамаларға байланысты, мысалы: LAN желісі, барлық интерфейс адрестері және т.б.
Бұл алиастардың нақты мазмұнын көру үшін Firewall ‣ Diagnostics ‣ Aliases бөліміне өтіңіз.
Firewall ережелерінде алиастарды пайдалану
Алиастарды firewall ережелерінде қолдану арқылы үлкен мекенжайлар тізімін басқаруды жеңілдетуге болады.
Мысалы, егер сізге кейбір қашықтағы IP мекенжайларына белгілі бір қызметтерге қол жеткізуге рұқсат беру керек болса,
онда оларды бір алиас тобына біріктіріп, firewall ережесінде осы алиасты қолдануға болады.
Бұл әдіс арқылы тізім өзгерген жағдайда, тек алиасты жаңарту жеткілікті болады, ереже өзгеріссіз қалады.
Мысал
Бізге сайттан сайтқа туннель орнату үшін IPsec серверіне келесі үш қашықтағы IP мекенжайларынан қатынауға рұқсат беру қажет болсын:
- 192.168.100.1
- 192.168.200.2
- 192.168.202.2
Бұл мекенжайларды remote_ipsec атты алиасқа біріктіріп, firewall ережесінде осы алиасты қолданамыз.
Алиас жасалғаннан кейін, біз firewall ережелерін жаңартып, оған осы remote_ipsec
алиасын қолданамыз.
Ескерту: Firewall ережелерінде алиас қолданылғанын тізім белгішесі (иконкасы) арқылы анықтауға болады.
Экспорт / Импорт
Firewall ‣ Aliases бетінде кестенің төменгі жағында жүктеп алу және жүктеп беру батырмалары бар.
Бұл мүмкіндіктерді қолдану арқылы сіз жүйедегі барлық алиастардың JSON
форматындағы тізімін жүктей аласыз немесе дайын конфигурацияны импорттай аласыз.
Импорттау кезінде деректер тексерістен өтеді, сондықтан ақаулы деректерді қосу мүмкін емес. Егер импорт сәтсіз болса, қатенің себебі көрсетіледі.
Кеңес: Көшіру кезінде бірнеше элементті мәтіндік редакторда бірден өзгерту ыңғайлы. Бұл мүмкіндік осындай жағдайлар үшін өте пайдалы, өйткені жүйе жаңа деректерді бір-бірлеп енгізгендегідей тексереді.
Жаңа жазбаларды API арқылы қосу
alias_util
интерфейсінің API-нүктелері арқылы алиасқа жаңа жазбаларды қосуға немесе бұрынғыларын жоюға болады.
Егер сіз external типті алиасты қолдансаңыз, онда енгізілген IP мекенжайлар құрылғы қайта жүктелгеннен кейін жойылады, бұл кейбір жағдайларда (мысалы, жиі өзгеретін үлкен тізімдер үшін) ыңғайлы.
Use the API құжатында API кілті мен құпия сөзді жасау қадамдары сипатталған. Кейін сіз интерфейс қолданатын API-нүктелерді қолмен де қолдана аласыз.
Мысал:
Төмендегі curl
командасы 10.0.0.2 IP мекенжайын MyAlias атты алиасқа қосады.
Бұл мысалда opnsense.firewall
мекенжайында орналасқан құрылғыға өзін-өзі қол қойған (insecure) сертификат арқылы қосылады:
curl \
--header "Content-Type: application/json" \
--basic \
--user "key:secret" \
--request POST \
--insecure \
--verbose \
--data '{"address":"10.0.0.2"}' \
https://opnsense.firewall/api/firewall/alias_util/add/MyAlias
Ескерту: /api/firewall/alias_util/add/
интерфейсі тек Host, Network және External типті алиастармен ғана жұмыс істейді.
Бас тарту (Exclusions)
pf
firewall кестелері мекенжайларды алып тастау (exclude) мүмкіндігін қолдайды. Бұл мүмкіндік бір алиас ішінде немесе Network group типті біріктірілген алиастарда қолданылуы мүмкін.
Толығырақ ақпаратты мына жерден табуға болады:
FreeBSD Handbook 30.3.2.4.
Кірістіру (Nesting)
Host және Network типті алиастар үшін кірістіру мүмкіндігі бар. Бұл функция әкімшілікті жеңілдетеді, себебі жеке элементтерді бөлек атаулармен сақтап, оларды топтап басқаруға болады.
Мысалы, бізде 4 сервер бар, олардың екеуі маңызды:
server_a {10.0.1.1}
server_b {10.0.1.2}
server_c {10.0.1.100}
server_d {10.0.1.200}
critical_servers {server_a , server_b}
other_servers {server_c , server_d}
servers {critical_servers , other_servers}
servers
алиасы соңында барлық 4 IP мекенжайды қамтиды.
Сондай-ақ бас тартуды қамтитын бірнеше алиасты біріктіруге болады.
Мысалы, FireHOL атты сыртқы IP блоктау тізімі бар және екі алып тастау алиасы бар болсын:
FireHOL {https://raw.githubusercontent.com/firehol/blocklist-ipsets/master/firehol_level1.netset}
subnets_exclusions {!127.0.0.0/8, !0.0.0.0/8}
hosts_exclusions {!8.8.8.8}
FireHOL_with_exclusions {FireHOL, subnets_exclusions, hosts_exclusions}
FireHOL_with_exclusions
алиасы FireHOL
тізіміндегі барлық IP-ді қамтиды, бірақ көрсетілген ішкі желілер мен хосттарды ескермейді (exclude).
Кеңес: IP мекенжайдың белгілі бір алиасқа кіретінін тексеру үшін
Firewall ‣ Diagnostics ‣ pfTable мәзірін пайдаланыңыз.
Spamhaus
Spamhaus DROP және DROPv6 тізімдері — бұл кеңес беру сипатындағы "барлық трафикті болдырмау" тізімдері.
Бұл тізімдер көбінесе зиянды бағдарламаларды тарату, ботнетті басқару және басқа да киберқылмыстық әрекеттермен байланысты IP мекенжай блоктарын қамтиды.
Бұл тізімдер SBL дерекқорынан алынған, және firewall немесе маршрутизаторлар үшін арнайы жасалған.
Ресурстар:
Кеңес: Бұл тізімдерді firewall ережелерімен біріктіріп қолдану үшін
"Configure Spamhaus DROP" нұсқаулығын қараңыз.