ป้องกันการโดนโจมตีเครื่องเซิร์ฟเวอร์ด้วย iptables

ป้องกันการโดนโจมตีเครื่องเซิร์ฟเวอร์ด้วย iptables

PTABLES เป็น Firewall พื้นฐานของ Linux เกือบทุก Distro และให้ประสิทธิภาพที่สูงมากในการ Filtering Traffic และ การป้องกันการ Attack ต่างๆ โดยที่จะมีตัวอย่างพอสังเขป ดังนี้

 

เปิดการใช้งาน IP Forward ป้องกัน Syn Flood และ อนุญาติให้มีการใช้งานแบบ Dynamic IP (ต่อเนต DSL ทั่วไป)

#echo 1 > /proc/sys/net/ipv4/ip_forward

#echo 1 > /proc/sys/net/ipv4/tcp_syncookies

#echo 1 > /proc/sys/net/ipv4/ip_dynaddr

 

Drop Packet ก่อนหน้านี้ทั้งหมด

#iptables -F INPUT

#iptables -F FORWARD

#iptables -F OUTPUT

#iptables -P INPUT DROP

#iptables -P FORWARD DROP

#iptables -P OUTPUT ACCEPT

#iptables -A INPUT -i lo -j ACCEPT

 

อนุญาติเฉพาะ SSH, SMTP, DNS, Web Services, SSL และ POP3 ให้ผ่านเข้าออก

#iptables -A INPUT -p tcp -m state –state ESTABLISHED,RELATED -j ACCEPT

#iptables -A INPUT -p tcp –dport 22 –syn -j ACCEPT

#iptables -A INPUT -p tcp –dport 25 –syn -j ACCEPT

#iptables -A INPUT -p tcp –dport 53 –syn -j ACCEPT

#iptables -A INPUT -p udp –dport 53 –syn -j ACCEPT

#iptables -A INPUT -p tcp –dport 80 –syn -j ACCEPT

#iptables -A INPUT -p tcp –dport 443 –syn -j ACCEPT

#iptables -A INPUT -p tcp –dport 110 –syn -j ACCEPT

 

ป้องกันการ scan ports

#iptables -N check-flags

#iptables -F check-flags

#iptables -A check-flags -p tcp –tcp-flags ALL FIN,URG,PSH -m limit –limit 5/minute -j LOG –log-level alert –log-prefix “NMAP:”

#iptables -A check-flags -p tcp –tcp-flags ALL FIN,URG,PSH -j DROP

#iptables -A check-flags -p tcp –tcp-flags ALL ALL -m limit –limit 5/minute -j LOG –log-level 1 –log-prefix “XMAS:”

#iptables -A check-flags -p tcp –tcp-flags ALL ALL -j DROP

#iptables -A check-flags -p tcp –tcp-flags ALL SYN,RST,ACK,FIN,URG -m limit –limit 5/minute -j LOG –log-level 1 –log-prefix “XMAS-PSH:”

#iptables -A check-flags -p tcp –tcp-flags ALL SYN,RST,ACK,FIN,URG -j DROP

#iptables -A check-flags -p tcp –tcp-flags ALL NONE -m limit –limit 5/minute -j LOG –log-level 1 –log-prefix “NULL_SCAN:”

#iptables -A check-flags -p tcp –tcp-flags ALL NONE -j DROP

#iptables -A check-flags -p tcp –tcp-flags SYN,RST SYN,RST -m limit –limit 5/minute -j LOG –log-level 5 –log-prefix “SYN/RST:”

#iptables -A check-flags -p tcp –tcp-flags SYN,RST SYN,RST -j DROP

#iptables -A check-flags -p tcp –tcp-flags SYN,FIN SYN,FIN -m limit –limit 5/minute -j LOG –log-level 5 –log-prefix “SYN/FIN:”

#iptables -A check-flags -p tcp –tcp-flags SYN,FIN SYN,FIN -j DROP

 

ป้องกันการ flood SSH (SSH Brute Force)

#iptables -I INPUT -p tcp –dport 22 -i eth0 -m state –state NEW -m recent –set

#iptables -I INPUT -p tcp –dport 22 -i eth0 -m state –state NEW -m recent –update –seconds 600 –hitcount 2 -j DROP

 

ห้าม ping

#iptables -A INPUT -p ICMP -i eth0 –icmp-type 8 -j DROP

 

ห้าม traceroute

#iptables -A INPUT -p ICMP -i eth0 –icmp-type 11 -j DROP

 

ป้องกัน Syn Flood

#iptables-N syn-flood

#iptables -A syn-flood -i ppp0 -m limit –limit 75/s –limit-burst 100 -j RETURN

#iptables -A syn-flood -j LOG –log-prefix “SYN-FLOOD: ”

#iptables -A syn-flood -j DROP

 

REDIRECT PORT 10080 to 80

#iptables -t nat -A PREROUTING -i ppp0 -p tcp –dport 80 -j DNAT –to 192.168.xxx.xxx:10080

#iptables -A FORWARD -p tcp -i ppp0 -d 192.168.xxx.xxx –dport 80 -j ACCEPT (192.168.xxx.xxx = ip ของเรา)

#iptables -A FORWARD -p tcp -i ppp0 -d 192.168.xxx.xxx –sport 80 -j ACCEPT

 

Transparent Proxy

#iptables -t nat -A PREROUTING -p TCP –dport 80 -j REDIRECT -to-ports 3128

CR : eloshost

Was this answer helpful?

 Print this Article

Also Read

รวบรวมคำสั่งที่จำเป็นสำหรับ Admin ใน CentOS

รวบรวมคำสั่งที่จำเป็นสำหรับ Admin ใน CentOSคำสั่ง ls : : : แสดงรายชื่อแฟ้มในห้องปัจจุบัน...

วิธีตรวจสอบว่า Server โดนโจมตีหรือไม่ ?

การตรวจสอบว่าเราถูกยิงหรือไม่ผ่านคำสั่ง netstat   หลายๆ คนคงรู้วิธีใช้งาน netstat...

การตังค่าวันเวลา Date/Time สำหรับ CentOS

การตั้งค่าวันเวลา Date/Time สำหรับ CentOS ได้ด้วยคำสั่งต่อไปนี้ rm /etc/localtimeln -s...

การ Update DirectAdmin แบบ Manual

ใน กรณีที่ท่านไม่สามารถอัพเดต DirectAdmin ผ่านหน้า Control Panel ได้...

การ Compile Apache (DirectAdmin Custombuild)

หากท่านพบปัญหาในการใช้งาน หรือต้องการอัพเดต Apache เวอร์ชั่นใหม่ สามารถ SSH เข้าเซิฟเวอร์ของท่าน...

Powered by WHMCompleteSolution