UFW firewall कसा सेट करायचा
VPS वर UFW वापरून सुरक्षित firewall सेट करा. SSH access न गमावता ports allow करणे आणि default-deny policy लागू करण्याचे सोपे पायऱ्या येथे पहा.
UFW काय आहे आणि तुम्हाला त्याची गरज का आहे
UFW म्हणजे Uncomplicated Firewall, आणि हे नाव अगदी योग्य आहे. Linux kernel मध्ये आधीपासूनच firewall असते, UFW हे त्याचाच एक सोपा front end आहे. त्यामुळे तुम्हाला raw rules लिहिण्याऐवजी ufw allow 22/tcp सारख्या सोप्या commands टाईप करता येतात. नवीन VPS वर, default प्रमाणे सर्व listening services इंटरनेटवरून एक्सेस करता येतात. Firewall हे उलट काम करते: ते आधी सर्व काही deny करते आणि त्यानंतर तुम्ही वापरता ते मोजके ports allow करते. फक्त चार commands मध्ये तुम्ही तुमची exposure लक्षणीयरीत्या कमी करू शकता.
UFW वापरण्यापूर्वी, कोणती services listening मध्ये आहेत हे जाणून घ्या, कारण firewall त्या services वर नियंत्रण ठेवते. ss -tlnp वापरून काय listening मध्ये आहे ते वाचणे हा योग्य पहिला टप्पा आहे.
स्वतःला लॉक होण्यापासून वाचवणारा एक महत्त्वाचा नियम
अनेक लोक firewalls वापरण्यास घाबरतात कारण ते ही चूक करतात. तुम्ही default-deny policy सह UFW enable करता, परंतु तुम्ही SSH ला परवानगी (allow) देत नाही. यामुळे firewall सुरू होताच तुमचे स्वतःचे connection तुटते आणि तुम्ही पुन्हा लॉग इन करू शकत नाही. UFW enable करण्यापूर्वी नेहमी SSH ला allow करा, जेणेकरून ही चूक टाळता येईल. खालील पायऱ्या सुरक्षित क्रमाने या प्रक्रिया पूर्ण करतात.
जर ही चूक झाली तरी तुम्ही अडकलेले नाही: तुमच्या provider कडील web console, VNC किंवा serial द्वारे काम करते. हे SSH वर अवलंबून नसते, त्यामुळे तुम्ही तिथे लॉग इन करून ufw disable चालवू शकता किंवा आवश्यक rule जोडू शकता.
Step 1: default policies सेट करा
सर्वात आधी, UFW ला सर्व incoming traffic deny करण्यासाठी आणि सर्व outgoing traffic allow करण्यासाठी सूचना द्या:
sudo ufw default deny incoming
sudo ufw default allow outgoingdeny incoming हा सर्वात महत्त्वाचा भाग आहे. याचा अर्थ असा की, ज्या port साठी कोणतीही explicit allow rule नाही, तो बाहेरून बंद असेल; जरी त्या port वर एखादी service listen करत असली तरीही. allow outgoing मुळे तुमचा server updates आणि इतर कामांसाठी इंटरनेटशी सामान्यपणे कनेक्ट होऊ शकतो. या दोन commands फक्त policy बदलतात; step 3 मध्ये UFW enable करेपर्यंत कोणतीही rule लागू केली जात नाही.
Step 2: तुम्हाला आवश्यक असलेले ports allow करा
कनेक्शन चालू ठेवण्यासाठी, enable करण्यापूर्वी SSH open करा:
sudo ufw allow 22/tcpUFW तुमच्यासाठी SSH ला rate-limit देखील करू शकते: sudo ufw limit 22/tcp मुळे port allow होते, परंतु 30 सेकंदात सहा किंवा अधिक connections करणाऱ्या कोणत्याही address ला block केले जाते. यामुळे अतिरिक्त software शिवाय brute-force scripts रोखता येतात.
जर तुम्ही web server चालवत असाल, तर HTTP आणि HTTPS देखील allow करा:
sudo ufw allow 80/tcp
sudo ufw allow 443/tcpतुम्ही सार्वजनिकरित्या (public) जे सर्व्ह करता तेवढेच allow करा. Postgres सारख्या database ला port 5432 वर 'allow rule' देणे टाळावे. त्याऐवजी ते 127.0.0.1 ला bind करा, जेणेकरून ते फक्त त्याच machine वर उपलब्ध असेल. तुम्ही उघडलेले प्रत्येक port ही एक दरवाजं आहे ज्याचे संरक्षण तुम्हाला करावे लागेल, म्हणून यादी संक्षिप्त ठेवा.
तुम्ही तुमच्या server साठी ufw commands ची पूर्ण sequence येथे तयार करू शकता आणि नंतर ते क्रमाने रन करू शकता:
Step 3: Enable, and confirm it is on
sudo ufw enableही कमांड सध्याच्या SSH connections मध्ये व्यत्यय आणू शकते असा इशारा येतो. तुम्ही step 2 मध्ये 22/tcp ला परवानगी दिली असल्यामुळे, तुमचे session सुरू राहील. निकाल तपासा:
sudo ufw status verboseStatus: active
Default: deny (incoming), allow (outgoing)
To Action From
-- ------ ----
22/tcp ALLOW IN Anywhere
22/tcp (v6) ALLOW IN Anywhere (v6)
80/tcp ALLOW IN Anywhereयेथे दोन गोष्टी वाचा. Status: active चा अर्थ firewall कार्यरत आहे असा होतो. आणि प्रत्येक rule दोनदा दिसते: एकदा साध्या स्वरूपात आणि एकदा (v6) सह. याचा अर्थ UFW, IPv4 सोबतच IPv6 ला देखील कव्हर करत आहे. जर (v6) lines दिसत नसतील, तर तुमचा IPv6 विभाग unmanaged आहे. याबद्दल अधिक माहिती the IPv6 firewall post मध्ये दिली आहे.
नंतर नियम व्यवस्थापित करणे
एखादा नियम काढून टाकण्यासाठी, तो क्रमांकासह पाहण्यासाठी:
sudo ufw status numbered
sudo ufw delete 3एखाद्या विशिष्ट address कडूनच port ला परवानगी देण्यासाठी, ही पद्धत admin service फक्त तुमच्या स्वतःच्या IP कडे मर्यादित ठेवण्यासाठी उपयुक्त आहे:
sudo ufw allow from 10.0.0.24 to any port 5432 proto tcpFirewall हा संरक्षणाचा एक स्तर आहे. तो कोणत्या port कडे traffic येईल हे नियंत्रित करतो, परंतु SSH सारख्या उघड्या असलेल्या port वर होणाऱ्या सततच्या attacks (hammering) रोखू शकत नाही. त्यासाठी, वारंवार हल्ला करणाऱ्यांना ban करण्यासाठी Fail2ban in front of SSH वापरा. Defence in depth म्हणजे प्रत्येक स्तर इतर स्तर काय करू शकत नाहीत, ते भरून काढतो.
तुम्हाला ports काय असतात आणि services कशा प्रकारे listen करतात हे माहित असेल तरच firewall वापरणे अर्थपूर्ण ठरते. तसेच, firewall configure करणे हा the first 10 minutes on a new VPS मधील एक महत्त्वाचा टप्पा आहे.
FAQ
UFW सुरू केल्यामुळे माझी SSH session डिस्कनेक्ट होईल का?
जर तुम्ही आधी SSH allow केला, तर नाही. sudo ufw enable करण्यापूर्वी sudo ufw allow 22/tcp चालवा. firewall आता port 22 ला परवानगी देत असल्याने तुमचे कनेक्शन टिकून राहील. धोका तेव्हा असतो जेव्हा तुम्ही SSH allow rule शिवाय default-deny firewall सुरू करता, ज्यामुळे तुमचे कनेक्शन तुटते. असे झाल्यास, तुमच्या provider च्या VNC किंवा serial console द्वारे log in करा आणि ufw disable चालवा.
VPS वर मी कोणते ports उघडे (open) ठेवले पाहिजेत?
केवळ तेच ports जे तुम्ही सार्वजनिकरित्या (publicly) वापरणार आहात. सर्व्हर व्यवस्थापित करण्यासाठी SSH (22/tcp), आणि जर तुम्ही website चालवत असाल तर HTTP आणि HTTPS (80/tcp, 443/tcp). बाकी सर्व गोष्टी deny ठेवा. databases सारख्या internal services ने 127.0.0.1 ला bind केले पाहिजे आणि त्यांच्यासाठी कोणतीही firewall rule नसावी, जेणेकरून त्या network वरून कधीही reachable राहणार नाहीत.
UFW मध्ये IPv6 सपोर्ट आहे का?
आधुनिक Ubuntu मध्ये, हो: /etc/default/ufw मध्ये IPV6=yes सेट केलेले असते, त्यामुळे प्रत्येक rule दोन्ही stacks ला लागू होते आणि (v6) suffix सह ufw status IPv6 rules दाखवते. यामध्ये काय चुका होऊ शकतात याची माहिती the IPv6 firewall trap मध्ये दिली आहे.
मी UFW rule कशी काढू?
index numbers सह rules पाहण्यासाठी sudo ufw status numbered चालवा, त्यानंतर sudo ufw delete N चालवा (येथे N म्हणजे तुम्हाला काढायचा असलेला rule number आहे). तुम्ही specification वापरून देखील delete करू शकता, उदाहरणार्थ sudo ufw delete allow 80/tcp.
मी एखादा port फक्त एकाच IP address साठी कसा allow करू?**
साध्या allow rule ऐवजी from rule वापरा. PostgreSQL ला फक्त तुमच्या office address कडून प्रवेश देण्यासाठी sudo ufw allow from 10.0.0.10 to any port 5432 proto tcp चालवा. default-deny policy मुळे, जोपर्यंत एखादा rule port उघडत नाही तोपर्यंत तो सर्वांसाठी बंद असतो, त्यामुळे ही from rule हीच एकमेव प्रवेश मार्ग आहे: संपूर्ण internet ब्लॉक राहील आणि फक्त तुम्ही दिलेला address प्रवेश मिळवू शकेल. सोबत साधा allow 5432/tcp rule जोडू नका, कारण त्याने port सर्वांसाठी उघडला जाईल. Database किंवा admin panel सुरक्षित ठेवण्यासाठी ही सर्वात सुरक्षित पद्धत आहे. sudo ufw status verbose ने याची खात्री करा, जे port च्या बाजूला source address दाखवते.