Showing posts with label firewall-cmd. Show all posts
Showing posts with label firewall-cmd. Show all posts

Tuesday, March 11, 2025

จัดการ iRedmail Firewall ที่มาครอบ Firewalld (firewall-cmd)

 การติดตั้ง iRedmail เวอร์ชั่นหลัง ๆ หากเราเลือกให้ใช้ iRedmail firewall แทน firewalld ที่มากับระบบลีนุกส์เช่น CentOS, Ubuntu การปรับแต่ง Firewall rule เช่น การ add port, server ด้วยคำสั่ง firewall-cmd มักไม่มีปัญหา

คำสั่งเพิ่ม Ip Public เพื่อมาคุยกับ port 25

firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="202.210.110.10/32" port port=25 protocol=tcp accept'

วันนี้ใช้ firewall-cmd add rule ที่เกี่ยวกับ IP Addr (Internal/Public) เพื่อมาคุยกับ port 25 พบว่า หลังจากแอดกฎได้แล้ว เมื่อทำการลบกฎทิ้งจะรัน firewall-cmd --reload เพื่อบันทึกไม่ได้ 


การจัดการ Firewall บน Mail Server ที่ใช้ iRedMail ควรเน้นไปที่การแก้ไขไฟล์ /etc/firewalld/zones/iredmail.xml โดยตรง หลีกเลี่ยงการใช้ Rich Rules ร่วมกับ Ipset และทำความเข้าใจโครงสร้าง Firewall ของ iRedMail อย่างละเอียด

ให้เข้าไปจัดการในไฟล์ iredmail.xml

//--iredmail.xml--//

[root@mx ~]# vim /etc/firewalld/zones/iredmail.xml

<?xml version="1.0" encoding="utf-8"?>

<zone>

  <short>Mail services</short>

  <description>Allow access to mail services from external network.</description>

  <service name="http"/>

  <service name="https"/>

  <service name="smtp-submission"/>

  <service name="pop3"/>

  <service name="pop3s"/>

  <service name="imap"/>

  <service name="imaps"/>

  <service name="ssh"/>

  <port port="465" protocol="tcp"/>

  <rule family="ipv4">

    <source address="192.168.20.154/32"/>

    <port port="25" protocol="tcp"/>

    <accept/>

  </rule>

  <rule family="ipv4">

    <source ipset="my_ip_rf_set"/>

    <port port="25" protocol="tcp"/>

    <accept/>

  </rule>

  <rule family="ipv4">

    <source ipset="orisma"/>

    <port port="25" protocol="tcp"/>

    <accept/>

  </rule>

  <rule family="ipv4">

    <source address="202.210.110.10/32"/>

    <port port="25" protocol="tcp"/>

    <accept/>

  </rule>

</zone>

//--end--//

: เพื่อบันทึก


firewall-cmd --reload


//-------check firewalld rules ----------//

#firewall-cmd --list-all

iredmail (active)

  target: default

  icmp-block-inversion: no

  interfaces: ens192 ens224

  sources:

  services: http https imap imaps pop3 pop3s smtp-submission ssh

  ports: 465/tcp

  protocols:

  forward: no

  masquerade: no

  forward-ports:

  source-ports:

  icmp-blocks:

  rich rules:

        rule family="ipv4" source address="202.210.110.10/32" port port="25" protocol="tcp" accept

        rule family="ipv4" source address="192.168.20.154/32" port port="25" protocol="tcp" accept

#firewall-cmd --permanent --list-all

iredmail

  target: default

  icmp-block-inversion: no

  interfaces:

  sources:

  services: http https imap imaps pop3 pop3s smtp-submission ssh

  ports: 465/tcp

  protocols:

  forward: no

  masquerade: no

  forward-ports:

  source-ports:

  icmp-blocks:

  rich rules:

        rule family="ipv4" source address="192.168.20.154/32" port port="25" protocol="tcp" accept

        rule family="ipv4" source address="202.210.110.10/32" port port="25" protocol="tcp" accept

# firewall-cmd --list-all --zone=iredmail

iredmail (active)

  target: default

  icmp-block-inversion: no

  interfaces: ens192 ens224

  sources:

  services: http https imap imaps pop3 pop3s smtp-submission ssh

  ports: 465/tcp

  protocols:

  forward: no

  masquerade: no

  forward-ports:

  source-ports:

  icmp-blocks:

  rich rules:

        rule family="ipv4" source address="202.210.110.10/32" port port="25" protocol="tcp" accept

        rule family="ipv4" source address="192.168.20.154/32" port port="25" protocol="tcp" accept

Thursday, August 10, 2017

Disable selinux on Centos 7 and set firewall-cmd

CentOS7

1.check status selinux enable or disable

#sestatus
#vim /etc/sysconfig/selinux
SELINUX=disabled

and Reboot system

ถ้าปิด Selinux ผิดจะขึ้น Error แบบนี้ : failed to load selinux policy freezing

วิธีแก้ไข
ในหน้าบู๊ด ให้กด e แล้วมองหา linux16 แล้วเพิ่ม selinux=0 เข้าไป แล้ว ctrl+x เพื่อเข้าสู่ระบบ จากนั้นไปแก้ไขค่า
SELINUX=disabled ตามข้อมูลด้านบน

Go to the main command (usually starting with “linux16” or something similar) and add “selinux=0” as one of the parameters:

Ref: selinux policy freezing

Ref: disable-selinux-temporarily-permanently-in-centos-rhel-fedora/

2. Enable / Disable service
- SAMBA

systemctl enable smb.service
systemctl enable nmb.service
systemctl restart smb.service
systemctl restart nmb.service

Restatr/Reload service
systemctl reload smb.service
systemctl restart smb.service

Check service runnig
systemctl list-unit-files
chkconfig --list |grep ชื่อของ service
systemctl
systemctl | more
systemctl | grep httpd
systemctl list-units --type service

systemctl list-units --type service |grep ชื่อของ service
systemctl list-units --type mount

  
example:
systemctl | grep smartd

View service running
systemd-cgtop


- IPTABLES
systemctl stop firewalld
systemctl mask firewalld
yum install iptables-services
systemctl enable iptables
systemctl start iptablesmkdir
service iptables save

- iptables command
-A RH-Firewall-1-INPUT -p udp -m udp --dport 137 -j ACCEPT
-A RH-Firewall-1-INPUT -p udp -m udp --dport 138 -j ACCEPT-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 139 -j ACCEPT-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 445 -j ACCEPT

Check filrewall running ?
firewall-cmd --state systemctl status firewalldSet firewalld
List service on zone public
firewall-cmd --zone=public --list-all
List only port
firewall-cmd --list-ports


Add service
# firewall-cmd --zone=public --permanent --add-service=samba
# firewall-cmd --zone=public --permanent --add-service=http
# firewall-cmd --reload
Remove service


#firewall-cmd --zone=public --remove-service=http

Add Port

firewall-cmd --zone=public --permanent --add-port=10000/tcp
firewall-cmd --zone=public --permanent --add-port=2500-2600/tcp


Delete port
firewall-cmd --remove-port=6161/tcp
firewall-cmd --zone=public --permanent --remove-port=10000/tcp
firewall-cmd --zone=public --permanent --remove-port=2500-2600/tcp

Save firewall
firewall-cmd --runtime-to-permanent
firewall-cmd --reload
firewall-cmd --get-services 
 

Ref: https://www.centos.org/forums/viewtopic.php?t=61108
Ref: quick-docs firewalld
Ref: firewall-cmd config