เทคนิคการคอนฟิกใช้งาน Firewall บน Issabel

Your Open Source Solution For Unified Comunnications And More…

เทคนิคการคอนฟิกใช้งาน Firewall บน Issabel

โพสต์โดย nuiz » 26 ก.พ. 2019 14:29

เมนู Firewall บน Issabel IP-PBX ทำให้เรามีช่องทางการป้องกัน Issabel จากผู้ไม่ประสงค์ดีเมื่อเราต้องเชื่อมต่อ Issabel กับ Internet ไม่ว่าจะต่อเน็ตโดยตรง (ไอพีของ Issabel เป็น Public IP) หรือจากการทำ Port Forwarding บน Router/Firewall ก็ตาม แม้ว่ามันจะปลอดภัย 100% ก็ตาม แต่ก็ยังดีกว่าไม่มีอะไรป้องกันไว้ นอกจาก Firewall แล้วก็ยังมี fail2ban อีกด้วย ซึ่งทาง Issabel ได้คอนฟิกให้แสกนหา Log file ของหลายๆโปรแกรม ไม่ว่าจะเป็น Apache, SSH, Asterisk, Postfix เราสามารถลบ IP address ที่ถูกบล๊อค สามารถเพิ่ม IP address/Subnet ที่จะไม่ให้บล๊อคก็ได้ จัดการผ่านหน้าเว็บ Issabel ได้เลยครับ ไม่ต้องแก้ไขไฟล์คอนฟิก

1. เมนู Firewall
รูปภาพ

2. เปิดใช้งาน Firewall คลิ๊ก "Activate Firewall"
รูปภาพ

ผลลัพธ์
รูปภาพ

3. Routes ดีฟอลท์ที่ Issabel ทำไว้ให้แล้ว
รูปภาพ

เมื่อ firewall รับ Packet เข้ามา มันจะทำการเปรียบเทียบ Source IP Address, Destination IP Address, Source Port, Destination Port, Protocol กับ Rules ตั้งแต่ลำดับแรกเรียงกันไป ถ้าพบว่าตรงก็จะดำเนินการตามที่ตั้งไว้ใน Rule นั้น (เช่น Accept, Drop, Reject) เมื่อไม่ตรงกับ Rule ใดเลยก็จะมาถึงลำดับสุดท้าย ก็จะถูก Reject

ความแตกต่างระหว่าง Drop และ Reject
ถ้า Drop ไฟร์วอลล์จะ drop และไม่ตอบอะไรกลับไปยังเครื่องต้นทาง
ถ้า Reject จะ drop และตอบกลับไปด้วย ICMP port unreachable

4. ลำดับของ Rules
ลำดับของ Rules มีความสำคัญมากเลยนะครับ Rules ที่จะ Accept จะต้องอยู่ด้านบน (อยู่ก่อน) ไม่เช่นนั้น Packets อาจจะถูก Drop หรือ Reject ได้

5. Rules ของ VoIP (SIP/IAX1/IAX2/MGCP Protocol)
Issabel สร้าง Rule ของ SIP ไว้ให้เราแล้ว เมื่อเรา Activate firewall เราจึงใช้งาน SIP Protocol ได้ทันที แต่อย่างไรก็ตามเมื่อเราคลิ๊กดู Rules เหล่านั้น พบว่า Issabel เปิดพอร์ตให้มากเกินไป ควรเปิดเฉพาะพอร์ตที่เราใช้งาน
รูปภาพ

ถ้าไม่ใช้งาน IAX1, IAX2, MGCP จากภายนอก ควร Drop หรือไม่ก็ Reject ดังนี้
รูปภาพ

ข้อแตกต่างระหว่าง Drop และ Reject ก็คือ Drop - Firewall จะ drop packets ทิ้งและไม่ส่งอะไรไปบอกต้นทาง ส่วน Reject - Firewall จะ drop packets และส่ง ICMP port unreachable ตอบกลับไป

จัดการ Drop IAX1 และ MGCP เพิ่ม จะได้
รูปภาพ

6. ดูหมายเลข Ports ของแต่ละ Applications ที่ Issabel ทำไว้ให้
เมนู Security > Firewall > Define Ports

7. สร้าง Port ใหม่ให้ใช้งาน OpenVPN บน Issabel ได้
ผมจะติดตั้ง OpenVPN Server บนเครื่อง Issabel เครื่องนี้ และให้รันที่พอร์ต 1194 ทั้ง TCP และ UDP ดังนั้นบน Firewall ผมต้องเปิดรับ TCP/UDP 1194 ด้วย ให้สร้าง Rule ใหม่ ดังนี้
1. Define Ports
เมนู Security > Firewall > Define Ports
คลิ๊ก + Define Port

รูปภาพ

รูปภาพ

2. สร้าง Firewall Rule
เมนู Security > Firewall > Firewall Rules
คลิ๊ก + New Rule

Protocol = TCP
รูปภาพ

Protocol = UDP
รูปภาพ

3. Firewall Rules ที่เพิ่มขึ้นมา
Rules ล่าสุดที่เพิ่มขึ้นมาจะไปลำดับสุดท้ายเลยครับ
รูปภาพ

4. เลื่อนลำดับ Rule ให้อยู่ก่อน Rule ที่ Drop/Reject
ไม่งั้น Rule ของเราจะถูก Drop/Reject นะครับ
รูปภาพ

5. ทดสอบการใช้งาน
จากนั้นก็ติดตั้ง OpenVPN Server บนเครื่อง Issabel แล้วทดสอบการใช้งานจาก OpenVPN Clients ครับ
** หากมีปัญหากับอุปกรณ์หรือบริการที่ทำหรือซื้อมาเอง ให้โพสต์ถามในเว็บนะครับ ขอสงวนสิทธิ์การให้ความช่วยเหลือแบบส่วนตัวเฉพาะลูกค้าที่ซื้อสินค้าและบริการจากผมเท่านั้นครับ **
** ติดต่อว่าจ้างที่เบอร์ 08-5161-9439 อีเมล์ iamaladin@gmail.com ครับ **
nuiz
Diamond Member
 
โพสต์: 4999
ลงทะเบียนเมื่อ: 24 มี.ค. 2010 09:33

Re: เทคนิคการคอนฟิกใช้งาน Firewall บน Issabel

โพสต์โดย nuiz » 26 ก.พ. 2019 14:50

เมื่อคลิ๊ก "Activate Firewall" บน Issabel4

โค้ด: เลือกทั้งหมด
[root@issabel ~]# iptables -L
Chain INPUT (policy ACCEPT)
target     prot opt source               destination         
f2b-asterisk-ami  tcp  --  anywhere             anywhere             multiport dports 5038
f2b-asterisk-udp  udp  --  anywhere             anywhere             multiport dports 0:65535
f2b-asterisk-tcp  tcp  --  anywhere             anywhere             multiport dports 0:65535
f2b-postfix-sasl  tcp  --  anywhere             anywhere             multiport dports smtp,urd,submission,imap3,imaps,pop3,pop3s
f2b-postfix  tcp  --  anywhere             anywhere             multiport dports smtp,urd,submission
f2b-apache-shellshock  tcp  --  anywhere             anywhere             multiport dports http,https
f2b-apache-modsecurity  tcp  --  anywhere             anywhere             multiport dports http,https
f2b-apache-fakegooglebot  tcp  --  anywhere             anywhere             multiport dports http,https
f2b-apache-botsearch  tcp  --  anywhere             anywhere             multiport dports http,https
f2b-apache-nohome  tcp  --  anywhere             anywhere             multiport dports http,https
f2b-apache-overflows  tcp  --  anywhere             anywhere             multiport dports http,https
f2b-apache-noscript  tcp  --  anywhere             anywhere             multiport dports http,https
f2b-apache-badbots  tcp  --  anywhere             anywhere             multiport dports http,https
f2b-apache-auth  tcp  --  anywhere             anywhere             multiport dports http,https
f2b-sshd-ddos  tcp  --  anywhere             anywhere             multiport dports ssh
f2b-sshd   tcp  --  anywhere             anywhere             multiport dports ssh
ISSABEL_INPUT  all  --  anywhere             anywhere           

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         
ISSABEL_FORWARD  all  --  anywhere             anywhere           

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination         
ISSABEL_OUTPUT  all  --  anywhere             anywhere           

Chain ISSABEL_FORWARD (1 references)
target     prot opt source               destination         
ISSABEL_FORWARD_GEOIP  all  --  anywhere             anywhere           
REJECT     all  --  anywhere             anywhere             reject-with icmp-port-unreachable

Chain ISSABEL_FORWARD_GEOIP (1 references)
target     prot opt source               destination         

Chain ISSABEL_INPUT (1 references)
target     prot opt source               destination         
ISSABEL_INPUT_GEOIP  all  --  anywhere             anywhere           
ACCEPT     all  --  anywhere             anywhere           
ACCEPT     icmp --  anywhere             anywhere           
ACCEPT     udp  --  anywhere             anywhere             udp dpts:bootps:bootpc
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:upnotifyp
ACCEPT     udp  --  anywhere             anywhere             udp dpts:avt-profile-1:qcp
ACCEPT     udp  --  anywhere             anywhere             udp dpt:iax
ACCEPT     udp  --  anywhere             anywhere             udp dpt:5036
ACCEPT     udp  --  anywhere             anywhere             udp dpts:ndmp:dnp
ACCEPT     udp  --  anywhere             anywhere             udp dpt:mgcp-callagent
ACCEPT     udp  --  anywhere             anywhere             udp spt:domain
ACCEPT     udp  --  anywhere             anywhere             udp dpt:tftp
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:ssh
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:smtp
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:http
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:pop3
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:imap
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:https
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:imaps
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:pop3s
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:xmpp-client
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:websm
ACCEPT     all  --  anywhere             anywhere             state RELATED,ESTABLISHED
REJECT     all  --  anywhere             anywhere             reject-with icmp-port-unreachable

Chain ISSABEL_INPUT_GEOIP (1 references)
target     prot opt source               destination         

Chain ISSABEL_OUTPUT (1 references)
target     prot opt source               destination         
ISSABEL_OUTPUT_GEOIP  all  --  anywhere             anywhere           

Chain ISSABEL_OUTPUT_GEOIP (1 references)
target     prot opt source               destination         

Chain f2b-apache-auth (1 references)
target     prot opt source               destination         
RETURN     all  --  anywhere             anywhere           

Chain f2b-apache-badbots (1 references)
target     prot opt source               destination         
RETURN     all  --  anywhere             anywhere           

Chain f2b-apache-botsearch (1 references)
target     prot opt source               destination         
RETURN     all  --  anywhere             anywhere           

Chain f2b-apache-fakegooglebot (1 references)
target     prot opt source               destination         
RETURN     all  --  anywhere             anywhere           

Chain f2b-apache-modsecurity (1 references)
target     prot opt source               destination         
RETURN     all  --  anywhere             anywhere           

Chain f2b-apache-nohome (1 references)
target     prot opt source               destination         
RETURN     all  --  anywhere             anywhere           

Chain f2b-apache-noscript (1 references)
target     prot opt source               destination         
RETURN     all  --  anywhere             anywhere           

Chain f2b-apache-overflows (1 references)
target     prot opt source               destination         
RETURN     all  --  anywhere             anywhere           

Chain f2b-apache-shellshock (1 references)
target     prot opt source               destination         
RETURN     all  --  anywhere             anywhere           

Chain f2b-asterisk-ami (1 references)
target     prot opt source               destination         
RETURN     all  --  anywhere             anywhere           

Chain f2b-asterisk-tcp (1 references)
target     prot opt source               destination         
RETURN     all  --  anywhere             anywhere           

Chain f2b-asterisk-udp (1 references)
target     prot opt source               destination         
RETURN     all  --  anywhere             anywhere           

Chain f2b-postfix (1 references)
target     prot opt source               destination         
RETURN     all  --  anywhere             anywhere           

Chain f2b-postfix-sasl (1 references)
target     prot opt source               destination         
RETURN     all  --  anywhere             anywhere           

Chain f2b-sshd (1 references)
target     prot opt source               destination         
RETURN     all  --  anywhere             anywhere           

Chain f2b-sshd-ddos (1 references)
target     prot opt source               destination         
RETURN     all  --  anywhere             anywhere           


โดยมี Chain ที่ Issabel สร้างเพิ่มขึ้นมาดังนี้
โค้ด: เลือกทั้งหมด
Chain ISSABEL_FORWARD (1 references)
target     prot opt source               destination         
ISSABEL_FORWARD_GEOIP  all  --  anywhere             anywhere           
REJECT     all  --  anywhere             anywhere             reject-with icmp-port-unreachable

Chain ISSABEL_FORWARD_GEOIP (1 references)
target     prot opt source               destination         

Chain ISSABEL_INPUT (1 references)
target     prot opt source               destination         
ISSABEL_INPUT_GEOIP  all  --  anywhere             anywhere           
ACCEPT     all  --  anywhere             anywhere           
ACCEPT     icmp --  anywhere             anywhere           
ACCEPT     udp  --  anywhere             anywhere             udp dpts:bootps:bootpc
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:upnotifyp
ACCEPT     udp  --  anywhere             anywhere             udp dpts:avt-profile-1:qcp
ACCEPT     udp  --  anywhere             anywhere             udp dpt:iax
ACCEPT     udp  --  anywhere             anywhere             udp dpt:5036
ACCEPT     udp  --  anywhere             anywhere             udp dpts:ndmp:dnp
ACCEPT     udp  --  anywhere             anywhere             udp dpt:mgcp-callagent
ACCEPT     udp  --  anywhere             anywhere             udp spt:domain
ACCEPT     udp  --  anywhere             anywhere             udp dpt:tftp
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:ssh
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:smtp
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:http
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:pop3
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:imap
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:https
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:imaps
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:pop3s
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:xmpp-client
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:websm
ACCEPT     all  --  anywhere             anywhere             state RELATED,ESTABLISHED
REJECT     all  --  anywhere             anywhere             reject-with icmp-port-unreachable

Chain ISSABEL_INPUT_GEOIP (1 references)
target     prot opt source               destination         

Chain ISSABEL_OUTPUT (1 references)
target     prot opt source               destination         
ISSABEL_OUTPUT_GEOIP  all  --  anywhere             anywhere           

Chain ISSABEL_OUTPUT_GEOIP (1 references)
target     prot opt source               destination   


โดยที่ firewalld ก็ยังไม่สตาร์ท
โค้ด: เลือกทั้งหมด
[root@issabel ~]# systemctl status firewalld
   firewalld.service - firewalld - dynamic firewall daemon
   Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled)
   Active: inactive (dead)
     Docs: man:firewalld(1)
** หากมีปัญหากับอุปกรณ์หรือบริการที่ทำหรือซื้อมาเอง ให้โพสต์ถามในเว็บนะครับ ขอสงวนสิทธิ์การให้ความช่วยเหลือแบบส่วนตัวเฉพาะลูกค้าที่ซื้อสินค้าและบริการจากผมเท่านั้นครับ **
** ติดต่อว่าจ้างที่เบอร์ 08-5161-9439 อีเมล์ iamaladin@gmail.com ครับ **
nuiz
Diamond Member
 
โพสต์: 4999
ลงทะเบียนเมื่อ: 24 มี.ค. 2010 09:33


ย้อนกลับไปยัง Issabel - Open Source Solution For Unified Comunnications

ผู้ใช้งานขณะนี้

กำลังดูบอร์ดนี้: ไม่มีสมาชิกใหม่ และ บุคคลทั่วไป 0 ท่าน

cron