Firewall nftables параметрлері (firewall.toml)

Әдепкі бойынша Firewall параметрлері осында:

/etc/kor-elf-shield/firewall.toml

Бұл параметрлердің жолын негізгі параметрлерде өзгертуге болады және мұнда танысуға болады (Firewall параметрі).

Толыққанды көшірмесі параметрлер файлы осында.

Бұл файлда бірнеше бөлімдер бар:


Порт параметрлері

Бұл параметрлер файлдың басында "IPv4 параметрлері", "IPv6 параметрлері", "Жалпы параметрлер", "әдепкі әрекет саясаты", "метадеректерді атау"бөлімдеріне дейін болуы керек.

Параметр [[ports]]
Мағынасы Порт параметрлері тобын көрсетіңіз
Әдепкі бойынша  
Сипаттама Бұл порт параметрлері тобы. [[ports]] топтардың шексіз санын көрсетуге болады.

[[ports]]
numbers - порт нөмірлері (міндетті өріс)
directions - кіріс (in), шығыс трафик (out) (міндетті өріс)
protocols - хаттама: tcp, udp (міндетті өріс)
action - әрекет: accept, drop немесе reject (міндетті өріс)
limit_rate - біз қажет болған жағдайда шектеулерді көрсетеміз (міндетті өріс емес)

numbers - бір немесе бірнеше портты көрсетуге болады, бірақ ережелер әр порт үшін бөлек жасалады.
directions - егер біз in және out көрсетсек, онда әр ереже өз тізбегінде бөлек жасалады.
protocols - егер tcp және udp көрсетілсе, онда әр ереже әр хаттама үшін бөлек жасалады.

action:
accept - рұқсат ету
drop - үнсіз блоктау
reject - кері байланысты құлыптау

limit_rate - оны nftables (limit rate) құжаттамасына сәйкес орнатыңыз.
Мысалдар
[[ports]]
numbers = [22]
directions = ["in", "out"]
protocols = ["tcp"]
action = "accept"

[[ports]]
numbers = [80,443]
directions = ["in", "out"]
protocols = ["tcp"]
action = "accept"

[[ports]]
numbers = [53]
directions = ["in", "out"]
protocols = ["tcp", "udp"]
action = "accept"
Тағы бір мысал:
[[ports]]
numbers = [22]
directions = ["in", "out"]
protocols = ["tcp"]
action = "accept"
Тағы бір мысал:
[[ports]]
numbers = [22]
directions = ["in"]
protocols = ["tcp"]
action = "drop"

[[ports]]
numbers = [22]
directions = ["out"]
protocols = ["tcp"]
action = "accept"

[[ports]]
numbers = [80,443]
directions = ["in", "out"]
protocols = ["tcp"]
action = "accept"
limit_rate = "10/second"
***
Параметр [[ips]]
Мағынасы IP мекенжай параметрлері тобын көрсетіңіз
Әдепкі бойынша  
Сипаттама

Біз рұқсат етілуі немесе тыйым салынуы керек IP мекенжайларын көрсетеміз. [[ips]] топтардың шексіз санын көрсетуге болады.

[[ips]]
ips - IP мекенжайларының тізімі (міндетті өріс) 
directions - кіріс (in), шығыс трафик (out) (міндетті өріс)
action -
әрекет: accept, drop немесе reject (міндетті өріс)
ports - порт нөмірлері (міндетті өріс емес)
protocols - хаттама: tcp, udp (міндетті өріс емес)
limit_rate - біз қажет болған жағдайда шектеулерді көрсетеміз (міндетті өріс емес)

ips - бір немесе бірнеше IP мекенжайларын көрсетуге болады, бірақ ережелер әр мекенжай үшін бөлек жасалады.
ports - бір немесе бірнеше портты көрсетуге болады, бірақ ережелер әр порт үшін бөлек жасалады.
directions - егер біз in және out көрсетсек, онда әр ереже өз тізбегінде бөлек жасалады.
protocols - егер tcp және udp көрсетілсе, онда әр ереже әр хаттама үшін бөлек жасалады.

Назар аударыңыз:
Егер protocols көрсетілмесе, бірақ порттар тізімде болса, онда ережелер TCP протоколымен бірге қосылады. protocols порттармен бірге жұмыс істейді. Егер protocols тізімде болса және порттар болмаса, онда бұл өрістерді есепке алмай ереже қосылады.

action:
accept - рұқсат ету
drop - үнсіз блоктау
reject - кері байланысты құлыптау

limit_rate - оны nftables (limit rate) құжаттамасына сәйкес орнатыңыз.

Мысалдар
[[ips]]
ips = ["192.168.1.1", "fe80::260:8ff:fe52:f9d8"]
action = "accept"
directions = ["in", "out"]
protocols = ["tcp", "udp"]
ports = ["80"]
limit_rate = "10/second"

[[ips]]
ips = ["192.168.1.2"]
action = "drop"
directions = ["in"]
Тағы бір мысал:
[[ips]]
ips = ["192.168.1.2"]
action = "drop"
directions = ["in"]

IPv4 Параметрлері

Осы бөлімнің параметрлерін көрсетіңіз, алдымен [ip4] көрсетіңіз, содан кейін осы бөлімнің қалған параметрлерін көрсетіңіз. Мысал:

[ip4]
icmp_in = true
icmp_in_rate = "1/second"
icmp_out = true
Параметр icmp_in
Мағынасы true немесе false
Әдепкі бойынша true
Сипаттама Кіріс PING рұқсат етіңіз. PING өшіру сыртқы бақылауды бұзуы мүмкін.
true-қамтиды
false-өшіреді
Мысалдар
icmp_in = true
icmp_in = false
***
Параметр icmp_in_rate
Мағынасы Секундына бір уақытта пакеттер санына шектеулер қойыңыз
Әдепкі бойынша 1/second
Сипаттама Секундына бір уақытта кіретін пакеттер санына шектеулер қойыңыз. Егер көрсетілген кезеңдегі пакеттер санынан асып кетсе, қалған пакеттер жойылады. Егер сіз қажетсіз шығындарды байқасаңыз, мәнді арттырыңыз немесе өшіріңіз.

Жылдамдық шегін өшіру үшін "0" мәнін орнатыңыз, әйтпесе оны nftables (limit rate) құжаттамасына сәйкес орнатыңыз. Мысалы," 1/екінші " берілісті секундына бір пакетпен шектейді.
Мысалдар
icmp_in_rate = "1/second"
icmp_in_rate = "0"
icmp_in_rate = "3/second"
***
Параметр icmp_out
Мағынасы true немесе false
Әдепкі бойынша true
Сипаттама Шығыс пингке рұқсат етіңіз. Егер ерекше себептер болмаса, оны өшірмеу жақсы, әйтпесе ОЖ жұмысын бұзуы мүмкін.
true-қамтиды
false-өшіреді
Мысалдар
icmp_out = true
icmp_out = false
***
Параметр icmp_out_rate
Мағынасы Секундына бір мезгілде пакеттер санына шектеулер қойыңыз.
Әдепкі бойынша 0
Сипаттама Секундына бір уақытта шығатын пакеттер санына шектеулер қойыңыз. Егер көрсетілген кезеңдегі пакеттер санынан асып кетсе, қалған пакеттер жойылады. Егер ерекше себептер болмаса, онда шектеулерді қоспаған дұрыс, әйтпесе ОЖ жұмысын бұзуы мүмкін.

Жылдамдық шегін өшіру үшін "0" мәнін орнатыңыз, әйтпесе оны nftables (limit rate) құжаттамасына сәйкес орнатыңыз. Мысалы," 1/екінші " берілісті секундына бір пакетпен шектейді.
Мысалдар
icmp_out_rate = "1/second"
icmp_out_rate = "0"
icmp_out_rate = "3/second"
***
Параметр icmp_timestamp_drop
Мағынасы true немесе false
Әдепкі бойынша false
Сипаттама ICMP timestamp сұрауларын блоктаңыз. Шындығында, нақты қауіп жоқ, бірақ кейде it аудиторлары ICMP timestamp сұрауларын бұғаттауды талап етеді.
true-қамтиды
false-өшіреді
Мысалдар
icmp_timestamp_drop = true
icmp_timestamp_drop = false

IP6 параметрлері

Осы бөлімнің параметрлерін алдымен [ip6] көрсету керек, содан кейін осы бөлімнің қалған параметрлерін көрсету керек. Мысал:

[ip6]
enable = true
icmp_strict = false
Параметр enable
Мағынасы true немесе false
Әдепкі бойынша false
Сипаттама IPv6 қолдауын қамтиды. Егер IPv6 өшірулі болса, онда IPv6-мен байланысты барлық параметрлер еленбейді.
true-қамтиды
false-өшіреді
Мысалдар
enable = true
enable = false
***
Параметр icmp_strict
Мағынасы true немесе false
Әдепкі бойынша false
Сипаттама IPv6 icmpv6 пакеттерін белсенді қолданады, сондықтан icmpv6 қатаң режимі әдепкі бойынша өшіріледі. Алайда, бұл icmpv6-ға шабуыл жасау қаупін арттыруы мүмкін. Қатаң режимді қосуға болады, бірақ бұл қосылымдардың кейбір түрлеріне қатысты мәселелер тудыруы мүмкін.
true-қамтиды
false-өшіреді
Мысалдар
icmp_strict = true
icmp_strict = false

Жалпы параметрлер

Осы бөлімнің параметрлерін көрсету үшін алдымен [Опцияларды] көрсету керек, содан кейін осы бөлімнің қалған параметрлерін көрсету керек. Мысал:

[options]
saves_rules = false
saves_rules_path = "/etc/nftables.conf"
dns_strict = false
Параметр saves_rules
Мағынасы true немесе false
Әдепкі бойынша false
Сипаттама Демон ережелерді nftables жүйелік файлына сақтай ма? Nftables жолы сіздің ОЖ-ге сәйкес келетінін тексеруді ұмытпаңыз. Егер сіз ережелерді nftables жүйелік файлына сақтамасаңыз, онда nftables бағдарламасын қайта іске қосқаннан кейін (мысалы, жаңартудан кейін) барлық ережелер жойылады. Дегенмен, біз әдепкі бойынша nftables жүйелік файлына ережелерді автоматты түрде сақтауды өшіруді шештік, себебі алдымен saves_rules_path параметрі дұрыс файлды көрсететініне көз жеткізуіміз керек.
true-қамтиды
false-өшіреді
Мысалдар
saves_rules = true
saves_rules = false
***
Параметр saves_rules_path
Мағынасы Файл жолын көрсетіңіз
Әдепкі бойынша /etc/nftables.conf
Сипаттама Nftables ережелері сақталатын жол. ОЖ-ге сәйкес келетін жолды көрсетіңіз. Жол абсолютті болуы керек. Салыстырмалы жол қатені тудырады! Соңында міндетті түрде көрсетілуі керек .conf.
Мысалдар
saves_rules_path = "/etc/nftables.conf"
***
Параметр dns_strict
Мағынасы true немесе false
Әдепкі бойынша false
Сипаттама DNS трафигіне қатаң nftables ережелерін қамтиды. Егер сіз осы режимді қоссаңыз, онда DNS-ке қатысты кейбір ережелер nftables-ке қосылмайды. Бұл қауіпсіздікті жақсартады және жергілікті DNS серверін теріс пайдаланудың алдын алады. Бірақ DNS-ке байланысты проблемалар тудыруы мүмкін.
true-қамтиды
false-өшіреді
Мысалдар
dns_strict = true
dns_strict = false
***
Параметр dns_strict_ns
Мағынасы true немесе false
Әдепкі бойынша false
Сипаттама DNS трафигіне қатаң nftables ережелерін қамтиды. Егер сіз осы режимді қоссаңыз, /etc/resolv тізімінде көрсетілген 53 (кіріс және шығыс) портының IP мекенжайларына рұқсат беретін ережелер қосылмайды.conf. Бұл DNS мәселесін тудыруы мүмкін.
true-қамтиды
false-өшіреді
Мысалдар
dns_strict_ns = true
dns_strict_ns = false
***
Параметр packet_filter
Мағынасы true немесе false
Әдепкі бойынша true
Сипаттама Nftables-ке тәртіпті бұзатын пакеттерді сүзуді қосады. Өшіру ұсынылмайды!
true-қамтиды
false-өшіреді
Мысалдар
packet_filter = true
packet_filter = false

Әдепкі әрекет саясаты

Осы бөлімнің параметрлерін көрсетіңіз, алдымен [саясат] көрсетіңіз, содан кейін осы бөлімнің қалған параметрлерін көрсетіңіз. Мысал:

[policy]
default_allow_input = false
default_allow_output = false
default_allow_forward = false
Параметр default_allow_input
Мағынасы true немесе false
Әдепкі бойынша false
Сипаттама Кіріс трафигіне әдепкі бойынша рұқсат етіңіз.
true-қамтиды
false-өшіреді
Мысалдар
default_allow_input = true
default_allow_input = false
***
Параметр default_allow_output
Мағынасы true немесе false
Әдепкі бойынша false
Сипаттама Әдепкі шығыс трафикке рұқсат етіңіз.
true-қамтиды
false-өшіреді
Мысалдар
default_allow_output = true
default_allow_output = false
***
Параметр default_allow_forward
Мағынасы true немесе false
Әдепкі бойынша false
Сипаттама Forward әдепкі трафикке рұқсат етіңіз.
true-қамтиды
false-өшіреді
Мысалдар
default_allow_forward = true
default_allow_forward = false
***
Параметр input_drop
Мағынасы drop немесе reject
Әдепкі бойынша drop
Сипаттама Кіріс трафикті қалай блоктауға болады.
drop-үнсіз блоктау
reject-кері байланысты құлыптау
Мысалдар
input_drop = "drop"
input_drop = "reject"
***
Параметр output_drop
Мағынасы drop немесе reject
Әдепкі бойынша reject
Сипаттама Шығыс трафикті қалай блоктауға болады.
drop-үнсіз блоктау
reject-кері байланысты құлыптау
Мысалдар
output_drop = "drop"
output_drop = "reject"
***
Параметр forward_drop
Мағынасы drop немесе reject
Әдепкі бойынша drop
Сипаттама Forward трафигін қалай блоктауға болады.
drop-үнсіз блоктау
reject-кері байланысты құлыптау
Мысалдар
forward_drop = "drop"
forward_drop = "reject"

Метадеректерді атау

Осы бөлімнің параметрлерін көрсету үшін алдымен [metadataNaming] көрсетіңіз, содан кейін осы бөлімнің қалған параметрлерін көрсетіңіз. Мысал:

[metadataNaming]
table_name = "shield"
chain_input_name = "input"
chain_output_name = "output"
chain_forward_name = "forward"
Параметр table_name
Мағынасы 1 таңбадан 32 таңбаға дейін
Рұқсат етілген таңбалар: a-zA-Z0-9_ -
Әдепкі бойынша shield
Сипаттама Nftables ішіндегі кесте атауы.
Мысалдар
table_name = "shield"
***
Параметр chain_input_name
Мағынасы 1 таңбадан 32 таңбаға дейін
Рұқсат етілген таңбалар: a-zA-Z0-9_ -
Әдепкі бойынша input
Сипаттама Кіріс трафиктің тізбек атауы.
Мысалдар
chain_input_name = "input"
***
Параметр chain_output_name
Мағынасы 1 таңбадан 32 таңбаға дейін
Рұқсат етілген таңбалар: a-zA-Z0-9_ -
Әдепкі бойынша output
Сипаттама Шығыс трафиктің тізбек атауы.
Мысалдар
chain_output_name = "output"
***
Параметр chain_forward_name
Мағынасы 1 таңбадан 32 таңбаға дейін
Рұқсат етілген таңбалар: a-zA-Z0-9_ -
Әдепкі бойынша forward
Сипаттама Forward трафигі үшін тізбек атауы.
Мысалдар
chain_forward_name = "forward"