Добрый день знатокам! Настроил iptables, все работает, но хотелось бы услышать мнение специалистов в области безопасности. Имеется система Centos, на ней развернута телефония Asterisk. Хотел бы попросить проверить правила, и если есть замечания, поправить. Правила составлены: что не разрешено, запрещено:
#!/bin/bash
CMD=/sbin/iptables
LAN_IP=10.1.19.0/24
LAN_IF=eth0
WAN1_IP=***.***.***.***/32
VPN_IP=192.168.100.0/24
VPN_IF=tun0
BOGON=192.168.0.0/16,172.16.0.0/12,0.0.0.0/8,100.64.0.0/10,127.0.0.0/8,169.254.0.0/16,192.0.0.0/24,192.0.2.0/24,198.18.0.0/15,198.51.100.0/24,203.0.113.0/24,224.0.0.0/4,240.0.0.0/4,255.255.255.255
IP_ALLOWED=10.1.19.222/32
$CMD -t filter -P INPUT DROP
$CMD -t filter -P FORWARD DROP
$CMD -t filter -P OUTPUT ACCEPT
$CMD -t filter -F INPUT
$CMD -t filter -F FORWARD
$CMD -t filter -F OUTPUT
$CMD -t filter -F
$CMD -t filter -X
$CMD -t filter -A INPUT -m conntrack --ctstate INVALID -j DROP
$CMD -t filter -A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
$CMD -t filter -A INPUT -i lo -j ACCEPT
$CMD -t filter -A INPUT ! -i lo -d 127.0.0.0/8 -j REJECT
$CMD -t filter -A INPUT -m psd -j DROP
$CMD -t filter -A INPUT ! -i lo -m geoip --src-cc A1,A2,AD,AE,AF,AG,AI,AL,AM,AO -j DROP
$CMD -t filter -A INPUT ! -i lo -m geoip --src-cc AP,AQ,AR,AS,AT,AU,AW,AX,AZ,BA -j DROP
$CMD -t filter -A INPUT ! -i lo -m geoip --src-cc BB,BD,BE,BF,BG,BH,BI,BJ,BL,BM -j DROP
$CMD -t filter -A INPUT ! -i lo -m geoip --src-cc BN,BO,BQ,BR,BS,BT,BW,BY,BZ,ZW -j DROP
$CMD -t filter -A INPUT ! -i lo -m geoip --src-cc CA,CC,CD,CF,CG,CH,CI,CK,CL,CM -j DROP
$CMD -t filter -A INPUT ! -i lo -m geoip --src-cc CN,CO,CR,CU,CV,CW,CX,CY,CZ,DE -j DROP
$CMD -t filter -A INPUT ! -i lo -m geoip --src-cc DJ,DK,DM,DO,DZ,EC,EE,EG,EH,ER -j DROP
$CMD -t filter -A INPUT ! -i lo -m geoip --src-cc ES,ET,EU,FI,FJ,FK,FM,FO,FR,GA -j DROP
$CMD -t filter -A INPUT ! -i lo -m geoip --src-cc GB,GD,GE,GF,GG,GH,GI,GL,GM,GN -j DROP
$CMD -t filter -A INPUT ! -i lo -m geoip --src-cc GP,GQ,GR,GS,GT,GU,GW,GY,HK,HM -j DROP
$CMD -t filter -A INPUT ! -i lo -m geoip --src-cc HN,HR,HT,HU,ID,IE,IL,IM,IN,IO -j DROP
$CMD -t filter -A INPUT ! -i lo -m geoip --src-cc IQ,IR,IS,IT,JE,JM,JO,JP,KE,KG -j DROP
$CMD -t filter -A INPUT ! -i lo -m geoip --src-cc KH,KI,KM,KN,KP,KR,KW,KY,LA,LB -j DROP
$CMD -t filter -A INPUT ! -i lo -m geoip --src-cc LC,LI,LK,LR,LS,LT,LU,LV,LY,MA -j DROP
$CMD -t filter -A INPUT ! -i lo -m geoip --src-cc MC,MD,ME,MF,MG,MH,MK,ML,MM,MN -j DROP
$CMD -t filter -A INPUT ! -i lo -m geoip --src-cc MO,MP,MQ,MR,MS,MT,MU,MV,MW,MX -j DROP
$CMD -t filter -A INPUT ! -i lo -m geoip --src-cc MY,MZ,NA,NC,NE,NF,NG,NI,NL,NO -j DROP
$CMD -t filter -A INPUT ! -i lo -m geoip --src-cc NP,NR,NU,NZ,OM,PA,PE,PF,PG,PH -j DROP
$CMD -t filter -A INPUT ! -i lo -m geoip --src-cc PK,PL,PM,PN,PR,PS,PT,PW,PY,QA -j DROP
$CMD -t filter -A INPUT ! -i lo -m geoip --src-cc RE,RO,RS,RU,RW,SA,SB,SC,SD,SE -j DROP
$CMD -t filter -A INPUT ! -i lo -m geoip --src-cc SG,SH,SI,SJ,SK,SL,SM,SN,SO,SR -j DROP
$CMD -t filter -A INPUT ! -i lo -m geoip --src-cc SS,ST,SV,SX,SY,SZ,TC,TD,TF,TG -j DROP
$CMD -t filter -A INPUT ! -i lo -m geoip --src-cc TH,TJ,TK,TL,TM,TN,TO,TR,TT,TV -j DROP
$CMD -t filter -A INPUT ! -i lo -m geoip --src-cc TW,TZ,UA,UG,UM,US,UY,UZ,VA,VC -j DROP
$CMD -t filter -A INPUT ! -i lo -m geoip --src-cc VE,VG,VI,VN,VU,WF,WS,YE,YT,ZA -j DROP
$CMD -t filter -A INPUT ! -i lo -m geoip --src-cc ZM -j DROP
for ip in $BOGON; do
$CMD -t filter -A INPUT -i $LAN_IF -s $ip -j DROP
done
$CMD -t filter -A INPUT -p tcp -m conntrack --ctstate NEW --tcp-flags ALL ALL -j DROP
$CMD -t filter -A INPUT -p tcp -m conntrack --ctstate NEW --tcp-flags ALL NONE -j DROP
$CMD -t filter -A INPUT -p tcp -m conntrack --ctstate NEW ! --syn -j DROP
$CMD -t filter -A INPUT -m conntrack --ctstate NEW,INVALID -p tcp --tcp-flags SYN,ACK SYN,ACK -j REJECT --reject-with tcp-reset
$CMD -t filter -A INPUT -p tcp --tcp-flags ALL FIN,URG,PSH -j DROP
$CMD -t filter -A INPUT -p tcp --tcp-flags SYN,RST SYN,RST -j DROP
$CMD -t filter -A INPUT -p tcp --tcp-flags SYN,FIN SYN,FIN -j DROP
$CMD -t filter -A INPUT -p udp -m string --string «sipcli» --algo bm --to 65535 -m recent --set --name scan-attack
$CMD -t filter -A INPUT -p udp -m string --string «sip-scan» --algo bm --to 65535 -m recent --set --name scan-attack
$CMD -t filter -A INPUT -p udp -m string --string «sundayddr» --algo bm --to 65535 -m recent --set --name scan-attack
$CMD -t filter -A INPUT -p udp -m string --string «iWar» --algo bm --to 65535 -m recent --set --name scan-attack
$CMD -t filter -A INPUT -p udp -m string --string «sipsak» --algo bm --to 65535 -m recent --set --name scan-attack
$CMD -t filter -A INPUT -p udp -m string --string «sipvicious» --algo bm --to 65535 -m recent --set --name scan-attack
$CMD -t filter -A INPUT -p udp -m string --string «VaxSIPUserAgent» --algo bm --to 65535 -m recent --set --name scan-attack
$CMD -t filter -A INPUT -p udp -m string --string «friendly-scanner» --algo bm --to 65535 -m recent --set --name scan-attack
$CMD -t filter -A INPUT -p udp -m string --string «eyeBeam» --algo bm --to 65535 -m recent --set --name scan-attack
$CMD -t filter -A INPUT -p udp -m recent --update --seconds 60 --hitcount 1 --name scan-attack -j LOG --log-level 4 --log-prefix «Scanner flood detected: »
$CMD -t filter -A INPUT -p tcp -m multiport --dports 21,22,80,137,138,139,443,445 -m conntrack --ctstate NEW -m recent --set
$CMD -t filter -A INPUT -p tcp -m multiport --dports 21,22,80,137,138,139,443,445 -m conntrack --ctstate NEW -m recent --update --seconds 2 --hitcount 20 -j DROP
$CMD -t filter -A INPUT -p udp -m multiport --dports 53,69 -m conntrack --ctstate NEW -m recent --set
$CMD -t filter -A INPUT -p udp -m multiport --dports 53,69 -m conntrack --ctstate NEW -m recent --update --seconds 2 --hitcount 20 -j DROP
$CMD -t filter -A INPUT -p udp --dport 5060 -m conntrack --ctstate NEW -m recent --set --name SIP
$CMD -t filter -A INPUT -p udp --dport 5060 -m conntrack --ctstate NEW -m recent --update --seconds 2 --hitcount 20 --name SIP -j LOG --log-level 4 --log-prefix «SIP flood detected: »
$CMD -t filter -A INPUT -s $LAN_IP -i $LAN_IF -p icmp -j ACCEPT
$CMD -t filter -A INPUT -s $LAN_IP -i $LAN_IF -p udp --dport 10000:20000 -j ACCEPT
$CMD -t filter -A INPUT -s $LAN_IP -i $LAN_IF -p udp --dport 5060 -j ACCEPT
$CMD -t filter -A INPUT -s $WAN1_IP -i $LAN_IF -p udp --dport 10000:20000 -j ACCEPT
$CMD -t filter -A INPUT -s $WAN1_IP -i $LAN_IF -p udp --dport 5060 -j ACCEPT
for ip in $IP_ALLOWED; do
$CMD -t filter -A INPUT -s $ip -i $LAN_IF -j ACCEPT
done
$CMD -t filter -A INPUT -s $VPN_IP -i $VPN_IF -j ACCEPT
$CMD -t filter -A INPUT -j REJECT --reject-with icmp-port-unreachable
$CMD -t filter -A FORWARD -j REJECT --reject-with icmp-port-unreachable