หา valid email address
^(?!\b[a-zA-Z0-9._-]+@ [a-zA-Z0-9_.-]+\.[a-zA-Z0-9]{2,}\b).*$
หาก invalid email address
^(?=\b[a-zA-Z0-9._-]+@ [a-zA-Z0-9_.-]+\.[a-zA-Z0-9]{2,}\b).*$
หา valid email address
^(?!\b[a-zA-Z0-9._-]+@ [a-zA-Z0-9_.-]+\.[a-zA-Z0-9]{2,}\b).*$
หาก invalid email address
^(?=\b[a-zA-Z0-9._-]+@ [a-zA-Z0-9_.-]+\.[a-zA-Z0-9]{2,}\b).*$
อยากรู้ว่า Windows 10 Firewall Inbound Rules เปิดหรือปิด SMBv1, SMBv2 หรือไม่
ทดสอบจากเครื่อง Linux ที่ตั้งอยู่ใน network เดียวกัน ทำ nmap ค้นหา SMB (TCP Port 445) ไปที่เครื่อง Windows IP 192.168.x.yy
ครั้งที่ 1
รายการ File and Printer Sharing (SMB-In) ใน Firewall Inbound Rules เมื่อตั้งค่า Enabled = No
ผลลัพธ์
$ nmap -A -T4 -Pn -p445 192.168.x.yy
Starting Nmap 7.01 ( https://nmap.org ) at 2017-05-15 13:52 ICT
Nmap scan report for 192.168.x.yy
Host is up.
PORT STATE SERVICE VERSION
445/tcp filtered microsoft-ds
Nmap done: 1 IP address (1 host up) scanned in 2.39 seconds
ครั้งที่ 2
รายการ File and Printer Sharing (SMB-In) ใน Firewall Inbound Rules เมื่อตั้งค่า Enabled = Yes
ผลลัพธ์
$ nmap -A -T4 -Pn -p445 192.168.x.yy
Starting Nmap 7.01 ( https://nmap.org ) at 2017-05-15 13:55 ICT
Nmap scan report for 192.168.x.yy
Host is up (0.00048s latency).
PORT STATE SERVICE VERSION
445/tcp open microsoft-ds Microsoft Windows 10 microsoft-ds
Service Info: OS: Windows 10; CPE: cpe:/o:microsoft:windows_10
Host script results:
| smb-security-mode:
| account_used: guest
| authentication_level: user
| challenge_response: supported
|_ message_signing: disabled (dangerous, but default)
|_smbv2-enabled: Server supports SMBv2 protocol
Nmap done: 1 IP address (1 host up) scanned in 47.82 seconds
ครั้งที่ 3
รายการ File and Printer Sharing (SMB-In) ใน Firewall Inbound Rules เมื่อตั้งค่า Enabled = Yes
และ
ได้ปิด SMBv1 ตามคำแนะนำ เรื่อง “วิธีปิด SMBv1 เพื่อป้องกันตัวเองจากมัลแวร์เรียกค่าไถ่ WannaCry (ทำเถอะ ไม่ถึง 5 นาที)” https://www.blognone.com/node/92410
ผลลัพธ์
$ nmap -A -T4 -Pn -p445 192.168.x.yy
Starting Nmap 7.01 ( https://nmap.org ) at 2017-05-15 13:55 ICT
Nmap scan report for 192.168.x.yy
Host is up (0.00051s latency).
PORT STATE SERVICE VERSION
445/tcp open microsoft-ds?
Host script results:
|_smbv2-enabled: Server supports SMBv2 protocol
Nmap done: 1 IP address (1 host up) scanned in 47.87 seconds
จากผลลัพธ์ในครั้งที่ 3 จะมีเพียง SMBv2
สรุปว่า รายการ File and Printer Sharing (SMB-In) ใน Windows 10 Firewall Inbound Rules นั้นหากตรวจดูพบว่าคอลัมน์ Enabled มีค่า No ก็คือ ไม่ได้อนุญาตการเข้าถึง
ในตัวอย่างนี้ก็คือไม่อนุญาตการเข้าถึง SMB (TCP Port 445) ซึ่งเป็นช่องทางเข้าโจมตีจาก Ransomware ที่ชื่อ WannaCrypt (บางทีเรียกย่อ ๆ ว่า WannaCry)
ผมทำ Zeroshell Firewall สำหรับเป็น network authentication หลังจากผม setup ส่วนที่เกี่ยวกับ Certificate ที่จะใช้กับ https ผมได้ import COMODO Certificates (ที่มหาวิทยาลัยใช้บริการ)
เมื่อทดสอบการใช้งาน เข้าโปรแกรม Firefox บน Ubuntu เมื่อผู้ใช้ใส่ URL เพื่อไปเว็บไซต์ใด ๆ จะพบกับหน้า network authentication และ https ถูกต้อง (เป็นสีเขียว) แต่เมื่อเปิดด้วย Google Chrome จะพบว่า https จะไม่ถูกต้อง (เป็นขีด / สีแดง) ทำไมจึงเป็นเช่นนั้น
เปิดเข้าไปดูรายการ Certificates ที่อยู่ใน Browser Firefox เทียบกับ Google Chrome ก็พบว่ามีความแตกต่างต่างกันที่บรรทัด คือ COMODO RSA Domain Validation Secure Server CA ดังนี้
รูปข้างล่างนี้เป็นรายการ Certificates ของ COMODO ใน Firefox บน Ubuntu 16.04 ซึ่ง มี บรรทัดที่ว่านี้
รูปข้างล่างนี้เป็นรายการ Certificates ของ Comodo ใน Google Chrome บน Ubuntu 16.04 ซึ่ง ไม่มี
รูปข้างล่างนี้เป็นรายการ Certificates ของ COMODO ใน Google Chrome for Windows 10 ซึ่ง มี บรรทัดดังกล่าวอยู่ในแท็บ Intermediate Certification Authorities ซึ่งผมพบว่ารายการมันจะเกิดขึ้นหลังจากเคยไปเว็บไซต์ใด ๆ ที่ติดตั้ง COMODO Certs ไว้
ผมก็ไป export “COMODO RSA Domain Validation Secure Server CA” จาก Firefox แล้วนำไป import ใน Google Chrome บน Ubuntu 16.04 เพื่อทดสอบว่ามันเกี่ยวกันมั้ย มันเกี่ยวกันจริง ๆ ด้วย แต่ผมไม่รู้ว่าทำไมจึงเป็นเช่นนั้น จึงต้องการจะบันทึกไว้ เผื่อใครที่รู้จะมาช่วยอธิบาย
ในหน้า Login นั้น สัญลักษณ์ https แสดงเป็นสีเขียว ถูกต้องได้ ตามรูป
ใครรู้มาเฉลยที
เพิ่มเติมท่อนข้างล่างนี้เมื่อ 11 พ.ค. 60 ครับ
ตอนนี้ผมได้คำตอบมาอัปเดตแล้วครับ จากที่ได้ความช่วยเหลือจากคุณพรพิทักษ์ สันติภาพถาวร ผู้ดูแล PSU CERTS เราพบว่าในหน้าคอนฟิกของ Zeroshell นั้น ในเมนู Captive Portal X.509 Authentication นั้นหลังจากเรา import #1 Trusted CA จากไฟล์ STAR_psu_ac_th.ca-bundle ดังรูป
แล้วเราจะได้บรรทัด COMODO RSA Domain Validation Secure Server CA เพิ่มขึ้นมา ดังรูป
และ #2 Imported Certificates and Keys ด้วยไฟล์ STAR_psu_ac_th.crt และ STAR_psu_ac_th_nopass.key ดังรูป
แล้วเราจะได้บรรทัด OU=Domain Control Validated, OU=PositiveSSL Wildcard, CN=*.psu.ac.th มาดังรูป
จากนั้น เราจะต้องไปคลิกตัวเลือก Authentication เพื่อ เลือก Allow the X.509 login with the certificates signed by the following Trusted CAs: ด้วย COMODO RSA Domain Validation Secure Server CA ดังรูป
สรุปว่าผมยังตั้งค่าไม่ครบถ้วนนั่นเอง คือ ขาดการตั้งค่าเรื่อง Authentication นี่เองว่าให้อนุญาตการ login ด้วย certificate ที่ signed โดย Trusted CAs ที่เรา import เข้าไปนั่นเอง
ขอให้บทความนี้มีประโยชน์ สร้างความเข้าใจ และ เป็นการบันทึกไว้ว่า หากเรานำ PSU CERTs ไปติดตั้งทำเป็น Captive Portal ในระดับคณะ ก็สามารถทำได้โดยอาจจะนำบทความนี้ไปเป็นตัวอย่างประกอบครับ
จะสร้าง CoreOS ให้กลายเป็น Cluster Docker Container ได้อย่างไร
จากบทความที่แล้วที่แนะนำเกี่ยวกับ CoreOS และการติดตั้งบน Vmware[1] ไปแล้วนั้น เราก็สามารถสร้างให้เป็นในรูปแบบ Cluster ได้ โดยมองว่าเครื่องแต่ละเครื่องที่สร้างนั้นเป็น Node หนึ่ง ๆ ใน Cluster โดยใช้ etcd เป็นตัวเก็บข้อมูลของ Node และ Fleet เป็นตัว Deploy docker ให้กระจายไปยัง Node ต่าง ๆ อย่างเหมาะสม โดยที่จะสามารถย้ายตัวเองได้เมื่อมีเครื่องใดเครื่องหนึ่งมีปัญหา (Recommend จำนวนเลขคี่ และอย่างต่ำต้อง 3 node ขึ้นไป ยิ่งเยอะ โอกาสล่มก็ยิ่งต่ำ)
etcd ในปัจจุบันเป็น Version 3 ซึ่งจะมีประสิทธิภาพเพิ่มขึ้นจาก Version 2 (แต่ใน document web ยังเป็น etcd2 เป็นส่วนมาก) โดยใช้สำหรับเก็บข้อมูลแต่ละ Node ทำให้รู้ว่าในแต่ละ Cluster มีเครื่องใด IP อะไรบ้าง มีทั้งหมด 3 วิธีคือ
ในบทความนี้จะอธิบายวิธีที่ 1 ซึ่งแม้ยุ่งยาก แต่เหมาะกับระบบที่ Internet Public ไม่ค่อยเสถียร และ ถ้าใครต้องการลองวิธีอื่นสามารถตามอ่านได้ใน Web CoreOS[2] ครับ
sudo vim /etc/systemd/system/etcd2.service
[Unit]
Description=etcd2
Conflicts=etcd.service
[Service]
User=etcd
Type=notify
Environment=ETCD_DATA_DIR=/var/lib/etcd
ExecStart=/usr/bin/etcd2 --name node01 --initial-advertise-peer-urls http://[IP]:2380 \
--listen-peer-urls http://[IP]:2380 \
--listen-client-urls http://[IP]:2379,http://127.0.0.1:2379 \
--advertise-client-urls http://[IP]:2379 \
--initial-cluster-token etcd-cluster-1 \
--initial-cluster node01=http://[IP_node01]:2380,node02=http://[IP_node02]:2380,node03=http://[IP_node03]:2380 \
--initial-cluster-state new
Restart=always
RestartSec=10s
LimitNOFILE=40000
TimeoutStartSec=0
[Install]
WantedBy=multi-user.target
sudo systemctl enable etcd2
sudo systemctl start etcd2
sudo systemctl status etcd2
etcdctl member list
sudo vim /etc/systemd/system/fleet.service
[Unit]
Description=fleet daemon
After=etcd2.service
Wants=fleet.socket
After=fleet.socket
[Service]
User=fleet
Environment=GOMAXPROCS=1
Environment="FLEET_PUBLIC_IP=[IP]"
ExecStart=/usr/bin/fleetd
Restart=always
RestartSec=10s
[Install]
WantedBy=multi-user.target
sudo systemctl enable fleet
sudo systemctl start fleet
sudo systemctl status fleet
fleetctl list-machines
ให้ทำการติดตั้งไปเรื่อย ๆ ทั้ง CoreOS->Etcd2->Fleet จนครบ 3 เครื่อง หรือ 5,7,9 เครื่องแล้วแต่จะต้องการว่าจะสร้างกี่ Node ครับ ยกตัวอย่างถ้าครบ 3 เครื่องก็จะได้ประมาณนี้ครับ
vim mysql.service
[Unit] Description=MySQL DataBase After=etcd.service After=docker.service [Service] TimeoutStartSec=0 ExecStartPre=-/usr/bin/docker kill mysql ExecStartPre=-/usr/bin/docker rm mysql ExecStartPre=/usr/bin/docker pull mysql:5.7 ExecStart=/usr/bin/docker run --name mysql -e MYSQL_ROOT_PASSWORD="wordpress" -e MYSQL_DATABASE="wordpress" -e MYSQL_USER="wordpress" -e MYSQL_PASSWORD="wordpress" mysql:5.7 ExecStop=/usr/bin/docker stop mysql
vim wordpress.service
[Unit] Description=WordPress After=mysql.service [Service] TimeoutStartSec=0 ExecStartPre=-/usr/bin/docker kill wordpress ExecStartPre=-/usr/bin/docker rm wordpress ExecStartPre=/usr/bin/docker pull wordpress ExecStart=/usr/bin/docker run --name wordpress --link mysql -p 8880:80 -e WORDPRESS_DB_PASSWORD=wordpress -e WORDPRESS_DB_NAME=wordpress -e WORDPRESS_DB_USER=wordpress wordpress ExecStop=/usr/bin/docker stop wordpress [X-Fleet] X-ConditionMachineOf=mysql.service
fleetctl start mysql.service
fleetctl start wordpress.service
fleetctl list-units
sudo vim /etc/systemd/network/static.network
[Match]
Name=[Interface Name]
[Network]
Address=[IP/Mask]
Gateway=[IP Gateway]
DNS=[DNS IP มีหลาย IP ให้เว้นวรรค เช่น 10.0.0.1 10.0.0.2]
สำหรับ CoreOS Cluster ก็มีเท่านี้ครับ แต่จะเห็นว่ายังขาด Docker Management ที่เป็น GUI รวมถึง Docker Gateway และระบบ Storage ติดตามในตอนต่อ ๆ ไปแล้วกันครับ
==================================
Reference :
[1] มารู้จักกับ CoreOS Linux และวิธีติดตั้ง CoreOS Linux บน Vmware : https://sysadmin.psu.ac.th/2017/05/03/coreos-linux-install-vmware/
[2] CoreOS Clustering Guide : https://coreos.com/etcd/docs/latest/op-guide/clustering.html#etcd-discovery
[3] Deploy WordPress in CoreOS Cluster using Fleet : https://wenfeng-gao.github.io/2016/06/03/deploy-wordpress-in-coreos-cluster-using-fleet.html
CoreOS Linux คืออะไร เอาไปใช้ทำอะไร
ในโลกของ Containner ในปัจจุบันมีหลายตัวเลือกให้ใช้งาน แต่การใช้งานที่สมบูรณ์จำเป็นต้องมี 3 อย่างรวมกันคือ Containner (ยกตัวอย่าง Docker,Rocket,Lxd), OS ขนาดเล็ก (ยกตัวอย่าง CoreOS, RancherOS, PhotonOS, Snappy Ubuntu Core, Redhat Project Atomic), และสุดท้ายคือโปรแกรมบริหารจัดการ Containner (ยกตัวอย่าง Kubernete, Admiral, Rancher, Kitematic)
สำหรับ CoreOS[1] เองรองรับการงานทั้งใน Cloud(AWS,Digital Ocean,Azure,Google Cloud Platform) หรือใน Virtualization Platform (ยกตัวอย่าง OpenStack, VMWare, Vagrant) และยังสามารถติดตั้งลงบนเครื่อง Physical (Bare Metal) ได้อีกด้วย
CoreOS มีจุดเด่นอีกอย่างคือระบบ CoreOS Cluster[2] ที่สามารถออกแบบเป็น Cluster ช่วยให้สามารถบริการ Docker Containner กระจายไปยัง Node ต่าง ๆ โดยใช้ etcd ในการจัดการระบบและใช้ fleet ในการสร้าง Docker ที่อยู่บน CoreOS Cluster ซึ่งจะกล่าวต่อไปในบทความต่อไปครับ
การติดตั้ง ติดตั้งได้หลากหลายช่องทาง เขียนแผ่นติดตั้งก็ได้ ผ่าน iso ก็ได้ แต่ถ้าเป็น Image จะไม่มี User (จริง ๆ มีแต่ไม่มี Password) ต้องสร้างด้วยสิ่งที่เรียกว่า cloud-config ซึ่งจำเป็นต้องตั้งค่าก่อนติดตั้ง หรืออีกแบบที่จะขอแนะนำ เป็นวิธีที่ใช้สำหรับ Image ที่เป็น ova ของ Vmware ซึ่งใช้วิธี Bypass เข้า Auto Login Mode[1] แล้วเข้าไป Add User เอาเองภายหลัง (สามารถนำไปประยุกต์กับวิธีติดตั้ง Image แบบอื่นได้เช่นเดียวกัน)
ตอนต่อไปจะมาดูกันว่าเราจะสร้าง CoreOS Cluster ได้อย่างไร….
==================================
Reference :
[1] มาเล่น CoreOS กัน : http://thaiopensource.org/%E0%B8%A1%E0%B8%B2%E0%B9%80%E0%B8%A5%E0%B9%88%E0%B8%99-coreos-%E0%B8%81%E0%B8%B1%E0%B8%99/
[2] CoreOS Cluster บน DigitalOcean : http://thaiopensource.org/tag/coreos/
[3] How-To Install and Configure CoreOS OVA Image on ESXi : https://www.vladan.fr/how-to-install-and-configure-coreos-ova-image-on-esxi/
ในตอนที่แล้วได้พูดถึงว่า pGina fork คืออะไรไปแล้ว ในครั้งนี้จะพูดถึงการตั้งค่าสำหรับทำเป็น Windows Authentication ในเครื่องคอมที่เป็น Windows 10 ผมได้ทำ screen capture มาเฉพาะที่ผมได้ใช้งาน ซึ่งก็คือ Local Machine, RADIUS plugin, Single User plugin และ LDAP plugin ครับ ตามดูกันมานะครับ
หน้าแรกคือแท็บ General จะแสดงให้เห็นว่าโปรแกรมพร้อมทำงาน ให้ดูที่ข้อความที่แสดงเป็นสีเขียวใต้ข้อความ pGina Service status
และตัวเลือกที่ผมเลือกใช้คือ Use original username to unlock computer (เพราะว่าผมจะใช้ Single User plugin ร่วมด้วย)
แท็บถัดไปคือ แท็บ Plugin Selection อันแรกที่จะใช้คือ Local Machine คือ user ที่สร้างขึ้นภายใน Windows นั่นเอง สังเกตจะมีตัวเลือกที่ Authentication และ Gateway
แก้ไขรูปภาพ Local Machine Plugin ต้อง ติ๊ก Notification ด้วย จึงจะมีผลกับ option Remove account and profile after logout
จากนั้นให้คลิกปุ่ม Configure จะได้ค่าดีฟอลต์ ดังรูปข้างล่างนี้
ผมจะใช้ค่าตัวเลือก Remove account and profile after logout when account does not exist prior to logon เพื่อที่ไม่ต้องเก็บ user profile ที่เป็น user จาก user database ภายนอก เช่น จาก RADIUS server เป็นต้น และ หากต้องการให้ user นั้นมีสิทธิมากกว่า User ทั่วไป ก็ตั้ง Mandatory Group เช่น ตั้งเป็น Administrators เป็นต้น
ต่อไปก็มาถึง RADIUS plugin เลือก Authentication และ Notification จากนั้นคลิกปุ่ม Configure
จะได้ค่าดีฟอลต์ ดังรูป
ผมจะเลือกใช้และใส่ค่าต่าง ๆ เหล่านี้ครับ
เลือก Enable Authentication เพื่อสอบถาม username/password
เลือก Enable Accounting เพื่อส่งข้อมูลบันทึกค่า Acct-Status-Type ไปยัง RADIUS Server
แล้วระบุ Server IP และ Shared Secret ที่จะต้องตรงกันกับที่ระบุอยู่ใน config ที่ RADIUS server เช่น FreeRADIUS จะอยู่ในไฟล์ /etc/freeradius/clients.conf เป็นต้น
(13 ก.ค. 2561) เลือก Called-Station-ID ด้วย หากต้องการเลข MAC Address เก็บด้วยนอกจากเก็บ IP
(10 ก.ค. 2561) พบว่าจำเป็นต้องเลือก Accounting Options หัวข้อ Send Interim Updates เพื่อให้มีการส่งค่า accounting ได้ (โดยใช้ค่า Send update every 900 seconds ตามที่เป็นค่า default)
แล้วระบุ IP Address Suggestion เช่น 192.168.1. หมายถึงระบุว่าจะใช้ข้อมูลของ network นี้ เพราะว่าในเครื่องอาจมีการติดตั้งซอฟต์แวร์ที่จำลอง network interface เพิ่มขึ้นมาอีกอัน เป็นต้น
ส่วนค่าอื่น ๆ ปล่อยไว้ตามเดิม
ต่อไปก็เป็น Single User plugin ที่เราจะใช้เพื่อให้เป็น Windows User Profile หลักของ user ทุกคนที่มาจาก RADIUS plugin หรือ LDAP plugin จะทำให้เมื่อเป็น User ที่ไม่เคยเข้าใช้เครื่องนี้มาก่อน จะเข้าได้อย่างรวดเร็วกว่าการที่จะให้ Windows สร้าง new user profile
ให้คลิกที่ Gateway แล้วคลิกปุ่ม Configure จะได้ค่าดีฟอลต์ ดังรูป
ให้ใส่ Username ที่ได้สร้างไว้ใน Windows ตัวอย่างเช่น ผมสร้าง user ชื่อ labuser ไว้ มี password คือ 123456 เป็นต้น ตรงค่า Domain ไม่ได้แก้ไข แล้วไปลอกตัวเลข RADIUS plugin (หากใช้) หรือ LDAP plugin (หากใช้) มาใส่ โดยให้คลิกเลือก Only substute if any แล้วคลิกช่องว่าง เพื่อวางตัวเลข ดังรูป
ถัดไปคือแท็บ Plugin Order ผมไม่ได้แก้ไขใด ๆ คงค่าเดิมไว้
ตอนนี้ก็ได้เวลาทดสอบด้วยแท็บ Simulation
ทดสอบใส่ username และ password มันจะตรวจสอบ ทุก ๆ plugin ที่มี แล้วแสดงค่าสุดท้าย(ในช่องด้านขวา) Final User Data ที่ใช้ในการเข้าใช้ Windows หากได้ผลลัพธ์แบบนี้ ก็ถือได้ว่า ถูกต้อง
หรือแบบนี้ก็ถูกต้อง แม้ว่าจะมีข้อความบนแถบสีแดงในบรรทัด Local Machine plugin และเป็นค่า False ก็แสดงว่า user คนนี้ไม่เคยเข้าใช้เครื่องนี้มาก่อน
แต่หากเราจะเลือกใช้ LDAP plugin แทน RADIUS plugin ก็กลับไปที่แท็บ Plugin Selection แล้วเลือก LDAP plugin และคลิกเลือก Authentication อย่างเดียว จากนั้นคลิกปุ่ม Configure จะได้ค่าดีฟอลต์ ดังรูป
ที่ผมทดสอบใช้งานกับ LDAPS ที่ติดตั้งไว้ที่เครื่อง Microsoft AD ผมใส่ค่าในช่องต่าง ๆ ดังรูป
LDAP Host(s) ใส่ได้มากกว่า 1 ชื่อ เว้นช่องว่างระหว่างชื่อ
LDAP Post ใช้ 636 และเลือก Use SSL
สำหรับ Search DN และ Search Password จะได้จากผู้ดูแล Microsoft AD ของหน่วยงานให้กับเรามาครับ
ไม่เลือก Allow Empty Passwords
เลือก Search for DN และใส่ค่าในช่อง Search Filter และ Search Context(s) ตามข้อมูลที่ได้รับจากผู้ดูแล Microsoft AD ของท่าน
แล้วหากต้องการใช้ Single User plugin ด้วยก็ให้นำ UID ของ LDAP plugin (ดูที่แท็บ Plugin Selection ที่คอลัมน์ขวาสุดของรายการ LDAP plugin) ไปคีย์ใส่ในช่องว่างใน Single User plugin ด้วย
นอกจากนี้ เราจะต้องใช้โปรแกรมประเภท System Restore เพื่อคืนค่ากลับเหมือนเดิม เมื่อ User ได้ Logout/Shutdown ไปแล้ว เพื่อป้องกันมิให้ระบบ Windows เปลี่ยนแปลงจากการใช้งานของ User คนก่อนหน้า
คิดว่าคงจะได้นำไปใช้งานกันนะครับ
เพิ่มเติมเนื้อหา
คัดลอกเนื้อหามาจากเพจเดิม เรื่อง การตั้งค่า pGina และ FreeRADIUS เพื่อส่งค่า RADIUS Accounting ไปยัง Firewall ของมหาวิทยาลัย
FreeRADIUS Version 2.2.8 แก้ไขไฟล์ /etc/freeradius/proxy.conf อาจด้วยคำสั่ง vi หรือ nano ตามชอบ
FreeRADIUS Version 3.0.16 แก้ไขไฟล์ /etc/freeradius/3.0/proxy.conf
เพื่อให้มีค่า realm NULL (ประมาณบรรทัดที่ 672) ที่กำหนดค่า Accounting Port เพียงอย่างเดียวส่งไปยังเครื่อง Firewall
ในรูปตัวอย่างเครื่อง Firewall คือ radius.hatyai.psu.ac.th และต้องรู้ค่า secret ที่ตั้งเพื่อใช้สำหรับเครื่อง FreeRADIUS และ Firewall ในที่นี้คือ yoursecret (อันนี้ต้องมีการติดต่อกับ network administrator ของมหาวิทยาลัยเพื่อร่วมกันตั้งค่านี้)
และแก้ไขอีกแฟ้มคือ
FreeRADIUS Version 2.2.8 แก้ไขที่แฟ้ม /etc/freeradius/sites-available/default
FreeRADIUS Version 3.0.16 แก้ไขที่แฟ้ม /etc/freeradius/3.0/sites-available/default
ประมาณบรรทัดที่ 325 Pre-accounting ใน module ชื่อ preacct
preacct {
preprocess
เพิ่ม
}
หากยังไม่มีบรรทัดเหล่านี้ ให้เพิ่มด้วยต่อท้ายบรรทัด preprocess
# append update for pGina no attribute Framed-IP-Address if (NAS-IP-Address != 127.0.0.1) { update request { Framed-IP-Address = "%{NAS-IP-Address}" } }
แล้ว restart FreeRADIUS ใหม่
sudo service freeradius stop
sudo service freeradius start
จากนั้นรอให้ทางฝั่งผู้ดูแล Firewall ตั้งค่าโปรแกรมที่ดึงข้อมูลที่ FreeRADIUS ของเราส่งไปนำไปใส่ใน Firewall Rule อนุญาตเครื่องไคลเอ็นต์ไม่ต้อง login ซ้ำ
เราใช้งาน pGina for Windows เวอร์ชั่น 3.1.8.0 มาสักระยะหนึ่งแล้ว คิดว่าแอดมินดูแลห้องคอมคงจะรู้จักกันดีว่าเป็นโปรแกรมสำหรับให้ผู้ใช้งานใส่ username และ password ของ user database ภายนอกได้ เวอร์ชั่นนี้ก็ยังคงใช้งานได้ดีอยู่ครับ แต่ตอนนี้หากเราจะให้ pGina ส่ง RADIUS Accounting ไปยัง RADIUS Server จะทำได้ไม่สมบูรณ์
ผมค้นหาอยู่ว่าจะมีเวอร์ชั่นที่ใหม่กว่ามั้ย ก็พบว่าปัจจุบันนี้ เว็บไซต์เดิม pGina นั้นจะมีถึงเพียงแค่เวอร์ชั่นเก่า
แต่มีคนนำไปทำเพิ่มเติมจาก project เดิม เรียกว่าการ fork project จึงเกิดเป็นเว็บไซต์อีกอันคือ pGina fork
ซึ่งเวอร์ชั่นปัจจุบันที่ผมทดสอบแล้วว่าใช้งานกับ Windows 10 ได้ คือเวอร์ชั่น 3.2.4.1 แม้ว่าจะมีเวอร์ชั่นล่าสุดกว่านี้ (3.9.9.7) แต่ Windows 10 มันแจ้งเตือนว่าเป็นเวอร์ชั่นที่ไม่ได้ระบุ Publisher ที่แน่ชัด Windows 10 จึงเตือนให้อย่าติดตั้ง ผมก็ไม่แน่ใจว่าเพราะเหตุใด
สรุปว่า pGina fork ก็คือ pGina ที่มีคนนำไปพัฒนาต่อโดยการ fork จาก project เดิม และมาเป็น project อีกอันที่นี่ http://mutonufoai.github.io/pgina/ หรือ ที่นี่ก็ได้ https://github.com/MutonUfoAI/pgina/
ดาวน์โหลดเวอร์ชั่น 3.2.4.1 ได้ที่นี่ https://github.com/MutonUfoAI/pgina/releases/download/3.2.4.1/pGinaSetup-3.2.4.1.exe
ในตอนถัดไปจะมาพูดถึง pGina fork 3.2.4.1 configuration ครับ
วันนี้มานำเสนอการแต่งภาพง่าย ๆ โดยไม่ต้องใช้โปรแกรมตกแต่งภาพ แค่มีโปรแกรมนำเสนอผลงานอย่าง Power Point ก็สามารถทำได้ไม่ยากเลย โดยวันนี้ขอเสนอการแต่งภาพให้มีมิติ ไปดูกันเลยจร้า
1.เปิดโปรแกรม Power point จากนั้นไปที่เมนู Insert คลิก Pictures เลือกภาพที่ต้องการ
2.คลิกที่ภาพที่ Insert เข้ามา จากนั้นกด ctrl ค้างไว้ แล้วลากภาพออกมา จะได้เพิ่มขึ้นมาอีกภาพนึง
3.เอาภาพพื้นหลังออก คลิกที่ภาพที่ต้องการเอาพื้นหลังออก ไปที่เมนู Format คลิก Remove Background แล้วปรับขนาดให้ได้ตามต้องการ
4.จากนั้นที่เมนู Format คลิก Keep Changes ภาพพื้นหลังก็จะหายไป
5.ภาพตั้งต้นเราทำการใส่กรอบเข้าไป ไปที่เมนู Format คลิก Metal Frame
9.กรณีที่ 2 ให้รูปดอกบัวปรากฏเด่นมาด้านข้าง ที่เมนู Format คลิก Crop to Shape เลือก Flowchart Manual Input จากนั้นคลิก Crop
10.เลื่อนขนาด และเลื่อนด้านข้างเข้ามา เพื่อให้ดอกบัวปรากฏขึ้นมาทั้งด้านบนและด้านข้าง จากนั้นคลิก Crop
11.จากนั้นนำดอกบัวภาพที่นำพื้นหลังออกมาประกบลงในภาพที่1