imho.ws |
|
12.06.2003, 23:51 | # 1 |
Member
Регистрация: 26.08.2002
Адрес: Germany
Сообщения: 232
|
Firewall iptables
MoHaX
...........хочу я, чтоб на нём были открыты только 80, 443, 25, 110 порты........... .........Сканирую какой-то ....... и он показывает, что все порты открыты. ........ Рассмастривай firewall всегда с двух сторон (внутренняя - локальная и внешняя - интернет) и сканируй тоже из локальной сети и из интернета Открытые порты на сервере из интернета 22, 25, 80, 110, 443 Из локальной сети выходит всё и все порты открыты. eth0 интернет Этот скрипт (firewall ) поместить в директорию /etc/init.d/ ############# firewall ######### #!/bin/bash # case "$1" in start) echo "Starte IP-Paketfilter" modprobe ip_tables modprobe ip_conntrack modprobe ip_conntrack_irc modprobe ip_conntrack_ftp iptables -F iptables -t nat -F iptables -t mangle -F iptables -X iptables -t nat -X iptables -t mangle -X iptables -P INPUT DROP iptables -P OUTPUT DROP iptables -P FORWARD DROP iptables -N MY_REJECT iptables -A MY_REJECT -p tcp -m limit --limit 7200/h -j LOG --log-prefix "REJECT TCP " iptables -A MY_REJECT -p tcp -j REJECT --reject-with tcp-reset iptables -A MY_REJECT -p udp -m limit --limit 7200/h -j LOG --log-prefix "REJECT UDP " iptables -A MY_REJECT -p udp -j REJECT --reject-with icmp-port-unreachable iptables -A MY_REJECT -p icmp -m limit --limit 7200/h -j LOG --log-prefix "DROP ICMP " iptables -A MY_REJECT -p icmp -j DROP iptables -A MY_REJECT -m limit --limit 7200/h -j LOG --log-prefix "REJECT OTHER " iptables -A MY_REJECT -j REJECT --reject-with icmp-proto-unreachable iptables -N MY_DROP iptables -A MY_DROP -m limit --limit 7200/h -j LOG --log-prefix "PORTSCAN DROP " iptables -A MY_DROP -j DROP iptables -A INPUT -m state --state INVALID -m limit --limit 7200/h -j LOG --log-prefix "INPUT INVALID " iptables -A OUTPUT -m state --state INVALID -m limit --limit 7200/h -j LOG --log-prefix "OUTPUT INVALID " iptables -A FORWARD -m state --state INVALID -m limit --limit 7200/h -j LOG --log-prefix "FORWARD INVALID " iptables -A INPUT -m state --state INVALID -j DROP iptables -A OUTPUT -m state --state INVALID -j DROP iptables -A FORWARD -m state --state INVALID -j DROP iptables -A INPUT -p tcp --tcp-flags ALL NONE -j MY_DROP iptables -A FORWARD -p tcp --tcp-flags ALL NONE -j MY_DROP iptables -A INPUT -p tcp --tcp-flags SYN,FIN SYN,FIN -j MY_DROP iptables -A FORWARD -p tcp --tcp-flags SYN,FIN SYN,FIN -j MY_DROP iptables -A INPUT -p tcp --tcp-flags SYN,RST SYN,RST -j MY_DROP iptables -A FORWARD -p tcp --tcp-flags SYN,RST SYN,RST -j MY_DROP iptables -A INPUT -p tcp --tcp-flags FIN,RST FIN,RST -j MY_DROP iptables -A FORWARD -p tcp --tcp-flags FIN,RST FIN,RST -j MY_DROP iptables -A INPUT -p tcp --tcp-flags ACK,FIN FIN -j MY_DROP iptables -A FORWARD -p tcp --tcp-flags ACK,FIN FIN -j MY_DROP iptables -A INPUT -p tcp --tcp-flags ACK,PSH PSH -j MY_DROP iptables -A FORWARD -p tcp --tcp-flags ACK,PSH PSH -j MY_DROP iptables -A INPUT -p tcp --tcp-flags ACK,URG URG -j MY_DROP iptables -A FORWARD -p tcp --tcp-flags ACK,URG URG -j MY_DROP iptables -A INPUT -i lo -j ACCEPT iptables -A OUTPUT -o lo -j ACCEPT iptables -A FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu iptables -A OUTPUT -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT iptables -A FORWARD -i ! eth0 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT # HTTP iptables -A INPUT -i eth0 -m state --state NEW -p tcp --dport 80 -j ACCEPT # HTTPS iptables -A INPUT -i eth0 -m state --state NEW -p tcp --dport 443 -j ACCEPT # SMTP iptables -A INPUT -i eth0 -m state --state NEW -p tcp --dport 25 -j ACCEPT # POP3 iptables -A INPUT -i eth0 -m state --state NEW -p tcp --dport 110 -j ACCEPT # SSH iptables -A INPUT -i eth0 -m state --state NEW -p tcp --dport 22 -j ACCEPT iptables -A INPUT -m state --state NEW -i eth1 -j ACCEPT iptables -A INPUT -j MY_REJECT iptables -A OUTPUT -j MY_REJECT iptables -A FORWARD -j MY_REJECT echo 1 > /proc/sys/net/ipv4/ip_forward 2> /dev/null iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE echo 1 > /proc/sys/net/ipv4/tcp_syncookies 2> /dev/null for i in /proc/sys/net/ipv4/conf/*; do echo 0 > $i/accept_source_route 2> /dev/null; done for i in /proc/sys/net/ipv4/conf/*; do echo 0 > $i/accept_redirects 2> /dev/null; done for i in /proc/sys/net/ipv4/conf/*; do echo 2 > $i/rp_filter 2> /dev/null; done for i in /proc/sys/net/ipv4/conf/*; do echo 1 > $i/log_martians 2> /dev/null; done for i in /proc/sys/net/ipv4/conf/*; do echo 0 > $i/bootp_relay 2> /dev/null; done for i in /proc/sys/net/ipv4/conf/*; do echo 0 > $i/proxy_arp 2> /dev/null; done echo 1 > /proc/sys/net/ipv4/icmp_ignore_bogus_error_responses 2> /dev/null echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts 2> /dev/null echo 5 > /proc/sys/net/ipv4/icmp_ratelimit echo 262144 > /proc/sys/net/ipv4/ipfrag_high_thresh echo 196608 > /proc/sys/net/ipv4/ipfrag_low_thresh echo 30 > /proc/sys/net/ipv4/ipfrag_time echo 30 > /proc/sys/net/ipv4/tcp_fin_timeout echo 3 > /proc/sys/net/ipv4/tcp_retries1 echo 15 > /proc/sys/net/ipv4/tcp_retries2 ;; stop) echo "Stoppe IP-Paketfilter" iptables -F iptables -t nat -F iptables -t mangle -F iptables -X iptables -t nat -X iptables -t mangle -X echo "Deaktiviere IP-Routing" echo 0 > /proc/sys/net/ipv4/ip_forward iptables -P INPUT ACCEPT iptables -P OUTPUT ACCEPT iptables -P FORWARD ACCEPT ;; status) echo "Tabelle filter" iptables -L -vn echo "Tabelle nat" iptables -t nat -L -vn echo "Tabelle mangle" iptables -t mangle -L -vn ;; *) echo "Fehlerhafter Aufruf" echo "Syntax: $0 {start|stop|status}" exit 1 ;; esac ############################ Выполнить прикаэы: chmod 755 /etc/init.d/firewall ln -s /etc/init.d/firewall /etc/init.d/rc3.d/K01firewall ln -s /etc/init.d/firewall /etc/init.d/rc3.d/S20firewall ln -s /etc/init.d/firewall /etc/init.d/rc5.d/K01firewall ln -s /etc/init.d/firewall /etc/init.d/rc5.d/S20firewall ln -s /etc/init.d/firewall /sbin/rcfirewall Теперь стартуем firewall: rcfirewall start Контролируем правила: iptables -L rcfirewall stop rcfirewall status PS: Не пойму только зачем tcp 53 порт открывать ? А 22 порт? Он или открыт или закрыт. (Если не поделишься с другом паролем для root'a - можешь спать спокойно) Последний раз редактировалось Gennadi; 31.07.2003 в 21:38. |