iptables

Linux September 14th, 2009

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

เปิดการใช้งาน IP Forward ป้องกัน Syn Flood และ อนุญาติให้มีการใช้งานแบบ Dynamic IP (ต่อเนต DSL ทั่วไป)
[root@localhost]#echo 1 > /proc/sys/net/ipv4/ip_forward
[root@localhost]#echo 1 > /proc/sys/net/ipv4/tcp_syncookies
[root@localhost]#echo 1 > /proc/sys/net/ipv4/ip_dynaddr

Drop Packet ก่อนหน้านี้ทั้งหมด
[root@localhost]#iptables -F INPUT
[root@localhost]#iptables -F FORWARD
[root@localhost]#iptables -F OUTPUT
[root@localhost]#iptables -P INPUT DROP
[root@localhost]#iptables -P FORWARD DROP
[root@localhost]#iptables -P OUTPUT ACCEPT
[root@localhost]#iptables -A INPUT -i lo -j ACCEPT

อนุญาติเฉพาะ SSH, SMTP, DNS, Web Services, SSL และ POP3 ให้ผ่านเข้าออก
[root@localhost]#iptables -A INPUT -p tcp -m state –state ESTABLISHED,RELATED -j ACCEPT
[root@localhost]#iptables -A INPUT -p tcp –dport 22 –syn -j ACCEPT
[root@localhost]#iptables -A INPUT -p tcp –dport 25 –syn -j ACCEPT
[root@localhost]#iptables -A INPUT -p tcp –dport 53 –syn -j ACCEPT
[root@localhost]#iptables -A INPUT -p udp –dport 53 –syn -j ACCEPT
[root@localhost]#iptables -A INPUT -p tcp –dport 80 –syn -j ACCEPT
[root@localhost]#iptables -A INPUT -p tcp –dport 443 –syn -j ACCEPT
[root@localhost]#iptables -A INPUT -p tcp –dport 110 –syn -j ACCEPT

ป้องกันการ scan ports
[root@localhost]#iptables -N check-flags
[root@localhost]#iptables -F check-flags
[root@localhost]#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:”
[root@localhost]#iptables -A check-flags -p tcp –tcp-flags ALL FIN,URG,PSH -j DROP
[root@localhost]#iptables -A check-flags -p tcp –tcp-flags ALL ALL -m limit –limit 5/minute -j LOG –log-level 1 –log-prefix “XMAS:”
[root@localhost]#iptables -A check-flags -p tcp –tcp-flags ALL ALL -j DROP
[root@localhost]#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:”
[root@localhost]#iptables -A check-flags -p tcp –tcp-flags ALL SYN,RST,ACK,FIN,URG -j DROP
[root@localhost]#iptables -A check-flags -p tcp –tcp-flags ALL NONE -m limit –limit 5/minute -j LOG –log-level 1 –log-prefix “NULL_SCAN:”
[root@localhost]#iptables -A check-flags -p tcp –tcp-flags ALL NONE -j DROP
[root@localhost]#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:”
[root@localhost]#iptables -A check-flags -p tcp –tcp-flags SYN,RST SYN,RST -j DROP
[root@localhost]#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:”
[root@localhost]#iptables -A check-flags -p tcp –tcp-flags SYN,FIN SYN,FIN -j DROP

ป้องกันการ flood SSH (SSH Brute Force)
[root@localhost]#iptables -I INPUT -p tcp –dport 22 -i eth0 -m state –state NEW -m recent –set
[root@localhost]#iptables -I INPUT -p tcp –dport 22 -i eth0 -m state –state NEW -m recent –update –seconds 600 –hitcount 2 -j DROP

ห้าม ping
[root@localhost]#iptables -A INPUT -p ICMP -i eth0 –icmp-type 8 -j DROP

ห้าม traceroute
[root@localhost]#iptables -A INPUT -p ICMP -i eth0 –icmp-type 11 -j DROP

Protect Syn Flood
[root@localhost]#iptables-N syn-flood
[root@localhost]#iptables -A syn-flood -i ppp0 -m limit –limit 75/s –limit-burst 100 -j RETURN
[root@localhost]#iptables -A syn-flood -j LOG –log-prefix “SYN-FLOOD: ”
[root@localhost]#iptables -A syn-flood -j DROP

REDIRECT PORT 10080 to 80
[root@localhost]#iptables -t nat -A PREROUTING -i ppp0 -p tcp –dport 80 -j DNAT –to 192.168.xxx.xxx:10080
[root@localhost]#iptables -A FORWARD -p tcp -i ppp0 -d 192.168.xxx.xxx –dport 80 -j ACCEPT (192.168.xxx.xxx = ip ของเรา)
[root@localhost]#iptables -A FORWARD -p tcp -i ppp0 -d 192.168.xxx.xxx –sport 80 -j ACCEPT

Transparent Proxy
[root@localhost]#iptables -t nat -A PREROUTING -p TCP –dport 80 -j REDIRECT -to-ports 3128

Tags:

วิธีการ Reset Password ใน MySQL

MySQL December 8th, 2008

เอาวิธีแรก ที่ใช้กันง่ายๆก่อนนะ

  • รันด้วย /usr/sbin/mysqld --skip-grant-tables --user=root &
  • ต่อจากนั้นก็เข้า mysql -u root -p
  • เปลี่ยน password ด้วย UPDATE user SET password=password('secret') WHERE user='root';
  • restart mysql กลับไปใช้แบบเดิม ก็เป็นอันเสร็จสิ้น

ส่วนวิธีที่สองไปอ่านเจอที่อื่น

  • เพิ่ม “skip-grant-tables” ลงใน my.cnf โดยเพิ่มในส่วนของ [mysqld] สำคัญมากห้ามลืม อย่าใส่ผิดที่ ไม่อย่างนั้นจะไม่สามารถ reset password ได้
  • restart mysql ก่อน เพื่อจะได้มีผล
  • จากนั้นก็ใช้ login แล้วก็ เปลี่ยน password ด้วยคำสั่งข้างต้น
  • พอแก้เรียบร้อยแล้วก็ comment บรรทัด skip-grant-tables แล้วก็ restart ก็เป็นอันเสร็จสิ้น

credit: mr-san

Tags:

Linux datetime

Linux December 8th, 2008

  1. su to root
  2. Find your timezone file under /usr/share/zoneinfo. For example:

    /usr/share/zoneinfo/Asia/Bangkok
  3. OPTIONAL: backup the current timezone configuration:

    cp /etc/localtime /etc/localtime.bak
  4. Create a symbolic link from the appropiate timezone to /etc/localtime.

    ln -sf /usr/share/zoneinfo/Asia/Bangkok /etc/localtime
  5. Use rdate or ntpdate to set the system time (ntpdate is better):

    /usr/sbin/ntpdate time.nist.gov

    or

    /usr/bin/rdate time.nist.gov
  6. Set the hardware clock to the system time:

    /sbin/hwclock –systohc

Note: you may install ntp via yum if ntpdate does not exists on your system.

Tags:

วิธี fsck หรือ file system check สำหรับ linux

Linux July 8th, 2008

Boot from the installation CD into rescue mode

If you are using Cent OS/Fedora Core/RHEL linux, boot from first CD and at boot prompt type linux rescue nomount:
boot: linux rescue nomount

# e2fsck -y /dev/sda

ref:

Tags: , ,

How to use php.ini on a per-site basis on IIS 6.0?

Windows 2003 June 16th, 2008

php-settings-register_globals-300x166 How to use php.ini on a per-site basis on IIS 6.0?

Start - Run - Regedit - go to “HKLM\SOFTWARE\PHP\Per Directory Values\”.

Then create keys (If you site folder is default “C:\Inetpub\vhosts\domain.com”:
“C” - “Inetpub” - “vhosts” - “domain.com” - then add string value “register_globals” and set string “on”.

Note:

Also work with other flag e.g. display_errors on


Tags: , ,

Copyright © 2008 iBiz Network Co., Ltd. Powered by wordpress, Theme by ericulous