OpenVPN सर्वर अक्षम और reenable क्लाइंट


2

मैं एक Ubuntu 14.04 सर्वर मशीन में OpenVPN 2.3.2 (अभी भी इस पर एक नौसिखिया) चला रहा हूं। मैं अपने ओपनवीपीएन सर्वर से जुड़ने वाले अक्षम / रीएनेबल ग्राहकों को सक्षम करना चाहता हूं।

मैंने ग्राहक के प्रमाणपत्र को रद्द करने के लिए इस गाइड का पालन ​​किया , लेकिन ऐसा लगता है कि यह कदम अपरिवर्तनीय है। इसके अलावा, यदि मैं किसी ग्राहक के प्रमाणपत्र को रद्द करता हूं, और ग्राहक पहले से जुड़ा हुआ है, तो कनेक्शन बंद नहीं होता है। मैं चाहता हूं कि कनेक्शन तुरंत बंद हो जाए।

क्या ग्राहकों को अक्षम और फिर से करने का कोई आसान तरीका है?

मेरा server.conf फ़ाइल:

# OpenVPN server configuration file
dev tun
proto udp
port 1194
server 10.8.0.0 255.255.255.0
ca /usr/share/easy-rsa/keys/ca.crt
cert /usr/share/easy-rsa/keys/vpnserver.crt
key /usr/share/easy-rsa/keys/vpnserver.key
dh /usr/share/easy-rsa/keys/dh2048.pem
push "dhcp-option DNS 8.8.8.8"
push "redirect-gateway def1"
comp-lzo
keepalive 10 60
persist-tun
persist-key
user panos
group panos
log-append /var/log/openvpn.log
verb 3
# crl-verify keys/crl.pem

अंतिम पंक्ति उपरोक्त मार्गदर्शिका के लिए है।

धन्यवाद।


प्रति उपयोगकर्ता IP पते क्यों न निर्दिष्ट करें और फिर IP को ब्लॉक / अनुमति देने के लिए iptables का उपयोग करें?
दाविगो

मुझे नहीं पता। मुझे लगता है कि आप जो समाधान सुझाते हैं वह थोड़ा "गंदा" है। Iptables वीपीएन तंत्र की तुलना में कुछ अप्रासंगिक है। इसके अलावा अगर किसी के पास अपना आईपी बदलने का तरीका है तो वह आसानी से उसी प्रमाणपत्र के साथ फिर से जुड़ सकता है।
पैनोस

मैं सिर्फ यह बताता हूं कि मैं सुझाव दे रहा हूं कि आईपी अवरुद्ध वीपीएन सर्वर द्वारा जारी किया गया एक है - इसलिए - यदि सही ढंग से सर्वर साइड सेट किया गया है तो उपयोगकर्ता उसी प्रमाण पत्र के साथ पुन: कनेक्ट नहीं कर सकता है।
davidgo

जवाबों:


2

मैंने davidgo के समान एक समाधान लागू किया। दुर्भाग्य से मुझे इस बग के समान एक ओपनस्लेव एरर का सामना करना पड़ा , और इसके लिए वर्कअराउंड ढूंढने में मुझे काफी समय लगा।

मैंने ग्राहक प्रमाणपत्रों को निरस्त करने और हटाने के लिए दो स्क्रिप्ट्स लिखीं:

revoke.sh:

#!/bin/bash

keys_index_file=/usr/share/easy-rsa/keys/index.txt
fileline="$(grep "/CN=$1/" $keys_index_file)"
columns_number="$(echo $fileline | awk -F' ' '{print NF;}')"

if [[ $columns_number -eq 5 ]] && [[ $fileline == V* ]]; then

    source /usr/share/easy-rsa/vars 
    /usr/share/easy-rsa/revoke-full $1

    {
        sleep 3
        echo kill $1
        sleep 3
        echo exit
    } | telnet localhost 7505

    echo "Client certificate revoked successfully."
    exit 0;

elif [[ $columns_number -eq 6 ]] && [[ $fileline == R* ]]; then

    echo "Client certificate is already revoked."
    exit 0;

else

    echo "Error; key index file may be corrupted."
    exit 1;
fi

unrevoke.sh:

#!/bin/bash

keys_index_file=/usr/share/easy-rsa/keys/index.txt
linenumber="$(grep -n "/CN=$1/" $keys_index_file | cut -f1 -d:)"
fileline="$(grep -n "/CN=$1/" $keys_index_file)"
line="$(grep "/CN=$1/" $keys_index_file)"

columns_number="$(echo $line | awk -F' ' '{print NF;}')"
echo $columns_number



if [[ $columns_number -eq 6 ]] && [[ $line == R* ]]; then

    column2="$(echo $fileline | awk '{print $2}')"
    column4="$(echo $fileline | awk '{print $4}')"
    column5="$(echo $fileline | awk '{print $5}')"
    column6="$(echo $fileline | awk '{print $6}')"
    echo -e "V\t$column2\t\t$column4\t$column5\t$column6" >> $keys_index_file
    sed -i "${linenumber}d" $keys_index_file
    cd /usr/share/easy-rsa; source ./vars; openssl ca -gencrl -out "keys/crl.pem" -config "$KEY_CONFIG"

    echo "Certificate unrevoked successfully."
    exit 0;

elif [[ $columns_number -eq 5 ]] && [[ $fileline == V* ]]; then

    echo "Certificate is already unrevoked and active"
    exit 0;

else

    echo "Error; Key index file may be corrupted."
    exit 1;

fi

ध्यान दें कि revoke.shस्क्रिप्ट ओपनवीपीएन के साथ एक टेलनेट कनेक्शन भी खोलती है और क्लाइंट को निरस्त होने के लिए निकाल देती है।


0

Iptables विकल्प को अनदेखा करना (जो मुझे विश्वास है कि तकनीकी रूप से बेहतर है), आप रिवोकेशन फ़ाइल को संशोधित करके और ओपनवैप को फिर से लोड करके निजी कुंजी को फिर से स्थापित कर सकते हैं। (यदि आप easyRSA का उपयोग कर रहे हैं तो आप easyRSA / index.txt को एडिट कर सकते हैं। उचित लाइन खोजें और "R" फ्लैग को "V" फ्लैग में बदलें, तीसरा कॉलम हटा दें।) फिर

  source ./vars
  openssl ca -gencrl -out "crl.pem" -config "$KEY_CONFIG"

नए कॉन्फ़िगरेशन को प्रभावी बनाने के लिए आप उद्घाटन सर्वर को फिर से लोड कर सकते हैं। यह सभी क्लाइंट्स को किक करेगा, लेकिन उन्हें नए सत्र को स्वचालित रूप से फिर से कनेक्ट और बातचीत करना चाहिए।

देखें http://sq4ind.eu/openvpn-revoke-unrevoke-certports/ संदर्भ लेख के लिए यह समाधान आधारित है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.