GLT Posted November 29, 2005 Share Posted November 29, 2005 Задачата е да си сложа на домашния 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 More sharing options...
Godfather Posted November 29, 2005 Share Posted November 29, 2005 В този скрипт има една много важна липсваща част - разрешаването на входящ трафик, който е иницииран от самата машина. Трябва да сложиш следния ред някъде в началото (след $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 More sharing options...
GLT Posted November 30, 2005 Author Share Posted November 30, 2005 В този скрипт има една много важна липсваща част - разрешаването на входящ трафик, който е иницииран от самата машина. Трябва да сложиш следния ред някъде в началото (след $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 More sharing options...
GLT Posted November 30, 2005 Author Share Posted November 30, 2005 Едно допълнение към въпроса ми- Не трябва ли да има някакви OUTPUT директиви, тъй като в момента с този скрипт PC не отговаря на ftp- сега дава грешка 425? Link to comment Share on other sites More sharing options...
Godfather Posted November 30, 2005 Share Posted November 30, 2005 Едно допълнение към въпроса ми- Не трябва ли да има някакви 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 More sharing options...
GLT Posted December 3, 2005 Author Share Posted December 3, 2005 Сложих въпросния 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 More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.