1 Cuộc đối thoại hay

Hôm nay học về CUPS, ko hứng thú lắm vì chẳng mấy khi phải triển khai Print Server trên *nix, thực sự cái này thì Windows nhà M$ tốt hơn. Ngoài ra có có giải pháp là Print Server cứng, máy in mạng.
Được ngồi nói chuyện với a.H về hosting. Server chạy ClamAV để scan Virus và Shell. Vấn đề là nó chỉ report ko diệt....
Để làm 1 web-server hoàn thiện cần mod-security + safe-mode on với gì nhỉ su php chăng =)). Quên mất rồi, lúc ấy đang làm SME Server nên ko để ý lắm.
Có một đoạn nói chuyện khá hay, giữa một attacker ( hay đúng hơn là scripter thôi) nc với SYS-Admin của Hosting.
Admin (A): Ở đây mình sử dụng ClamAV quét, báo report về. Với những virus, trojan tự động lock, Shell thì report để kill
S: Vấn đề là nếu attacker có thể up shell lên thì mất bao lâu để chiếm quyền server, với một server phân quyền khá kỹ, chmod hoàn hảo thì rất khó, đặc biệt là khi sử dụng suPHP, vào rồi chỉ nhìn. Attacker sẽ chuyển sang getroot. ( Hix, nghe pro quá).
A: Ở đây mình sử dụng kernel phiên bản mới nhất ( Ôi bó tay rồi, có khác gì thi xem ai lên milw0rm sớm hơn).
S: Nếu vậy thì e sẽ thử tấn công vào service ( Pro kinh, search milw0rm mỏi mắt mới ra bug mà exploit)
A: Một web-server chạy share host ( thế mới đáng để local) thì chỉ bật port cho web. Hơn nữa nếu bạn làm vậy sẽ phải đăng nhập=> cần port. SSH mình sử dụng đã disable root login. Chỉ có thể login với user thường ( Giải pháp đưa ra sẽ là log vào rồi get lên :()
S: Trường hợp này shell đã bị disable vì mod-security. Nếu mà ko còn nữa thì ...DDOS
A: Show hàng

#!/bin/bash  
\# A Linux Shell Script with common rules for IPTABLES Firewall.  
\# By default this script only open port 80, 22, 53 (input)  
\# All outgoing traffic is allowed (default - output)  
\# -------------------------------------------------------------------------  
\# Copyright (c) 2004 nixCraft project   
\# This script is licensed under GNU GPL version 2.0 or above  
\# -------------------------------------------------------------------------  
\# This script is part of nixCraft shell script collection (NSSC)  
\# Visit http://bash.cyberciti.biz/ for more information.  
\# -------------------------------------------------------------------------  

IPT="/sbin/iptables"  
SPAMLIST="blockedip"  
SPAMDROPMSG="BLOCKED IP DROP"  

echo "Starting IPv4 Wall..."  
$IPT -F  
$IPT -X  
$IPT -t nat -F  
$IPT -t nat -X  
$IPT -t mangle -F  
$IPT -t mangle -X  
modprobe ip\_conntrack  

\[ -f /root/scripts/blocked.ips.txt \] && BADIPS=$(egrep -v -E "^#|^$" /root/scripts/blocked.ips.txt)  

PUB\_IF="eth0"  

#unlimited  
$IPT -A INPUT -i lo -j ACCEPT  
$IPT -A OUTPUT -o lo -j ACCEPT  

\# DROP all incomming traffic  
$IPT -P INPUT DROP  
$IPT -P OUTPUT DROP  
$IPT -P FORWARD DROP  

if \[ -f /root/scripts/blocked.ips.txt \];  
then  
\# create a new iptables list  
$IPT -N $SPAMLIST  

for ipblock in $BADIPS  
do  
   $IPT -A $SPAMLIST -s $ipblock -j LOG --log-prefix "$SPAMDROPMSG"  
   $IPT -A $SPAMLIST -s $ipblock -j DROP  
done  

$IPT -I INPUT -j $SPAMLIST  
$IPT -I OUTPUT -j $SPAMLIST  
$IPT -I FORWARD -j $SPAMLIST  
fi  

\# Block sync  
$IPT -A INPUT -i ${PUB\_IF} -p tcp ! --syn -m state --state NEW  -m limit --limit 5/m --limit-burst 7 -j LOG --log-level 4 --log-prefix "Drop Sync"  
$IPT -A INPUT -i ${PUB\_IF} -p tcp ! --syn -m state --state NEW -j DROP  

\# Block Fragments  
$IPT -A INPUT -i ${PUB\_IF} -f  -m limit --limit 5/m --limit-burst 7 -j LOG --log-level 4 --log-prefix "Fragments Packets"  
$IPT -A INPUT -i ${PUB\_IF} -f -j DROP  

\# Block bad stuff  
$IPT  -A INPUT -i ${PUB\_IF} -p tcp --tcp-flags ALL FIN,URG,PSH -j DROP  
$IPT  -A INPUT -i ${PUB\_IF} -p tcp --tcp-flags ALL ALL -j DROP  

$IPT  -A INPUT -i ${PUB\_IF} -p tcp --tcp-flags ALL NONE -m limit --limit 5/m --limit-burst 7 -j LOG --log-level 4 --log-prefix "NULL Packets"  
$IPT  -A INPUT -i ${PUB\_IF} -p tcp --tcp-flags ALL NONE -j DROP \# NULL packets  

$IPT  -A INPUT -i ${PUB\_IF} -p tcp --tcp-flags SYN,RST SYN,RST -j DROP  

$IPT  -A INPUT -i ${PUB\_IF} -p tcp --tcp-flags SYN,FIN SYN,FIN -m limit --limit 5/m --limit-burst 7 -j LOG --log-level 4 --log-prefix "XMAS Packets"  
$IPT  -A INPUT -i ${PUB\_IF} -p tcp --tcp-flags SYN,FIN SYN,FIN -j DROP #XMAS  

$IPT  -A INPUT -i ${PUB\_IF} -p tcp --tcp-flags FIN,ACK FIN -m limit --limit 5/m --limit-burst 7 -j LOG --log-level 4 --log-prefix "Fin Packets Scan"  
$IPT  -A INPUT -i ${PUB\_IF} -p tcp --tcp-flags FIN,ACK FIN -j DROP \# FIN packet scans  

$IPT  -A INPUT -i ${PUB\_IF} -p tcp --tcp-flags ALL SYN,RST,ACK,FIN,URG -j DROP  

\# Allow full outgoing connection but no incomming stuff  
$IPT -A INPUT -i eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT  
$IPT -A OUTPUT -o eth0 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT  

\# Allow ssh  
$IPT -A INPUT -p tcp --destination-port 22 -j ACCEPT  

\# allow incomming ICMP ping pong stuff  
$IPT -A INPUT -p icmp --icmp-type 8 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT  
$IPT -A OUTPUT -p icmp --icmp-type 0 -m state --state ESTABLISHED,RELATED -j ACCEPT  

\# Allow port 53 tcp/udp (DNS Server)  
$IPT -A INPUT -p udp --dport 53 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT  
$IPT -A OUTPUT -p udp --sport 53 -m state --state ESTABLISHED,RELATED -j ACCEPT  

$IPT -A INPUT -p tcp --destination-port 53 -m state --state NEW,ESTABLISHED,RELATED  -j ACCEPT  
$IPT -A OUTPUT -p tcp --sport 53 -m state --state ESTABLISHED,RELATED -j ACCEPT  

\# Open port 80  
$IPT -A INPUT -p tcp --destination-port 80 -j ACCEPT  
\##### Add your rules below ######  

\##### END your rules ############  

\# Do not log smb/windows sharing packets - too much logging  
$IPT -A INPUT -p tcp -i eth0 --dport 137:139 -j REJECT  
$IPT -A INPUT -p udp -i eth0 --dport 137:139 -j REJECT  

\# log everything else and drop  
$IPT -A INPUT -j LOG  
$IPT -A FORWARD -j LOG  
$IPT -A INPUT -j DROP  

exit 0

Nguồn: http://bash.cyberciti.biz/firewall/linux-iptables-firewall-shell-script-for-standalone-server/
Hì hì, đoạn script hoàn toàn block khi server chịu tải lớn.
S: Kiểu nì e chơi zero-day.
A: Zero cũng ko log vào đc :(

-------------------------------

Cuộc đối thoại bình thường nhưng mình học đc nhiều điều, tấn công nhiều khi là cần cái đầu hơn là đôi tay. Người phòng thủ cũng cần phát huy hết cả, ko phải lúc nào cũng giơ ra chịu trận. Tránh là hơn cả.

--------------------------------------------------------------------------
All my Lab:
Linux Lab -- window and Cisco Lab
to be continued - I will update more.

Nam Habach