background

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

2 months ago ◦ 511 Views

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

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

เป็น 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

Protect Syn Flood

iptables -N syn-flood
iptables -A syn-flood -i eth0 -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 (192.168.xxx.xxx = ip ของเรา)

iptables -t nat -A PREROUTING -i eth0 -p tcp –dport 80 -j DNAT –to 192.168.xxx.xxx:10080
iptables -A FORWARD -p tcp -i eth0 -d 192.168.xxx.xxx –dport 80 -j ACCEPT
iptables -A FORWARD -p tcp -i eth0 -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


#ป้องกันการ hack #ป้องกัน #iptables #โจมตีเครื่องเชิฟเวอร์ #linux

View count: 511
  • avatar
  • Panachai Meetun จะเก่งแค่ไหนก็เดินได้ทีละก้าว จะห้าวแค่ไหนก็กินข้าวได้ทีละคำ ●̯͡●