พรซอฟท์
Group Blog
 
All Blogs
 
openvpn xp ถาม user และ password

OPENVPN - USER/PASSWORD บน windows xp , windows 7






               การทำให้ openvpn มีถาม user และ password 
ปกติแล้ว ระบบ openvpn เป็น ระบบที่มาจาก linux ดังนั้น มันจึง
มีความสมบูรณ์ มาแล้ว      
                  โดยหากทำ แบบ ถาม user และ password จะ
สามารถทำได้ง่าย             โดยจะมี script มาให้แล้ว มีชื่อว่า 
auth-pam.pl  ซึ่งสามารถเรียกใช้ที่ฝั่ง server ได้ ดังนี้
จาก ไฟล์ etc/openvpn/server.conf  จะมีบรรทัดที่เรียกใช้คือ
auth-user-pass-verify ./auth-pam.pl via-file  โดยจะไปเรียก
ใช้ ไฟล์ auth-pam.pl มาเพื่อ ตรวจสอบ user และ password
แล้ว ส่งผลกลับมา เป็น 0 หรือ 1 หาก สำเร็จ 0 หรือ ไม่สำเร็จ 1
ดังนั้น แล้ว  หากมาทำบน windows xp หรือ windows 7 เราจะ
ต้องสร้าง file นี้ขึ้นมาใหม่ เอง    ซึ่ง ผมจะตั้งชื่อว่า verify.bat 


  ที่ฝั่ง SERVER ดังข้างล่างคือ file verify.bat

@echo off 

set datafile="c:ovpndata.txt"

set outfile="c:ovpnout.txt"

set n_user=%username% %password%;

c:WindowsSystem32find /n "%n_user%" %datafile% > %outfile% 

rem --> ระวัง   c:WindowsSystem32find  <--

for /f "skip=1" %%a in (c:ovpnout.txt) do set line2=%%a

if "%line2%"=="----------" exit 1

exit 0

rem  ----> failure (1) or success (0) 

โดยถูกเรียก จาก บรรทัด ใน ไฟล์ script  server.ovpn คือ

auth-user-pass-verify C:ovpnverify.bat via-env

โดยที่ ไฟล์ ทั้งหมดได้เก็บที่ c:ovpn ในเครื่อง windows 7 ฝั่ง server 

สำหรับ file เต็มของ server.ovpn คือดังข้างล่าง

dev tun

ca ca.crt
cert server.crt
key server.key

dh dh1024.pem
server 192.168.10.0 255.255.255.0
push "route 192.168.7.0 255.255.255.0"

script-security 3

auth-user-pass-verify C:ovpnverify.bat via-env

client-to-client

keepalive 10 120
comp-lzo

max-clients 10

persist-key
persist-tun

status openvpn-status.log 


verb 6

mute 20




นอกจากนี้ ยังมีคำสั่ง script-security 3 ซึ่งมีผลอย่างมากคือ จะเป็นคำสั่ง
ให้ มีการไปเรียกใช้ bat ไฟล์ จากภายนอก  มาใช้งานได้  คือทำให้สามารถ
ไปเรียกใช้ verify.bat มาใช้งานได้ และ  ยังส่ง ค่าตัวแปร ไปให้ยัง bat ไฟล์ 
verify.bat  อีกด้วย คือ ส่งค่ามาที่ username และ password  โดยทำให้เรา
สามารถนำ verify.bat  มาตรวจสอบ ชื่อ และ รหัสผ่าน ได้ โดยจะนำไปเปรียบ
เทียบ  กับ ชื่อ และ รหัสผ่าน ได้ที่ ไฟล์ data.txt  โดยที่ ไฟล์นี้ จะเป็น
เท็กไฟล์ ที่มีชื่อ และ รหัสผ่าน เก็บภายใน และ ปิดท้ายด้วย ; เซมิโคลอน
ดังข้างล่าง ข้อมูล username และ password ใน data.txt

a12345678 a12345678;
aaa aaa;
bbb bbb;
ccc ccc;
ddd ddd;
super vpn;


       ทั้งนี้เมื่อ verify.bat ถูกเรียกมาใช้ จะไปสร้าง out.txt ซึ่งมาจากคำสั่ง find
ดังนั้น ต้องหาที่อยู่ของ โปรแกรม find ให้ดี ว่าอยู่ที่ใด ในที่นี้ ผมใช้ windows 7
จะอยู่ที่ c:WindowsSystem32find  และ ใน out.txt จะมีข้อมูลดังข้างล่างคือ


---------- C:OVPNDATA.TXT
[1]a12345678 a12345678;


      ซึ่งในบรรทัดล่าง จะมี username และ password  คือ a12345678 บันทึก
ไว้ แสดงว่า username และ password ที่ป้อนกับใน data.txt ตรงกัน หากไม่
ตรงกัน จะไม่มีชื่อใดๆ แสดง มีบรรทัดขีดลบ บนเพียงบรรทัดเดียว เท่านั้น 

รูปข้างล่าง คือ ไฟล์ ที่เก็บใน c:ovpn  โดยที่ out.txt จะลบทิ้งได้เพราะจะสร้าง
ขึ้นมาใหม่เมื่อมี่การ login เข้ามาจากฝั่ง client






      ในฝั่ง CLIENT 

   ที่ฝั่งเครื่องลูกๆ จะมีบรรทัดที่เพิ่มพิเศษเข้ามาคือ auth-user-pass โดย
คำสั่งในบรรทัดนี้ จะทำให้ มี เมนูถาม username และ password ขึ้นมา ให้ผู้ใช้
login เข้ามา   โดยจะมีลูกเล่นเพิ่มมาในฝั่ง client ง่ายๆ กรณีที่ ไม่อยากพิมพ์ ชื่อ
ผู้ใช้ และ รหัสผ่าน ทุกครั้งสามารถทำเป็น text file เพิ่มต่างหากได้ด้วย  

รูปข้างล่างคือ script ของ openvpn ฝั่ง client เช่น ชื่อ clientxp4.ovpn
ที่ได้ระบุ ให้ถาม user และ password ด้วย auth-user-pass แล้ว


client
proto udp
dev tun

remote 192.168.7.223 1194

resolv-retry infinite
nobind
persist-key
persist-tun
ca ca.crt

cert xp4.crt
key xp4.key

comp-lzo
verb 3

auth-nocache
auth-user-pass
ns-cert-type server
nobind
keepalive 10 120

mute 20





auth-user-pass แบบ อ่าน ชื่อ user และ password จาก ไฟล์


             ง่ายๆ เพียงเติม ชื่อไฟล์ต่อท้าย auth-user-pass  ดังตัวอย่าง script บางส่วนข้างล่าง

....
cert xp4.crt
key xp4.key

comp-lzo
verb 3

auth-nocache
auth-user-pass c:openvpnpw.txt
ns-cert-type server
nobind
keepalive 10 120

...

              นั้นคือ ให้ไปอ่าน ไฟล์ pw.txt ที่เก็บไว้ที่ c:openvpn 
โดยที่ ไฟล์ pw.txt จะ เก็บ ข้อมูล 2 บรรทัด  คือ ชื่อ username 
และ password   ดังตัวอย่าง  รูป ข้างล่าง






                    แต่เมื่อ ลอง connect จริง ดู จะพบ ERROR คือ 
               Sorry, 'Auth' password cannot be read from a file.

                                  ดังรูปข้างล่าง






             ซึ่งไม่ได้เป็นที่เราทำผิดใดๆ เพียงแต่ การ compile ตัว โปรแกรม openvpn มันไม่ถูกต้อง มันต้องมี
การใช้ option เพิ่ม ในการ compile ให้ ถูกต้องด้วย คือ    option  --enble-password-save  แล้ว
เราต้องมา compile openvpn กันใหม่ หรือ ?   คงจะเรื่องยาว ไม่จบ แล้ว เรื่องยาวแน่นอน แค่ไม่ต้องใส่ user 
กับ password มันยุุ่งยากจัง   มาถึงตรงนี้ ก็ต้อง ใช้ อาจารย์ กรู กันแล้ว มาลองอาจารย์ กัน สิ่งที่พบคือ เราไม่
ต้อง compile ใดๆ แล้ว มันมี คนอื่นๆ เขา compile ใหม่ให้แล้ว สามารถ download มาใช้ ได้เลย ซึ่งไฟล์ที่ผม
พบ คือ openvpn-2.1.3-passwordsave-install.exe   ตัวนี้ ลองหาจาก google จะพบดังรูปข้างล่าง







                          จะ download ตัวไหน ก็ได้ แต่ระวัง virus ด้วย แล้วกัน ครับ ผมได้ไปเอามาจาก web
//wired.s6n.com/vpn พบว่าสามารถใช้งานได้ ดี โดย uninstall ตัวเก่า ออกไปก่อน แล้ว
ลงตัว ใหม่ คือ openvpn-2.1.3-passwordsave-install.exe  แทน พบว่าใช้ได้ดี ครับ สามารถ connect ได้
โดยไม่ถาม user และ password รวมถึง ไม่มี error  คือ  Sorry, 'Auth' password cannot be read from a file
มาก่อนกวน เราด้วย ครับ  ผมได้ลองเปลี่ยน password ใน ไฟล์  pw.txt ให้ผิดๆ ไปพบว่า มันไม่สามารถที่จะ
login เข้าไปได้ แสดงว่า ปกติดี มากๆ 


                                           บทความนี้ ก็มาถึงท้ายแล้วครับ ขอสวัสดี ครับ









Create Date : 20 สิงหาคม 2555
Last Update : 14 พฤศจิกายน 2555 9:38:57 น. 0 comments
Counter : 1003 Pageviews.

ชื่อ :
Comment :
  *ใช้ code html ตกแต่งข้อความได้เฉพาะสมาชิก
 
รหัสส่งข้อความ
กรุณายืนยันรหัสส่งข้อความ

peerasoft
Location :


[Profile ทั้งหมด]

ให้ทิปเจ้าของ Blog [?]
ฝากข้อความหลังไมค์
Rss Feed
Smember
ผู้ติดตามบล็อก : 1 คน [?]




Friends' blogs
[Add peerasoft's blog to your web]
Links
 

 Pantip.com | PantipMarket.com | Pantown.com | © 2004 BlogGang.com allrights reserved.