Sysctl -w का उपयोग करके सीधे / खरीद के लिए लिखना


8

मैं अपने लिनक्स सर्वर के कर्नेल को कॉन्फ़िगर करने का प्रयास कर रहा हूं ताकि यह अधिक सुरक्षा के लिए राउटर के रूप में कार्य न करे। बात आगे के पैकेट की नहीं है।

मुझे यह मिल गया है:

echo 0 > /proc/sys/net/ipv4/ip_forward  

और इस:

sysctl -w net.ipv4.ip_forward=0  

जाहिर है दोनों एक ही काम करते हैं, लेकिन मुझे यकीन नहीं है कि उनके बीच वास्तविक अंतर क्या है। यदि संभव हो तो मैं प्रभावों को स्थायी बनाना चाहूंगा।


कोई अंतर नहीं, sysctl इको कमांड के समान है। बस आसान है।
वॉनब्रांड

जवाबों:


6

इसमें कोई फर्क नही है। sysctlलिनक्स पर आदेश में फ़ाइलों को सीधे लिखते हैं /proc/sys। यह sysctlसाबित करने के लिए स्रोत कोड से यह स्निपेट :

/*
 * Write a sysctl setting
 */
static int WriteSetting(const char *setting)
{
    /* ... */

    /* used to open the file */
    tmpname = xmalloc(equals - name + 1 + strlen(PROC_PATH));
    strcpy(tmpname, PROC_PATH);
    strncat(tmpname, name, (int) (equals - name));
    tmpname[equals - name + strlen(PROC_PATH)] = 0;
    /* change . to / */
    slashdot(tmpname + strlen(PROC_PATH), '.', '/');

    /* ... */

    fp = fopen(tmpname, "w");
    /* some error checking ... */
    rc = fprintf(fp, "%s\n", value);

    /* ... */
}

यदि आप कुछ स्थायी चाहते हैं, तो आपको /etc/sysctl.confएक फ़ाइल को संपादित करने या जोड़ने की आवश्यकता है /etc/sysctl.d(उदाहरण के लिए /etc/sysctl.d/99-disable-ip-forwarding.conf):

# Disable IP packet forwarding
net.ipv4.ip_forward = 0

वैसे, कुछ वितरण पहले से ही डिफ़ॉल्ट रूप से इसे स्पष्ट रूप से अक्षम करते हैं । उदाहरण के लिए आरएचईएल <= 6 या फेडोरा <= 15 में यह है /etc/sysctl.conf:

# Controls IP packet forwarding
net.ipv4.ip_forward = 0

Fedora 20 इसे अब और अक्षम नहीं करता है। में सेटिंग अग्रेषित नहीं है /etc/sysctl.conf, /etc/sysctl.d/या /usr/lib/sysctl.d/


क्या हमेशा डिफ़ॉल्ट रूप से अग्रेषित नहीं किया जाता है?
user1686

यही मैं भी सोचता हूं, लेकिन आप कभी नहीं जानते कि जंगली वितरण क्या हो सकता है :-)
क्रिस्टियान सियुपिटु

@ ग्रेविटी वास्तव में, मेरे वितरण में भी डिफ़ॉल्ट रूप से बंद है। मैं अब उलझन में हूं, क्या राउटर के रूप में चल रहे हमारे सिस्टम से बचने के लिए कोई अन्य कर्नेल कॉन्फ़िगरेशन है?
जॉन एम।

@ जॉनम: अगर डिफॉल्ट को डिसेबल कर दिया जाए तो क्या होगा?
क्रिस्टियन सियुपिटु

@CristianCiupitu, मुझे नहीं पता, मैं लिनक्स के लिए नया हूं और सभी मुझे राउटर से राउटर से अपने सर्वर को अक्षम करना चाहते हैं। इसलिए मुझे यकीन नहीं है कि अगर यह आदेश पर्याप्त है :)
जॉन एम।
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.