Ang mga sunud-sunod na tagubilin para sa pag-deploy ng Hailbytes VPN na may Firezone GUI ay ibinibigay dito.
Pangasiwaan: Ang pag-set up ng instance ng server ay direktang nauugnay sa bahaging ito.
Mga Gabay sa Gumagamit: Mga kapaki-pakinabang na dokumento na maaaring magturo sa iyo kung paano gamitin ang Firezone at lutasin ang mga karaniwang problema. Pagkatapos na matagumpay na mai-deploy ang server, sumangguni sa seksyong ito.
Split Tunneling: Gamitin ang VPN upang magpadala lamang ng trapiko sa mga partikular na hanay ng IP.
Whitelisting: Magtakda ng static na IP address ng VPN server upang magamit ang whitelisting.
Mga Baliktad na Tunnel: Gumawa ng mga tunnel sa pagitan ng ilang mga kapantay gamit ang mga reverse tunnel.
Ikinalulugod naming tulungan ka kung kailangan mo ng tulong sa pag-install, pag-customize, o paggamit ng Hailbytes VPN.
Bago makagawa o makapag-download ang mga user ng mga file ng configuration ng device, maaaring i-configure ang Firezone upang mangailangan ng pagpapatunay. Maaaring kailanganin din ng mga user na pana-panahong muling mag-authenticate para mapanatiling aktibo ang kanilang koneksyon sa VPN.
Bagama't ang default na paraan ng pag-login ng Firezone ay lokal na email at password, maaari rin itong isama sa anumang standardized na OpenID Connect (OIDC) identity provider. Nagagawa na ngayon ng mga user na mag-log in sa Firezone gamit ang kanilang mga kredensyal sa Okta, Google, Azure AD, o private identity provider.
Isama ang Isang Pangkalahatang OIDC Provider
Ang mga parameter ng pagsasaayos na kailangan ng Firezone upang payagan ang SSO gamit ang isang OIDC provider ay ipinapakita sa halimbawa sa ibaba. Sa /etc/firezone/firezone.rb, maaari mong mahanap ang configuration file. Patakbuhin ang firezone-ctl reconfigure at firezone-ctl restart upang i-update ang application at magkabisa ang mga pagbabago.
# Ito ay isang halimbawa gamit ang Google at Okta bilang isang tagapagbigay ng pagkakakilanlan ng SSO.
# Maaaring magdagdag ng maraming OIDC config sa parehong instance ng Firezone.
Maaaring i-disable ng # Firezone ang VPN ng isang user kung may nakitang error na sinusubukan
# upang i-refresh ang kanilang access_token. Ito ay na-verify na gagana para sa Google, Okta, at
# Azure SSO at ginagamit para awtomatikong idiskonekta ang VPN ng user kung aalisin sila
# mula sa OIDC provider. Iwanan itong naka-disable kung ang iyong OIDC provider
# ay may mga isyu sa pagre-refresh ng mga token ng pag-access dahil maaari itong hindi inaasahang makagambala a
# session ng VPN ng user.
default['firezone']['authentication']['disable_vpn_on_oidc_error'] = false
default['firezone']['authentication']['oidc'] = {
google: {
discovery_document_uri: “https://accounts.google.com/.well-known/openid-configuration”,
ID ng kliyente: " ”,
client_secret: “ ”,
redirect_uri: “https://instance-id.yourfirezone.com/auth/oidc/google/callback/”,
response_type: “code”,
saklaw: "openid email profile",
label: "Google"
},
okta: {
discovery_document_uri: “https:// /.well-known/openid-configuration”,
ID ng kliyente: " ”,
client_secret: “ ”,
redirect_uri: “https://instance-id.yourfirezone.com/auth/oidc/okta/callback/”,
response_type: “code”,
saklaw: "openid email profile offline_access",
label: “Okta”
}
}
Ang mga sumusunod na setting ng config ay kinakailangan para sa pagsasama:
Para sa bawat provider ng OIDC, nilikha ang katumbas na magandang URL para sa pag-redirect sa URL ng pag-sign in ng naka-configure na provider. Para sa halimbawang OIDC config sa itaas, ang mga URL ay:
Mga provider na mayroon kaming dokumentasyon para sa:
Kung ang iyong identity provider ay may generic na OIDC connector at hindi nakalista sa itaas, mangyaring pumunta sa kanilang dokumentasyon para sa impormasyon kung paano kunin ang mga kinakailangang setting ng configuration.
Ang setting sa ilalim ng mga setting/seguridad ay maaaring baguhin upang mangailangan ng pana-panahong muling pagpapatotoo. Magagamit ito para ipatupad ang pangangailangan na regular na pumasok ang mga user sa Firezone para maipagpatuloy ang kanilang VPN session.
Maaaring i-configure ang haba ng session na nasa pagitan ng isang oras at siyamnapung araw. Sa pamamagitan ng pagtatakda nito sa Huwag kailanman, maaari mong paganahin ang mga sesyon ng VPN anumang oras. Ito ang pamantayan.
Dapat wakasan ng isang user ang kanilang session sa VPN at mag-log in sa portal ng Firezone upang muling mapatotohanan ang isang nag-expire na session ng VPN (tinukoy ang URL sa panahon ng deployment).
Maaari mong muling patotohanan ang iyong session sa pamamagitan ng pagsunod sa tumpak na mga tagubilin ng kliyente na makikita dito.
Katayuan ng VPN Connection
Ipinapakita ng column ng talahanayan ng VPN Connection ng page ng Mga User ang status ng koneksyon ng user. Ito ang mga katayuan ng koneksyon:
ENABLED – Ang koneksyon ay pinagana.
DISABLED – Ang koneksyon ay hindi pinagana ng isang administrator o OIDC refresh failure.
EXPIRED – Ang koneksyon ay hindi pinagana dahil sa pag-expire ng pagpapatunay o ang isang user ay hindi naka-sign in sa unang pagkakataon.
Sa pamamagitan ng pangkalahatang OIDC connector, pinapagana ng Firezone ang Single Sign-On (SSO) gamit ang Google Workspace at Cloud Identity. Ipapakita sa iyo ng gabay na ito kung paano makuha ang mga parameter ng pagsasaayos na nakalista sa ibaba, na kinakailangan para sa pagsasama:
1. OAuth Config Screen
Kung ito ang unang pagkakataon na gagawa ka ng bagong OAuth client ID, hihilingin sa iyong mag-configure ng screen ng pahintulot.
*Piliin ang Panloob para sa uri ng user. Tinitiyak nito na ang mga account lang na pagmamay-ari ng mga user sa iyong Google Workspace Organization ang makakagawa ng mga config ng device. HUWAG piliin ang Panlabas maliban kung gusto mong paganahin ang sinumang may wastong Google Account na gumawa ng mga config ng device.
Sa screen ng impormasyon ng App:
2. Lumikha ng mga OAuth Client ID
Ang seksyong ito ay batay sa sariling dokumentasyon ng Google sa pag-set up ng OAuth 2.0.
Bisitahin ang Google Cloud Console Pahina ng mga kredensyal page, i-click ang + Lumikha ng Mga Kredensyal at piliin ang OAuth client ID.
Sa screen ng paggawa ng OAuth client ID:
Pagkatapos gawin ang OAuth client ID, bibigyan ka ng Client ID at Client Secret. Gagamitin ang mga ito kasama ng redirect URI sa susunod na hakbang.
Edit /etc/firezone/firezone.rb upang isama ang mga opsyon sa ibaba:
# Paggamit ng Google bilang tagapagbigay ng pagkakakilanlan ng SSO
default['firezone']['authentication']['oidc'] = {
google: {
discovery_document_uri: “https://accounts.google.com/.well-known/openid-configuration”,
ID ng kliyente: " ”,
client_secret: “ ”,
redirect_uri: “https://instance-id.yourfirezone.com/auth/oidc/google/callback/”,
response_type: “code”,
saklaw: "openid email profile",
label: "Google"
}
}
Patakbuhin ang firezone-ctl reconfigure at firezone-ctl restart upang i-update ang application. Dapat ka na ngayong makakita ng button na Mag-sign in gamit ang Google sa root Firezone URL.
Ginagamit ng Firezone ang generic na OIDC connector para mapadali ang Single Sign-On (SSO) sa Okta. Ipapakita sa iyo ng tutorial na ito kung paano makuha ang mga parameter ng pagsasaayos na nakalista sa ibaba, na kinakailangan para sa pagsasama:
Ang seksyong ito ng gabay ay batay sa Ang dokumentasyon ni Okta.
Sa Admin Console, pumunta sa Applications > Applications at i-click ang Create App Integration. Itakda ang paraan ng pag-sign-in sa OICD – OpenID Connect at Uri ng Application sa Web application.
I-configure ang mga setting na ito:
Kapag na-save na ang mga setting, bibigyan ka ng Client ID, Client Secret, at Okta Domain. Gagamitin ang 3 value na ito sa Hakbang 2 para i-configure ang Firezone.
Edit /etc/firezone/firezone.rb upang isama ang mga opsyon sa ibaba. Iyong discovery_document_url ay /.well-known/openid-configuration nakadugtong sa dulo ng iyong okta_domain.
# Paggamit ng Okta bilang tagapagbigay ng pagkakakilanlan ng SSO
default['firezone']['authentication']['oidc'] = {
okta: {
discovery_document_uri: “https:// /.well-known/openid-configuration”,
ID ng kliyente: " ”,
client_secret: “ ”,
redirect_uri: “https://instance-id.yourfirezone.com/auth/oidc/okta/callback/”,
response_type: “code”,
saklaw: "openid email profile offline_access",
label: “Okta”
}
}
Patakbuhin ang firezone-ctl reconfigure at firezone-ctl restart upang i-update ang application. Dapat ka na ngayong makakita ng button na Mag-sign in gamit ang Okta sa root Firezone URL.
Ang mga user na makaka-access sa Firezone app ay maaaring paghigpitan ng Okta. Pumunta sa page ng Mga Assignment ng Firezone App Integration ng iyong Okta Admin Console para magawa ito.
Sa pamamagitan ng generic na OIDC connector, pinapagana ng Firezone ang Single Sign-On (SSO) na may Azure Active Directory. Ipapakita sa iyo ng manual na ito kung paano makuha ang mga parameter ng configuration na nakalista sa ibaba, na kinakailangan para sa pagsasama:
Ang gabay na ito ay nakuha mula sa Azure Active Directory Docs.
Pumunta sa pahina ng Azure Active Directory ng Azure portal. Piliin ang opsyong Pamahalaan ang menu, piliin ang Bagong Pagpaparehistro, pagkatapos ay magparehistro sa pamamagitan ng pagbibigay ng impormasyon sa ibaba:
Pagkatapos magparehistro, buksan ang view ng mga detalye ng application at kopyahin ang Application (client) ID. Ito ang magiging value ng client_id. Susunod, buksan ang menu ng mga endpoint upang makuha ang OpenID Connect metadata na dokumento. Ito ang magiging halaga ng discovery_document_uri.
Gumawa ng bagong sikreto ng kliyente sa pamamagitan ng pag-click sa opsyong Mga Certificate at lihim sa ilalim ng menu na Pamahalaan. Kopyahin ang lihim ng kliyente; ang lihim na halaga ng kliyente ay ito.
Panghuli, piliin ang link ng mga pahintulot ng API sa ilalim ng menu na Pamahalaan, i-click Magdagdag ng pahintulot, at piliin Microsoft Graph, magdagdag email, openid, offline_access at profile sa mga kinakailangang pahintulot.
Edit /etc/firezone/firezone.rb upang isama ang mga opsyon sa ibaba:
# Paggamit ng Azure Active Directory bilang tagapagbigay ng pagkakakilanlan ng SSO
default['firezone']['authentication']['oidc'] = {
azure: {
discovery_document_uri: “https://login.microsoftonline.com/ /v2.0/.well-known/openid-configuration”,
ID ng kliyente: " ”,
client_secret: “ ”,
redirect_uri: "https://instance-id.yourfirezone.com/auth/oidc/azure/callback/",
response_type: “code”,
saklaw: "openid email profile offline_access",
label: "Azure"
}
}
Patakbuhin ang firezone-ctl reconfigure at firezone-ctl restart upang i-update ang application. Dapat ka na ngayong makakita ng button na Mag-sign in gamit ang Azure sa root Firezone URL.
Binibigyang-daan ng Azure AD ang mga administrator na limitahan ang access sa app sa isang partikular na pangkat ng mga user sa loob ng iyong kumpanya. Ang higit pang impormasyon sa kung paano gawin ito ay matatagpuan sa dokumentasyon ng Microsoft.
Ang Chef Omnibus ay ginagamit ng Firezone upang pamahalaan ang mga gawain kabilang ang release packaging, pangangasiwa sa proseso, pamamahala ng log, at higit pa.
Binubuo ng Ruby code ang pangunahing configuration file, na matatagpuan sa /etc/firezone/firezone.rb. Ang pag-restart ng sudo firezone-ctl reconfigure pagkatapos gumawa ng mga pagbabago sa file na ito ay nagiging sanhi ng Chef na makilala ang mga pagbabago at ilapat ang mga ito sa kasalukuyang operating system.
Tingnan ang sanggunian ng configuration file para sa kumpletong listahan ng mga variable ng configuration at ang kanilang mga paglalarawan.
Maaaring pamahalaan ang iyong instance ng Firezone sa pamamagitan ng firezone-ctl command, tulad ng ipinapakita sa ibaba. Karamihan sa mga subcommand ay nangangailangan ng prefixing sa sudo.
ugat@demo:~# firezone-ctl
omnibus-ctl: command (subcommand)
Pangkalahatang Utos:
linisin
Tanggalin *lahat* ang data ng firezone, at magsimula sa simula.
gumawa-o-reset-admin
Nire-reset ang password para sa admin gamit ang email na tinukoy bilang default['firezone']['admin_email'] o gagawa ng bagong admin kung wala ang email na iyon.
Tulungan
I-print ang mensahe ng tulong na ito.
reconfigure
Muling i-configure ang application.
reset-network
Nire-reset ang mga nftable, interface ng WireGuard, at routing table pabalik sa mga default ng Firezone.
show-config
Ipakita ang configuration na mabubuo sa pamamagitan ng reconfigure.
teardown-network
Inaalis ang WireGuard interface at firezone nftables table.
puwersa-cert-renewal
Pilitin ang pag-renew ng certificate ngayon kahit na hindi pa ito nag-expire.
stop-cert-renewal
Inaalis ang cronjob na nagre-renew ng mga certificate.
i-uninstall
Patayin ang lahat ng proseso at i-uninstall ang supervisor ng proseso (papanatilihin ang data).
bersyon
Ipakita ang kasalukuyang bersyon ng Firezone
Mga Utos sa Pamamahala ng Serbisyo:
graceful-kill
Subukan ang isang magandang paghinto, pagkatapos ay SIGKILL ang buong pangkat ng proseso.
hup
Ipadala ang mga serbisyo ng isang HUP.
int
Ipadala ang mga serbisyo ng isang INT.
pumatay
Ipadala ang mga serbisyo ng isang KILL.
minsan
Simulan ang mga serbisyo kung down ang mga ito. Huwag i-restart ang mga ito kung hihinto sila.
i-restart ang
Itigil ang mga serbisyo kung tumatakbo ang mga ito, pagkatapos ay simulan muli ang mga ito.
listahan ng serbisyo
Ilista ang lahat ng mga serbisyo (lumalabas ang mga naka-enable na serbisyo na may *.)
simula
Simulan ang mga serbisyo kung hindi gumagana ang mga ito, at i-restart ang mga ito kung huminto ang mga ito.
katayuan
Ipakita ang katayuan ng lahat ng serbisyo.
itigil
Itigil ang mga serbisyo, at huwag i-restart ang mga ito.
buntot
Panoorin ang mga log ng serbisyo ng lahat ng pinaganang serbisyo.
termino
Ipadala ang mga serbisyo ng TERM.
usr1
Ipadala ang mga serbisyo ng USR1.
usr2
Ipadala ang mga serbisyo ng USR2.
Dapat wakasan ang lahat ng session ng VPN bago i-upgrade ang Firezone, na nangangailangan din ng pag-shut down sa Web UI. Kung sakaling magkaroon ng mali sa panahon ng pag-upgrade, ipinapayo namin na maglaan ng isang oras para sa pagpapanatili.
Upang mapahusay ang Firezone, gawin ang mga sumusunod na aksyon:
Kung may anumang mga problema na lumitaw, mangyaring ipaalam sa amin sa pamamagitan ng pagsusumite ng tiket ng suporta.
Mayroong ilang mga paglabag sa mga pagbabago at mga pagbabago sa configuration sa 0.5.0 na dapat matugunan. Alamin ang higit pa sa ibaba.
Hindi na sinusuportahan ng Nginx ang force SSL at non-SSL port na mga parameter mula sa bersyon 0.5.0. Dahil kailangan ng Firezone ang SSL upang gumana, ipinapayo namin na alisin ang bundle na serbisyo ng Nginx sa pamamagitan ng pagtatakda ng default['firezone']['nginx']['enabled'] = false at idirekta ang iyong reverse proxy sa Phoenix app sa port 13000 sa halip (bilang default ).
Ipinakilala ng 0.5.0 ang suporta sa protocol ng ACME para sa awtomatikong pag-renew ng mga SSL certificate na may kasamang serbisyo ng Nginx. Upang paganahin,
Ang posibilidad na magdagdag ng mga panuntunan na may mga duplicate na destinasyon ay nawala sa Firezone 0.5.0. Awtomatikong makikilala ng aming script sa paglilipat ang mga sitwasyong ito sa panahon ng pag-upgrade sa 0.5.0 at pananatilihin lamang ang mga panuntunan kung saan kasama sa patutunguhan ang ibang panuntunan. Wala kang kailangang gawin kung ito ay okay.
Kung hindi, bago mag-upgrade, ipinapayo namin na baguhin ang iyong set ng panuntunan upang maalis ang mga sitwasyong ito.
Ang Firezone 0.5.0 ay nag-aalis ng suporta para sa lumang istilong Okta at Google SSO na configuration sa pabor sa bago, mas flexible na configuration na nakabatay sa OIDC.
Kung mayroon kang anumang configuration sa ilalim ng default na['firezone']['authentication']['okta'] o default['firezone']['authentication']['google'] key, kailangan mong i-migrate ang mga ito sa aming OIDC -based na configuration gamit ang gabay sa ibaba.
Kasalukuyang configuration ng Google OAuth
Alisin ang mga linyang ito na naglalaman ng mga lumang Google OAuth config mula sa iyong configuration file na matatagpuan sa /etc/firezone/firezone.rb
default['firezone']['authentication']['google']['enabled']
default['firezone']['authentication']['google']['client_id']
default['firezone']['authentication']['google']['client_secret']
default['firezone']['authentication']['google']['redirect_uri']
Pagkatapos, i-configure ang Google bilang isang provider ng OIDC sa pamamagitan ng pagsunod sa mga pamamaraan dito.
(Magbigay ng mga tagubilin sa link)<<<<<<<<<<<<<<<<
I-configure ang Kasalukuyang Google OAuth
Alisin ang mga linyang ito na naglalaman ng mga lumang Okta OAuth config mula sa iyong configuration file na matatagpuan sa /etc/firezone/firezone.rb
default['firezone']['authentication']['okta']['enabled']
default['firezone']['authentication']['okta']['client_id']
default['firezone']['authentication']['okta']['client_secret']
Default['firezone']['authentication']['okta']['site']
Pagkatapos, i-configure ang Okta bilang isang OIDC provider sa pamamagitan ng pagsunod sa mga pamamaraan dito.
Depende sa iyong kasalukuyang setup at bersyon, sumunod sa mga direksyon sa ibaba:
Kung mayroon ka nang OIDC integration:
Para sa ilang OIDC provider, ang pag-upgrade sa >= 0.3.16 ay nangangailangan ng pagkuha ng refresh token para sa offline na saklaw ng access. Sa paggawa nito, tinitiyak na ang Firezone ay nag-a-update sa provider ng pagkakakilanlan at ang koneksyon ng VPN ay isinara pagkatapos matanggal ang isang user. Ang mga naunang pag-ulit ng Firezone ay kulang sa feature na ito. Sa ilang pagkakataon, ang mga user na na-delete mula sa iyong identity provider ay maaari pa ring konektado sa isang VPN.
Kinakailangang isama ang offline na pag-access sa parameter ng saklaw ng iyong configuration ng OIDC para sa mga provider ng OIDC na sumusuporta sa saklaw ng offline na pag-access. Dapat isagawa ang Firezone-ctl reconfigure upang mailapat ang mga pagbabago sa file ng configuration ng Firezone, na matatagpuan sa /etc/firezone/firezone.rb.
Para sa mga user na na-authenticate ng iyong OIDC provider, makikita mo ang heading ng OIDC Connections sa page ng mga detalye ng user ng web UI kung matagumpay na makuha ng Firezone ang refresh token.
Kung hindi ito gumana, kakailanganin mong tanggalin ang iyong umiiral nang OAuth app at ulitin ang mga hakbang sa pag-setup ng OIDC upang lumikha ng bagong pagsasama ng app .
Mayroon akong umiiral nang OAuth integration
Bago ang 0.3.11, gumamit ang Firezone ng mga paunang na-configure na provider ng OAuth2.
Sundin ang mga panuto dito upang lumipat sa OIDC.
Hindi ako nagsama ng isang tagapagbigay ng pagkakakilanlan
Hindi kailangan ng aksyon.
Maaari mong sundin ang mga tagubilin dito upang paganahin ang SSO sa pamamagitan ng isang OIDC provider.
Sa lugar nito, pinalitan ng default['firezone']['external url'] ang default na opsyon sa configuration['firezone']['fqdn'].
Itakda ito sa URL ng iyong online na portal ng Firezone na naa-access ng pangkalahatang publiko. Magde-default ito sa https:// kasama ang FQDN ng iyong server kung hindi natukoy.
Ang configuration file ay matatagpuan sa /etc/firezone/firezone.rb. Tingnan ang sanggunian ng configuration file para sa kumpletong listahan ng mga variable ng configuration at ang kanilang mga paglalarawan.
Hindi na pinapanatili ng Firezone ang mga pribadong key ng device sa server ng Firezone mula sa bersyon 0.3.0.
Hindi ka papayagan ng Firezone Web UI na i-download muli o makita ang mga configuration na ito, ngunit dapat na patuloy na gumana ang anumang mga kasalukuyang device.
Kung nag-a-upgrade ka mula sa Firezone 0.1.x, may ilang pagbabago sa configuration file na dapat manu-manong tugunan.
Upang gawin ang mga kinakailangang pagbabago sa iyong /etc/firezone/firezone.rb file, patakbuhin ang mga command sa ibaba bilang root.
cp /etc/firezone/firezone.rb /etc/firezone/firezone.rb.bak
sed -i “s/\['enable'\]/\['enabled'\]/” /etc/firezone/firezone.rb
echo “default['firezone']['connectivity_checks']['enabled'] = true" >> /etc/firezone/firezone.rb
echo “default['firezone']['connectivity_checks']['interval'] = 3_600” >> /etc/firezone/firezone.rb
firezone-ctl reconfigure
I-restart ang firezone-ctl
Ang pagsuri sa mga log ng Firezone ay isang matalinong unang hakbang para sa anumang mga isyu na maaaring mangyari.
Patakbuhin ang sudo firezone-ctl tail upang tingnan ang mga log ng Firezone.
Ang karamihan sa mga problema sa koneksyon sa Firezone ay dala ng mga hindi tugmang iptable o mga panuntunan ng nftable. Dapat mong tiyakin na ang anumang mga tuntunin na mayroon ka sa bisa ay hindi sumasalungat sa mga panuntunan ng Firezone.
Tiyaking pinahihintulutan ng FORWARD chain ang mga packet mula sa iyong mga kliyente ng WireGuard papunta sa mga lokasyong gusto mong daanan sa Firezone kung lumalala ang iyong koneksyon sa Internet sa tuwing ina-activate mo ang iyong WireGuard tunnel.
Maaari itong makamit kung gumagamit ka ng ufw sa pamamagitan ng pagtiyak na pinapayagan ang default na patakaran sa pagruruta:
ubuntu@fz:~$ sudo ufw default allow routed
Ginawang 'payagan' ang default na patakaran sa ruta
(siguraduhing i-update ang iyong mga panuntunan nang naaayon)
A ufw ang katayuan para sa isang tipikal na server ng Firezone ay maaaring magmukhang ganito:
ubuntu@fz:~$ sudo ufw status verbose
Katayuan: aktibo
Pag-log: naka-on (mababa)
Default: tanggihan (papasok), payagan (papalabas), payagan (iruta)
Mga bagong profile: laktawan
Mula sa Pagkilos
— —— —-
22/tcp PAYAW SA Kahit Saan
80/tcp PAYAW SA Kahit Saan
443/tcp PAYAW SA Kahit Saan
51820/udp PAYAW SA Kahit Saan
22/tcp (v6) PAYAW SA Kahit Saan (v6)
80/tcp (v6) PAYAW SA Kahit Saan (v6)
443/tcp (v6) PAYAW SA Kahit Saan (v6)
51820/udp (v6) PAYAW SA Kahit Saan (v6)
Pinapayuhan namin na limitahan ang pag-access sa web interface para sa sobrang sensitibo at kritikal sa misyon na mga deployment ng produksyon, gaya ng ipinaliwanag sa ibaba.
serbisyo | Default na Port | Pakinggan ang Address | paglalarawan |
Nginx | 80, 443 | lahat | Pampublikong HTTP(S) port para sa pangangasiwa ng Firezone at pagpapadali sa pagpapatotoo. |
Si Wireguard | 51820 | lahat | Pampublikong WireGuard port na ginagamit para sa mga sesyon ng VPN. (UDP) |
postgresql | 15432 | 127.0.0.1 | Lokal-lamang na port na ginagamit para sa naka-bundle na Postgresql server. |
Piniks | 13000 | 127.0.0.1 | Lokal-lamang na port na ginagamit ng upstream na elixir app server. |
Pinapayuhan ka naming pag-isipan ang tungkol sa paghihigpit sa pag-access sa nakalantad na web UI ng Firezone sa publiko (bilang mga default na port na 443/tcp at 80/tcp) at sa halip ay gamitin ang WireGuard tunnel upang pamahalaan ang Firezone para sa produksyon at mga deployment na nakaharap sa publiko kung saan isang administrator ang mamamahala. ng paggawa at pamamahagi ng mga configuration ng device sa mga end user.
Halimbawa, kung gumawa ang isang administrator ng configuration ng device at gumawa ng tunnel na may lokal na WireGuard address na 10.3.2.2, ang sumusunod na configuration ng ufw ay magbibigay-daan sa administrator na ma-access ang Firezone web UI sa wg-firezone interface ng server gamit ang default na 10.3.2.1 tunnel address:
ugat@demo:~# ufw status verbose
Katayuan: aktibo
Pag-log: naka-on (mababa)
Default: tanggihan (papasok), payagan (papalabas), payagan (iruta)
Mga bagong profile: laktawan
Mula sa Pagkilos
— —— —-
22/tcp PAYAW SA Kahit Saan
51820/udp PAYAW SA Kahit Saan
Kahit saan PAYAW SA 10.3.2.2
22/tcp (v6) PAYAW SA Kahit Saan (v6)
51820/udp (v6) PAYAW SA Kahit Saan (v6)
Aalis lang ito 22/tcp nakalantad para sa SSH access upang pamahalaan ang server (opsyonal), at 51820/udp nakalantad upang makapagtatag ng mga WireGuard tunnel.
Ang Firezone ay nag-bundle ng isang Postgresql server at tumutugma psql utility na maaaring magamit mula sa lokal na shell tulad nito:
/opt/firezone/embedded/bin/psql \
-U firezone \
-d firezone \
-h localhost \
-p 15432 \
-c “SQL_STATEMENT”
Makakatulong ito para sa mga layunin ng pag-debug.
Mga Karaniwang Gawain:
Listahan ng lahat ng mga gumagamit:
/opt/firezone/embedded/bin/psql \
-U firezone \
-d firezone \
-h localhost \
-p 15432 \
-c “PUMILI * MULA SA mga user;”
Listahan ng lahat ng device:
/opt/firezone/embedded/bin/psql \
-U firezone \
-d firezone \
-h localhost \
-p 15432 \
-c “PUMILI * MULA sa mga device;”
Baguhin ang tungkulin ng user:
Itakda ang tungkulin sa 'admin' o 'unprivileged':
/opt/firezone/embedded/bin/psql \
-U firezone \
-d firezone \
-h localhost \
-p 15432 \
-c “I-UPDATE ang mga user SET role = 'admin' WHERE email = 'user@example.com';”
Pag-back up ng database:
Higit pa rito, kasama ang pg dump program, na maaaring gamitin upang kumuha ng mga regular na backup ng database. Ipatupad ang sumusunod na code para mag-dump ng kopya ng database sa karaniwang format ng query sa SQL (palitan ang /path/to/backup.sql ng lokasyon kung saan dapat gawin ang SQL file):
/opt/firezone/embedded/bin/pg_dump \
-U firezone \
-d firezone \
-h localhost \
-p 15432 > /path/to/backup.sql
Pagkatapos na matagumpay na mai-deploy ang Firezone, dapat kang magdagdag ng mga user para mabigyan sila ng access sa iyong network. Ginagamit ang Web UI para gawin ito.
Sa pamamagitan ng pagpili sa button na “Magdagdag ng User” sa ilalim ng /users, maaari kang magdagdag ng user. Kakailanganin mong bigyan ang user ng email address at password. Upang awtomatikong payagan ang access sa mga user sa iyong organisasyon, maaari ding mag-interface at mag-sync ang Firezone sa isang identity provider. Higit pang mga detalye ay magagamit sa Patunayan. < Magdagdag ng link sa Authenticate
Pinapayuhan namin ang paghiling sa mga user na gumawa ng sarili nilang mga configuration ng device para ang pribadong key ay makikita lang nila. Maaaring bumuo ang mga user ng sarili nilang mga configuration ng device sa pamamagitan ng pagsunod sa mga direksyon sa Mga Tagubilin sa Kliyente pahina.
Ang lahat ng configuration ng device ng user ay maaaring gawin ng mga admin ng Firezone. Sa pahina ng profile ng user na matatagpuan sa /users, piliin ang opsyong "Magdagdag ng Device" upang magawa ito.
[Ipasok ang screenshot]
Maaari mong i-email sa user ang WireGuard configuration file pagkatapos gawin ang profile ng device.
Naka-link ang mga user at device. Para sa karagdagang detalye kung paano magdagdag ng user, tingnan Magdagdag ng Mga Gumagamit.
Sa pamamagitan ng paggamit ng netfilter system ng kernel, pinapagana ng Firezone ang mga kakayahan sa pag-filter ng labasan upang tukuyin ang DROP o ACCEPT packet. Ang lahat ng trapiko ay karaniwang pinahihintulutan.
Ang mga IPv4 at IPv6 CIDR at IP address ay sinusuportahan sa pamamagitan ng Allowlist at Denylist, ayon sa pagkakabanggit. Maaari mong piliing saklawin ang isang panuntunan sa isang user kapag idinaragdag ito, na inilalapat ang panuntunan sa lahat ng device ng user na iyon.
I-install at i-configure
Upang magtatag ng koneksyon sa VPN gamit ang katutubong WireGuard client, sumangguni sa gabay na ito.
Ang mga Opisyal na kliyente ng WireGuard na matatagpuan dito ay katugma sa Firezone:
Bisitahin ang opisyal na website ng WireGuard sa https://www.wireguard.com/install/ para sa mga OS system na hindi nabanggit sa itaas.
Maaaring buuin ng iyong administrator ng Firezone o ang iyong sarili ang file ng configuration ng device gamit ang portal ng Firezone.
Bisitahin ang URL na ibinigay ng iyong Firezone administrator upang makabuo ng sariling configuration file ng device. Ang iyong kumpanya ay magkakaroon ng natatanging URL para dito; sa kasong ito, ito ay https://instance-id.yourfirezone.com.
Mag-login sa Firezone Okta SSO
[Ipasok ang Screenshot]
I-import ang.conf file sa WireGuard client sa pamamagitan ng pagbubukas nito. Sa pamamagitan ng pag-flip sa Activate switch, maaari kang magsimula ng VPN session.
[Ipasok ang Screenshot]
Sundin ang mga tagubilin sa ibaba kung ang iyong network administrator ay nag-utos ng paulit-ulit na pagpapatunay upang panatilihing aktibo ang iyong koneksyon sa VPN.
Kailangan mo:
URL ng portal ng Firezone: Tanungin ang iyong network administrator para sa koneksyon.
Dapat na maialok ng administrator ng iyong network ang iyong login at password. Ipo-prompt ka ng site ng Firezone na mag-log in gamit ang single sign-on service na ginagamit ng iyong employer (gaya ng Google o Okta).
[Ipasok ang Screenshot]
Pumunta sa URL ng portal ng Firezone at mag-log in gamit ang mga kredensyal na ibinigay ng administrator ng iyong network. Kung naka-sign in ka na, i-click ang button na Reauthenticate bago mag-sign in muli.
[Ipasok ang Screenshot]
[Ipasok ang Screenshot]
Upang i-import ang profile ng configuration ng WireGuard gamit ang Network Manager CLI sa mga Linux device, sundin ang mga tagubiling ito (nmcli).
Kung ang profile ay may naka-enable na suporta sa IPv6, ang pagtatangkang i-import ang configuration file gamit ang Network Manager GUI ay maaaring mabigo sa sumusunod na error:
ipv6.method: hindi sinusuportahan ang method na “auto” para sa WireGuard
Kinakailangang i-install ang WireGuard userspace utility. Ito ay isang pakete na tinatawag na wireguard o wireguard-tools para sa mga pamamahagi ng Linux.
Para sa Ubuntu/Debian:
sudo apt install wireguard
Upang gamitin ang Fedora:
sudo dnf i-install ang wireguard-tools
Arch Linux:
sudo pacman -S wireguard-tools
Bisitahin ang opisyal na website ng WireGuard sa https://www.wireguard.com/install/ para sa mga pamamahagi na hindi nabanggit sa itaas.
Maaaring buuin ng iyong Firezone administrator o self-generation ang configuration file ng device gamit ang Firezone portal.
Bisitahin ang URL na ibinigay ng iyong Firezone administrator upang makabuo ng sariling configuration file ng device. Ang iyong kumpanya ay magkakaroon ng natatanging URL para dito; sa kasong ito, ito ay https://instance-id.yourfirezone.com.
[Ipasok ang Screenshot]
I-import ang ibinigay na configuration file gamit ang nmcli:
sudo nmcli connection import type wireguard file /path/to/configuration.conf
Ang pangalan ng configuration file ay tumutugma sa koneksyon/interface ng WireGuard. Pagkatapos ng pag-import, maaaring palitan ang pangalan ng koneksyon kung kinakailangan:
pagbabago ng koneksyon ng nmcli [lumang pangalan] connection.id [bagong pangalan]
Sa pamamagitan ng command line, kumonekta sa VPN tulad ng sumusunod:
pagkonekta ng nmcli [pangalan ng vpn]
Upang idiskonekta:
mahina ang koneksyon ng nmcli [pangalan ng vpn]
Ang naaangkop na Network Manager applet ay maaari ding gamitin upang pamahalaan ang koneksyon kung gumagamit ng isang GUI.
Sa pamamagitan ng pagpili sa "oo" para sa opsyong autoconnect, ang koneksyon ng VPN ay maaaring i-configure upang awtomatikong kumonekta:
Ang koneksyon ng nmcli ay nagbabago ng [pangalan ng vpn] na koneksyon. <<<<<<<<<<<<<<<<<<<<<<
autoconnect oo
Upang huwag paganahin ang awtomatikong koneksyon, ibalik ito sa no:
Ang koneksyon ng nmcli ay nagbabago ng [pangalan ng vpn] na koneksyon.
autoconnect no
Upang i-activate ang MFA Pumunta sa portal ng Firezone / user account/magrehistro ng mfa page. Gamitin ang iyong authenticator app upang i-scan ang QR code pagkatapos itong mabuo, pagkatapos ay ilagay ang anim na digit na code.
Makipag-ugnayan sa iyong Admin upang i-reset ang impormasyon sa pag-access ng iyong account kung nailagay mo ang iyong authenticator app.
Gagabayan ka ng tutorial na ito sa proseso ng pag-set up ng tampok na split tunneling ng WireGuard sa Firezone upang ang trapiko lamang sa mga partikular na saklaw ng IP ang maipapasa sa pamamagitan ng VPN server.
Ang mga hanay ng IP kung saan dadalhin ng kliyente ang trapiko sa network ay itinakda sa field na Allowed IPs na matatagpuan sa /settings/default na pahina. Tanging ang mga bagong likhang WireGuard tunnel configuration na ginawa ng Firezone ang maaapektuhan ng mga pagbabago sa field na ito.
[Ipasok ang Screenshot]
Ang default na halaga ay 0.0.0.0/0, ::/0, na nagruruta sa lahat ng trapiko sa network mula sa kliyente patungo sa VPN server.
Kasama sa mga halimbawa ng mga halaga sa field na ito ang:
0.0.0.0/0, ::/0 – lahat ng trapiko sa network ay iruruta sa VPN server.
192.0.2.3/32 – traffic lang sa isang IP address ang iruruta sa VPN server.
3.5.140.0/22 – traffic lang sa mga IP sa 3.5.140.1 – 3.5.143.254 range ang iruruta sa VPN server. Sa halimbawang ito, ginamit ang hanay ng CIDR para sa rehiyon ng ap-northeast-2 AWS.
Pinipili ng Firezone ang interface ng paglabas na nauugnay sa pinakatumpak na ruta muna kapag tinutukoy kung saan iruruta ang isang packet.
Dapat na muling buuin ng mga user ang mga configuration file at idagdag ang mga ito sa kanilang katutubong WireGuard client para ma-update ang mga kasalukuyang device ng user gamit ang bagong split tunnel configuration.
Para sa mga tagubilin, tingnan magdagdag ng aparato. <<<<<<<<<< Magdagdag ng link
Ipapakita ng manual na ito kung paano i-link ang dalawang device gamit ang Firezone bilang relay. Ang isang karaniwang kaso ng paggamit ay ang paganahin ang isang administrator na ma-access ang isang server, container, o machine na protektado ng isang NAT o firewall.
Ang paglalarawang ito ay nagpapakita ng isang tuwirang senaryo kung saan ang Mga Device A at B ay gumagawa ng isang tunnel.
[Ipasok ang larawan ng arkitektura ng firezone]
Magsimula sa pamamagitan ng paggawa ng Device A at Device B sa pamamagitan ng pag-navigate sa /users/[user_id]/new_device. Sa mga setting para sa bawat device, tiyaking nakatakda ang mga sumusunod na parameter sa mga value na nakalista sa ibaba. Maaari mong itakda ang mga setting ng device kapag gumagawa ng config ng device (tingnan ang Magdagdag ng Mga Device). Kung kailangan mong i-update ang mga setting sa isang kasalukuyang device, magagawa mo ito sa pamamagitan ng pagbuo ng bagong config ng device.
Tandaan na ang lahat ng device ay may /settings/defaults page kung saan maaaring i-configure ang PersistentKeepalive.
AllowedIPs = 10.3.2.2/32
Ito ang IP o hanay ng mga IP ng Device B
PersistentKeepalive = 25
Kung ang device ay nasa likod ng isang NAT, tinitiyak nito na mapapanatili ng device na buhay ang tunnel at patuloy na makakatanggap ng mga packet mula sa interface ng WireGuard. Kadalasan ay sapat na ang halagang 25, ngunit maaaring kailanganin mong bawasan ang halagang ito depende sa iyong kapaligiran.
AllowedIPs = 10.3.2.3/32
Ito ang IP o hanay ng mga IP ng Device A
PersistentKeepalive = 25
Ang halimbawang ito ay nagpapakita ng isang sitwasyon kung saan ang Device A ay maaaring makipag-ugnayan sa Mga Device B hanggang D sa parehong direksyon. Ang setup na ito ay maaaring kumatawan sa isang engineer o administrator na nag-a-access ng maraming mapagkukunan (server, container, o machine) sa iba't ibang network.
[Diagram ng Arkitektura]<<<<<<<<<<<<<<<<<<<<<<<<
Tiyaking ang mga sumusunod na setting ay ginawa sa mga setting ng bawat device sa mga katumbas na halaga. Kapag gumagawa ng configuration ng device, maaari mong tukuyin ang mga setting ng device (tingnan ang Magdagdag ng Mga Device). Maaaring gumawa ng bagong config ng device kung kailangang i-update ang mga setting sa isang kasalukuyang device.
AllowedIPs = 10.3.2.3/32, 10.3.2.4/32, 10.3.2.5/32
Ito ang IP ng mga device B hanggang D. Ang mga IP ng Device B hanggang D ay dapat kasama sa anumang hanay ng IP na pipiliin mong itakda.
PersistentKeepalive = 25
Tinitiyak nito na mapanatili ng device ang tunnel at patuloy na makakatanggap ng mga packet mula sa interface ng WireGuard kahit na protektado ito ng isang NAT. Sa karamihan ng mga kaso, ang halaga na 25 ay sapat, gayunpaman depende sa iyong kapaligiran, maaaring kailanganin mong babaan ang figure na ito.
Upang mag-alok ng isang solong, static na egress IP para sa lahat ng trapiko ng iyong team na lumabas, maaaring gamitin ang Firezone bilang isang NAT gateway. Kasama sa mga sitwasyong ito ang madalas nitong paggamit:
Mga Pakikipag-ugnayan sa Pagkonsulta: Hilingin na i-whitelist ng iyong customer ang isang solong static na IP address kaysa sa natatanging IP ng device ng bawat empleyado.
Paggamit ng proxy o pag-mask sa iyong pinagmulang IP para sa mga layunin ng seguridad o privacy.
Ang isang simpleng halimbawa ng paglilimita sa pag-access sa isang self-host na web application sa isang naka-whitelist na static na IP na tumatakbo sa Firezone ay ipapakita sa post na ito. Sa paglalarawang ito, ang Firezone at ang protektadong mapagkukunan ay nasa iba't ibang lugar ng VPC.
Ang solusyon na ito ay madalas na ginagamit bilang kapalit ng pamamahala ng isang IP whitelist para sa maraming end user, na maaaring magtagal habang lumalawak ang listahan ng access.
Ang aming layunin ay mag-set up ng isang Firezone server sa isang EC2 instance upang i-redirect ang trapiko ng VPN sa pinaghihigpitang mapagkukunan. Sa pagkakataong ito, nagsisilbi ang Firezone bilang isang network proxy o NAT gateway upang bigyan ang bawat konektadong device ng isang natatanging pampublikong egress IP.
Sa kasong ito, ang isang EC2 instance na pinangalanang tc2.micro ay mayroong Firezone instance na naka-install dito. Para sa impormasyon tungkol sa pag-deploy ng Firezone, pumunta sa Deployment Guide. Kaugnay ng AWS, siguraduhing:
Ang grupo ng seguridad ng Firezone EC2 instance ay nagpapahintulot sa papalabas na trapiko sa IP address ng protektadong mapagkukunan.
Ang instance ng Firezone ay may nababanat na IP. Ang trapiko na ipinapasa sa pamamagitan ng instance ng Firezone sa labas ng mga destinasyon ay magkakaroon nito bilang pinagmulan nitong IP address. Ang IP address na pinag-uusapan ay 52.202.88.54.
[Ipasok ang Screenshot]<<<<<<<<<<<<<<<<<<<<<<<<
Ang isang self-host na web application ay nagsisilbing protektadong mapagkukunan sa kasong ito. Maa-access lang ang web app sa pamamagitan ng mga kahilingang nagmumula sa IP address na 52.202.88.54. Depende sa mapagkukunan, maaaring kailanganin na payagan ang papasok na trapiko sa iba't ibang mga port at uri ng trapiko. Hindi ito saklaw sa manwal na ito.
[Ipasok ang screenshot]<<<<<<<<<<<<<<<<<<<<<<<<
Pakisabi sa third party na namamahala sa protektadong mapagkukunan na ang trapiko mula sa static na IP na tinukoy sa Hakbang 1 ay dapat pahintulutan (sa kasong ito 52.202.88.54).
Bilang default, dadaan ang lahat ng trapiko ng user sa VPN server at magmumula sa static na IP na na-configure sa Hakbang 1 (sa kasong ito 52.202.88.54). Gayunpaman, kung pinagana ang split tunneling, maaaring kailanganin ang mga setting upang matiyak na ang destination IP ng protektadong mapagkukunan ay nakalista sa mga Allowed IP.
Ipinapakita sa ibaba ang kumpletong listahan ng mga opsyon sa pagsasaayos na available sa /etc/firezone/firezone.rb.
opsyon | paglalarawan | default na halaga |
default['firezone']['external_url'] | URL na ginamit upang ma-access ang web portal ng instance ng Firezone na ito. | “https://#{node['fqdn'] || node['hostname']}” |
default['firezone']['config_directory'] | Top-level na direktoryo para sa configuration ng Firezone. | /etc/firezone' |
default['firezone']['install_directory'] | Top-level na direktoryo kung saan i-install ang Firezone. | /opt/firezone' |
default['firezone']['app_directory'] | Top-level na direktoryo upang i-install ang Firezone web application. | “#{node['firezone']['install_directory']}/embedded/service/firezone” |
default['firezone']['log_directory'] | Top-level na direktoryo para sa mga log ng Firezone. | /var/log/firezone' |
default['firezone']['var_directory'] | Direktoryo sa nangungunang antas para sa mga file ng runtime ng Firezone. | /var/opt/firezone' |
default['firezone']['user'] | Pangalan ng walang pribilehiyong gumagamit ng Linux na pag-aari ng karamihan sa mga serbisyo at file. | firezone' |
default['firezone']['group'] | Pangalan ng pangkat ng Linux na pag-aari ng karamihan sa mga serbisyo at file. | firezone' |
default['firezone']['admin_email'] | Email address para sa paunang gumagamit ng Firezone. | “firezone@localhost” |
default['firezone']['max_devices_per_user'] | Maximum na bilang ng mga device na maaaring magkaroon ng user. | 10 |
default['firezone']['allow_unprivileged_device_management'] | Nagbibigay-daan sa mga user na hindi admin na gumawa at magtanggal ng mga device. | TRUE |
default['firezone']['allow_unprivileged_device_configuration'] | Nagbibigay-daan sa mga user na hindi admin na baguhin ang mga configuration ng device. Kapag hindi pinagana, pinipigilan ang mga walang pribilehiyong user na baguhin ang lahat ng field ng device maliban sa pangalan at paglalarawan. | TRUE |
default['firezone']['egress_interface'] | Pangalan ng interface kung saan lalabas ang tunneled na trapiko. Kung wala, ang default na interface ng ruta ang gagamitin. | kawalan |
default['firezone']['fips_enabled'] | Paganahin o huwag paganahin ang OpenSSL FIPs mode. | kawalan |
default['firezone']['logging']['enabled'] | Paganahin o huwag paganahin ang pag-log sa Firezone. Itakda sa false upang ganap na huwag paganahin ang pag-log. | TRUE |
default['enterprise']['pangalan'] | Pangalan na ginamit ng Chef 'enterprise' cookbook. | firezone' |
default['firezone']['install_path'] | I-install ang path na ginagamit ng Chef 'enterprise' cookbook. Dapat itakda sa kapareho ng install_directory sa itaas. | node['firezone']['install_directory'] |
default['firezone']['sysvinit_id'] | Isang identifier na ginamit sa /etc/inittab. Dapat ay isang natatanging sequence ng 1-4 na character. | SUP' |
default['firezone']['authentication']['local']['enabled'] | Paganahin o huwag paganahin ang lokal na pagpapatunay ng email/password. | TRUE |
default['firezone']['authentication']['auto_create_oidc_users'] | Awtomatikong gumawa ng mga user na nagsa-sign in mula sa OIDC sa unang pagkakataon. Huwag paganahin upang payagan lamang ang mga umiiral na user na mag-sign in sa pamamagitan ng OIDC. | TRUE |
default['firezone']['authentication']['disable_vpn_on_oidc_error'] | I-disable ang VPN ng user kung may nakitang error na sinusubukang i-refresh ang kanilang OIDC token. | FALSE |
default['firezone']['authentication']['oidc'] | OpenID Connect config, sa format na {“provider” => [config…]} – Tingnan Dokumentasyon ng OpenIDConnect para sa mga halimbawa ng config. | {} |
default['firezone']['nginx']['enabled'] | Paganahin o huwag paganahin ang naka-bundle na nginx server. | TRUE |
default['firezone']['nginx']['ssl_port'] | HTTPS listen port. | 443 |
default['firezone']['nginx']['directory'] | Direktoryo upang mag-imbak ng configuration ng virtual host ng nginx na nauugnay sa Firezone. | “#{node['firezone']['var_directory']}/nginx/etc” |
default['firezone']['nginx']['log_directory'] | Direktoryo upang mag-imbak ng mga file ng nginx na nauugnay sa Firezone. | “#{node['firezone']['log_directory']}/nginx” |
default['firezone']['nginx']['log_rotation']['file_maxbytes'] | Laki ng file kung saan i-rotate ang mga file ng log ng Nginx. | 104857600 |
default['firezone']['nginx']['log_rotation']['num_to_keep'] | Bilang ng mga file ng log ng Firezone nginx na dapat itago bago itapon. | 10 |
default['firezone']['nginx']['log_x_forwarded_for'] | Kung mag-log Firezone nginx x-forwarded-for header. | TRUE |
default['firezone']['nginx']['hsts_header']['enabled'] | TRUE | |
default['firezone']['nginx']['hsts_header']['include_subdomains'] | I-enable o i-disable ang includeSubDomains para sa HSTS header. | TRUE |
default['firezone']['nginx']['hsts_header']['max_age'] | Max na edad para sa HSTS header. | 31536000 |
default['firezone']['nginx']['redirect_to_canonical'] | Kung ire-redirect ang mga URL sa canonical FQDN na tinukoy sa itaas | FALSE |
default['firezone']['nginx']['cache']['enabled'] | Paganahin o huwag paganahin ang Firezone nginx cache. | FALSE |
default['firezone']['nginx']['cache']['directory'] | Direktoryo para sa Firezone nginx cache. | “#{node['firezone']['var_directory']}/nginx/cache” |
default['firezone']['nginx']['user'] | Firezone nginx user. | node['firezone']['user'] |
default['firezone']['nginx']['group'] | Firezone nginx group. | node['firezone']['group'] |
default['firezone']['nginx']['dir'] | Top-level na direktoryo ng configuration nginx. | node['firezone']['nginx']['directory'] |
default['firezone']['nginx']['log_dir'] | Top-level nginx log directory. | node['firezone']['nginx']['log_directory'] |
default['firezone']['nginx']['pid'] | Lokasyon para sa nginx pid file. | “#{node['firezone']['nginx']['directory']}/nginx.pid” |
default['firezone']['nginx']['daemon_disable'] | Huwag paganahin ang nginx daemon mode para masubaybayan namin ito sa halip. | TRUE |
default['firezone']['nginx']['gzip'] | I-on o i-off ang nginx gzip compression. | sa ' |
default['firezone']['nginx']['gzip_static'] | I-on o i-off ang nginx gzip compression para sa mga static na file. | off' |
default['firezone']['nginx']['gzip_http_version'] | Bersyon ng HTTP na gagamitin para sa paghahatid ng mga static na file. | 1.0 ' |
default['firezone']['nginx']['gzip_comp_level'] | nginx gzip compression level. | 2 ' |
default['firezone']['nginx']['gzip_proxied'] | Pinapagana o hindi pinapagana ang pag-gzip ng mga tugon para sa mga na-proxy na kahilingan depende sa kahilingan at tugon. | anumang' |
default['firezone']['nginx']['gzip_vary'] | Pinapagana o hindi pinapagana ang pagpasok ng header ng tugon na "Iba-iba: Tanggapin-Pag-encode." | off' |
default['firezone']['nginx']['gzip_buffers'] | Itinatakda ang bilang at laki ng mga buffer na ginamit upang i-compress ang isang tugon. Kung wala, nginx default ang ginagamit. | kawalan |
default['firezone']['nginx']['gzip_types'] | Mga uri ng MIME para paganahin ang gzip compression. | ['text/plain', 'text/css','application/x-javascript', 'text/xml', 'application/xml', 'application/rss+xml', 'application/atom+xml', ' text/javascript', 'application/javascript', 'application/json'] |
default['firezone']['nginx']['gzip_min_length'] | Pinakamababang haba ng file para paganahin ang gzip compression ng file. | 1000 |
default['firezone']['nginx']['gzip_disable'] | User-agent matcher para hindi paganahin ang gzip compression. | MSIE [1-6]\.' |
default['firezone']['nginx']['keepalive'] | Ina-activate ang cache para sa koneksyon sa mga upstream na server. | sa ' |
default['firezone']['nginx']['keepalive_timeout'] | Timeout sa ilang segundo para sa keepalive na koneksyon sa upstream server. | 65 |
default['firezone']['nginx']['worker_processes'] | Bilang ng mga proseso ng nginx worker. | node['cpu'] && node['cpu']['kabuuan'] ? node['cpu']['kabuuan'] : 1 |
default['firezone']['nginx']['worker_connections'] | Pinakamataas na bilang ng mga sabay-sabay na koneksyon na maaaring mabuksan ng proseso ng manggagawa. | 1024 |
default['firezone']['nginx']['worker_rlimit_nofile'] | Binabago ang limitasyon sa maximum na bilang ng mga bukas na file para sa mga proseso ng manggagawa. Gumagamit ng nginx default kung wala. | kawalan |
default['firezone']['nginx']['multi_accept'] | Kung dapat tanggapin ng mga manggagawa ang isang koneksyon sa isang pagkakataon o maramihan. | TRUE |
default['firezone']['nginx']['event'] | Tinutukoy ang paraan ng pagpoproseso ng koneksyon na gagamitin sa konteksto ng mga kaganapan ng nginx. | epoll' |
default['firezone']['nginx']['server_tokens'] | Pinapagana o hindi pinapagana ang paglabas ng bersyon ng nginx sa mga pahina ng error at sa field ng header ng tugon na "Server". | kawalan |
default['firezone']['nginx']['server_names_hash_bucket_size'] | Itinatakda ang laki ng bucket para sa mga hash table ng mga pangalan ng server. | 64 |
default['firezone']['nginx']['sendfile'] | Pinapagana o hindi pinapagana ang paggamit ng sendfile() ng nginx. | sa ' |
default['firezone']['nginx']['access_log_options'] | Nagtatakda ng mga opsyon sa log ng pag-access ng nginx. | kawalan |
default['firezone']['nginx']['error_log_options'] | Nagtatakda ng mga opsyon sa log ng error ng nginx. | kawalan |
default['firezone']['nginx']['disable_access_log'] | Hindi pinapagana ang log ng access ng nginx. | FALSE |
default['firezone']['nginx']['types_hash_max_size'] | nginx type hash max size. | 2048 |
default['firezone']['nginx']['types_hash_bucket_size'] | nginx type hash bucket size. | 64 |
default['firezone']['nginx']['proxy_read_timeout'] | nginx proxy read timeout. Itakda sa nil para gumamit ng nginx default. | kawalan |
default['firezone']['nginx']['client_body_buffer_size'] | laki ng buffer ng katawan ng kliyente ng nginx. Itakda sa nil upang gamitin ang nginx default. | kawalan |
default['firezone']['nginx']['client_max_body_size'] | nginx client max body size. | 250m' |
default['firezone']['nginx']['default']['modules'] | Tukuyin ang mga karagdagang module ng nginx. | [] |
default['firezone']['nginx']['enable_rate_limiting'] | Paganahin o huwag paganahin ang paglilimita ng rate ng nginx. | TRUE |
default['firezone']['nginx']['rate_limiting_zone_name'] | Pangalan ng zone na naglilimita sa rate ng Nginx. | firezone' |
default['firezone']['nginx']['rate_limiting_backoff'] | Nginx rate na naglilimita sa backoff. | 10m' |
default['firezone']['nginx']['rate_limit'] | Limitasyon sa rate ng Nginx. | 10r/s' |
default['firezone']['nginx']['ipv6'] | Payagan ang nginx na makinig para sa mga kahilingan sa HTTP para sa IPv6 bilang karagdagan sa IPv4. | TRUE |
default['firezone']['postgresql']['enabled'] | Paganahin o huwag paganahin ang naka-bundle na Postgresql. Itakda sa false at punan ang mga opsyon sa database sa ibaba upang magamit ang iyong sariling Postgresql instance. | TRUE |
default['firezone']['postgresql']['username'] | Username para sa Postgresql. | node['firezone']['user'] |
default['firezone']['postgresql']['data_directory'] | Direktoryo ng data ng Postgresql. | “#{node['firezone']['var_directory']}/postgresql/13.3/data” |
default['firezone']['postgresql']['log_directory'] | Direktoryo ng log ng Postgresql. | “#{node['firezone']['log_directory']}/postgresql” |
default['firezone']['postgresql']['log_rotation']['file_maxbytes'] | Pinakamataas na laki ng postgresql log file bago ito paikutin. | 104857600 |
default['firezone']['postgresql']['log_rotation']['num_to_keep'] | Bilang ng mga Postgresql log file na dapat panatilihin. | 10 |
default['firezone']['postgresql']['checkpoint_completion_target'] | Target ng pagkumpleto ng postgresql checkpoint. | 0.5 |
default['firezone']['postgresql']['checkpoint_segments'] | Bilang ng mga segment ng postgresql checkpoint. | 3 |
default['firezone']['postgresql']['checkpoint_timeout'] | Postgresql checkpoint timeout. | 5min' |
default['firezone']['postgresql']['checkpoint_warning'] | Oras ng babala ng postgresql checkpoint sa ilang segundo. | 30s' |
default['firezone']['postgresql']['effective_cache_size'] | Epektibong laki ng cache ng Postgresql. | 128MB' |
default['firezone']['postgresql']['listen_address'] | Postgresql listen address. | 127.0.0.1 ' |
default['firezone']['postgresql']['max_connections'] | Postgresql max na mga koneksyon. | 350 |
default['firezone']['postgresql']['md5_auth_cidr_addresses'] | Postgresql CIDRs upang payagan ang md5 auth. | ['127.0.0.1/32', '::1/128'] |
default['firezone']['postgresql']['port'] | Postgresql listen port. | 15432 |
default['firezone']['postgresql']['shared_buffers'] | Postgresql nakabahaging laki ng buffer. | “#{(node['memory']['total'].to_i / 4) / 1024}MB” |
default['firezone']['postgresql']['shmmax'] | Postgresql shmmax sa bytes. | 17179869184 |
default['firezone']['postgresql']['shmall'] | Postgresql shmall sa bytes. | 4194304 |
default['firezone']['postgresql']['work_mem'] | Laki ng memorya ng gumaganang postgresql. | 8MB' |
default['firezone']['database']['user'] | Tinutukoy ang username na gagamitin ng Firezone para kumonekta sa DB. | node['firezone']['postgresql']['username'] |
default['firezone']['database']['password'] | Kung gumagamit ng panlabas na DB, tinutukoy ang password na gagamitin ng Firezone para kumonekta sa DB. | Baguhin mo ako' |
default['firezone']['database']['pangalan'] | Database na gagamitin ng Firezone. Gagawin kung wala ito. | firezone' |
default['firezone']['database']['host'] | Database host kung saan kokonekta ang Firezone. | node['firezone']['postgresql']['listen_address'] |
default['firezone']['database']['port'] | Database port kung saan kokonekta ang Firezone. | node['firezone']['postgresql']['port'] |
default['firezone']['database']['pool'] | Laki ng database pool na gagamitin ng Firezone. | [10, Etc.nprocessors].max |
default['firezone']['database']['ssl'] | Kung kumonekta sa database gamit ang SSL. | FALSE |
default['firezone']['database']['ssl_opts'] | {} | |
default['firezone']['database']['parameters'] | {} | |
default['firezone']['database']['extension'] | Mga extension ng database upang paganahin. | { 'plpgsql' => true, 'pg_trgm' => true } |
default['firezone']['phoenix']['enabled'] | Paganahin o huwag paganahin ang Firezone web application. | TRUE |
default['firezone']['phoenix']['listen_address'] | Firezone web application listen address. Ito ang magiging upstream listen address na ibinibigay ng nginx. | 127.0.0.1 ' |
default['firezone']['phoenix']['port'] | Firezone web application listen port. Ito ay ang upstream port na nginx proxy. | 13000 |
default['firezone']['phoenix']['log_directory'] | Direktoryo ng log ng firezone web application. | “#{node['firezone']['log_directory']}/phoenix” |
default['firezone']['phoenix']['log_rotation']['file_maxbytes'] | Laki ng file ng log ng firezone web application. | 104857600 |
default['firezone']['phoenix']['log_rotation']['num_to_keep'] | Bilang ng mga file ng log ng Firezone web application na dapat panatilihin. | 10 |
default['firezone']['phoenix']['crash_detection']['enabled'] | Paganahin o huwag paganahin ang pagbaba ng Firezone web application kapag may nakitang pag-crash. | TRUE |
default['firezone']['phoenix']['external_trusted_proxies'] | Listahan ng mga pinagkakatiwalaang reverse proxy na na-format bilang Array ng mga IP at/o CIDR. | [] |
default['firezone']['phoenix']['private_clients'] | Listahan ng mga pribadong network HTTP client, na na-format ng Array ng mga IP at/o CIDR. | [] |
default['firezone']['wireguard']['enabled'] | Paganahin o huwag paganahin ang naka-bundle na pamamahala ng WireGuard. | TRUE |
default['firezone']['wireguard']['log_directory'] | Direktoryo ng log para sa naka-bundle na pamamahala ng WireGuard. | “#{node['firezone']['log_directory']}/wireguard” |
default['firezone']['wireguard']['log_rotation']['file_maxbytes'] | Max size ng file ng log ng WireGuard. | 104857600 |
default['firezone']['wireguard']['log_rotation']['num_to_keep'] | Bilang ng mga WireGuard log file na dapat panatilihin. | 10 |
default['firezone']['wireguard']['interface_name'] | Pangalan ng interface ng WireGuard. Ang pagbabago sa parameter na ito ay maaaring magdulot ng pansamantalang pagkawala sa koneksyon sa VPN. | wg-firezone' |
default['firezone']['wireguard']['port'] | WireGuard makinig port. | 51820 |
default['firezone']['wireguard']['mtu'] | WireGuard interface MTU para sa server na ito at para sa mga configuration ng device. | 1280 |
default['firezone']['wireguard']['endpoint'] | WireGuard Endpoint na gagamitin para sa pagbuo ng mga configuration ng device. Kung wala, nagde-default sa pampublikong IP address ng server. | kawalan |
default['firezone']['wireguard']['dns'] | WireGuard DNS na gagamitin para sa mga nabuong configuration ng device. | 1.1.1.1, 1.0.0.1′ |
default['firezone']['wireguard']['allowed_ips'] | WireGuard AllowedIPs na gamitin para sa mga nabuong configuration ng device. | 0.0.0.0/0, ::/0′ |
default['firezone']['wireguard']['persistent_keepalive'] | Default na setting ng PersistentKeepalive para sa mga nabuong configuration ng device. Ang isang halaga ng 0 ay hindi pinapagana. | 0 |
default['firezone']['wireguard']['ipv4']['enabled'] | Paganahin o huwag paganahin ang IPv4 para sa WireGuard network. | TRUE |
default['firezone']['wireguard']['ipv4']['masquerade'] | I-enable o i-disable ang masquerade para sa mga packet na umaalis sa IPv4 tunnel. | TRUE |
default['firezone']['wireguard']['ipv4']['network'] | WireGuard network IPv4 address pool. | 10.3.2.0/24 ′ |
default['firezone']['wireguard']['ipv4']['address'] | IPv4 address ng interface ng WireGuard. Dapat ay nasa WireGuard address pool. | 10.3.2.1 ' |
default['firezone']['wireguard']['ipv6']['enabled'] | Paganahin o huwag paganahin ang IPv6 para sa WireGuard network. | TRUE |
default['firezone']['wireguard']['ipv6']['masquerade'] | I-enable o i-disable ang masquerade para sa mga packet na umaalis sa IPv6 tunnel. | TRUE |
default['firezone']['wireguard']['ipv6']['network'] | WireGuard network IPv6 address pool. | fd00::3:2:0/120′ |
default['firezone']['wireguard']['ipv6']['address'] | IPv6 address ng interface ng WireGuard. Dapat ay nasa loob ng IPv6 address pool. | fd00::3:2:1′ |
default['firezone']['runit']['svlogd_bin'] | Lokasyon ng runit svlogd bin. | “#{node['firezone']['install_directory']}/embedded/bin/svlogd” |
default['firezone']['ssl']['directory'] | Direktoryo ng SSL para sa pag-iimbak ng mga nabuong sertipikasyon. | /var/opt/firezone/ssl' |
default['firezone']['ssl']['email_address'] | Email address na gagamitin para sa mga self-signed certs at mga abiso sa pag-renew ng protocol ng ACME. | you@example.com' |
default['firezone']['ssl']['acme']['enabled'] | I-enable ang ACME para sa awtomatikong SSL cert provisioning. Huwag paganahin ito upang maiwasan ang Nginx sa pakikinig sa port 80. Tingnan dito para sa karagdagang tagubilin. | FALSE |
default['firezone']['ssl']['acme']['server'] | letsencrypt | |
default['firezone']['ssl']['acme']['keylength'] | Tukuyin ang uri at haba ng key para sa mga SSL certificate. Tingnan mo dito | ec-256 |
default['firezone']['ssl']['certificate'] | Path sa certificate file para sa iyong FQDN. Ino-override ang setting ng ACME sa itaas kung tinukoy. Kung pareho ang ACME at ito ay wala, isang self-signed cert ang bubuo. | kawalan |
default['firezone']['ssl']['certificate_key'] | Path sa certificate file. | kawalan |
default['firezone']['ssl']['ssl_dhparam'] | nginx ssl dh_param. | kawalan |
default['firezone']['ssl']['country_name'] | Pangalan ng bansa para sa self-signed cert. | US' |
default['firezone']['ssl']['state_name'] | Pangalan ng estado para sa self-signed cert. | CA ' |
default['firezone']['ssl']['locality_name'] | Pangalan ng lokalidad para sa self-signed cert. | San Francisco' |
default['firezone']['ssl']['company_name'] | Self-signed na sertipiko ng pangalan ng kumpanya. | Ang aking kumpanya' |
default['firezone']['ssl']['organizational_unit_name'] | Pangalan ng unit ng organisasyon para sa self-signed cert. | Mga operasyon' |
default['firezone']['ssl']['ciphers'] | Mga SSL cipher para magamit ng nginx. | ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA:AES256-SHA:AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA’ |
default['firezone']['ssl']['fips_ciphers'] | Mga SSL cipher para sa FIPs mode. | FIPS@STRENGTH:!aNULL:!eNULL' |
default['firezone']['ssl']['protocols'] | TLS protocol na gagamitin. | TLSv1 TLSv1.1 TLSv1.2′ |
default['firezone']['ssl']['session_cache'] | SSL session cache. | ibinahagi:SSL:4m' |
default['firezone']['ssl']['session_timeout'] | SSL session timeout. | 5m' |
default['firezone']['robots_allow'] | pinapayagan ng nginx robots. | / ' |
default['firezone']['robots_disallow'] | hindi pinapayagan ng nginx robots. | kawalan |
default['firezone']['outbound_email']['from'] | Papalabas na email mula sa address. | kawalan |
default['firezone']['outbound_email']['provider'] | Outbound na email service provider. | kawalan |
default['firezone']['outbound_email']['configs'] | Mga config ng provider ng papalabas na email. | tingnan ang omnibus/cookbooks/firezone/attributes/default.rb |
default['firezone']['telemetry']['enabled'] | Paganahin o huwag paganahin ang hindi nakikilalang telemetry ng produkto. | TRUE |
default['firezone']['connectivity_checks']['enabled'] | Paganahin o huwag paganahin ang serbisyo ng mga pagsusuri sa pagkakakonekta ng Firezone. | TRUE |
default['firezone']['connectivity_checks']['interval'] | Ang agwat sa pagitan ng mga pagsusuri sa pagkakakonekta sa mga segundo. | 3_600 |
________________________________________________________________
Dito makikita mo ang isang listahan ng mga file at direktoryo na nauugnay sa isang karaniwang pag-install ng Firezone. Maaaring magbago ang mga ito depende sa mga pagbabago sa iyong configuration file.
landas | paglalarawan |
/var/opt/firezone | Top-level na direktoryo na naglalaman ng data at nabuong configuration para sa mga serbisyong naka-bundle ng Firezone. |
/opt/firezone | Top-level na direktoryo na naglalaman ng mga built library, binary at runtime file na kailangan ng Firezone. |
/usr/bin/firezone-ctl | firezone-ctl utility para sa pamamahala ng iyong pag-install ng Firezone. |
/etc/systemd/system/firezone-runsvdir-start.service | systemd unit file para sa pagsisimula ng proseso ng superbisor ng Firezone runsvdir. |
/etc/firezone | Firezone configuration file. |
__________________________________________________________
Walang laman ang page na ito sa docs
_____________________________________________________________
Maaaring gamitin ang sumusunod na template ng firewall ng nftables upang ma-secure ang server na nagpapatakbo ng Firezone. Ang template ay gumagawa ng ilang mga pagpapalagay; maaaring kailanganin mong ayusin ang mga panuntunan upang umangkop sa iyong kaso ng paggamit:
Kino-configure ng Firezone ang sarili nitong mga panuntunan sa nftables upang pahintulutan/tanggihan ang trapiko sa mga destinasyong na-configure sa web interface at upang pangasiwaan ang papalabas na NAT para sa trapiko ng kliyente.
Ang paglalapat ng template sa ibaba ng firewall sa isang tumatakbo nang server (hindi sa oras ng pag-boot) ay magreresulta sa pagka-clear sa mga panuntunan ng Firezone. Maaaring may implikasyon ito sa seguridad.
Upang ayusin ito, i-restart ang serbisyo ng phoenix:
firezone-ctl i-restart ang phoenix
#!/usr/sbin/nft -f
## I-clear/flush ang lahat ng umiiral na panuntunan
flush ruleset
################################ VARIABLE ################## ##############
## Pangalan ng interface ng Internet/WAN
tukuyin ang DEV_WAN = eth0
## Pangalan ng interface ng WireGuard
tukuyin ang DEV_WIREGUARD = wg-firezone
## WireGuard makinig port
tukuyin ang WIREGUARD_PORT = 51820
################################ VARIABLE END #################### ############
# Pangunahing inet family filtering table
mesa inet filter {
# Mga panuntunan para sa ipinasa na trapiko
# Ang chain na ito ay pinoproseso bago ang Firezone forward chain
chain forward {
uri ng filter hook forward priority filter - 5; pagtanggap ng patakaran
}
# Mga Panuntunan para sa trapiko ng input
chain input {
uri ng filter hook input priority filter; pagbaba ng patakaran
## Pahintulutan ang papasok na trapiko sa loopback na interface
kung narito \
tanggapin \
puna "Pahintulutan ang lahat ng trapiko mula sa loopback na interface"
## Naitatag at nauugnay na mga koneksyon ang permit
ct state itinatag, nauugnay \
tanggapin \
puna "Nakatatag/kaugnay na mga koneksyon ang permit"
## Pahintulutan ang papasok na trapiko ng WireGuard
iif $DEV_WAN udp dport $WIREGUARD_PORT \
counter \
tanggapin \
puna "Pahintulutan ang papasok na trapiko ng WireGuard"
## Mag-log at mag-drop ng mga bagong TCP non-SYN packet
tcp flags != syn ct state new \
limitasyon rate 100/minutong pagsabog 150 mga pakete \
log prefix “IN – Bago !SYN: “ \
puna "Pag-log sa limitasyon ng rate para sa mga bagong koneksyon na walang nakatakdang flag ng SYN TCP"
tcp flags != syn ct state new \
counter \
ihulog \
puna "I-drop ang mga bagong koneksyon na walang nakatakdang flag ng SYN TCP"
## Mag-log at mag-drop ng mga TCP packet na may di-wastong fin/syn flag set
tcp flags & (fin|syn) == (fin|syn) \
limitasyon rate 100/minutong pagsabog 150 mga pakete \
log prefix “IN – TCP FIN|SIN: “ \
puna "Pag-log sa limitasyon ng rate para sa mga TCP packet na may di-wastong fin/syn flag set"
tcp flags & (fin|syn) == (fin|syn) \
counter \
ihulog \
puna "I-drop ang mga TCP packet na may di-wastong fin/syn flag set"
## Mag-log at mag-drop ng mga TCP packet na may di-wastong syn/rst flag set
tcp flags & (syn|rst) == (syn|rst) \
limitasyon rate 100/minutong pagsabog 150 mga pakete \
log prefix “SA – TCP SYN|RST: “ \
puna "Pag-log sa limitasyon ng rate para sa mga TCP packet na may di-wastong syn/rst flag set"
tcp flags & (syn|rst) == (syn|rst) \
counter \
ihulog \
puna "I-drop ang mga TCP packet na may di-wastong syn/unang flag set"
## Mag-log at mag-drop ng mga di-wastong TCP flag
tcp flags & (fin|syn|rst|psh|ack|urg) < (fin) \
limitasyon rate 100/minutong pagsabog 150 mga pakete \
log prefix “IN – FIN:” \
puna "Pag-log sa limitasyon ng rate para sa mga di-wastong TCP flag (fin|syn|rst|psh|ack|urg) < (fin)"
tcp flags & (fin|syn|rst|psh|ack|urg) < (fin) \
counter \
ihulog \
puna “I-drop ang mga TCP packet na may mga flag (fin|syn|rst|psh|ack|urg) < (fin)”
## Mag-log at mag-drop ng mga di-wastong TCP flag
tcp flags & (fin|syn|rst|psh|ack|urg) == (fin|psh|urg) \
limitasyon rate 100/minutong pagsabog 150 mga pakete \
log prefix “IN – FIN|PSH|URG:” \
puna "Pag-log sa limitasyon ng rate para sa mga di-wastong TCP flag (fin|syn|rst|psh|ack|urg) == (fin|psh|urg)"
tcp flags & (fin|syn|rst|psh|ack|urg) == (fin|psh|urg) \
counter \
ihulog \
puna “I-drop ang mga TCP packet na may mga flag (fin|syn|rst|psh|ack|urg) == (fin|psh|urg)”
## I-drop ang trapiko na may di-wastong estado ng koneksyon
ct state invalid \
limitasyon rate 100/minutong pagsabog 150 mga pakete \
log flag lahat ng prefix “IN – Di-wasto: “ \
puna "Pag-log sa limitasyon ng rate para sa trapiko na may di-wastong estado ng koneksyon"
ct state invalid \
counter \
ihulog \
puna "I-drop ang trapiko na may di-wastong estado ng koneksyon"
## Pahintulutan ang mga tugon ng IPv4 ping/ping ngunit limitasyon ng rate sa 2000 PPS
ip protocol icmp icmp type { echo-reply, echo-request } \
limitasyon rate 2000/segundo \
counter \
tanggapin \
puna "Pahintulutan ang papasok na IPv4 echo (ping) na limitado sa 2000 PPS"
## Pahintulutan ang lahat ng iba pang papasok na IPv4 ICMP
ip protocol icmp \
counter \
tanggapin \
puna "Pahintulutan ang lahat ng iba pang IPv4 ICMP"
## Pahintulutan ang mga tugon ng IPv6 ping/ping ngunit limitasyon ng rate sa 2000 PPS
uri ng icmpv6 { echo-reply, echo-request } \
limitasyon rate 2000/segundo \
counter \
tanggapin \
puna "Pahintulutan ang papasok na IPv6 echo (ping) na limitado sa 2000 PPS"
## Pahintulutan ang lahat ng iba pang papasok na IPv6 ICMP
meta l4proto { icmpv6 } \
counter \
tanggapin \
puna "Pahintulutan ang lahat ng iba pang IPv6 ICMP"
## Pahintulutan ang mga papasok na traceroute na UDP port ngunit limitahan sa 500 PPS
udp dport 33434-33524 \
limitasyon rate 500/segundo \
counter \
tanggapin \
puna “Limitado sa 500 PPS ang papasok na UDP traceroute”
## Pahintulutan ang papasok na SSH
tcp dport SSH ct state new \
counter \
tanggapin \
puna "Pahintulutan ang mga papasok na koneksyon sa SSH"
## Pahintulutan ang papasok na HTTP at HTTPS
tcp dport { http, https } ct state new \
counter \
tanggapin \
puna "Pahintulutan ang mga papasok na HTTP at HTTPS na koneksyon"
## Mag-log ng anumang walang kaparis na trapiko ngunit limitasyon ng rate sa pag-log sa maximum na 60 mensahe/minuto
## Ilalapat ang default na patakaran sa walang kapantay na trapiko
limitasyon rate 60/minutong pagsabog 100 mga pakete \
log prefix “IN – Drop: “ \
puna "Mag-log ng anumang walang kaparis na trapiko"
## Bilangin ang walang kaparis na trapiko
counter \
puna “Bilangin ang anumang walang kapantay na trapiko”
}
# Mga panuntunan para sa trapiko ng output
chain output {
uri ng filter hook output priority filter; pagbaba ng patakaran
## Pahintulutan ang papalabas na trapiko sa loopback na interface
oif narito \
tanggapin \
puna "Pahintulutan ang lahat ng trapiko sa loopback na interface"
## Naitatag at nauugnay na mga koneksyon ang permit
ct state itinatag, nauugnay \
counter \
tanggapin \
puna "Nakatatag/kaugnay na mga koneksyon ang permit"
## Pahintulutan ang palabas na WireGuard na trapiko bago i-drop ang mga koneksyon na may masamang kalagayan
oif $DEV_WAN udp sport $WIREGUARD_PORT \
counter \
tanggapin \
puna "Pahintulutan ang palabas na trapiko ng WireGuard"
## I-drop ang trapiko na may di-wastong estado ng koneksyon
ct state invalid \
limitasyon rate 100/minutong pagsabog 150 mga pakete \
log flag lahat ng prefix “LABAS – Di-wasto: “ \
puna "Pag-log sa limitasyon ng rate para sa trapiko na may di-wastong estado ng koneksyon"
ct state invalid \
counter \
ihulog \
puna "I-drop ang trapiko na may di-wastong estado ng koneksyon"
## Pahintulutan ang lahat ng iba pang papalabas na IPv4 ICMP
ip protocol icmp \
counter \
tanggapin \
puna "Pahintulutan ang lahat ng uri ng IPv4 ICMP"
## Pahintulutan ang lahat ng iba pang papalabas na IPv6 ICMP
meta l4proto { icmpv6 } \
counter \
tanggapin \
puna "Pahintulutan ang lahat ng uri ng IPv6 ICMP"
## Pahintulutan ang mga outbound traceroute na UDP port ngunit limitahan sa 500 PPS
udp dport 33434-33524 \
limitasyon rate 500/segundo \
counter \
tanggapin \
puna "Pahintulutan ang palabas na UDP traceroute na limitado sa 500 PPS"
## Pahintulutan ang mga papalabas na HTTP at HTTPS na koneksyon
tcp dport { http, https } ct state new \
counter \
tanggapin \
puna "Pahintulutan ang mga papalabas na HTTP at HTTPS na koneksyon"
## Pahintulutan ang pagsumite ng outbound na SMTP
tcp dport submission ct state new \
counter \
tanggapin \
puna "Pahintulutan ang pagsumite ng outbound SMTP"
## Pahintulutan ang mga papalabas na kahilingan sa DNS
udp dport 53 \
counter \
tanggapin \
puna "Pahintulutan ang mga papalabas na UDP DNS na kahilingan"
tcp dport 53 \
counter \
tanggapin \
puna "Pahintulutan ang mga hiling na papalabas na TCP DNS"
## Pahintulutan ang mga papalabas na kahilingan sa NTP
udp dport 123 \
counter \
tanggapin \
puna "Pahintulutan ang mga papalabas na kahilingan sa NTP"
## Mag-log ng anumang walang kaparis na trapiko ngunit limitasyon ng rate sa pag-log sa maximum na 60 mensahe/minuto
## Ilalapat ang default na patakaran sa walang kapantay na trapiko
limitasyon rate 60/minutong pagsabog 100 mga pakete \
log prefix "LABAS - Ihulog:" \
puna "Mag-log ng anumang walang kaparis na trapiko"
## Bilangin ang walang kaparis na trapiko
counter \
puna “Bilangin ang anumang walang kapantay na trapiko”
}
}
# Pangunahing talahanayan ng pag-filter ng NAT
table inet nat {
# Mga Panuntunan para sa pre-routing ng trapiko ng NAT
chain prerouting {
type nat hook prerouting priority dstnat; pagtanggap ng patakaran
}
# Mga Panuntunan para sa post-routing ng trapiko ng NAT
# Ang talahanayang ito ay pinoproseso bago ang Firezone post-routing chain
chain postrouting {
type nat hook postrouting priority srcnat – 5; pagtanggap ng patakaran
}
}
Ang firewall ay dapat na naka-imbak sa nauugnay na lokasyon para sa pamamahagi ng Linux na tumatakbo. Para sa Debian/Ubuntu ito ay /etc/nftables.conf at para sa RHEL ito ay /etc/sysconfig/nftables.conf.
Ang nftables.service ay kailangang i-configure upang magsimula sa boot (kung hindi pa) itinakda:
systemctl paganahin ang nftables.service
Kung gumagawa ng anumang mga pagbabago sa template ng firewall ang syntax ay maaaring mapatunayan sa pamamagitan ng pagpapatakbo ng check command:
nft -f /path/to/nftables.conf -c
Tiyaking i-validate ang firewall na gumagana gaya ng inaasahan dahil maaaring hindi available ang ilang feature ng nftables depende sa release na tumatakbo sa server.
_______________________________________________________________
Ang dokumentong ito ay nagpapakita ng pangkalahatang-ideya ng telemetry na kinokolekta ng Firezone mula sa iyong self-host na instance at kung paano ito i-disable.
Zone ng sunog umaasa sa telemetry upang unahin ang aming roadmap at i-optimize ang mga mapagkukunan ng engineering na mayroon kami upang gawing mas mahusay ang Firezone para sa lahat.
Ang telemetry na kinokolekta namin ay naglalayong sagutin ang mga sumusunod na tanong:
May tatlong pangunahing lugar kung saan kinokolekta ang telemetry sa Firezone:
Sa bawat isa sa tatlong kontekstong ito, kinukuha namin ang pinakamababang halaga ng data na kinakailangan upang masagot ang mga tanong sa seksyon sa itaas.
Kinokolekta lang ang mga email ng admin kung tahasan kang mag-opt in sa mga update ng produkto. Kung hindi, ang personal na nakakapagpakilalang impormasyon ay hindi kailanman tinipon
Ang Firezone ay nag-iimbak ng telemetry sa isang self-host na halimbawa ng PostHog na tumatakbo sa isang pribadong Kubernetes cluster, na maa-access lang ng Firezone team. Narito ang isang halimbawa ng isang telemetry event na ipinadala mula sa iyong instance ng Firezone sa aming telemetry server:
{
"Id": “0182272d-0b88-0000-d419-7b9a413713f1”,
"timestamp": “2022-07-22T18:30:39.748000+00:00”,
“kaganapan”: “fz_http_started”,
“distinct_id”: “1ec2e794-1c3e-43fc-a78f-1db6d1a37f54”,
"ari-arian":{
“$geoip_city_name”: "Ashburn",
“$geoip_continent_code”: “NA”,
“$geoip_continent_name”: "Hilagang Amerika",
“$geoip_country_code”: “US”,
“$geoip_country_name”: "Estados Unidos",
“$geoip_latitude”: 39.0469,
“$geoip_longitude”: -77.4903,
“$geoip_postal_code”: "20149",
“$geoip_subdivision_1_code”: “VA”,
“$geoip_subdivision_1_name”: “Virginia”,
“$geoip_time_zone”: “Amerika/New_York”,
“$ip”: "52.200.241.107",
“$plugins_deferred”: []
“$plugins_failed”: []
“$plugins_succeeded”: [
“GeoIP (3)”
],
“distinct_id”: “1zc2e794-1c3e-43fc-a78f-1db6d1a37f54”,
“fqdn”: “awsdemo.firezone.dev”,
"bersyon_kernel": "linux 5.13.0",
"bersyon": "0.4.6"
},
“Elements_chain”: ""
}
NOTA
Ang Firezone development team umaasa sa analytics ng produkto upang gawing mas mahusay ang Firezone para sa lahat. Ang pag-iwan sa telemetry na pinagana ay ang nag-iisang pinakamahalagang kontribusyon na maaari mong gawin sa pag-unlad ng Firezone. Iyon ay sinabi, nauunawaan namin na ang ilang mga gumagamit ay may mas mataas na privacy o mga kinakailangan sa seguridad at mas gugustuhin na i-disable ang telemetry nang buo. Kung ikaw yan, ipagpatuloy mo ang pagbabasa.
Ang telemetry ay pinagana bilang default. Upang ganap na i-disable ang telemetry ng produkto, itakda ang sumusunod na opsyon sa configuration sa false sa /etc/firezone/firezone.rb at patakbuhin ang sudo firezone-ctl reconfigure upang kunin ang mga pagbabago.
default['firezone']['telemetry']['pinagana'] = hindi totoo
Iyon ay ganap na hindi paganahin ang lahat ng telemetry ng produkto.
Hailbytes
9511 Queens Guard Ct.
Laurel, MD 20723
Telepono: (732) 771-9995
Email: info@hailbytes.com