SUSE LINUX Enterprise & openSUSE Community
มกราคม 18, 2019, 11:01:13 AM *
ยินดีต้อนรับคุณ, บุคคลทั่วไป กรุณา เข้าสู่ระบบ หรือ ลงทะเบียน
ส่งอีเมล์ยืนยันการใช้งาน?

เข้าสู่ระบบด้วยชื่อผู้ใช้ รหัสผ่าน และระยะเวลาในเซสชั่น
ข่าว:
 
   หน้าแรก   ช่วยเหลือ ค้นหา เข้าสู่ระบบ สมัครสมาชิก  

[Why we need your support] SUSE and openSUSE are trademarks of Attachmate Group, Inc. - WE ARE NOT IN ANY WAY ASSOCIATED WITH SUSE AND ATTACHMATE GROUP. SUSEThailand.com is a SUSE Linux user and community found in Thailand but not limited to other country suse linux user to join in. Currently active contents (How to's, Scripts, Tips, Tricks, Tutorials, Linux Command Line, and Troubleshooting) this suse linux how to's and expert support are SUSE Linux.
หน้า: [1]   ลงล่าง
  พิมพ์  
ผู้เขียน
หัวข้อ: ติดตั้ง OpenLDAP + FreeRADIUS + Squid Proxy Server จาก YaST  (อ่าน 6683 ครั้ง)
0 สมาชิก และ 1 บุคคลทั่วไป กำลังดูหัวข้อนี้
Sontaya
Administrator
Expert : ผู้เชี่ยวชาญ
*****

Karma: +1/-0
ออฟไลน์ ออฟไลน์

กระทู้: 1931


Administrator


เว็บไซต์
« เมื่อ: พฤษภาคม 26, 2012, 10:26:49 PM »


ติดตั้ง OpenLDAP + FreeRADIUS + Squid Proxy Server

ตัวอย่าง ใช้เครื่องเซิร์ฟเวอร์ 2 เครื่อง โดยแยกการติดตั้งเซิอร์วิสดังต่อไปนี้

System : SUSE Linux Enterprise Server 11 SP2

เซิร์ฟเวอร์เครื่องที่ 1 : IP address 192.168.1.230
- ติดตั้ง LDAP server สำหรับเก็บบัญชีผู้ใช้
- FreeRADIUS สำหรับไว้พิสูจน์สิทธิ์

เซิร์ฟเวอร์เครื่องที่ 2 : IP address 192.168.1.231
- ติดตั้ง Squid สำหรับทำหน้าเป็น Proxy Server

หลังจากที่เราได้ติดตั้งระบบปฏิบัติการ SUSE Linux Enterprise Server 11 SP2 เสร็จแล้ว มาเริ่มกันเลยครับ

1. ติดตั้ง OpenLDAP

คลิกที่เมนู Computer > YaST ดังรูป



คลิกเลือก LDAP Server ดังรูป



คลิกปุ่ม Install







ตั้งค่า LDAP Server



เลือกติดตั้งเป็นแบบ Stand-alone server





ตั้งค่า LDAP Database



Base DN = dc=domain,dc=local






1.1 OpenLDAP Runlevel

ไปที่ YaST Control Center



คลิก System Services (Runlevel)



คลิกเลือก Service ldap จากนั้นคลิก Enable

เปิดโปรแกรม Terminal เพื่อตรวจสอบสถานะ

โค๊ด:
rcldap status




2. ติดตั้ง FreeRADIUS

คลิกเมนู Computer > Install/Remove Software



ค้นหาแพคเกจ freeradius แล้วคลิกติดตั้ง










2.1 FreeRADIUS Runlevel


คลิกเลือก freeradius แล้วคลิก Enable







เป็นอันเสร็จการติดตั้ง FreeRADIUS
« แก้ไขครั้งสุดท้าย: พฤษภาคม 31, 2012, 12:41:25 PM โดย Sontaya » แจ้งลบกระทู้นี้หรือติดต่อผู้ดูแล   บันทึกการเข้า

ageLOC Technology
Sontaya
Administrator
Expert : ผู้เชี่ยวชาญ
*****

Karma: +1/-0
ออฟไลน์ ออฟไลน์

กระทู้: 1931


Administrator


เว็บไซต์
« ตอบ #1 เมื่อ: พฤษภาคม 26, 2012, 11:26:28 PM »


การจัดการผู้ใช้และกลุ่มด้วยเครื่องมือ YaST User and Group Management

ไปที่ YaST Control Center เลือก Security and Users > User and Group Management



เลือกคลิก User and Group Management เข้ามาก็จะพบ user ที่เป็น local user (ไม่ใช้ user บน ฐานข้อมูล ldap)



คลิกไปที่แท็บ Authentication Settings เพื่อให้ตัวจัดการผู้ใช้และกลุ่ม สนับสนุน ldap



คลิก Use LDAP (รายละเอียดเพิ่มเติมสำหรับคอนฟิก)



คลิกที่ปุ่ม Fatch DN





คลิกปุ่ม Advanced Configuration...





คลิกไปที่แท็บ Administration Settings



คลิกปุ่ม Configure User Management Settings



คลิก Yes



สร้าง Object Class













คลิก OK







ติดปุ่ม Install





เขียนค่าคอนฟิกลงฐานข้อมูล



คลิกปุ่ม OK เป็นอันเสร็จ




การสร้างกลุ่มผู้ใช้สำหรับ squid เพื่อนำไปยืนยันตัวตนและพิสูจน์สิทธิ์



ตั้งชื่อ Group Name เป็น grp_squid






การเพิ่มผู้ใช้ไปยังกลุ่ม grp_squid

ทดสอบสร้างผู้ใช้ชื่อ user1







เป็นอันเสร็จการเพิ่มผู้ใช้และกลุ่มไปยัง LDAP Database เพื่อให้ทำงานร่วมกับ FreeRADIUS สำหรับไว้พิสูจน์สิทธิ์
« แก้ไขครั้งสุดท้าย: พฤษภาคม 31, 2012, 12:41:54 PM โดย Sontaya » แจ้งลบกระทู้นี้หรือติดต่อผู้ดูแล   บันทึกการเข้า

ageLOC Technology
Sontaya
Administrator
Expert : ผู้เชี่ยวชาญ
*****

Karma: +1/-0
ออฟไลน์ ออฟไลน์

กระทู้: 1931


Administrator


เว็บไซต์
« ตอบ #2 เมื่อ: พฤษภาคม 26, 2012, 11:32:05 PM »


การคอนฟิก FreeRADIUS authentication using LDAP

1. คอนฟิก Freeradius

ก่อนการคอนฟิกแนะนำให้สำรองไฟล์คอนฟิกเดิมไว้ก่อนนะครับ

โค๊ด:
tar zcvf /root/Desktop/backup-radius-etc_raddb.tar.gz /etc/raddb/

- ไฟล์ที่เกี่ยวข้อง

/etc/raddb/clients.conf แฟ้มไฟล์ที่ใช้ในการคอนฟิกอุปกรณ์หรือคอมพิวเตอร์ที่จะติดต่อกับ radius server เช่น access point เป็นต้น
/etc/raddb/users แฟ้มไฟล์เก็บบัญชีรายชื่อ
/etc/raddb/sites-enabled/default แฟ้มไฟล์ในการเปิดใช้งาน LDAP สำหรับใช้งานการพิสูจน์ตัวตน
/etc/raddb/modules/ldap แฟ้มไฟล์สำหรับคอนฟิกการติดต่อสื่อสารกับ LDAP server


- แก้ไขไฟล์ /etc/raddb/clients.conf

โค๊ด:
vi /etc/raddb/clients.conf

เพิ่ม network ของ NAS ในบรรทัดท้ายสุดของไฟล์ (นี้คือเครื่อง Squid Proxy Server ที่จะมา authentication กับ RADIUS)

โค๊ด:
...
#Squid
client 192.168.1.231 {
   secret = mysecret
   shortname = squid231
}


- แก้ไขไฟล์ /etc/raddb/user

โค๊ด:
vi /etc/raddb/user

จากเอกสาร FreeRadius แนะนำให้เราเพิ่มในบรรทัดแรกสุด (สำหรับทดสอบ)

mytest Cleartext-Password :="password"


- แก้ไขไฟล์ /etc/raddb/sites-enabled/default

โค๊ด:
vi /etc/raddb/sites-enabled/default

ค้นหาคำ แล้วให้เอาเครื่องหมาย # ออก
โค๊ด:

        #  The ldap module will set Auth-Type to LDAP if it has not
        #  already been set
        #ldap

แก้ไขเป็น
  ldap

โค๊ด:
# Auth-Type LDAP{
# ldap
#}

แก้ไขเป็น
 Auth-Type LDAP{
 ldap
}


- แก้ไขไฟล์ /etc/raddb/modules/ldap

โค๊ด:
vi /etc/raddb/modules/ldap

ค้นหา  ldap

แก้ไขเป็น
โค๊ด:
ldap {
        #
        #  Note that this needs to match the name in the LDAP
        #  server certificate, if you're using ldaps.
        server = "127.0.0.1"
        #identity = "cn=admin,o=My Org,c=UA"
        #password = mypass
        basedn = "dc=domain,dc=local"
        filter = "(uid=%{Stripped-User-Name:-%{User-Name}})"


- แก้ไขไฟล์  /etc/raddb/radiusd.conf

โค๊ด:
vi /etc/raddb/radiusd.conf

โค๊ด:

        #  Log authentication requests to the log file.
        #
        #  allowed values: {no, yes}
        #
        auth = no

แก้ไขเป็น
auth = yes


2. ทดสอบ debug ด้วยออปชัน -X

NOTE: ต้องหยุดการทำงานของ freeradius ก่อน

โค๊ด:
rcfreeradius status
Checking for service radiusd                                         running

สั่งหยุดการทำงานของ radius

โค๊ด:
rcfreeradius stop
Shutting down RADIUS daemon                                          done

- ทดสอบ debug ด้วยออปชัน -X

โค๊ด:
radiusd -X

ถ้าไม่มี error แสดงว่าผ่าน


3. ทดสอบ Radius โดยการพิสูจน์ตัวตนกับ LDAP server

รูปแบบคำสั่ง

radtest <username> <password> <IP radius server> 0 <shared secret>

โค๊ด:
radtest user1 Startup1 localhost 0 testing123 -X

ถ้าขึ้น error : radclient: socket: cannot initialize udpfromto: Function not implemented

วิธีแก้ไขคือ ลบบรรทัดข้างล่างในไฟล์ /etc/hosts

#::1             localhost ipv6-localhost ipv6-loopback

จากนั้นลองใช้คำสั่ง radtest อีกครั้ง

ผลพันธ์ที่ได้: แสดงว่าพิสูจน์ตัวตนผ่านสำเร็จ สามารถใช้งานได้

โค๊ด:
Sending Access-Request of id 211 to 127.0.0.1 port 1812
   User-Name = "user1"
   User-Password = "Startup1"
   NAS-IP-Address = 192.168.1.230
   NAS-Port = 0
   Framed-Protocol = PPP
rad_recv: Access-Accept packet from host 127.0.0.1 port 1812, id=211, length=32
   Framed-Protocol = PPP
   Framed-Compression = Van-Jacobson-TCP-IP

NOTE: user1 คือชื่อผู้ใช้ และ Startup1 คือรหัสผ่าน   ที่บัญชีผู้ใช้เก็บอยู่บน LDAP database

กรณีที่พิสูจน์ตัวตนไม่สำเร็จ: ทดสอบโดยการใส่รหัสผ่านผิด

โค๊ด:
radtest user1 1234xxx localhost 0 testing123 -X

โค๊ด:
Sending Access-Request of id 233 to 127.0.0.1 port 1812
   User-Name = "user1"
   User-Password = "1234xxx"
   NAS-IP-Address = 192.168.1.230
   NAS-Port = 0
   Framed-Protocol = PPP
rad_recv: Access-Reject packet from host 127.0.0.1 port 1812, id=233, length=20

NOTE: ข้อมูลด้านบน NAS เป็นตัวเชื่อมการติดต่อระหว่าง access clients กับ radius server ผ่านโพรโตคอล PPP โดย NAS จะส่งข้อมูลชื่อผู้ใช้ "user1",  รหัสผ่าน "Startup1", ไอพี "192.168.1.230", พอร์ต "0" ไปยัง RADIUS server เพื่อตรวจสอบสิทธิ์ เมื่อ RADIUS server ตรวจสอบแล้วจะส่งข้อความ "Access-Accept" กับ "Access-Reject" กลับมา

เป็นอันเสร็จการคอนฟิก RADIUS authentication ผ่าน LDAP ถัดไปจะเป็นการคอนฟิก Squid authentication with RADIUS
« แก้ไขครั้งสุดท้าย: พฤษภาคม 31, 2012, 12:42:13 PM โดย Sontaya » แจ้งลบกระทู้นี้หรือติดต่อผู้ดูแล   บันทึกการเข้า

ageLOC Technology
Sontaya
Administrator
Expert : ผู้เชี่ยวชาญ
*****

Karma: +1/-0
ออฟไลน์ ออฟไลน์

กระทู้: 1931


Administrator


เว็บไซต์
« ตอบ #3 เมื่อ: พฤษภาคม 27, 2012, 10:21:57 PM »


ขั้นตอนการติดตั้ง Squid3 Proxy Server

1. ติดตั้งแพคเกจ squid3 (3.1.12)

คลิกที่เมนู Computer > Install/Remove Software ดังรูป



ค้นหาแพคเกจ squid แล้วคลิกปุ่ม Accept เพื่อติดตั้ง






2. คอนฟิก squid3

การคอนฟิกสามารถทำผ่าน terminal ก็ได้ หรือจะคอนฟิกผ่าน YaST Control Center ดังรูป



NOTE: เนื่องจาก YaST Control Center โดย default ติดตั้ง yast2-squid ซึ่งเป็นเครื่องมือในการคอนฟิก squid เวอร์ชัน 2.17 เมื่อเราติดตั้ง squid3 เครื่องมือ Squid บน YaST    จะไม่รู้จักพอคลิกจะขึ้นหน้าต่างให้ติดตั้ง squid อีกครั้ง ซึ่งถ้าติด Install จะกายเป็นว่าเราได้ติดตั้ง squid 2.17 stable เข้าไปอีกตัว

ให้กดปุ่ม Cancel



คลิก Continue เพื่อเข้าไปดูค่าคอนฟิกเริ่มต้นของ squid



NOTE: แนะนำให้คอนฟิกผ่าน terminal โดยคำสั่ง vi


3. กำหนด Runlevel

คลิกเปิด YaST Control Center > System Services (Runlevel)



คลิกเลือกเซิอร์วิส squid แล้วคลิกปุ่ม Enable





เป็นอันเสร็จขั้นตอนการติดตั้ง squid3


4. การคอนฟิก Squid authentication ผ่าน RADIUS โดยตรวจสอบผู้ใช้จาก LDAP Server

เริ่มแรกในการคอนฟิก squid ให้เราทำสำเนาไฟล์คอนฟิก squid ไว้ก่อน

โค๊ด:
tar zcvf /root/Desktop/squid3-etc_squid.tar.gz /etc/squid

- แสดงค่าคอนฟิก default

โค๊ด:
grep -v ^# /etc/squid/squid.conf | grep -v ^$

โค๊ด:
acl manager proto cache_object
acl localhost src 127.0.0.1/32 ::1
acl to_localhost dst 127.0.0.0/8 0.0.0.0/32 ::1
acl localnet src 10.0.0.0/8
acl localnet src 172.16.0.0/12
acl localnet src 192.168.0.0/16
acl localnet src fc00::/7
acl localnet src fe80::/10
acl SSL_ports port 443
acl Safe_ports port 80
acl Safe_ports port 21
acl Safe_ports port 443
acl Safe_ports port 70
acl Safe_ports port 210
acl Safe_ports port 1025-65535
acl Safe_ports port 280
acl Safe_ports port 488
acl Safe_ports port 591
acl Safe_ports port 777
acl CONNECT method CONNECT
access_log /var/log/squid/access.log
http_access allow manager localhost
http_access deny manager
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
http_access allow localnet
http_access allow localhost
http_access deny all
http_port 3128
hierarchy_stoplist cgi-bin ?
coredump_dir /var/cache/squid
refresh_pattern ^ftp: 1440 20 10080
refresh_pattern ^gopher: 1440 0 1440
refresh_pattern -i  (/cgi-bin/|\?) 0 0 0
refresh_pattern . 0 20 4320
cache_dir ufs /var/cache/squid 100 16 256
cache_log /var/log/squid/cache.log
cache_mem 19 MB
cache_mgr webmaster
cache_replacement_policy lru
cache_store_log /var/log/squid/store.log
cache_swap_high 95
cache_swap_low 90
client_lifetime 1 days
connect_timeout 2 minutes
emulate_httpd_log off
error_directory /usr/share/squid/errors/af
ftp_passive on
maximum_object_size 4096 KB
memory_replacement_policy lru
minimum_object_size 0 KB

TIPS: สำหรับคอนฟิกออปชันอื่นๆ


คอนฟิก squid authentication with RADIUS

- แก้ไขไฟล์ /etc/squid/squid.conf

โค๊ด:
vi /etc/squid/squid.conf

เพิ่ม code ว่างก่อนบรรทัด acl manager proto cache_object

โค๊ด:
# TAG: auth_param

################# RADIUS authentication #################################
auth_param basic program /usr/sbin/squid_radius_auth -h 192.168.1.230 -w mysecret
auth_param basic children 5
auth_param basic realm Squid RADIUS authentication
auth_param basic credentialsttl 5 minute
auth_param basic casesensitive on
#########################################################################

acl manager proto cache_object
acl localhost src 127.0.0.1/32 ::1
...

จากนั้นเพิ่ม code ด้านล่างนี้หลังบรรทัด acl CONNECT method CONNECT

โค๊ด:
acl CONNECT method CONNECT

########################### ACL for RADIUS AUTH #########################
acl radiusauth proxy_auth REQUIRED
#########################################################################

และเพิ่ม code ด้านล่างนี้ก่อน  http_access allow localnet
โค๊ด:
########################## Allow for RADIUS AUTH ########################
http_access allow radiusauth
#########################################################################

http_access allow localnet
...


เสร็จแล้วบันทึก และรีสตาร์ท squid

โค๊ด:
rcsquid restart

เป็นอันเสร็จการคอนฟิก squid3 จากให้เปิด web browser แล้วตั้งค่า Proxy เพื่อทดสอบการพิสูจน์ตัวตน

- ทดสอบผ่าน Mozilla Firefox



ทำการตั้งค่า Proxy



ลองเปิดเว็บไซต์ ถ้าคอนฟิกถูกต้องจะขึ้นให้ username / password ดังรูป



กรอก username / password ตามที่ได้เพิ่มใน LDAP Server ก่อนหน้า



ถ้าถูกต้องก็จะสามารถเข้าเว็บไซต์ต่างๆ ได้




- Log file

โค๊ด:
tail -f /var/log/squid/access.log

โค๊ด:
1338131330.406    184 192.168.1.231 TCP_MISS/302 471 GET http://203.150.228.71/counter.php? user1 DIRECT/203.150.228.71 text/html
1338131330.407    186 192.168.1.231 TCP_MISS/200 3306 GET http://www.susethailand.com/suseforum/Themes/mysticjade115/images/footer-bg.png user1 DIRECT/122.155.168.150 image/png
1338131330.412   3739 192.168.1.231 TCP_MISS/301 781 GET http://bit.ly/JOLOoh user1 DIRECT/69.58.188.40 text/html
1338131330.647    207 192.168.1.231 TCP_MISS/200 17120 GET http://www.susethailand.com/suseforum/Themes/mysticjade115/images/ebook-images/linux-multi-wan-150x100.png user1 DIRECT/122.155.168.150 image/png
1338131330.794    122 192.168.1.231 TCP_MISS/200 1522 GET http://www.susethailand.com/favicon.ico user1 DIRECT/122.155.168.150 image/x-icon

TIPS: คอนฟิก Squid3 Single sign-on
« แก้ไขครั้งสุดท้าย: พฤษภาคม 31, 2012, 12:42:33 PM โดย Sontaya » แจ้งลบกระทู้นี้หรือติดต่อผู้ดูแล   บันทึกการเข้า

ageLOC Technology
หน้า: [1]   ขึ้นบน
  พิมพ์  
 
กระโดดไป:  

(@)2007 SUSE Linux user community found in Thailand. This site is not an official openSUSE and SUSE website, and is not in any way affiliated with or endorsed by SUSE Linux GmbH or Novell. openSUSE and SUSE are trademarks of Novell, Inc. in the United States and other countries.
Powered by MySQL Powered by PHP Powered by SMF 1.1.21 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!
หน้านี้ถูกสร้างขึ้นภายในเวลา 0.063 วินาที กับ 20 คำสั่ง (Pretty URLs adds 0.011s, 2q)