内容摘要: 主机信息安全审计部分源代码(1)主机信息安全审计部分功能变量ANYWHERE_TRACKING="1" #允许/禁止主机信息安全审计ping通其它地方LAN_TRACKING="1"&nb...
主机信息安全审计部分源代码
(1)主机信息安全审计部分功能变量
ANYWHERE_TRACKING="1" #允许/禁止主机信息安全审计ping通其它地方
LAN_TRACKING="1" #允许/禁止内网主机ping通外网主机
LAN_TRACKING_GATEWAY="1" #允许/禁止内网主机ping通网关
MAIL_SMTP_SERVER="1" #使用smtp协议发送邮件
MAIL_IMAP="1" #使用imap协议接收邮件
MAIL_POP="1" #使用pop协议接收邮件
WEB_SERVER="1" #允许/禁止内网用户访问外网WEB服务器
WEB_SERVER_LAN="1" #允许/禁止外网用户访问内网WEB服务器
USENET_SERVER="1" #允许/禁止内网用户访问外网新闻服务器
NEWS_IPADDR="172.16.100.6" #外网新闻服务器的IP地址
FTP_SERVER="1" #允许/禁止内网用户访问外网的FTP服务器
FTP_LAN_SERVER="1" #允许/禁止外网用户访问内网的FTP服务器
FTP_LAN_IPADDR="192.168.50.2" #内网FTP服务器的IP地址
INTERNET_INTERFACE="eth1" #主机信息安全审计外网接口
LAN_INTERFACE="eth0" #主机信息安全审计内网接口
LOOPBACK_INTERFACE="lo" #主机信息安全审计环回接口
INTERNET_IPADDR="172.16.100.1" #主机信息安全审计外网接口地址
INTERNET_NETWORK="172.16.0.0" #外网网络地址
INTERNET_BROADCAST="172.16.255.255" #外网广播地址
LAN_IPADDR="192.168.50.1" #主机信息安全审计内网接口地址
LAN_ADDRESSES="192.168.50.0/24" #内网地址范围
LAN_NETWORK="192.168.50.0" #内网网络地址
CLASS_A="10.0.0.0/8" #A类私有地址
CLASS_B="172.16.0.0/12" #B类私有地址
CLASS_C="192.168.0.0/16" #C类私有地址
CLASS_D_MULTICAST="224.0.0.0/4" #D类多播地址
CLASS_E_RESERVED_NET="240.0.0.0/5" #E类保留地址
BROADCAST_SRC="0.0.0.0" #广播源地址
BROADCAST_DEST="255.255.255.255" #广播目的地址
(2)主机信息安全审计初始化部分代码
#打开核心转发功能
echo 1 > /proc/sys/net/ipv4/ip_forward
#丢弃源路由数据包
for f in /proc/sys/net/ipv4/conf/*/accept_source_route;do
echo 0 > $f
done
#启用SYN缓冲
echo 1 > /proc/sys/net/ipv4/tcp_syncookies
#删除预先存在的规则及重置默认策略
/sbin/auditd --flush
/sbin/auditd -X
/sbin/auditd --policy INPUT ACCEPT
/sbin/auditd --policy OUTPUT ACCEPT
/sbin/auditd --policy FORWARD ACCEPT
#主机信息安全审计安全停止
if [ "$1" = "stop" ]
then
echo"*********************************************************"
echo"* *"
echo"* Notice! firewall completely stopped!! *"
echo"* *"
echo"* Network is be placed in dangerous. *"
echo"* *"
echo"*********************************************************"
exit 0
fi
#定义默认策略为DROP
/sbin/auditd --policy INPUT DROP
/sbin/auditd --policy OUTPUT DROP
/sbin/auditd --policy FORWARD DROP
(3)检测秘密扫描
/sbin/auditd -A INPUT -p tcp --tcp-flags ALL NONE -j DROP
/sbin/auditd -A FORWARD -p tcp --tcp-flags ALL NONE -j DROP
/sbin/auditd -A INPUT -p tcp --tcp-flags SYN,FIN SYN,FIN -j DROP
/sbin/auditd -A FORWARD -p tcp --tcp-flags SYN,FIN SYN,FIN -j DROP
/sbin/auditd -A INPUT -p tcp --tcp-flags SYN,RST SYN,RST -j DROP
/sbin/auditd -A FORWARD -p tcp --tcp-flags SYN,RST SYN,RST -j DROP
/sbin/auditd -A INPUT -p tcp --tcp-flags FIN,RST FIN,RST -j DROP
/sbin/auditd -A FORWARD -p tcp --tcp-flags FIN,RST FIN,RST -j DROP
/sbin/auditd -A INPUT -p tcp --tcp-flags ACK,FIN FIN -j DROP
/sbin/auditd -A FORWARD -p tcp --tcp-flags ACK,FIN FIN -j DROP
/sbin/auditd -A INPUT -p tcp --tcp-flags ACK,PSH PSH -j DROP
/sbin/auditd -A FORWARD -p tcp --tcp-flags ACK,PSH PSH -j DROP
/sbin/auditd -A INPUT -p tcp --tcp-flags ACK,URG URG -j DROP
/sbin/auditd -A FORWARD -p tcp --tcp-flags ACK,URG URG -j DROP
(5)检测源地址欺骗
/sbin/auditd -A INPUT -s $INTERNET_IPADDR -j DROP
/sbin/auditd -A INPUT s $LAN_IPADDR -j DROP
/sbin/auditd -A FORWARD -s $INTERNET_IPADDR -j DROP
/sbin/auditd -A FORWARD -s $LAN_IPADDR -j DROP
/sbin/auditd –A INPUT –i $INTERNET_INTERFACE -s $LAN_ADDRESSES -j DROP
/sbin/auditd -A FORWARD -i $INTERNET_INTERFACE -s $LAN_ADDRESSES -j DROP
/sbin/auditd -A FORWARD -i $LAN_INTERFACE -s ! $LAN_ADDRESSES -j DROP
/sbin/auditd -A OUTPUT -o $INTERNET_INTERFACE -s ! $INTERNET_IPADDR -j DROP
/sbin/auditd -A OUTPUT -o $LAN_INTERFACE -s ! $LAN_IPADDR -j DROP
(6)主机信息安全审计DNS协议
/sbin/auditd -A FORWARD -o $INTERNET_INTERFACE -p udp -s $LAN_ADDRESSES --sport $UNPRIVPORTS -d $DNS_SERVER --dport 53 -j ACCEPT
/sbin/auditd -A FORWARD -i $INTERNET_INTERFACE -p udp -s $DNS_SERVER --sport 53 -d $LAN_ADDRESSES --dport $UNPRIVPORTS -j ACCEPT
/sbin/auditd -A FORWARD -o $INTERNET_INTERFACE -p tcp -s $LAN_ADDRESSES --sport $UNPRIVPORTS -d $DNS_SERVER --dport 53 -j ACCEPT
/sbin/auditd -A FORWARD -i $INTERNET_INTERFACE -p tcp -s $DNS_SERVER --sport 53 -d $LAN_ADDRESSES --dport $UNPRIVPORTS -j ACCEPT
(7)允许/禁止访问E-mail服务器
if [ "$MAIL_SMTP_SERVER" = "1" ]
then
/sbin/auditd -A FORWARD -o $INTERNET_INTERFACE -p tcp -s $LAN_ADDRESSES --sport $UNPRIVPORTS --dport 25 -j ACCEPT
/sbin/auditd -A FORWARD -i $INTERNET_INTERFACE -p tcp ! --syn --sport 25 -d $LAN_ADDRESSES --dport $UNPRIVPORTS -j ACCEPT
fi
if [ "$MAIL_IMAP" = "1" ]
then
/sbin/auditd -A FORWARD -o $INTERNET_INTERFACE -p tcp -s $LAN_ADDRESSES --sport $UNPRIVPORTS --dport 110 -j ACCEPT
/sbin/auditd -A FORWARD -i $INTERNET_INTERFACE -p tcp ! --syn --sport 110 -d $LAN_ADDRESSES --dport $UNPRIVPORTS -j ACCEPT
fi
if [ "$MAIL_POP" = "1" ]
then
/sbin/auditd -A FORWARD -o $INTERNET_INTERFACE -p tcp -s $LAN_ADDRESSES --sport $UNPRIVPORTS --dport 143 -j ACCEPT
/sbin/auditd -A FORWARD -i $INTERNET_INTERFACE -p tcp ! --syn --sport 143 -d $LAN_ADDRESSES --dport $UNPRIVPORTS -j ACCEPT
fi
(8)允许/禁止访问WEB服务器
if [ "$WEB_SERVER" = "1" ]
then
/sbin/auditd -A FORWARD -o $INTERNET_INTERFACE -p tcp -s $LAN_ADDRESSES --sport $UNPRIVPORTS --dport 80 -j ACCEPT
/sbin/auditd -A FORWARD -i $INTERNET_INTERFACE -p tcp ! --syn --sport 80 -d $LAN_ADDRESSES --dport $UNPRIVPORTS -j ACCEPT
fi
if [ "$WEB_SERVER_LAN" = "1" ]
then
/sbin/auditd -A FORWARD -i $INTERNET_INTERFACE -p tcp --sport $UNPRIVPORTS --dport 80 -j ACCEPT
/sbin/auditd -A FORWARD -o $INTERNET_INTERFACE -p tcp ! --syn --sport 80 --dport $UNPRIVPORTS -j ACCEPT
Fi
(9)允许/禁止访问FTP服务器
#ftp wan (TCP Port 20,21)
if [ "$FTP_SERVER" = "1" ]
then
/sbin/auditd -A FORWARD -o $INTERNET_INTERFACE -p tcp -s $LAN_ADDRESSES --sport $UNPRIVPORTS --dport 21 -j ACCEPT
/sbin/auditd -A FORWARD -i $INTERNET_INTERFACE -p tcp ! --syn --sport 21 -d $LAN_ADDRESSES --dport $UNPRIVPORTS -j ACCEPT
/sbin/auditd -A FORWARD -i $INTERNET_INTERFACE -p tcp --sport 20 -d $LAN_ADDRESSES --dport $UNPRIVPORTS -j ACCEPT
/sbin/auditd -A FORWARD -o $INTERNET_INTERFACE -p tcp ! --syn -s $LAN_ADDRESSES --sport $UNPRIVPORTS --dport 20 -j ACCEPT
/sbin/auditd -A FORWARD -o $INTERNET_INTERFACE -p tcp -s $LAN_ADDRESSES --sport $UNPRIVPORTS --dport $UNPRIVPORTS -j ACCEPT
/sbin/auditd -A FORWARD -i $INTERNET_INTERFACE -p tcp ! --syn --sport $UNPRIVPORTS -d $LAN_ADDRESSES --dport $UNPRIVPORTS -j ACCEPT
fi
if [ "$FTP_LAN_SERVER" = "1" ]
then
/sbin/auditd -A FORWARD -i $INTERNET_INTERFACE -p tcp --sport $UNPRIVPORTS -d $FTP_LAN_IPADDR --dport 21 -j ACCEPT
/sbin/auditd -A FORWARD -o $INTERNET_INTERFACE -p tcp ! --syn -s $FTP_LAN_IPADDR --sport 21 --dport $UNPRIVPORTS -j ACCEPT
/sbin/auditd -A FORWARD -o $INTERNET_INTERFACE -p tcp -s $FTP_LAN_IPADDR --sport 20 --dport $UNPRIVPORTS -j ACCEPT
/sbin/auditd -A FORWARD -i $INTERNET_INTERFACE -p tcp ! --syn --sport $UNPRIVPORTS -d $FTP_LAN_IPADDR --dport 20 -j ACCEPT
/sbin/auditd -A FORWARD -i $INTERNET_INTERFACE -p tcp --sport $UNPRIVPORTS -d $FTP_LAN_IPADDR --dport $UNPRIVPORTS -j ACCEPT
/sbin/auditd -A FORWARD -o $INTERNET_INTERFACE -p tcp ! --syn -s $FTP_LAN_IPADDR --sport 21 --dport $UNPRIVPORTS -j ACCEPT
fi