वेब इंटरफ़ेस का उपयोग करके IPFW में नियम जोड़ना

हमारे पास ApBS + nginx + php + mysql के साथ FreeBSD-7.4-RELEASE है

कभी-कभी ऐसा होता है कि आपको ssh के माध्यम से रिमोट एक्सेस प्राप्त करने की आवश्यकता होती है, लेकिन IP डेटा IPFW में पंजीकृत नहीं है। यह विभिन्न कारणों से हो सकता है। अन्य नेटवर्क और इतने पर।
हां, और ssh में सभी के लिए खुली पहुंच का कोई मतलब नहीं है, क्योंकि यह प्रत्यक्ष सुरक्षा जोखिम है। Ssh पोर्ट बदलने से भी काम नहीं चलेगा। बल्कि, यह होगा, लेकिन पहली बार। फिर पोर्ट स्कैनर अपना गंदा काम करेगा और ssh यूजरनेम / पासवर्ड चयन जारी रहेगा।

चूंकि रिमोट मशीन पर अपाचे + नगनेक्स + php + mysql का एक गुच्छा होता है जिसे आपको एक्सेस करने की आवश्यकता होती है (मैं अब इंस्टॉलेशन पर ध्यान नहीं दूंगा), समाधान ने निम्नलिखित को चुना:

1. पोर्ट 443 पर एक वर्चुअल होस्ट जोड़ा गया
2. प्रमाण पत्र बनाया
3. 2 फाइलें बनाई गईं जिनके साथ मैं आईपीएफडब्ल्यू में नियम जोड़ूंगा

index.php
<? $IP=$_SERVER['REMOTE_ADDR']; ?> <form action="ipfwadd.php" name="myform" method="post"> <table border="1"> <tr> <td> :</td><td><input type="text" name="rules" maxlength="15" size="5"></td> </tr> <tr> <td>IP:</td><td><? echo $IP ?> </tr> <tr> <td>pass/deny</td><td> <select name=passdeny size=1> <option value=pass>pass</option> <option value=deny>deny</option> </select> </td> </tr> <tr> <td>UDP/TCP:</td><td> <select name=tcpudp size=1> <option value=tcp>TCP</option> <option value=udp>UDP</option> </select> </td> </tr> <tr> <td>:</td><td><input type="text" name="ports" maxlength="6" size="8"></td> </tr> </table> <input name="Submit" type=submit value=" "> </form> 

ipfwadd.php
 <meta http-equiv="refresh" content="0; url=/"> <? $rules = $_POST['rules']; $IP = $_SERVER['REMOTE_ADDR']; $ports = $_POST['ports']; $tcpudp = $_POST['tcpudp']; $passdeny = $_POST['passdeny']; $grepip = shell_exec("sudo ipfw add $rules $passdeny $tcpudp from $IP to me $ports"); ?> 

4. इसके बाद, बंदरगाहों से सूडो डालें
[anton@raccoon ~]$ su -
Password:
[root@raccoon ~]# whereis sudoers
sudoers: /usr/ports/security/sudo/
[root@raccoon ~]# cd /usr/ports/security/sudo/
[root@raccoon /usr/ports/security/sudo]# make install

5. हम /usr/local/etc/sudoers संपादित करते हैं ताकि जिस उपयोगकर्ता से वेब सर्वर लॉन्च किया गया है, उसकी ipfw तक पहुंच हो। मेरे पास यह www उपयोगकर्ता है। तदनुसार, मैंने ऐसी एक पंक्ति को जोड़ा
www ALL=NOPASSWD:/etc/rc.d/ipfw, /sbin/ipfw

6. स्वाभाविक रूप से, http प्राधिकरण के साथ या प्रमाणपत्र के माध्यम से वर्चुअल होस्ट की रक्षा करना न भूलें

7. फिर हम वेब के माध्यम से ipfw में डेटा जोड़ने की कोशिश करते हैं। यदि सब कुछ सही ढंग से किया जाता है, तो संदेशों में हमें निम्नलिखित की तरह कुछ दिखाई देगा:
# cat /var/log/messages|grep ipfw
Feb 10 13:16:03 raccoon sudo: www : TTY=unknown ; PWD=/usr/local/www/ssl ; USER=root ; COMMAND=/sbin/ipfw add 150 pass tcp from 213.130.11.4 to me 80,88
Feb 11 20:24:06 raccoon sudo: www : TTY=unknown ; PWD=/usr/local/www/ssl ; USER=root ; COMMAND=/sbin/ipfw add 150 pass tcp from 88.155.65.100 to me 80,88
Feb 17 18:43:51 raccoon sudo: www : TTY=unknown ; PWD=/usr/local/www/ssl ; USER=root ; COMMAND=/sbin/ipfw add 150 pass tcp from 88.155.91.120 to me 80,88
Mar 3 22:19:02 raccoon sudo: www : TTY=unknown ; PWD=/usr/local/www/ssl ; USER=root ; COMMAND=/sbin/ipfw add 150 pass tcp from 88.155.8.131 to me 80,88
Mar 9 10:03:48 raccoon sudo: www : TTY=unknown ; PWD=/usr/local/www/ssl ; USER=root ; COMMAND=/sbin/ipfw add 150 pass tcp from 88.155.81.41 to me 80,88


वह मूल रूप से यह है। यह "मूर्ख से सुरक्षा" के बिना लिखा गया था, क्योंकि यह व्यक्तिगत रूप से अपने उद्देश्यों के लिए किया गया था। अब यह आसान है, एक फोन, टैबलेट और इतने पर होने से, कार्यशील नेटवर्क में शामिल होने के लिए

Source: https://habr.com/ru/post/In140207/


All Articles