Jump to content
BulForum.com

iptables


GLT

Recommended Posts

Задачата е да си сложа на домашния PC (това значи, че PC e само 1) защитна стена (възможно най- опростена), която да позволява САМО следните портове:

 

48420 # За Skype

10000 #За Webmin

21000 # FTP server

21 # FTP server

22 #За ssh

22000 #За ssh

80 #За http server

80000 #За http server

 

Скрипта, който ползвам е поместен по- долу.

Проблема е, че не отваря желаните от мен портове. Иначе стената работи.

Къде може да ми е грешката?

 

 

##################

#!/bin/bash

IPTABLES='/sbin/iptables'

# Set interface values

EXTIF='eth0'

 

# enable ip forwarding in the kernel

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

# flush rules and delete chains

$IPTABLES -F

$IPTABLES -X

 

#echo -e " - Allowing access to the Skype"

$IPTABLES -A INPUT --protocol tcp --dport 48420 -j ACCEPT

 

#echo -e " - Allowing access to the Webmin"

$IPTABLES -A INPUT --protocol tcp --dport 10000 -j ACCEPT

 

#echo -e " - Allowing access to the FTP server"

$IPTABLES -A INPUT --protocol tcp --dport 21000 -j ACCEPT

 

#echo -e " - Allowing access to the FTP server"

$IPTABLES -A INPUT --protocol tcp --dport 21 -j ACCEPT

 

#echo -e " - Allowing access to the SSH server"

$IPTABLES -A INPUT --protocol tcp --dport 22 -j ACCEPT

 

#echo -e " - Allowing access to the SSH server"

$IPTABLES -A INPUT --protocol tcp --dport 22000 -j ACCEPT

 

#echo -e " - Allowing access to the HTTP server"

$IPTABLES -A INPUT --protocol tcp --dport 80 -j ACCEPT

 

# block out all other Internet access on $EXTIF

$IPTABLES -A INPUT -i $EXTIF -m state --state NEW,INVALID -j DROP

$IPTABLES -A FORWARD -i $EXTIF -m state --state NEW,INVALID -j DROP

#####################EOF

Link to comment
Share on other sites

В този скрипт има една много важна липсваща част - разрешаването на входящ трафик, който е иницииран от самата машина. Трябва да сложиш следния ред някъде в началото (след $IPTABLES -X):

$IPTABLES -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

 

Освен това ако машината ти е единствена, не ти трябва разрешаване на IP FORWARDING, т.е. слагаш коментар на този ред:

 

# /bin/echo 1 > /proc/sys/net/ipv4/ip_forward

Link to comment
Share on other sites

В този скрипт има една много важна липсваща част - разрешаването на входящ трафик, който е иницииран от самата машина. Трябва да сложиш следния ред някъде в началото (след $IPTABLES -X):

$IPTABLES -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

 

Освен това ако машината ти е единствена, не ти трябва разрешаване на IP FORWARDING, т.е. слагаш коментар на този ред:

 

# /bin/echo 1 > /proc/sys/net/ipv4/ip_forward

Благодаря за отговора. Да си призная тайно се надявах точно ти или ov3rman ми отговорите. Уважавам мненията ви и гледам да пооткрадна нещо от знанията ви, макар да работя в съвсем друга сфера и Linux да ми е хоби.

Сега ще пробвам нещата с добавеното редче.

Благодаря.

Link to comment
Share on other sites

Едно допълнение към въпроса ми- Не трябва ли да има някакви OUTPUT директиви, тъй като в момента с този скрипт PC не отговаря на ftp- сега дава грешка 425?

Link to comment
Share on other sites

Едно допълнение към въпроса ми- Не трябва ли да има някакви OUTPUT директиви, тъй като в момента с този скрипт PC не отговаря на ftp- сега дава грешка 425?

 

OUTPUT директиви ти трябват само, когато съответната default политика е DROP. Понеже FTP протокола си има доста специфични особености, много е важно в кой случай (active, passive) и в кой край (client, server) е проблема. Все пак добре е да се сложи модула ip_conntrack_ftp в началото на въпросния скрипт:

 

modprobe ip_conntrack_ftp

Link to comment
Share on other sites

Сложих въпросния ip_conntrack_ftp.

Зареждам го, но с lsmod виждам, че не се използва.

Проблема си го реших, ама не както исках аз.

Пуснах сървъра в pssive mode. Е да ама се наложи да отворя и port range за него. Което не е много далавера.

"Поизгладих" малко и скрипта. Сега нащата са следните:

 

iptables script:

 

#begin>>>>>>>>>

#!/bin/bash

IPTABLES='/sbin/iptables'

# Set interface values

EXTIF='eth0'

LBIF=' lo'

 

modprobe ip_conntrack_ftp

 

# flush rules and delete chains

$IPTABLES -F

$IPTABLES -X

 

$IPTABLES -A INPUT -i $LBIF -j ACCEPT

$IPTABLES -A OUTPUT -o $LBIF -j ACCEPT

$IPTABLES -A INPUT -i $EXTIF -j ACCEPT

$IPTABLES -A OUTPUT -o $EXTIF -j ACCEPT

 

$IPTABLES -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

$IPTABLES -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

 

 

# Skype"

$IPTABLES -A INPUT --protocol tcp --dport 48420 -j ACCEPT

 

# Webmin"

$IPTABLES -A INPUT --protocol tcp --dport 10000 -j ACCEPT

 

# FTP

$IPTABLES -A INPUT -p tcp --dport 20000:20999 -j ACCEPT

$IPTABLES -A INPUT -p tcp --dport 21000 -j ACCEPT

 

# SSH

$IPTABLES -A INPUT --protocol tcp --dport 22000 -j ACCEPT

 

# HTTP

$IPTABLES -A INPUT --protocol tcp --dport 80000 -j ACCEPT

 

 

# block out all other Internet access on $EXTIF

$IPTABLES -A INPUT -i $EXTIF -m state --state NEW,INVALID -j DROP

$IPTABLES -A FORWARD -i $EXTIF -m state --state NEW,INVALID -j DROP

#EOF<<<<<<<<<<<<

 

 

настройка на ftp servera (vsftp):

 

#begin>>>>>>>>>>>>>>>>>>>>>>>>>

ftpd_banner=---==[home ftp server]==---

listen_port=21000

listen=YES

anonymous_enable=YES

local_enable=NO

write_enable=NO

anon_upload_enable=NO

anon_mkdir_write_enable=NO

dirmessage_enable=YES

chown_uploads=NO

xferlog_enable=YES

idle_session_timeout=600

data_connection_timeout=120

ascii_upload_enable=NO

ascii_download_enable=NO

chroot_list_enable=YES

background=YES

ls_recurse_enable=NO

pasv_enable=YES

pasv_min_port=20000

pasv_max_port=20999

#EOF<<<<<<<<<<<<<<

 

 

Всичко работи, но ми се ща да се побазикам още малко и да махна passive mode за да не ми са отворени портовете от 20000 до 20999.

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...