LINUX.ORG.RU
ФорумAdmin

iptables и закрытие портов


0

0

Как ни старался все равно порт который я пытаюсь прикрыть остается open

INET_IP="xxxxxxxxxxx" INET_IFACE="eth0" INET_BROADCAST="xxxxxxxxxxx"

LAN_IP="192.168.144.44" LAN_IP_RANGE="192.168.144.0/24"

LO_IFACE="lo" LO_IP="127.0.0.1"

# /sbin/depmod -a

/sbin/modprobe ip_tables /sbin/modprobe ip_conntrack /sbin/modprobe iptable_filter /sbin/modprobe iptable_mangle /sbin/modprobe iptable_nat /sbin/modprobe ipt_LOG /sbin/modprobe ipt_limit /sbin/modprobe ipt_state

echo "1" > /proc/sys/net/ipv4/ip_forward

#echo "1" > /proc/sys/net/ipv4/conf/all/rp_filter #echo "1" > /proc/sys/net/ipv4/conf/all/proxy_arp #echo "1" > /proc/sys/net/ipv4/ip_dynaddr

$IPTABLES -P INPUT DROP $IPTABLES -P OUTPUT DROP $IPTABLES -P FORWARD DROP

$IPTABLES -N bad_tcp_packets

$IPTABLES -N allowed $IPTABLES -N tcp_packets $IPTABLES -N udp_packets $IPTABLES -N icmp_packets

# bad_tcp_packets chain #

$IPTABLES -A bad_tcp_packets -p tcp --tcp-flags SYN,ACK SYN,ACK \ -m state --state NEW -j REJECT --reject-with tcp-reset $IPTABLES -A bad_tcp_packets -p tcp ! --syn -m state --state NEW -j LOG \ --log-prefix "New not syn:" $IPTABLES -A bad_tcp_packets -p tcp ! --syn -m state --state NEW -j DROP

# # allowed chain #

$IPTABLES -A allowed -p TCP --syn -j ACCEPT $IPTABLES -A allowed -p TCP -m state --state ESTABLISHED,RELATED -j ACCEPT $IPTABLES -A allowed -p TCP -j DROP

# # TCP rules #

#$IPTABLES -A tcp_packets -p TCP -s 0/0 --dport 21 -j allowed $IPTABLES -A tcp_packets -p TCP -s 0/0 --dport 22 -j allowed #$IPTABLES -A tcp_packets -p TCP -s 0/0 --dport 137:139 -j allowed #$IPTABLES -A tcp_packets -p TCP -s 0/0 --dport 445 -j allowed # up to 5 Bit-torrent connections $IPTABLES -A tcp_packets -p TCP -s 0/0 --dport 6881:6886 -j allowed #$IPTABLES -A tcp_packets -p TCP -s 0/0 --dport 554 -j bad_tcp_packets

# # UDP ports #

$IPTABLES -A udp_packets -p UDP -s 0/0 --destination-port 53 -j ACCEPT $IPTABLES -A udp_packets -p UDP -s 0/0 --destination-port 123 -j ACCEPT $IPTABLES -A udp_packets -p UDP -s 0/0 --destination-port 2074 -j ACCEPT $IPTABLES -A udp_packets -p UDP -s 0/0 --destination-port 4000 -j ACCEPT

$IPTABLES -A icmp_packets -p ICMP -s 0/0 --icmp-type 8 -j ACCEPT $IPTABLES -A icmp_packets -p ICMP -s 0/0 --icmp-type 11 -j ACCEPT

$IPTABLES -A INPUT -p tcp -j bad_tcp_packets

# # Rules for special networks not part of the Internet #

#$IPTABLES -A INPUT -p ALL -s $LAN_IP_RANGE -j ACCEPT #$IPTABLES -A INPUT -p ALL -s $LAN_IP_RANGE -j ACCEPT $IPTABLES -A INPUT -p ALL -i $LO_IFACE -s $LO_IP -j ACCEPT $IPTABLES -A INPUT -p ALL -i $LO_IFACE -s $LAN_IP -j ACCEPT $IPTABLES -A INPUT -p ALL -i $LO_IFACE -s $INET_IP -j ACCEPT $IPTABLES -A INPUT -p ALL -d $LAN_IP_RANGE -j ACCEPT

$IPTABLES -A INPUT -p ALL -d $INET_IP -m state --state ESTABLISHED,RELATED \ -j ACCEPT $IPTABLES -A INPUT -p TCP -i $INET_IFACE -j tcp_packets $IPTABLES -A INPUT -p UDP -i $INET_IFACE -j udp_packets $IPTABLES -A INPUT -p ICMP -i $INET_IFACE -j icmp_packets

$IPTABLES -A FORWARD -p tcp -j bad_tcp_packets

$IPTABLES -A FORWARD -i $LAN_IP -j ACCEPT $IPTABLES -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT

$IPTABLES -A FORWARD -m limit --limit 3/minute --limit-burst 3 -j LOG \ --log-level DEBUG --log-prefix "IPT FORWARD packet died: "

# # Bad TCP packets we don't want. #

$IPTABLES -A OUTPUT -p tcp -j bad_tcp_packets

# # Special OUTPUT rules to decide which IP's to allow. #

$IPTABLES -A OUTPUT -p ALL -s $LO_IP -j ACCEPT #$IPTABLES -A OUTPUT -p ALL -s $LAN_IP -j ACCEPT $IPTABLES -A OUTPUT -p ALL -s $INET_IP -j ACCEPT #$IPTABLES -A OUTPUT -p ALL -s $LAN_IP_RANGE -j ACCEPT

То есть вот например там закомментировал строчку которая отвечает за ftp-21 порт.Пробовал и $IPTABLES -A tcp_packets -p TCP -s 0/0 --dport 21 -j DROP,но с другого компа nmap пишет что он open.

anonymous

Как ни старался все равно порт который я пытаюсь прикрыть остается open

INET_IP="xxxxxxxxxxx"
INET_IFACE="eth0"
INET_BROADCAST="xxxxxxxxxxx"

LAN_IP="192.168.144.44"
LAN_IP_RANGE="192.168.144.0/24"


LO_IFACE="lo"
LO_IP="127.0.0.1"

#
/sbin/depmod -a


/sbin/modprobe ip_tables
/sbin/modprobe ip_conntrack
/sbin/modprobe iptable_filter
/sbin/modprobe iptable_mangle
/sbin/modprobe iptable_nat
/sbin/modprobe ipt_LOG
/sbin/modprobe ipt_limit
/sbin/modprobe ipt_state

echo "1" > /proc/sys/net/ipv4/ip_forward


#echo "1" > /proc/sys/net/ipv4/conf/all/rp_filter
#echo "1" > /proc/sys/net/ipv4/conf/all/proxy_arp
#echo "1" > /proc/sys/net/ipv4/ip_dynaddr


$IPTABLES -P INPUT DROP
$IPTABLES -P OUTPUT DROP
$IPTABLES -P FORWARD DROP


$IPTABLES -N bad_tcp_packets


$IPTABLES -N allowed
$IPTABLES -N tcp_packets
$IPTABLES -N udp_packets
$IPTABLES -N icmp_packets


# bad_tcp_packets chain
#

$IPTABLES -A bad_tcp_packets -p tcp --tcp-flags SYN,ACK SYN,ACK \
-m state --state NEW -j REJECT --reject-with tcp-reset
$IPTABLES -A bad_tcp_packets -p tcp ! --syn -m state --state NEW -j LOG \
--log-prefix "New not syn:"
$IPTABLES -A bad_tcp_packets -p tcp ! --syn -m state --state NEW -j DROP


#
# allowed chain
#

$IPTABLES -A allowed -p TCP --syn -j ACCEPT
$IPTABLES -A allowed -p TCP -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPTABLES -A allowed -p TCP -j DROP

#
# TCP rules
#

#$IPTABLES -A tcp_packets -p TCP -s 0/0 --dport 21 -j allowed
$IPTABLES -A tcp_packets -p TCP -s 0/0 --dport 22 -j allowed
#$IPTABLES -A tcp_packets -p TCP -s 0/0 --dport 137:139 -j allowed
#$IPTABLES -A tcp_packets -p TCP -s 0/0 --dport 445 -j allowed
# up to 5 Bit-torrent connections
$IPTABLES -A tcp_packets -p TCP -s 0/0 --dport 6881:6886 -j allowed
#$IPTABLES -A tcp_packets -p TCP -s 0/0 --dport 554 -j bad_tcp_packets

#
# UDP ports
#

$IPTABLES -A udp_packets -p UDP -s 0/0 --destination-port 53 -j ACCEPT
$IPTABLES -A udp_packets -p UDP -s 0/0 --destination-port 123 -j ACCEPT
$IPTABLES -A udp_packets -p UDP -s 0/0 --destination-port 2074 -j ACCEPT
$IPTABLES -A udp_packets -p UDP -s 0/0 --destination-port 4000 -j ACCEPT

$IPTABLES -A icmp_packets -p ICMP -s 0/0 --icmp-type 8 -j ACCEPT
$IPTABLES -A icmp_packets -p ICMP -s 0/0 --icmp-type 11 -j ACCEPT



$IPTABLES -A INPUT -p tcp -j bad_tcp_packets

#
# Rules for special networks not part of the Internet
#

#$IPTABLES -A INPUT -p ALL -s $LAN_IP_RANGE -j ACCEPT
#$IPTABLES -A INPUT -p ALL -s $LAN_IP_RANGE -j ACCEPT
$IPTABLES -A INPUT -p ALL -i $LO_IFACE -s $LO_IP -j ACCEPT
$IPTABLES -A INPUT -p ALL -i $LO_IFACE -s $LAN_IP -j ACCEPT
$IPTABLES -A INPUT -p ALL -i $LO_IFACE -s $INET_IP -j ACCEPT
$IPTABLES -A INPUT -p ALL -d $LAN_IP_RANGE -j ACCEPT


$IPTABLES -A INPUT -p ALL -d $INET_IP -m state --state ESTABLISHED,RELATED \
-j ACCEPT
$IPTABLES -A INPUT -p TCP -i $INET_IFACE -j tcp_packets
$IPTABLES -A INPUT -p UDP -i $INET_IFACE -j udp_packets
$IPTABLES -A INPUT -p ICMP -i $INET_IFACE -j icmp_packets





$IPTABLES -A FORWARD -p tcp -j bad_tcp_packets


$IPTABLES -A FORWARD -i $LAN_IP -j ACCEPT
$IPTABLES -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT


$IPTABLES -A FORWARD -m limit --limit 3/minute --limit-burst 3 -j LOG \
--log-level DEBUG --log-prefix "IPT FORWARD packet died: "


#
# Bad TCP packets we don't want.
#

$IPTABLES -A OUTPUT -p tcp -j bad_tcp_packets

#
# Special OUTPUT rules to decide which IP's to allow.
#

$IPTABLES -A OUTPUT -p ALL -s $LO_IP -j ACCEPT
#$IPTABLES -A OUTPUT -p ALL -s $LAN_IP -j ACCEPT
$IPTABLES -A OUTPUT -p ALL -s $INET_IP -j ACCEPT
#$IPTABLES -A OUTPUT -p ALL -s $LAN_IP_RANGE -j ACCEPT

То есть вот например там закомментировал строчку которая отвечает за ftp-21 порт.Пробовал и $IPTABLES -A tcp_packets -p TCP -s 0/0 --dport 21 -j DROP,но с другого компа nmap пишет что он open.

anonymous
()
Ответ на: комментарий от anonymous

я вот не пойму а накой хер кидать весь скрипт ? может еще исходники иптаблеса сюда запостили бы! и зачем это надо ?

$IPTABLES -N allowed

$IPTABLES -N tcp_packets

$IPTABLES -N udp_packets

$IPTABLES -N icmp_packets

? не проще просто iptables -A INPUT -p tcp -m tcp --dport 21 -j DROP ?

PUZO
()
Ответ на: комментарий от PUZO

наверное не проще, он хочет все закрыть - нужное выпустить, если не заметили

anonymous
()
Ответ на: комментарий от anonymous

>Пробовал и $IPTABLES -A tcp_packets -p TCP -s 0/0 --dport 21 -j DROP,но с другого компа nmap пишет что он open.

Да? А telnet $IP 21 что говорит?
И вообще $IPTABLES -A добавляет в конец цепочки, а в начале может правило имеется разрешающее

И nmap по-разному сканировать умеет, ему и след. правила хватит
>$IPTABLES -A allowed -p TCP --syn -j ACCEPT

sdio ★★★★★
()
Ответ на: комментарий от sdio

Хм.. вот заметил что по поводу телнета: когда без всех этих правил-то выдает приглашение моего фтп, а если без то
Escape character is '^]'.
Тоесть может на прове моем както хитро сделан проброс портов?

anonymous
()
Ответ на: комментарий от anonymous

когда без всех этих правил-то выдает приглашение моего фтп, а если с ними то Escape character is '^]'. Тоесть может на прове моем както хитро сделан проброс портов?Такое возможно?

anonymous
()
Ответ на: комментарий от anonymous

просто у тебя закрыто все что только можно, и когда ты добавляешь правило то соответственно у тебя он открывается. Вообще, имхо конечно, я стал бы писать свой скрипт (конфиг) нежели брать его с сайтов. иптаблес лучше все же понять чем тупо использовать чье-то. имхо конечно

PUZO
()
Ответ на: комментарий от PUZO

Да я не это в виду имел..... почему при всем закрытом: Starting nmap 3.48 ( http://www.insecure.org/nmap/ ) at 2007-02-11 11:42 EET Interesting ports on 195.114.133.74: (The 1639 ports scanned but not shown below are in state: filtered) PORT STATE SERVICE 20/tcp open ftp-data 21/tcp open ftp 22/tcp open ssh 25/tcp open smtp 80/tcp open http 81/tcp open hosts2-ns 82/tcp open xfer 83/tcp open mit-ml-dev 84/tcp open ctf 110/tcp open pop-3 554/tcp open rtsp 1723/tcp open pptp 1755/tcp open wms 2000/tcp open callbook 6666/tcp open irc-serv 6667/tcp open irc 6668/tcp open irc 7070/tcp open realserver

Я про это хотел бы узнать

anonymous
()
Ответ на: комментарий от anonymous

А почему, собственно, они у тебя должны быть закрыты? разберись со своей цепочкой alloved и с ее правилами, PUZO тебе все очень правильно насчет правил из интернета сказал :)

anonymous
()
Ответ на: комментарий от anonymous

имхо самый правильный вариант такой:

весь входящий трафик перенаправляешь в цепочку myallow и ставишь полиси по умолчанию на цепочку INPUT - DROP. А потом в цепочку myallow добавляешь определенные правила разрешения, в конце цепочки -j RETURN. Таким образом получается запрещено все, что не разрешено вами!

anonymous
()
Ответ на: комментарий от anonymous

Наверное глупый вопрос.. но в этом случае что лучше использовать DROP или REJECT?

anonymous
()
Ответ на: комментарий от anonymous

Да кстати, разве оно в вышеприведенном скрипте не так делает?

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.