Приветствую, Господа!
Позвольте молодому начинающему линуксоиду немного сколлектировать знаний у продвинутых.
Ситуевина:
Что хотим получить:
1. NAT из двух машин на Винде и сервак на Linux FC. На серваке vsftpd, httpd.
2. NAT’овские машины проходят FORWARD только по 80,21,22,1723,53 портам. Остальное – низя. Знаю, мало, но пока пусть обламываются – буду открывать по необходимости.
3. На серваке порты в INPUT 21,22,80,1723. Все остальное DROP.
4. Ну для пиналок icmp 8, 11 проход разрешить и серваку и NAT’у.
5. На виндузятниках VPN нужен иногда рабочий для внехи.
Что имеем:
1. Один (ну зато реальный!) IP смотрящий в славный город Томск.
2. 2 машины на WindowsXP
3. Сервер Linux FC8
4. Энтузиазм
Что хочу спросить:
1. Проблема с Unloading iptables modules [FAILED]
2. Куда лучше заливать скрипт с правилами iptables? Логично ли юзать /etc/init.d/iptables и раздел старта демона iptables start? В какое конкретно место лучше заткнуть описание правил?
2. Хочу, чтобы знающие проверили мои iptables rules и подсказали, если что не так.
Ход Мыслей:
Написал скрипт для iptables. Кинул в /root/firewall. Сначала сделал без модулей. Просто запустил раз, потом service iptables save и все. Поработали 2 дня. Естесно не попер пассивный ftp с nat`овских машин.
Ладно. Сделал поддержку модулей. Пришлось в стартовый скрипт iptables залить – чтобы модули работали. Ладно, модули теперь загружаются.
Но когда идем на перезагрузку или рестартуем iptables, то получаем
Unloading iptables modules [FAILED]
С гугла понял, что теоретически все просто объясняется – ну типа некоторые модули в работе сейчас, а тут блин вы их пытаетесь остановить – нехорошо – вот и пишет, что failed – не может выгрузить. Вроде не страшно.
Можно даже посмотреть какие модули отказались подчиниться 6 левлу. Ну блин мне-то от этого не легче - красный FAILED.
Залазил в /etc/init.d/iptables там смотрел IPTABLES_MODULES_UNLOAD – было YES, поставил NO и все также. Только теперь рестарт iptables быстрее, а факинговый FAILED остается.
Добрые и Знающие Господа РУТЫ! Помогите!
Прикладываю скрипт iptables – знаю, простой, но мне сейчас именно так и нужно:
#!/bin/bash
INET_IP=”111.111.111.111”
#modules
/sbin/depmod -a
/sbin/modprobe ip_conntrack
/sbin/modprobe iptable_filter
/sbin/modprobe iptable_nat
/sbin/modprobe ipt_state
/sbin/modprobe ip_conntrack_ftp
/sbin/modprobe ip_nat_ftp
#deleting rules
iptables -F
iptables -X
iptables -t nat -F
#default policies
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT
#loopback
iptables -A INPUT -i lo -j ACCEPT
#input firewall rules
iptables -A INPUT -p TCP --tcp-flags SYN,ACK SYN,ACK -m state --state NEW -j DROP
iptables -A INPUT -p ALL -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -p ICMP -s 0/0 --icmp-type 8 -j ACCEPT
iptables -A INPUT -p ICMP -s 0/0 --icmp-type 11 -j ACCEPT
iptables -A INPUT -p TCP -s 0/0 -m multiport --dport 21,22,80,1723 -j ACCEPT
iptables -A INPUT -p UDP -i eth1 --dport 53 -j ACCEPT
#forwarding
iptables -A FORWARD -p ALL -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -p ICMP --icmp-type 8 -j ACCEPT
iptables -A FORWARD -p ICMP --icmp-type 11 -j ACCEPT
iptables -A FORWARD -p TCP -m multiport --dport 21,22,80,1723 -j ACCEPT
iptables -A FORWARD -p UDP --dport 53 -j ACCEPT
iptables -A FORWARD -p GRE -j ACCEPT
#NAT
iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -j SNAT --to-source $INET_IP
Посмотрите, пожалуйста, что можно подпраить и как бороться с выгрузкой модулей.