Showing posts with label Endian Community. Show all posts
Showing posts with label Endian Community. Show all posts

Sunday, February 24, 2013

Upgrade Endian Community 2.5.1 เพื่อการจัดเก็บ Log ที่ดีขึ้นด้วย OpenTSA

และแล้ว Endian Firewall Community ก็ได้ปรับปรุงวิธีัจัดเก็บ log ด้วย timestam ที่่ปลอดภัยมากขึ้นด้วย OpenTSA เสียที ซึ่งตามพรบ.คอมพิวเตอร์ของไทย log ที่ใช้เป็นหลักฐานในชั้นศาลนั้น จะต้องไม่ถูกแก้ไข ในเวอร์ชั้นที่ผ่านๆมา เราต้องมาเขียน script เข้ารหัส ให้ยุ่งยากซับซ้อน




เชิญ upgrade จาก 2.5 ไปเป็น 2.5.1 ได้แล้ว ณ บัดนี้

1. อัพเกรดได้เฉพาะ efw ที่ลงทะเบียนกับ community แล้วเท่านั้น ตรวจสอบด้วยคำสั่งต่อไปนี้


smart channel --show | grep devel

ควรจะแสดงผลดังว่านี้นะครับ

baseurl = http://USERNAME:community@updates.endian.org/devel/

2. ถ้าใช่ก็ upgrade ด้วยคำสั่งต่อไปนี้อ่ะครับ

smart update
smart upgrade efw-upgrade
efw-upgrade


3. รอจนกว่ากว่าจะ upgrade เรียบร้อยแล้ว restart

หมายเหตุ : ถ้าเปิด efw ขึ้นมาใหม่ไม่มีอะไรเกิดขึ้น ก็ตัวใครตัวมันหล่ะ ...

Wednesday, July 18, 2012

Set ให้ Endian Firewall รายงาน Event notifications

คุณผู้อ่าน... ท่านที่เคารพ

EFW Community มีดีอีกอย่างหนึ่งคือ Event notifications รายงานให้ admin รับทราบเหตุการณ์ผ่าน E-Mail อย่างฉับพลันทันที ของดี ๆ หาก config ไม่ถูกต้องก็อดได้ใช้เหมือนกัน

มาดูวิธีการ config ในแบบฉบับของผมครับ

1. ต้อง enable SMTP Proxy และกำหนดค่า Activate smarthost for delivery เสียก่อน


Proxy -> SMTP
Advanced -> Activate smarthost for delivery
Smarthost address -> smtp.live.com
Smarthost port -> 587
Smarthost authentication : k.tawich@hotmail.com
Smarthost password :xxxxxxx
Choose authentication method : PLAIN,LOGIN

ในที่นี้ผมใช้ hotmail เป็น Smarthost ท่านอื่นแล้วแต่ถนัด มีเคล็ดลับอยู่ว่า "หากใช้ mail ของ ISP ต้องตรวจสอบว่าเขาเปิด port 25 ให้ด้วยไหม"

2. เปิด Event notification

System -> Event notifications
Settings
Email notifications ->
notify using custom email address
Mail sender address -> ชื่อที่ให้ replay กลับได้
Mail recipient address -> Email ที่คุณอยากให้ notify ประจำ
Mail smarthosts -> 127.0.0.1
เท่านี้ก็ OK ใช้งานได้ครับ ดูรูปภาพประกอบ

คอนเซ็ป ให้ firewall รายงานสถานะต่าง ๆ เป็นเรื่องที่ดีไม่ว่าจะเป็น firewall ค่ายไหน สำหรับ EFW ที่ให้มาเป็นค่าตั้งต้นนั้นดูออกจะน้อยไปหน่อย และไม่ค่อยเกิดประโยชน์ เมื่อเหตุการณ์นั้น ๆ เกิดขึ้นแล้ว เพียงรายงานให้ทราบสถานะเท่านั้น

หากต้องการให้ EFW รายงานสถานะของ application ต่าง ๆ เราก็ประยุกต์ใช้เพิ่มเติมได้อีก โดยใช้ mail command ร่วมกับ script ต่าง ๆ ของโปรแกรมนั้น ๆ ได้ เช่นให้รายงาน access.log ของ squid ทุกวัน เราก็สร้าง script ส่งไฟล์ access.log โดยผ่าน Smarthost ได้ นับได้ว่าได้ใช้ EFW อย่างคุ้มประโยชน์ เหมาะต่อ admin ขั้นเทพอย่างเราๆท่านๆ อย่างยิ่ง....

เอวัง


Tuesday, July 17, 2012

Encryption EFW Log ฉบับ ก๊วยเตี๋ยวแห้ง

คุณผู้อ่าน... ท่านที่เคารพ

วันก่อนได้แนะนำให้ encryption log ของ EFW เพื่อให้มีความน่าเชื่อถือไปแล้ว วันนี้มาดูอีกวิธีหนึ่ง ซึ่งใกล้กับความเป็นจริงในการเก็บ log ของ EFW มากที่สุด

เหตุผลนั้นหรือ?

1. EFW ใช้ logrotae ในการเก็บ log แต่ละวัน
2. Log ถูกบีบอัดด้วย gzip ไว้ที่ /var/log/archives
3. Log ใน archives นี่แหละที่ถูกเรียกมาดูย้อนหลังใน GUI

ดังนั้นเราจะเก็บไฟล์ log.gz ต่าง ๆ ใน /var/log/archives นี่แหละเอาไปเข้ารหัส ทำการ hasing และจัดเก็บไว้ในที่ปลอดภัย

อย่างไร?
ศึกษาและทำความเข้าใจไฟล์เหล่านี้

1. ไฟล์ /etc/logrotate.conf เก็บ grobal option สำหรับ เรียกใช้จาก application ต่าง ๆ
โดยแต่ละ application จะมี option เฉพาะอีกใน /etc/logrotate.d/

2. คำสั่ง logrotate เพื่อใช้งานบางส่วน
- logrotate -d /etc/logrotate.conf
ไว้สำหรับดูรายละเอียดที่กำหนดเป็น option ไว้ใน appliction ต่าง ๆ
- logrotate -f /etc/logrotate.conf
เมื่อกำหนดค่าใหม่ ๆ ให้กับ logrotate ไม่ว่าจะเป็น global option หรือ application option สั่งให้ logrotate ทำงานใหม่

3. Option ที่ควรทำความรู้จักเอาไว้

rotate
daily,weekly,monthly
notifempty
compress
delaycompress
missingok
create
lastaction
endscrip

4. เข้ารหัสไฟล์ gz จะต้องใช้คำสั่ง

$TAR cvzf - $PROXYLOG | $OPENSSL des3 -salt -k keyfile$TODAYDATE | $DD of=$PROXYLOG-des

เมื่อ
$TAR = /bin/tar
$PROXYLOG = /var/log/archives/squid/access.log-$TODAYDATE.gz
$OPENSSL = /usr/bin/openssl
$TODAYDATE=`date +%Y%m%d`
$DD=/bin/dd

5. เขียน script encryption เหล่านี้ใน file squid /etc/logrotate.d/ ระหว่าง lastaction และ endscript
ทางที่ดีในบรรทัดสุดท้ายควรจะเขียนคำสั่งส่งเมล์แจ้ง admin เพื่อทราบด้วยจะดูดีทีเดียว



6. สร้างไดเรกทอรี /var/log90days/logencryption และ /var/log90days/loginfo โดย
- เก็บไฟล์ encryption ไว้ที่ logencryption ให้เก็บใส่ CD 1 แผ่น และ
- เก็บไฟล์ loginfo ไว้ที่ loginfo ให้เก็บใส่ CD 1 แผ่น
ใครได้แผ่นใดแผ่นหนึ่งไป ก็ใช้ไม่ได้ เพราะตอนถอดรหัส มันต้องใช้คุ่กัน ดูซับซ้อน ซ่อนเงื่อนดี (อิอิ)

7. การส่งเมล์ด้วยคำสั่ง mail command ใน EFW มี error บ้างในไฟล์ /var/log/maillog

warning: unable to look up public/puckup
ให้แก้ด้วยคำสั่งนี้ mkfifo /var/spool/postfix/public/pickup

8. ครั้นแล้วก็จะส่งเมล์ไม่ออกอีก ต้องกำหนดค่าให้กับ smart host ใน EFW ตาม mail ISP ที่คุณใช้ หรือจะเลี่ยงไปใช้ relay mail เจ้าอื่นแทนก็ได้


สรุปจากขั้นตอนเหล่านี้จะทำให้เราได้ log ที่น่าเชื่อถือมากที่สุด โดยให้ logrotate เป็นตัวจัดการให้พร้อมกับการจัดเก็บ log ของระบบไปด้วยกันเลย ทั้งยังได้รับ mail บอกสถานะการ backup ในแต่ละวันอีกด้วย
สุดท้ายแล้วจัดเก็บ Log เป็น 2 CD เพื่อใช้ถอดรหัสคู่กัน อีกด้วย ถึงขนาดนี้ถ้ายังมีข้อโต้แย้งอีก... ก็ต้องใช้ขั้นมารกันแล้ว

เป็นไงครับทานก๊วยเตี๊ยวแห้งๆไม่มีน้ำซุป ฝืดคอดีไหม.. เหมือนกับท่านอ่านบทความของผมวันนี้แหละ เอาแต่ "เนื้อ" ไปเลยไม่ต้องมีน้ำ...

คราวหน้าผมจะมาเติมน้ำซุป โดยใส่รายละเอียดวิธีแต่ละข้อให้อีกรอบ

คอยติดตามครับ....

เอวัง......

SMTP Proxy ใน EFW โดยใช้ Relay Hotmail

คุณผู้อ่าน... ท่านที่เคารพ

การส่งเมล์ออกโดยผ่าน EFW นั้นทำได้สองทางคือ ทางหนึ่งผ่าน isp mail ของท่านที่ต่อเชื่อมอยู่ อีกทางหนึ่งนั้นโดยผ่าน mail เจ้าอื่นที่ยอมให้ relay ได้ ซึ่งจะแสดงวิธี setup relay ผ่าน hotmail เป็นตัวอย่าง....

ให้ตรวจเช็คไฟล์ /var/log/maillog ในขณะ setup จะทำให้ได้อรรถรสในการชมมากขึ้น

1. เบื้องต้นเลย EFW จะมี warning : unable to look up public/pickup: No sush file or directory
ให้แก้ไขด้วยคำสั่ง mkfifo /var/spool/postfix/public/pickup

2. ไปที่ Proxy -> SMTP

Advanced : Activate smarthost for delivery
Smarthost address : smtp.live.comSmarthost port : 587
Smarthost authentication : email@hotmail.com
Smarthost password :xxxxxxx
Choose authentication method : PLAIN,LOGIN


3. กลับมา Enable SMTP Proxy
Green : active
RED : inactive




4. ทดสอบส่งเมล์ด้วยคำสั่ง เช่น

mail -s "this testing with Proxy SMTP" tawich.it3@gmail.com < textfile.txt

ไปเปิดเมล์ดูครับ.....

Sunday, July 15, 2012

Encryption Log ของ Endian Firewall เพื่อให้มีความน่าเชื่อถือในชั้นศาล

คุณผู้อ่าน... ท่านที่เคารพ

Log ของ EFW ที่เราเก็บตามพรบ.นั้นเป็น raw log ที่ยังเข้าถึงง่าย และแก้ไขได้ จะเป็นหลักฐานที่ไม่มีความน่าเชื่อถือในชั้นศาล เท่ากับเก็บ log ไม่ถูกต้องมาแต่แรก...

การเก็บ Log จึงควรสร้างความน่าเชื่อถือด้วยการเข้ารหัส (encryption) และตรวจสอบความถูกต้องว่า log นั้นไม่มีการแก้ไขใดๆเมื่อถึงมือศาล (hashing) ใน EFW เราใช้ openssl เข้ารหัสและทำการ hashing

โดยมี concept ดำเนินการดังนี้

1. generate random password เพื่อใช้ประกอบกับ openssl ในการเข้าและถอดรหัส
2. กำหนดตัวแปรวันที่เพื่อใช้เป็น label ให้กับไฟล์ที่จัดเก็บ
3. เข้ารหัสไฟล์ access.log , firewall ติด date label
4. สร้าง file.info ประกอบเพื่อบ่งชี้รหัส hashing กับ พาสเวิร์ดสำหรับการถอดรหัสไฟล์
5. จัดเก็บในสื่อที่เหมาะสม

ตัวอย่างคำสั่ง

กำหนดตัวแปรวันที่เพื่อใช้ประกอบไฟล์

TODAYDAT=`date +%Y-%m-%d-%H%M%S`

Gengerate Random Password

openssl ran -base64 6 -out keyfile$TODAYDAT

ทำการเข้ารหัสไฟล์ log

openssl des3 -in [access.log และ firewall] -out [New Log] -k  keyfile$TODAYDAT

Hasing Code

openssl sha1 $LOGTODAY >> $LOGINFO

เขียนสคิปต์ให้ทำงานทุกวัน
เก็บ log ที่เข้ารหัสแล้วไว้ 90 วันด้วย CD หรือ DVD
เป็นการปิดช่องโหว่ให้ EFW LOG สร้างความน่าเชื่อถือในชั้นศาล

อย่าให้เกิดช่องโหว่ในหลักฐานได้

รำไม่ดี อย่าโทษปี่ โทษเอนเดียน นะครับ

เอวัง....

link ที่น่าสนใจ

http://osxdaily.com/2012/01/30/encrypt-and-decrypt-files-with-openssl/
http://www.madboa.com/geek/openssl/

Tuesday, July 10, 2012

Endian Firewall ใช้ Dyndns ได้เยอะ ไม่ต้องง้อ Dyndns

คุณผู้อ่าน... ท่านที่เคารพ

เมื่อ dyndns.org ไม่ฟรีอีกต่อไป เราก็อย่าง้อมากนัก โดยเฉพาะ EFW มีทางเลือกให้ใช้ Dyndns ตั้งหลายเจ้า ไม่เชื่อลองดูที่ drop down menu หัวข้อ Service -> Dynamic DNS ดูซิครับ

วันนี้ผมจะแนะนำให้ใช้ freedns.afraid.org ด้วยขั้นตอนเสร็จสิ้นภายในถ้วยกาแฟเดียว ลองดูตามนี้

1. สมัคร freedns.afraid.org เสียก่อนโดยกรอกข้อมูลและ activate ผ่าน E-mail
2. สร้าง sub domain

เลือกหัวข้อ Subdomains ที่เมนูด้านซ้ายมือ For Member
คลิก Add เข้าไป

Type: A
Subdomain: <ตั้งชื่อ>
Domain: crabdance.com(public)
Destination : ก็จะเป็นหมายเลขไอพี ADSL ของคุณตอนนี้เอง

เสร็จแล้ว Save

3. เอาชื่อและ  พาสเวิร์ดของคุณมาตั้งใน EFW ตามปกติ

4. ทดสอบ script update

ที่เมนู Dynamic DNS ขวามืออันเดิม
คลิกเลือก Wget Script ที่ sub domain ของคุณ

หน้าตา script จะประมาณนี้เลยครับ

wget -q --read-timeout=0.0 --waitretry=5 --tries=400 --background https://freedns.afraid.org/dynamic/update.php?VC16QUg2MzFVMVVBQUVCbi00RUFBQUEzOjc5Mzc4MzA=

ทดสอบรันคำสั่งดู ถ้า EFW ยังไม่มี wget ก็ไปอ่านบทความย้อนหลังของผมดู มีเขียนไว้แล้ว

เมื่อทุกอย่าง Ok ก็เอา script นี้ไปเขียนเป็น crontab ซะ

อ้าว... กาแฟหมดถ้วยพอดี เลยยังไม่ได้แนะนำ crontab กันเลย

อิอิ





Allow Some Web and Block All Web with Endian Firewall 2.5

คุณผู้อ่าน... ท่านที่เคารพ

ด้วยแนวคิดให้ผู้ใช้บางกลุ่มใช้งานได้บางเว็บเท่านั้น และผู้ใช้บางกลุ่มใช้งานได้ทุกเว็บโดยไ่ม่มีข้อจำกัด สำหรับ EFW อาจจะมีหลายวิธี แต่... สำหรับผม นี่คือวิธีที่ได้ผล และทดสอบแล้ว

Block All WEB

1. สร้าง profile ใน contenfilter เลือก Custom black - and whitelists ใส่ ** (ดอกจันสองตัว) ในช่อง Block the following sites แล้วตั้งชื่อ profile เอาไว้
-- file ที่ถูก update คือ /etc/dansguardian/profiles/x/bannedsitelist_custom
-- เป็นการ block ด้วย profile ใน dansguardian rule

Allow Some WEB

2. สร้าง Access Policy กำหนดค่า

Source Type : Zone -> GREEN
Destination Type : Domain
Insert Domain : ตัวอย่าง (ต้องมี จุด นำหน้าด้วย)
.google.co.th
.google.com
.gmail.com
.gstatic.com
.yahoo.com
.live.com
.hotmail.com
Authention : user based / Group เลือก User หรือ Group
Access policy : Allow access
Filter profile : Default Profile
Policy status : Enable policy rule
Position : First position

-- file ที่ update คือ /etc/squid/acls/dst_rule0.acl และ dst_rule1.acl
-- อนุญาติผ่าน acl dstdomain ด้วย squid

3. สร้าง Access Policy ที่สอง กำหนดค่า

Source Type : Zone -> GREEN
Destination Type : ANY
Authention : user based / Group เลือก User หรือ Group
Access policy : Allow access
Filter profile : Profile ที่มีการกำหนดค่า ตามข้อ 1
Policy status : Enable policy rule
Position : Last

ทดสอบเอา profile ของ dansguardian ขึ้นเป็น First position ปรากฏว่า block หมดเลยกฏข้อที่สองไม่มีโอกาสได้ทำงานเอาเสียเลย

สำหรับผมวิธีนี้ใช้ได้ผล...
ส่วนท่านจะมีความเห็นอย่างไร... ก็จง Opensource เองเถิด...
เอวัง



Monday, July 9, 2012

VPN Site to Site ด้วย Endian Firewall 2.5.1

คุณผู้อ่าน... ท่านที่เคารพ

อันเนื่องมาจาก project ที่นี่ จึงขอบันทึกการ setup ด้วย Endian Firewall 2.5.1 เป็นตัวอย่างไว้




ข้อกำหนด คอมพิวเตอร์ทั้งสอง net ตัองสื่อสารถึงกันได้ในระดับ client

EFW : 192.168.0.15 เป็น VPN Server
EFW : 192.168.1.254 เป็น VPN Client GW2GW
ทั้งสองฝั่งใช้ internet แบบ Dynamic ไม่ fixed IP ใช้ dyndns เพื่ออ้างอิงชื่อ และ setup router ให้เป็น bridge mode

เมื่อเข้าใจ network diagram แล้ว กำหนดค่าต่าง ๆ ได้ดังนี้

ที่ EFW : 192.168.0.15

VPN -> OpenVPN server


OpenVPN server -> Tick

Dynamic IP pool start address: 192.168.0.110

Dynamic IP pool end address: 192.168.0.120

Note : จะต้องกำหนดให้ EFW ให้บริการ DHCP ด้วย


download CA certificate เพื่อเตรียมไป Import เข้าที่เครื่อง EFW : 192.168.1.254

----- > ตั้งชื่อไว้เพื่อการ authen ด้วย OpenVPN


OpenVPN -> Accounts




Username: servertoserver

Password : mrtconsult

Verify password :
Client routing

Direct all client traffic through the VPN server : Tick

Push only global options to this client -> Tick

Network behide client : 192.168.1.0/24


OpenVPN - Advanced



Port 1194

Protocol UDP

Block DHCP responses comming from tunnel -> Tick

Don't block traffic between clients  -> Tick

Allow multiple connections from one account -> No Tick

Global push options

Push these network -> Enable 192.168.0.0

Push these nameservers -> Enable 192.168.0.15

Push domain -> Enable mrt.local

Authentication type

PSK (username/password)


ที่ EFW 192.168.1.254

VPN -> OpenVPN client(Gw2Gw)

Add tunnel configuration

Connection name :
Connect to:
Upload certificate
Username : servertoserver
Password: xxxxx
Remark: User for Net to Net

Device type : TAP
Connection type: Routed
Block DHCP responses coming from tunnel: Tick
Use LZO compression: Tick
Protocol: UDP



OK ครับ ด้วย config แบบนี้ client ทั้้งสองฝั่ง ping หากันได้ browse ไฟล์เซิร์ฟเวอร์จาก 192.168.1.0 ไปที่ 192.168.0.100 ได้ พร้อมกับเรียกใช้ mail server ได้ด้วย

จบ project ... เก็บเงินได้แล้ว

Thursday, July 5, 2012

สร้าง Iptables Rules ใน Endian Firewall เพิ่มเติมเอง

 คุณผู้อ่าน.... ท่านที่เคารพ

ใน Endian Firewall ใช้ Iptables เป็นหัวใจเลยก็ว่าได้ในการกำหนด policy ต่าง ๆ ใช้ filter และ nat เป็นหลัก
โดย EFW กำหนด chain ต่าง ๆ ไว้ดังนี้

filter:
Chain CUSTOMFORWARD
Chain CUSTOMINPUT
Chain CUSTOMOUTPUT

nat:
Chain CUSTOMPOSTROUTING
Chain CUSTOMPREROUTING

ตรวจสอบ iptables rules ด้วยคำสั่ง  iptables -L CUSTOMFORWARD -nv เป็นต้น

การสร้าง rules เข้ามาใหม่

1. สร้าง script สำหรับ iptables ขึ้นมาใน /etc/rc.d/start ตัวอย่างใช้ชื่อว่า 99customfirewall

# cd /etc/rc.d/start
# vi 99customfirewall

2. เพิ่มคำสั่ง iptables กำหนด rule ต่าง ๆ ตัวอย่าง

#!/bin/sh
/sbin/iptables -A CUSTOMFORWARD -s 222.222.222.222 -d 172.16.10.0/24 -j ACCEPT
## Deny Yahoo Messenger packets:

/sbin/iptables -A CUSTOMFORWARD -m string --string 'YMSG' --algo bm -j DROP
/sbin/iptables -A CUSTOMFORWARD -m string --string 'messenger' --algo bm -j DROP
/sbin/iptables -A CUSTOMFORWARD -m string --string 'meebo' --algo bm -j DROP
/sbin/iptables -A CUSTOMFORWARD -m string --string 'buddy' --algo bm -j DROP
/sbin/iptables -A CUSTOMFORWARD -m string --string 'webmessenger' --algo bm -j DROP
/sbin/iptables -A CUSTOMFORWARD -m string --string 'web-messenger' --algo bm -j DROP

### Deny facebook traffic rule:


/sbin/iptables -A CUSTOMFORWARD -m string --string 'facebook' --algo bm -j DROP

 ## Deny hi5 traffic rule:

/sbin/iptables -A CUSTOMFORWARD -m string --string 'hi5' --algo bm -j DROP
 3. สร้างโหมดรันให้กับ 99customfirewall
# chmod +x 99customfirewall



4. รันคำสั่งทดสอบด้วย
./99customfirewall

เมื่อทุกอย่างปกติดีแล้ว กฏของ iptables ใหม่จะรันโดยอัตโมัติทุกครั้งเมื่อเปิด EFW

เอาไปประยุกต์ใช้เพิ่มเติมเอานะครับ....

ที่มา :
http://eduardosilva.eti.br/sysadmin/customizando-o-firewall-do-endian/

อนุญาติให้เผยแพร่โดยอ้างที่ 
http://samba-beginner.blogspot.com/2012/07/iptables-rules-endian-firewall.html

Friday, August 19, 2011

Endian Firewall Community กับความไม่ stable ที่ควรหลีกเลี่ยง

1. Endian Community 2.3 มีปัญหาเรื่อง QoS ถ้าฟอร์แมตเครื่องลงใหม่ก็ใช้งานได้ ถึงยังไงก็ใช้ได้บ้างไม่ได้บ้างอยู่ดี อยากรู้เรื่องนี้ให้ลึกซึ้งลองถามอาจารย์ Google ด้วยคำสั่ง "restartqos.py  ERROR - Migration has to be fixed" มี Guru เจ้าไหนบ้างบอกวิธีแก้ปัญหา


2. ลูกค้าใช้ Openvpn ลิงค์เข้ามาที่ office แล้วเข้าเซิร์ฟเวอร์ใด ๆ ภายในแลนไม่ได้ ping ก็ไม่พบ หรือ ping พบแต่เข้าใช้ service ไม่ได้
- ข้อนี้ไม่ใช่ปัญหา แต่สันนิษฐานว่าเครื่องที่ VPN เข้ามานั้นอยู่ใน network ที่ซ้ำกันกับวงแลน เช่น
ใช้ notebook อยู่ office ที่ไซต์งานผ่าน ADSL ที่แจกไอพีให้เป็น 192.168.1.x ตามค่า default ของเราท์เตอร์ที่โน่น แล้วเซิร์ฟเวอร์ก็ใช้ไอพีเป็น 192.168.1.x เหมือนกันเสียด้วย เรียกว่าตั้งตามค่า default ทั้งสองฝั่งกันเลย
แบบนี้มีปัญหาเรื่อง gateway ต้องเพิ่มคำสั่ง push "redirect-gaeway" ลงไปในไฟล์ openvpn.conf.tmpl ของ EFW

3. ถ้าไม่ต้องการให้ ping มาที่ EFW จะใช้ iptables ปิดกั้นอย่างไร ?

เอาง่าย ๆ แบบนี้ดีไหม เพิ่ม 1 เข้าไปใน ipv4 แบบนี้ ชัวร์กว่าเยอะ


#cd /proc/sys/net/ipv4
#echo 1 > icmp_echo_ignore_all ( to block icmp request to all)
#echo 0 > icmp_echo_ignore_all (to allow icmp request to all)

อยากบอกว่า ของฟรี ดีๆไม่มีในโลก ต้องวัดใจกันหน่อยครับ....
อยากบอกว่า "ของฟรี ย่อมมีเสีย ต้องวัดใจกันครับ"

Sunday, August 14, 2011

Dyndns กับ 2 WAN บน Endian Firewall ด้วย ddclient

มีวิธีที่จะทำให้ dyndns เกาะกับ wan ตัวที่สอง แทนที่จะเป็นตัวหลักอยู่หลายวิธี แต่วิธีตรง ๆ ของ dyndns แนะนำมาผมชอบมากกว่าเพราะทำได้ง่าย และรับรองผลได้เก้าสิบเก้าเปอร์เซนต์ด้วย

เริ่มจาก

1. ดาวน์โหลดไฟล์ ddclient.tar.gz มาจากเว็บ dyndns.org
2. แตกไฟล์ออกมาเป็นไดเรกทอรี ในนั้นมีไฟล์ตัวอย่างที่เราต้องการ สำคัญเลยสองไฟล์คือ
ddclient.conf และ ddclient ซึ่งเป็น perl
3. สร้างไดเรกทอรีมารองรับ ddclient.conf ใน ect ก่อน ด้วยคำสั่ง mkdir /etc/ddclient เสร็จแล้วก๊อปปี้ไฟล์ ddclient.conf ไปเก็บไว้
4. แก้ไขไฟล์ ddclient.conf ให้ update ddns ที่ wan ที่ต้องการ เช่น wan2 เป็น ppp1 ก็ให้แก้เป็น

use=if,if=ppp1

5. สร้างไดเรกทอรีแคชขึ้นมารองรับไฟล์ด้วยคำสั่ง

mkdir /var/cache/ddclient

6. ก๊อปปี้ไฟล์ ddclient ที่เป็นโปรแกรมไปไว้ที่ /usr/sbin

7. ทดสอบคำสั่ง update

/usr/sbin/ddclient -daemon=0 -syslog -quiet retry

ถ้า OK ก็ผ่าน อย่างไรก็ตาม อย่าลืมตรวจสอบไฟล์ /var/cache/ddclient.cache ด้วยจะมีรายการ update แสดงอยู่

8. เขียนคำสั่งนี้ไว้ในไฟล์ /etc/ppp/ip-up ใกล้ ๆ บรรทัดสุดท้าย ก่อน exit 0

จบการบันทึก

ทดสอบและใช้งานได้แล้ว....


Tools Dyndns

Update Clients
Update Client Configurator — Generate configuration files for ddclient or inadyn update clients
checkip.dyndns.com — Get your current external IP address (also available on port 8245 to work around some proxies)

ภาคสองตอนต่อ.....

จากที่ได้ทดสอบแล้ว พบว่าการทำตามขั้นตอนที่กล่าวมา เมื่อ adsl หลุด ddclient ไม่ update
ต้องให้ ddlcient รันเป็น daemon จึงจะได้ผล



บันทึกช่วยจำ QoS ทำกับ Endian Firewall

ถ้าไม่บันทึกไว้ก็จะลืม อะไรบ้าง

1. คำสั่งทั้งหลายที่รันหรือหยุดการงานเซอร์วิสต่างๆของ efw อยู่ที่ /usr/local/bin นั่นเอง
อยากเห็นว่าแต่ละคำสั่งทำงานอย่างไร ลองรันดูจะรู้เอง

2. QoS ไม่ว่า firewall อะไรก็ประกอบด้วย Device / Classs / Rule มีหรือที่ efw ของเราจะไม่เหมือนชาวบ้าน
ถ้าต้องการให้แต่ละเครื่องดาวน์โหลดได้กี่ mb ควรใช้ผ่าน proxy ดีกว่า

3. คำสั่งเหล่านี้มีประโยชน์อย่างน่ามหัศจรรย์ ที่ทำให้คนธรรมดา กลายเป็น ซุปเปอร์แอดมินไปได้ แม้จะดูไม่รู้เรื่องก็เถอะ


tc qdisc show dev เมื่อ device คือ interface ที่กำหนด QoS
tc class show dev eth1
cat /proc/net/ip_conntrack
ip link show
iptables -t mangle -L QOS -nv
iptables -t mangle -L QOS_ETH1 -nv

4. ยังมีการอ่าน /proc/net/ip_conntrack ให้รู้เรื่องเป็นภาษามนุษย์ด้วยคำสั่ง

awk '{ gsub(/(src|dst|sport|dport|mark)=/, ""); printf "%s %-21s %-21s %s\n", $1, $1 == "tcp" ? $5 ":" $7 : $4 ":" $6, $1 == "tcp" ? $6 ":" $8 : $5 ":" $7, $(NF-2) == 0 ? "Default/Standard" : $(NF-2) == 55 ? "High" : $(NF-2) == 30 ? "Medium" : $(NF-2) == 10 ? "Low" : $(NF-2) == 5 ? "Bulk" : "Exempt" }' /proc/net/ip_conntrack

ไม่ได้คิดเองหรอกมีคนคิดไว้แล้วที่นี่
http://www.dd-wrt.com/wiki/index.php/Quality_of_Service

5. อธิบายเรื่อง QoS ได้อย่างดี เข้าใจง่าย เป็นภาษามนุษย์ต้องที่นี่
http://www.visolve.com/squid/whitepapers/qos.php

6. เรียนรู้ QoS ถ้าใช้คำสั่ง tc ไม่เป็น อายเขาแย่ ถ้าอย่างนั้นไปเรียนรู้คำสั่ง tc ด้วยที่นี่
http://www.arvanta.net/~mps/linux-tc.html

7. ในการกำหนดค่า Upstream Bandwidth (kbit/s) และ Downstream Bandwidth (kbit/s) การบวกและคูณตัวเลขมีไว้สำหรับ พวกชอบคำนวณเท่านั้น ส่วนผมเอาค่าที่วัดความเร็วอินเทอร์เน็ตที่รายงานโดยผู้ให้บริการต่าง ๆ ไม่ต้องคิดมาก

kbit/s = กิโลบิตต่อนาที

8. QoS มีให้กำหนดค่าน้อยมากไม่กี่หัวข้อ --- แต่จะตรวจสอบว่าได้ผลตามที่ต้องการหรือไม่ ทำอย่างไร? ยังไม่มีคำตอบวันนี้

Monday, May 31, 2010

Implement ระบบ Authenticated สำหรับอินเทอร์เน็ตในโรงเรียน แบบง่าย ๆ

ณ โรงเรียนบ้านบ่อรัง วิเชียรบุรี เพชบูรณ์.....

Monday, March 23, 2009

Scheduler Shutdon Endian firewall at 17.40 AM


ลูกค้าผู้มีอุปการะคุณได้กรุณาคอมเมนต์ Endian Firewall อยากให้ปิดเองช่วงเวลา ห้าโมงสี่สิบนาที ซึ่งเป็นเวลาที่ office ปิดแล้ว จะได้ช่วยชาติประหยัดไฟ ประหยัดแอร์ ที่สำคัญประหยัดงบซ่อมบำรุงตัว endian ที่จะไปก่อนเวลาอันสมควรด้วยความร้อนแรงของอุณหภูมิในบ้านเราด้วย

Saturday, March 7, 2009

OpenVPN ต่อได้ 1-2 นาทีก็หลุด

OpenVPN Client ต่อเข้า Endian firewall ได้ 1-2 นาทีก็หลุด ตัวไอคอนเป็นสีเหลือง แถมมี error log แบบนี้

Sat Mar 07 18:26:00 2009 RESOLVE: Cannot resolve host address: it3mac.gotdns.com: [NO_DATA] The requested name is valid but does not have an IP address.
Sat Mar 07 18:26:12 2009 RESOLVE: Cannot resolve host address: it3xxx.gotdns.com: [NO_DATA] The requested name is valid but does not have an IP address.


ดูๆแล้วเหมือนกับว่าติดต่อเครื่อง OpenVPN Server ไม่ได้ แต่ทำไม connect ครั้งแรกกลับได้ แล้วอยู่ไม่ถึงหนึ่งนาทีก็หลุด
เราเห็นปัญหานี้เพราะต้องเซ็ตระบบให้ลูกค้ารายหนึ่งที่ต่างจังหวัด และ Endian Server ที่ตั้งไว้นั้นก็รองรับการเชื่อมโยงจากสาขาด้วย จึงได้สอบถามไปที่ลูกค้าว่าที่สาขามีปัญหา VPN หลุดบ่อยหรือเปล่า คำตอบคือปกติ ก็ได้พิเคราะห์อยู่พอสมควร และก็ถึงบางอ้อ
สำหรับปัญหานี้ เราใช้ username สำหรับ login เป็นชื่อที่เขา connect ได้อยู่แล้ว ซึ่งชื่อที่เข้าไปภายหลัง จะได้รับหมายเลขไอพีเหมือนกัน ฉะนั้นมันจึงหลุดและพยายามต่อเข้าไปใหม่ ดูเหมือนว่าจะหา server ไม่เจอ นั้นเอง...

Friday, March 6, 2009

ปัญหา Authenticated ของ Proxy ไม่โชว์

เซ็ต proxy ผ่านเว็บโดยกำหนดค่าพร๊อกซี่เป็นแบบ Authentication Required ในแทบ Authentication
เลือก Authentication type เป็น Local เมื่อเลือกหัวข้อ User Managerment เพื่อ add user ปรากฏกว่าโชว์เป็นหน้าว่าง ๆ ดังภาพข้างบนนั้น ปัญหาแค่นี้ยังไม่พอเมื่อเลือก Group policies ก็ปรากฏหน้าจอว่าง ๆ เช่นเดียกัน และเป็นเครื่อง endian firewall ที่ติดตั้งให้ลูกค้าต่างจังหวัดเสียด้วย งานเข้าแล้วทีนี้...




แรกเริ่มเดิมที server เครื่องนี้ใช้งานได้เป็นปกติหน้าเมนูต่างๆก็โชว์ได้ ครั้นมาวันหนึ่งมีปัญหาเซ็ตเจ้า proxy ให้เป็น authenticated ไม่ได้ admin ที่นั่นจึง restore ข้อมูลการคอนฟิกเดิมมาใช้ ระบบต่าง ๆก็รันได้ปกติดี อยู่ๆวันหนึ่งจะต้องแอดชื่อเข้าไปใหม่ จึงเห็นปัญหาที่แสดงไว้ข้างต้นนั้นแล

ปัญหาของพร๊อกซี่แบบนี้จะเกิดหลังจาก restore ไฟล์ที่ backup ไว้กลับมาใช้ใหม่ วิธีแก้ปัญหาให้ลบทุกไฟล์ในไดเรกทอรี
/var/efw/proxy/auth/ncsa แล้วเข้าเซ็ตค่าตามปกติ คราวนี้ควรจะโชว์ได้แล้ว

Thursday, March 5, 2009

Implement Endian Firewall Community ตามพรบ.คอม

องค์กรแห่งหนึ่งต้องการใช้ endian firewall community จัดเก็บ log ตามพรบ.คอมพิวเตอร์ปี 50
โดยให้คงสภาพการทำงานขององค์กรให้เป็นปกติ เช่น เล่น msn ได้อย่างไร ก็ให้เล่นได้อยู่อย่างนั้น เข้า gmail ได้อยู่อย่างไร ก็ให้ได้อยู่อย่างนั้น เคยเข้าเว็บอะไรได้บ้าง ก็ให้ใช้ได้เหมือนปกติ คือไม่ต้องบล๊อกอะไร และไม่ต้องให้ผู้ใช้ต้องมาใส่ user และพาสเวิร์ดให้ยุ่งยากด้วย
... คุณจะทำระบบนี้ได้อย่างไร

การเซ็ต endian firewall สำหรับอินเทอร์เน็ต ผู้เขียนได้แยกออกเป็นสองประเด็นเพื่อการพิจารณาคือ

แบบที่หนึ่ง "เซ็ตแบบปิดทั้งหมดก่อนแล้วเปิดให้ใช้เฉพาะเครื่อง"
แบบที่สอง "เซ็ตแบบเปิดทั้งหมดแล้วปิดเฉพาะเครื่อง"

นี่ไม่ใช่การเล่นคำหากแต่การเซ็ตระบบนั้นต่างกันโดยสิ้นเชิง และผลที่ได้มีความปลอดภัยไม่เหมือนกัน (ลองคิดดูว่าทั้งสองแบบนี้จะเซ็ตอย่างไร)

โจทก์ที่ผู้เขียนได้ตั้งไว้เป็นความต้องการแท้จริงของลูกค้าองค์กรแห่งหนึ่งที่ไม่ต้องการความยุ่งยากในการต้องใส่ชื่อและพาสเวิร์ดทุก ๆครั้งที่เข้าเว็บและไม่ต้องให้บล๊อกอะไรมากไปกว่าที่เคยใช้อยู่ เพียงให้เก็บ log ตามพรบ.ให้ได้เท่านั้น

ในองค์กรแห่งนี้มีคอมพิวเตอร์ 50 เครื่องและ policy มีว่าให้ใช้ internet ได้เพียง 10 เครื่องส่วนที่เหลือนั้นปิดทั้งหมด และในจำนวนสิบเครื่องที่อนุญาตินั้นก็ให้ใช้งานได้เพียงผู้ใช้ที่ระบุชื่อเท่านั้น

Wednesday, March 4, 2009

OpenVPN Connection reset by peer

วันหนึ่งมีลูกค้าองค์กรแจ้งเข้ามาว่าเครื่อง client ที่เป็น windows XP เข้าเมล์ที่สำนักงานใหญ่ผ่าน OpenVPN ไม่ได้
ไอคอน vpn ที่ taskbar โชว์เป็นสีเหลือง ก็ชักใจไม่ดีเหมือนกันแฮะ เพราะ endian firewall เพิ่งติดตั้งได้ไม่ถึงเดือนเอง
บางครั้งการที่จะหาคำตอบให้ลูกค้าแบบรวบรัด และใช้ได้เลยก็เป็นเรื่องยากเหมือนกัน เพราะถ้าให้คำตอบที่ผิด โดยที่ยังไม่รู้สาเหตุที่แท้จริง และยังไม่เห็น error ต่าง ๆ แทนที่จะแก้กันได้ตรงจุด กลับแก้ให้เสียหนักเข้าไปอีก ..ก็แจ้งกลับไปว่า เข้า office แล้วจะดูปัญหานี้ให้อย่างเร่งด่วนครับ

ทดสอบใช้ OpenVPN จาก office ของบริษัทไปที่ server ของลูกค้ามันโชว์อย่างนี้

Mon Jan 08 13:53:29 2007 UDPv4 link local (bound): [undef]:1194
Mon Jan 08 13:53:29 2007 UDPv4 link remote: xxx.xxx.xxx.xxx:1194
"" UDPv4: Connection reset by peer (WSAECONNRESET) (code=10054)
"" UDPv4: Connection reset by peer (WSAECONNRESET) (code=10054)
"" UDPv4: Connection reset by peer (WSAECONNRESET) (code=10054)
"" UDPv4: Connection reset by peer (WSAECONNRESET) (code=10054)
"" UDPv4: Connection reset by peer (WSAECONNRESET) (code=10054)
Mon Jan 08 13:53:52 2007 SIGTERM[hard,] received, process exiting


เริ่มวิเคราะห์ปัญหา
1. configuration ต่าง ๆ ไม่ถูกต้อง เป็นไปไม่ได้แน่ เพราะใช้ได้อยู่ แล้วอยู่กลับใช้ไม่ได้ การ config จึงตกไป
2. endian firewall ที่ไซต์ลูกค้าดับหรือมีปัญหาหรือไม่ คำตอบคือฝั่งนั้นยังใช้ internet ได้เหมือนเดิมทรั้ง
ส่งและรับเมล์ ทั้งเครื่องลูกก็มีหมายเลขไอพีกันถ้วนหน้า (ยังไงก็น่าคิดอยู่ดีว่าจะเป็นที่ server ไหม)
3. โปรเซสบางตัวที่ server โดยเฉพาะ process OpenVPN จะตายหรือไม่ ตัว server ประเด็นที่โปรเซสใดโปรเซสหนึ่ง
จะตายตัวเดียวก็เป็นไปได้ แต่ไอ้ปัญหา reset by peer คือน่าจะยังติดต่อ server ไม่ได้ด้วยซ้ำไป
4. ที่ไซต์ของลูกค้าใช้ internet เป็น adsl 1.5 ของ True และเป็น dynamic ไม่ได้ fixed ซึ่ง adsl อาจจะหลุดแล้วตัว router ได้หมายเลขไอพีใหม่ โดยที่ตัว endian ยังไม่ได้ update แน่ๆ เลย เออน่าคิด งั้นทดสอบกันเลยดีกว่า

ทดสอบ
4.1 ping it3xxx.gotdns.com
ได้หมายเลขไอพีกลับมาก และมี replay from ด้วย ( คิดว่าไง ปกติเราจะ set ตัว endian ไม่ได้รับคำสั่ง ping จากภายนอกซึ่งจะต้องไม่มี teplay from แต่ควรจะมีหมายเลข ip เข้าเค้าหล่ะ)
4.2 โทรไปบอก admin ของลูกค้าให้เข้า endian firewall โดยด่วนและเช็คตามนี้
* หมายเลข IP คืออะไร ?
คำตอบคือ ไม่ใช่หมายเลข IP เดียวกับที่เราได้จากคำสั่ง ping
OK ปัญหานี้ได้คำตอบแล้ว router ADSL ได้หมายเลข IP ใหม่ตัว Endian ยังไม่ได้ Update DynDNS จึงทำให้หมายเลข IP ไม่ตรงกัน มีทางแก้แล้วซินะ.... ด้วยการบังคับให้ DynDNS ที่ Endian firewalll update IP ไปที่
Service -> Dynsns -> Force Updated
เท่านี้ปัญหานี้ก็หมดไป ...



Link เพิ่มเติม :
OpenVPN - creating a routed VPN
OpenVPN "Routing" –versus– "Bridging"

Tuesday, February 17, 2009

Endian Firewall บน CF-IDE

ทำ endian firewall บน CF-IDE

http://robwicks.blogspot.com/2008/07/cheap-solid-state-router-using-endian.html

Friday, February 13, 2009

How to add custom cron jobs

Endian Firewall provides a couple of hook directories where you can put your scripts which should run as custom cron job. The cron process will start each script which resides within the respective hook directory.

Cron Job Scripts

Your custom cron job scripts will not be altered by Endian Firewall scripts or the upgrade process.

The scripts need to be:

executable (chmod 700)
should exit with errorcode 0
must not contain a dot within the filename
must end within a measurable time, otherwise put the process in background or it will delay all other jobs.
Cron Hooks

The directories beginning with cron will be started at a precisely configured time. The following presets will be provided as hooks:

/etc/cron.cyclic/
Will start every 5 minutes (i.e: 2:05, 3:10, 3:15)

/etc/cron.minutely/
Will start every minute (i,e: 2:01, 2:02, 3:30)
/etc/cron.hourly/
Will start every hour, one minute after full hour (i.e: 2:01, 3:01, 4:01).
/etc/cron.daily/
Will start every day at 1:25am.
/etc/cron.weekly/
Will start every week at Sunday 2:47am.
/etc/cron.monthly/
Will start every month at 3:52am of the first day of the month.
Directories beginning with anacron provide defined periodical time terms which start measurement from when the fcron process has been started. This can be used when you don't want to have a job run at a precisely specified time, but at random time terms with well defined intervals. The following hooks will be provided:
/etc/anacron.cyclic/ (every 5 minutes)
/etc/anacron.hourly/ (ever hour)

/etc/anacron.daily/ (every day)

/etc/anacron.weekly/ (every week)

/etc/anacron.monthly (every month)


http://kb.endian.com/entry/43/

Twitter Delicious Facebook Digg Stumbleupon Favorites More