Linux પર ફાયરવોલ કમ્પ્યુટર સિસ્ટમને સુરક્ષિત કરવામાં મહત્વપૂર્ણ ભૂમિકા ભજવે છે. તે અવરોધ તરીકે કાર્ય કરે છે, નેટવર્ક ટ્રાફિકને નિયંત્રિત કરે છે અને ફિલ્ટર કરે છે જેથી સિસ્ટમને અનધિકૃત ઍક્સેસ, હુમલાઓ અને અન્ય જોખમોથી સુરક્ષિત કરી શકાય. યોગ્ય રીતે ગોઠવેલ ફાયરવોલ વિના, સર્વર વિવિધ પ્રકારના સાયબર હુમલાઓ માટે સંવેદનશીલ બની શકે છે, જે ડેટા સુરક્ષા અને ગોપનીયતા માટે ગંભીર પરિણામો તરફ દોરી જાય છે.
આ લેખમાં, આપણે Linux ફાયરવોલને ગોઠવવા માટેના બે મુખ્ય સાધનો જોઈશું: firewalld અને iptables. આપણે તેમની સુવિધાઓ, કાર્યક્ષમતા અને ફાયદાઓનું તુલનાત્મક વિશ્લેષણ કરીશું. વધુમાં, અમે આ દરેક સાધનોને સેટ કરવા અને તેનો ઉપયોગ કરવા માટે વિગતવાર સૂચનાઓ પ્રદાન કરીશું, તેમજ Linux પ્લેટફોર્મ પર ફાયરવોલ સાથે તમારી સિસ્ટમને સુરક્ષિત કરવા માટેની શ્રેષ્ઠ પદ્ધતિઓની ચર્ચા કરીશું. બધી ક્રિયાઓ a પર દર્શાવવામાં આવશે. વર્ચ્યુઅલ સર્વર રુટ એક્સેસ સાથે.
Linux પર firewalld ને ગોઠવી રહ્યા છીએ
ફાયરવાલલ્ડ (ફાયરવોલ ડેમન) એ લિનક્સ ઓપરેટિંગ સિસ્ટમ્સમાં ફાયરવોલનું સંચાલન કરવા માટેનો એક પ્રોગ્રામ છે. તે ફાયરવોલ નિયમોને ગોઠવવા, નેટવર્ક એપ્લિકેશનોના જોડાણોને મંજૂરી આપવા અથવા અવરોધિત કરવા માટે વપરાશકર્તા ઇન્ટરફેસ પ્રદાન કરે છે. તે મોટાભાગના સર્વર વિતરણોમાં ડિફોલ્ટ રૂપે પહેલાથી ઇન્સ્ટોલ કરેલું હોય છે. જો ફાયરવોલ્ડ પહેલાથી ઇન્સ્ટોલ કરેલું ન હોય, તો તે વિતરણના સત્તાવાર ભંડારોમાંથી સ્વતંત્ર રીતે ઇન્સ્ટોલ કરી શકાય છે.
Red Hat સિસ્ટમો (જેમ કે RHEL, CentOS, Fedora) માટે સ્થાપન આ આદેશ સાથે કરવામાં આવે છે:
yum install firewalld
ડેબિયન/ઉબુન્ટુ માટે:
apt-get install firewalld
ઇન્સ્ટોલેશન પછી, તેને આદેશ સાથે તરત જ શરૂ અને સક્રિય કરી શકાય છે:
systemctl start firewalld
આગળ, તમારે સ્ટાર્ટઅપમાં સેવા ઉમેરવાની જરૂર છે:
systemctl enable firewalld
આ બિંદુએ, અમે ufw ને અક્ષમ કરવાની ભલામણ કરીએ છીએ, કારણ કે આ ટૂલનો ફાયરવોલ્ડ અથવા iptables સાથે એક સાથે ઉપયોગ કરવાની ભલામણ કરવામાં આવતી નથી. સ્થિતિ તપાસો:
systemctl status ufw
તેને રોકવા માટે, આદેશ દાખલ કરો:
systemctl stop ufw
સંપૂર્ણ નિષ્ક્રિયકરણ માટે:
ufw disable
આ ક્રિયાઓ પછી, તમે ફાયરવોલ્ડને ગોઠવવા માટે આગળ વધી શકો છો.
સૌ પ્રથમ, ટ્રસ્ટ ઝોન વ્યાખ્યાયિત કરવા જરૂરી છે. નેટવર્ક ઇન્ટરફેસ માટે ટ્રસ્ટનું સ્તર નક્કી કરવા માટે ફાયરવોલ્ડ ઝોનની વિભાવનાનો ઉપયોગ કરે છે. દરેક ઇન્ટરફેસને એક ઝોન સોંપવામાં આવે છે, અને ઝોનના આધારે ફાયરવોલ નિયમો લાગુ કરવામાં આવે છે. બધા ઉપલબ્ધ ઝોનની સૂચિ આ આદેશ સાથે ખોલવામાં આવે છે:
firewall-cmd --get-zones
સામાન્ય રીતે, 4 મુખ્ય ઝોનનો ઉપયોગ થાય છે:
- જાહેર: આ ઝોન એવા નેટવર્ક્સ માટે છે જેને તમે અસુરક્ષિત માનો છો;
- ખાનગી: હોમ નેટવર્ક્સ અથવા અન્ય વિશ્વસનીય નેટવર્ક કનેક્શન્સ પર લાગુ પડે છે;
- આંતરિક: આંતરિક નેટવર્ક્સ માટે વપરાય છે, જેમ કે સંસ્થા અથવા કોર્પોરેટ નેટવર્કની અંદરના નેટવર્ક્સ;
- ડીએમઝેડ: આ ઝોન એ છે જ્યાં સામાન્ય રીતે સર્વર્સ મૂકવામાં આવે છે જે ઇન્ટરનેટ પરથી સુલભ હોવા જોઈએ.
જોકે, આ ફક્ત એક ઉદાહરણ છે. તમે આ આદેશનો ઉપયોગ કરીને તમારો પોતાનો ઝોન ઉમેરી શકો છો:
firewall-cmd --permanent --new-zone=nameyourzone
ઉમેર્યા પછી, ફરીથી લોડ કરવું જરૂરી છે:
firewall-cmd --reload
ઝોન કાઢી નાખવા માટે, સમાન પદ્ધતિનો ઉપયોગ થાય છે
firewall-cmd --permanent --delete-zone=nameyourzone
ઝોન વ્યાખ્યાયિત કર્યા પછી, જરૂરી સેવાઓ અને પોર્ટ્સ માટે ટ્રાફિકને મંજૂરી આપવી જરૂરી છે. ચોક્કસ સેવાને મંજૂરી આપવા માટે, આ આદેશનો ઉપયોગ કરો:
firewall-cmd --zone=public --add-service=name
જ્યાં નામ આ સેવાનું નામ છે. ઉદાહરણ તરીકે, Apache માટે ટ્રાફિકને મંજૂરી આપવા માટે:
firewall-cmd --zone=public --add-service=http
માન્ય પોર્ટ વ્યાખ્યાયિત કરવા માટે, આદેશનો ઉપયોગ કરો:
firewall-cmd --zone=public --add-port=number/protocol
ઉદાહરણ તરીકે, SSH માટે પ્રમાણભૂત 22 પોર્ટ આના જેવો દેખાશે:
firewall-cmd --zone=public --add-port=22/tcp
આ તબક્કે, મુખ્ય નિયમો પહેલેથી જ બનાવવામાં આવ્યા છે. આગળ, સ્રોત, ગંતવ્ય, પોર્ટ અને અન્ય માપદંડોના આધારે ટ્રાફિક કેવી રીતે પ્રક્રિયા કરવામાં આવશે તે નક્કી કરો. નિયમ ઉમેરવા માટે ( જાહેર ઉદાહરણ તરીકે ઝોન):
firewall-cmd --zone=public rule
ઉદાહરણ તરીકે, કોઈપણ સ્ત્રોતમાંથી પોર્ટ 80 (HTTP) પર આવતા ટ્રાફિકને મંજૂરી આપવા માટે:
firewall-cmd --zone=public --add-port=80/tcp --permanent
નિયમ દૂર કરવા માટે:
firewall-cmd --permanent --remove-rule=rule_specification
જ્યાં નિયમ નિયમનો પ્રકાર છે (દા.ત., પોર્ટ, સર્વિસ, રિચ-રુલ, વગેરે), અને નિયમ_સ્પષ્ટીકરણ નિયમનું જ સ્પષ્ટીકરણ છે.
ફાયરવોલ્ડ રૂપરેખાંકનમાં ફેરફારો કર્યા પછી, તેમને સાચવવા અને લાગુ કરવા જરૂરી છે. ફેરફારો સાચવવા માટે, આ આદેશનો ઉપયોગ કરો:
firewall-cmd --runtime-to-permanent
ફેરફારો લાગુ કરવા માટે:
firewall-cmd --reload
સેટઅપ પૂર્ણ કર્યા પછી, તમે બધા નિયમોની સૂચિ ખોલીને પસંદ કરેલા પરિમાણો ચકાસી શકો છો:
firewall-cmd --list-all
જો કોઈ સમસ્યા ઊભી થાય, તો ફાયરવોલ્ડ લોગને આ આદેશથી તપાસો:
journalctl -u firewalld
નોંધ: અમે કનેક્શન સેટ કરવા માટે ફક્ત સામાન્ય અલ્ગોરિધમનો જ ઉલ્લેખ કર્યો છે. આ ટૂલમાં વ્યાપક કાર્યક્ષમતા છે. બધા ઉપલબ્ધ વિકલ્પોની સંપૂર્ણ માહિતી માટે, તમે સત્તાવાર દસ્તાવેજીકરણ અથવા મદદ ખોલો:
firewall-cmd --help
Linux પર iptables ને ગોઠવી રહ્યા છીએ
ફાયરવોલ્ડથી વિપરીત, iptables એ Linux માં ફાયરવોલનું સંચાલન કરવા માટે એક જૂનું પરંતુ હજુ પણ વ્યાપકપણે ઉપયોગમાં લેવાતું સાધન છે. તે Linux કર્નલ સ્તરે પેકેટ ફિલ્ટરિંગ નિયમો માટે વધુ સીધો અને લવચીક અભિગમ પૂરો પાડે છે. જોકે, iptables ને ફાયરવોલ્ડની તુલનામાં વધુ અદ્યતન જ્ઞાન અને અનુભવની જરૂર છે, જે તેને નવા નિશાળીયા માટે ઓછું સુલભ બનાવે છે. ટૂલના પૂર્વ-સ્થાપિત સંસ્કરણને આ આદેશ સાથે તપાસો:
iptables -V
જો ટૂલ ઇન્સ્ટોલ કરેલું ન હોય, તો તેને ઇન્સ્ટોલ કરવાની જરૂર પડશે. ઉબુન્ટુ, ડેબિયન પર ઇન્સ્ટોલેશન માટેનો આદેશ:
apt install iptables
રેડ હેટ સિસ્ટમ્સ માટે (દા.ત., સેન્ટોસ, ફેડોરા):
yum install iptables
સ્થાપન પછી સક્રિયકરણ માટેનો આદેશ:
systemctl start iptables
સ્ટાર્ટઅપમાં ઉમેરવા માટે, ચલાવો:
systemctl enable iptables
iptables રૂપરેખાંકન શરૂ કરતા પહેલા, તે કેવી રીતે કાર્ય કરે છે તે સમજવું મહત્વપૂર્ણ છે. આ પ્રોગ્રામના સિન્ટેક્સ દ્વારા મદદ મળે છે. તે નીચે મુજબ દેખાય છે:
iptables -t table action chain additional_parameters
ચાલો દરેક વસ્તુમાં વધુ ઊંડાણપૂર્વક જઈએ.
Iptables માં ચાર મુખ્ય કોષ્ટકો છે: ફિલ્ટર, નેટ, મેંગલ અને કાચો. દરેક ચોક્કસ પ્રકારના પેકેટોની પ્રક્રિયા કરવા માટે રચાયેલ છે અને તેના પોતાના નિયમોની સાંકળ છે:
- ફિલ્ટર: આ સૌથી વધુ ઉપયોગમાં લેવાતું કોષ્ટક છે, જેમાં પેકેટ ફિલ્ટરિંગ નિયમો શામેલ છે. તેનો ઉપયોગ પેકેટોને મંજૂરી આપવી કે નકારવી તે અંગે નિર્ણય લેવા માટે થાય છે.
- નાટ: આ કોષ્ટકનો ઉપયોગ પેકેટોમાં નેટવર્ક સરનામાં અને પોર્ટ્સને સુધારવા માટે થાય છે. તેનો ઉપયોગ ઘણીવાર માસ્કરેડિંગ (NAT) સેટ કરવા માટે થાય છે.
- મંગલ: આ કોષ્ટકમાં, તમે પેકેટ હેડરોમાં ફેરફાર કરી શકો છો. તેનો ઉપયોગ વિશિષ્ટ પેકેટ કામગીરી માટે થાય છે, જેમ કે માર્કિંગ.
- કાચા: આ કોષ્ટકનો ઉપયોગ કનેક્શન ટ્રેકિંગ સિસ્ટમમાંથી પસાર થાય તે પહેલાં લાગુ પડતા નિયમોને ગોઠવવા માટે થાય છે. તેનો ઉપયોગ સામાન્ય રીતે એવા નિયમો સેટ કરવા માટે થાય છે જેને ટ્રેકિંગ સિસ્ટમ દ્વારા સુધારવા ન જોઈએ, જેમ કે ચોક્કસ સરનામાંઓ પરથી પેકેટ છોડવા.
દરેક કોષ્ટકમાં સાંકળોનો સમૂહ હોય છે. સાંકળો એ નિયમોનો ક્રમ છે જે ક્રમિક રીતે તપાસવામાં આવે છે. ત્રણ પૂર્વવ્યાખ્યાયિત સાંકળો છે:
- ઇનપુટ (ઇનકમિંગ). આ સાંકળના નિયમો નક્કી કરે છે કે આવનારા પેકેટોનું શું કરવું.
- આઉટપુટ (આઉટગોઇંગ). આ સાંકળ તમારા કમ્પ્યુટર દ્વારા નેટવર્ક પરના અન્ય ઉપકરણો અથવા કમ્પ્યુટર્સને મોકલવામાં આવતા બધા પેકેટોને લાગુ પડે છે.
- ફોરવર્ડ (ફોરવર્ડિંગ). આ સાંકળના નિયમો ફોરવર્ડ કરેલા પેકેટોનું શું કરવું તે સ્પષ્ટ કરે છે.
અંતે, દરેક સાંકળમાં કેટલીક ક્રિયા (લક્ષ્ય) હોય છે. વ્યવહારમાં, 5 મુખ્ય ક્રિયાઓનો ઉપયોગ થાય છે:
- સ્વીકારો: પેકેટને ફાયરવોલમાંથી પસાર થવા દો.
- ડ્રોપ: પેકેટને નકારી કાઢો અને કોઈ પ્રતિભાવ આપ્યા વિના તેને કાઢી નાખો.
- અસ્વીકાર કરો: પેકેટ નકારો અને મોકલનારને ICMP ભૂલ સંદેશ મોકલો.
- લોગ: પેકેટને સિસ્ટમ લોગમાં લોગ કરો અને બીજી ક્રિયા કરો (દા.ત., ACCEPT અથવા DROP).
- પાછા ફરો: વર્તમાન સાંકળમાં નિયમો તપાસવાનું બંધ કરો અને કોલિંગ સાંકળ પર પાછા ફરો (જો લાગુ હોય તો).
સેટઅપ શરૂ કરવા માટે, હાલના નિયમોની સૂચિ આ આદેશ સાથે ખોલો:
iptables -L
Iptables ને ગોઠવવા માટેની માર્ગદર્શિકા તરીકે, ચાલો સૌથી વધુ ઉપયોગમાં લેવાતા આદેશોના વ્યવહારુ ઉદાહરણો જોઈએ. સુવિધા માટે, આપણે ચોક્કસ સાંકળના આધારે ઉદાહરણોને 3 જૂથોમાં વિભાજીત કરીશું.
ચેઇન ઇનપુટ:
- પોર્ટ 80 પર TCP પ્રોટોકોલ દ્વારા આવનારા ટ્રાફિકને મંજૂરી આપો:
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
2. પોર્ટ 22 પર UDP પ્રોટોકોલ દ્વારા આવનારા ટ્રાફિકને મંજૂરી આપો:
iptables -A INPUT -p udp --dport 22 -j ACCEPT
3. ચોક્કસ IP સરનામાંથી આવતા ટ્રાફિકને અવરોધિત કરો:
iptables -A INPUT -s 192.168.1.100 -j DROP
ચેઇન OUTPUT:
- પોર્ટ 443 પર TCP પ્રોટોકોલ દ્વારા આઉટગોઇંગ ટ્રાફિકને મંજૂરી આપો:
iptables -A OUTPUT -p tcp --dport 443 -j ACCEPT
2. પોર્ટ 80 પર UDP પ્રોટોકોલ દ્વારા આઉટગોઇંગ ટ્રાફિકને મંજૂરી આપો:
iptables -A OUTPUT -p udp --dport 80 -j ACCEPT
3. ચોક્કસ પોર્ટ પર જતા ટ્રાફિકને અવરોધિત કરો (ઉદાહરણ તરીકે, 21):
iptables -A OUTPUT -p tcp --dport 21 -j DROP
ચેઇન આગળ:
- ચોક્કસ શ્રેણીના IP સરનામાંઓમાંથી ફોરવર્ડ કરેલા ટ્રાફિકને અવરોધિત કરો:
iptables -A FORWARD -s 172.16.0.0/24 -j DROP
2. ચોક્કસ નેટવર્ક ઇન્ટરફેસમાંથી પેકેટોના ફોરવર્ડિંગને અવરોધિત કરો:
iptables -A FORWARD -i eth1 -j DROP
3. ચોક્કસ પોર્ટ માટે એક સાથે જોડાણોની સંખ્યા મર્યાદિત કરો (આ ઉદાહરણમાં, પોર્ટ 10 પર પ્રતિ મિનિટ 80 જોડાણો):
iptables -A INPUT -p tcp --dport 80 -m limit --limit 10/minute -j ACCEPT
જેમ તમે જોઈ શકો છો, દરેક અલગ કેસમાં, એક વધારાનો દલીલ (આદેશ) વપરાય છે. શક્ય દલીલોની સંપૂર્ણ સૂચિ અને ટૂલની કાર્યક્ષમતા માટે એકંદર સમર્થન મેળવવા માટે, દાખલ કરો:
iptables -h
સેટિંગ્સ સાચી છે તેની ખાતરી કરવા માટે, નિયમોની સૂચિ જોવા માટે આદેશ ફરીથી દાખલ કરો:
iptables -L
ચોક્કસ નિયમ કાઢી નાખવા માટે, આ આદેશનો ઉપયોગ કરો:
iptables -D chain rule_number
ઉદાહરણ તરીકે, જો તમે INPUT ચેઇનમાંથી નિયમ નંબર 1 કાઢી નાખવા માંગતા હો, તો આદેશ આના જેવો દેખાશે:
iptables -D INPUT 1
એક આદેશથી બધા નિયમો કાઢી નાખવા માટે:
iptables -F
મહત્વપૂર્ણ નોંધ: સિસ્ટમ અથવા સેવા રીબુટ કર્યા પછી iptables નિયમો આપમેળે સાચવવામાં આવતા નથી. નિયમો સાચવવા માટે, તેમને રૂપરેખાંકન ફાઇલમાં ઉમેરવા અને રીબુટ કર્યા પછી પુનઃસ્થાપિત કરવાની જરૂર છે. આ iptables-સેવ અને iptables-રીસ્ટોર ઉપયોગિતાઓ આમાં મદદ કરી શકે છે. નિયમો સાચવવા માટે, આદેશ દાખલ કરો:
iptables-save > /etc/iptables/rules.v4
આ rules.v4 ફાઇલમાં વર્તમાન iptables નિયમો સાચવે છે. રીબૂટ પછી પુનઃસ્થાપિત કરવા માટે, દાખલ કરો:
iptables-restore < /etc/iptables/rules.v4
આ આદેશ rules.v4 ફાઇલમાંથી નિયમોને પુનઃસ્થાપિત કરે છે.
ઉપસંહાર
ફાયરવોલ્ડ અથવા iptables નો ઉપયોગ કરીને Linux પર ફાયરવોલ ગોઠવવું એ સર્વર સુરક્ષા સુનિશ્ચિત કરવાનો એક મહત્વપૂર્ણ પાસું છે. બંને ટૂલ્સ નેટવર્ક ટ્રાફિકનું સંચાલન કરવા અને સિસ્ટમને અનધિકૃત ઍક્સેસ અને સાયબર હુમલાઓથી બચાવવા માટે વિશ્વસનીય માધ્યમો પ્રદાન કરે છે. ફાયરવોલ્ડ અને iptables વચ્ચેની પસંદગી વપરાશકર્તાની ચોક્કસ જરૂરિયાતો અને પસંદગીઓ પર આધાર રાખે છે, તેમની વિવિધ કાર્યક્ષમતા અને શક્તિઓને ધ્યાનમાં લેતા.