
VPS sunucunuzda basit ama iş görecek bir firewall uygulamasına ihtiyacınız varsa, IPTABLES ile sunucumuzda basit ama
iş görecek bir firewall uygulaması için;
Öncelikle;
Aşağıdaki komut ile iptables servisini durduruyoruz;
# /etc/init.d/iptables stop
iptables servisini pasif ediyoruz
# chkconfig iptables off
Sunucunuzda nano editörü kurulu değilse;
# yum install -y nano
komutu ile nano editörü kuruyoruz.. (siz isterseniz vi gibi bir editör vs de kullanabilirsiniz.. nano yıllarıdır bana çok pratik ve kullanışlı gelmiştir.)
nanomuzu word – wrap özelliği kapalı olarak açıyoruz ve : /etc/init.d/firewall isimli dosyamızı oluşturuyoruz..:
#nano -w /etc/init.d/firewall
Aşağıdaki betiği olduğu gibi editörümüze yapıştırıyoruz:
[KOD BAŞLANGICI]
#!/bin/sh
# firewall
# chkconfig: 3 21 91
# description: Starts, stops iptables firewall
case “$1″ in
start)
# Clear rules
iptables -t filter -F
iptables -t filter -X
echo – Clear rules : [TAMAM]
# SSH In
iptables -t filter -A INPUT -p tcp –dport 22 -j ACCEPT
echo – SSH : [TAMAM]
# Don’t break established connections
iptables -A INPUT -m state –state RELATED,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -m state –state RELATED,ESTABLISHED -j ACCEPT
echo – established connections : [TAMAM]
# Block all connections by default
iptables -t filter -P INPUT DROP
iptables -t filter -P FORWARD DROP
iptables -t filter -P OUTPUT DROP
echo – Block all connections : [TAMAM]
# SYN-Flood Protection
iptables -N syn-flood
iptables -A syn-flood -m limit –limit 10/second –limit-burst 50 -j RETURN
iptables -A syn-flood -j LOG –log-prefix “SYN FLOOD: “
iptables -A syn-flood -j DROP
echo – SYN-Flood Protection : [TAMAM]
# Loopback
iptables -t filter -A INPUT -i lo -j ACCEPT
iptables -t filter -A OUTPUT -o lo -j ACCEPT
echo – Loopback : [TAMAM]
# ICMP (Ping)
iptables -t filter -A INPUT -p icmp -j ACCEPT
iptables -t filter -A OUTPUT -p icmp -j ACCEPT
echo – PING : [TAMAM]
# DNS In/Out
iptables -t filter -A OUTPUT -p tcp –dport 53 -j ACCEPT
iptables -t filter -A OUTPUT -p udp –dport 53 -j ACCEPT
iptables -t filter -A INPUT -p tcp –dport 53 -j ACCEPT
iptables -t filter -A INPUT -p udp –dport 53 -j ACCEPT
echo – DNS : [TAMAM]
# NTP Out
iptables -t filter -A OUTPUT -p udp –dport 123 -j ACCEPT
echo – NTP : [TAMAM]
# WHOIS Out
iptables -t filter -A OUTPUT -p tcp –dport 43 -j ACCEPT
echo – WHOIS : [TAMAM]
# FTP Out
iptables -t filter -A OUTPUT -p tcp –dport 20:21 -j ACCEPT
iptables -t filter -A OUTPUT -p tcp –dport 30000:50000 -j ACCEPT
# FTP In
iptables -t filter -A INPUT -p tcp –dport 20:21 -j ACCEPT
iptables -t filter -A INPUT -p tcp –dport 30000:50000 -j ACCEPT
iptables -t filter -A INPUT -m state –state ESTABLISHED,RELATED -j ACCEPT
echo – FTP : [TAMAM]
# HTTP + HTTPS Out
iptables -t filter -A OUTPUT -p tcp –dport 80 -j ACCEPT
iptables -t filter -A OUTPUT -p tcp –dport 443 -j ACCEPT
# HTTP + HTTPS In
iptables -t filter -A INPUT -p tcp –dport 80 -j ACCEPT
iptables -t filter -A INPUT -p tcp –dport 443 -j ACCEPT
echo – HTTP/HTTPS : [TAMAM]
# Mail SMTP:25
# iptables -t filter -A INPUT -p tcp –dport 25 -j ACCEPT
# iptables -t filter -A OUTPUT -p tcp –dport 25 -j ACCEPT
# echo – SMTP : [TAMAM]
# Mail POP3:110
iptables -t filter -A INPUT -p tcp –dport 110 -j ACCEPT
iptables -t filter -A OUTPUT -p tcp –dport 110 -j ACCEPT
echo – POP : [TAMAM]
# Mail IMAP:143
iptables -t filter -A INPUT -p tcp –dport 143 -j ACCEPT
iptables -t filter -A OUTPUT -p tcp –dport 143 -j ACCEPT
echo – IMAP : [TAMAM]
# SPAM ONLEMLERI
iptables -A INPUT -p tcp –tcp-flags ALL NONE -j DROP
iptables -A INPUT -p tcp –tcp-flags SYN,FIN SYN,FIN -j DROP
iptables -A INPUT -p tcp –tcp-flags SYN,RST SYN,RST -j DROP
iptables -A INPUT -p tcp –tcp-flags FIN,RST FIN,RST -j DROP
iptables -A INPUT -p tcp –tcp-flags ACK,FIN FIN -j DROP
iptables -A INPUT -p tcp –tcp-flags ACK,PSH PSH -j DROP
iptables -A INPUT -p tcp –tcp-flags ACK,URG URG -j DROP
echo – SPAM ONLEMLERI : [TAMAM]
# Kloxo
iptables -t filter -A INPUT -p tcp –dport 7777:7778 -j ACCEPT
iptables -t filter -A OUTPUT -p tcp –dport 7777:7778 -j ACCEPT
echo – Kloxo : [TAMAM]
echo – Firewall [TAMAM]
exit 0
;;
stop)
echo “Stopping Firewall… “
iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -t filter -F
echo “Firewall Stopped!”
exit 0
;;
restart)
/etc/init.d/firewall stop
/etc/init.d/firewall start
;;
*)
echo “Usage: /etc/init.d/firewall {start|stop|restart}”
exit 1
;;
esac
[KOD SONU]
Dosyamızı kaydedip kapatiyoruz Dosyamızın izinlerini ayarlıyoruz:
# chmod 700 /etc/init.d/firewall
Firewallimizi servis olarak ekliyoruz:
# chkconfig –add firewall
Firewallimizi otomatik başlata ekliyoruz:
# chkconfig –level 2345 firewall on
Firewallimizi başlatmak için şu komutu veriyoruz:
# /etc/init.d/firewall start
Artık firewallimizi kullanaibliriz.
# service firewall start – > firewalli başlat
# service firewall stop -> firewali durdur
#service firewall restart -> firewali yeniden başlat.
Umarım birilerinin işine yarar