Vasilich 0 Опубликовано: 2006-02-12 11:02:26 Share Опубликовано: 2006-02-12 11:02:26 Граждане поделитесь рабочими скриптами fw, OnConnect и OnDisconnect для iptables. Не подходит http://stg.dp.ua/doc/conf_example_linux.html Ссылка на сообщение Поделиться на других сайтах
CronAcronis 0 Опубліковано: 2006-02-18 13:28:32 Share Опубліковано: 2006-02-18 13:28:32 Чем не подходит? Ссылка на сообщение Поделиться на других сайтах
Keen 10 Опубліковано: 2006-02-18 18:37:47 Share Опубліковано: 2006-02-18 18:37:47 man iptables На каждой системе свои скрипты. Могу поспорить мои скрипты к твоим задачам никак не подойдут Ссылка на сообщение Поделиться на других сайтах
Sergek 123 Опубліковано: 2006-02-18 20:09:21 Share Опубліковано: 2006-02-18 20:09:21 мне очень помогло это http://gazette.linux.ru.net/rus/articles/i...s-tutorial.html Ссылка на сообщение Поделиться на других сайтах
Vasilich 0 Опубліковано: 2006-03-07 09:40:10 Автор Share Опубліковано: 2006-03-07 09:40:10 Да не так вырозился! Мои правила: #!/bin/bash admin=192.168.100.1 server0=192.168.100.2 server1=XXX.XXX.XXX.XXX iface_cli=eth0 iface_world=eth1 conf_port=5555 user_port1=5555 user_port2=5554 echo "1" > /proc/sys/net/ipv4/ip_forward iptables -t filter -F iptables -t filter -X iptables -t nat -F iptables -t nat -X iptables -t filter -P INPUT DROP iptables -t filter -P FORWARD DROP iptables -t filter -P OUTPUT DROP #ICMP iptables -t filter -A INPUT -p icmp -j ACCEPT iptables -t filter -A FORWARD -p icmp -j ACCEPT iptables -t filter -A OUTPUT -p icmp -j ACCEPT iptables -t filter -A INPUT -d 127.0.0.1 -j ACCEPT iptables -t filter -A OUTPUT -s 127.0.0.1 -j ACCEPT iptables -t filter -A INPUT -i $iface_world -j ACCEPT iptables -t filter -A OUTPUT -o $iface_world -j ACCEPT #DNS iptables -t filter -A INPUT -p tcp --sport 53 -j ACCEPT iptables -t filter -A FORWARD -p tcp --sport 53 -j ACCEPT iptables -t filter -A FORWARD -p tcp --dport 53 -j ACCEPT iptables -t filter -A OUTPUT -p tcp --dport 53 -j ACCEPT iptables -t filter -A INPUT -p udp --sport 53 -j ACCEPT iptables -t filter -A FORWARD -p udp --sport 53 -j ACCEPT iptables -t filter -A FORWARD -p udp --dport 53 -j ACCEPT iptables -t filter -A OUTPUT -p udp --dport 53 -j ACCEPT #SSH iptables -t filter -A INPUT -p tcp -s $admin -d $server0 --dport 22 -j ACCEPT iptables -t filter -A OUTPUT -p tcp -d $admin -s $server0 --sport 22 -j ACCEPT #WWW iptables -t filter -A INPUT -p tcp -s 192.168.100.0/24 -d $server0 --dport 80 -j ACCEPT iptables -t filter -A OUTPUT -p tcp -d 192.168.100.0/24 -s $server0 --sport 80 -j ACCEPT #Webmin iptables -t filter -A INPUT -p tcp -s 192.168.100.0/24 -d $server0 --dport 10000 -j ACCEPT iptables -t filter -A OUTPUT -p tcp -d 192.168.100.0/24 -s $server0 --sport 10000 -j ACCEPT #FTP iptables -t filter -A INPUT -p tcp -s 192.168.100.0/24 -d $server0 --dport 20:21 -j ACCEPT iptables -t filter -A OUTPUT -p tcp -d 192.168.100.0/24 -s $server0 --sport 20:21 -j ACCEPT #TCP InetAcces Stargazer iptables -t filter -A INPUT -p tcp -s 192.168.100.0/24 -d $server0 --dport $conf_port -j ACCEPT iptables -t filter -A OUTPUT -p tcp -d 192.168.100.0/24 -s $server0 --sport $conf_port -j ACCEPT #UDP InetAcces Stargazer iptables -t filter -A INPUT -p udp -s 192.168.100.0/24 --sport 5554:5555 -d $server0 --dport 5554:5555 -j ACCEPT iptables -t filter -A OUTPUT -p udp -d 192.168.100.0/24 --dport 5554:5555 -s $server0 -j ACCEPT #TCP Stargazer Congigurator iptables -t filter -A INPUT -p tcp -s 192.168.100.0/24 -d $server0 --dport $conf_port -j ACCEPT iptables -t filter -A OUTPUT -p tcp -d 192.168.100.0/24 -s $server0 --sport $conf_port -j ACCEPT iptables -t nat -A POSTROUTING -s 192.168.100.0/255.255.255.0 -j SNAT --to-source XXX.XXX.XXX.XXX ОнКоннект #!/bin/bash # Login LOGIN=$1 #user IP echo $2 IP=$2 #cash CASH=$3 #user ID ID=$4 iptables -A FORWARD -d $2 -j ACCEPT iptables -A FORWARD -s $2 -j ACCEPT iptables -A INPUT -i eth0 -d $2 -j ACCEPT iptables -A INPUT -i eth0 -s $2 -j ACCEPT iptables -A OUTPUT -o eth0 -d $2 -j ACCEPT iptables -A OUTPUT -o eht0 -s $2 -j ACCEPT echo "C `date +%Y.%m.%d-%H.%M.%S` $IP $CASH" >> /var/stargazer/users/$LOGIN/connect.log Ну и ДисКоннект естественно #!/bin/bash # Login LOGIN=$1 #user IP IP=$2 #cash CASH=$3 #user ID ID=$4 iptables -D FORWARD -d $2 -j ACCEPT iptables -D FORWARD -s $2 -j ACCEPT iptables -D INPUT -i eth0 -d $2 -j ACCEPT iptables -D INPUT -i eth0 -s $2 -j ACCEPT iptables -D OUTPUT -o eth0 -d $2 -j ACCEPT iptables -D OUTPUT -o eth0 -s $2 -j ACCEPT echo "D `date +%Y.%m.%d-%H.%M.%S` $IP $CASH" >> /var/stargazer/users/$LOGIN/connect.log Да все работает, все почти хорошо.... Но с точки зрения безопасности не все хорошо... В Iptables tutorial есть набор правил rc.firewall.txt который впринцепе устраивает по безопасности, но будет ли он работать вместо FW, может есть возможность заточить его под stg? я к сожалению в iptables чайник... #!/bin/sh # # 1. Configuration options. # # # 1.1 Internet Configuration. # INET_IP="194.236.50.155" INET_IFACE="eth0" INET_BROADCAST="194.236.50.255" # # 1.2 Local Area Network configuration. # # your LAN's IP range and localhost IP. /24 means to only use the first 24 # bits of the 32 bit IP address. the same as netmask 255.255.255.0 # LAN_IP="192.168.0.2" LAN_IP_RANGE="192.168.0.0/16" LAN_IFACE="eth1" # # 1.4 Localhost Configuration. # LO_IFACE="lo" LO_IP="127.0.0.1" # # 1.5 IPTables Configuration. # IPTABLES="/usr/sbin/iptables" # # 1.6 Other Configuration. # ########################################################################### # # 2. Module loading. # # # Needed to initially load modules # /sbin/depmod -a # # 2.1 Required modules # /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 # # 2.2 Non-Required modules # #/sbin/modprobe ipt_owner #/sbin/modprobe ipt_REJECT #/sbin/modprobe ipt_MASQUERADE #/sbin/modprobe ip_conntrack_ftp #/sbin/modprobe ip_conntrack_irc #/sbin/modprobe ip_nat_ftp #/sbin/modprobe ip_nat_irc ########################################################################### # # 3. /proc set up. # # # 3.1 Required proc configuration # echo "1" > /proc/sys/net/ipv4/ip_forward # # 3.2 Non-Required proc configuration # #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 ########################################################################### # # 4. rules set up. # ###### # 4.1 Filter table # # # 4.1.1 Set policies # $IPTABLES -P INPUT DROP $IPTABLES -P OUTPUT DROP $IPTABLES -P FORWARD DROP # # 4.1.2 Create userspecified chains # # # Create chain for bad tcp packets # $IPTABLES -N bad_tcp_packets # # Create separate chains for ICMP, TCP and UDP to traverse # $IPTABLES -N allowed $IPTABLES -N tcp_packets $IPTABLES -N udp_packets $IPTABLES -N icmp_packets # # 4.1.3 Create content in userspecified chains # # # 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 80 -j allowed #$IPTABLES -A tcp_packets -p TCP -s 0/0 --dport 113 -j allowed # # 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 # # In Microsoft Networks you will be swamped by broadcasts. These lines # will prevent them from showing up in the logs. # $IPTABLES -A udp_packets -p UDP -i $INET_IFACE -d $INET_BROADCAST \ --destination-port 135:139 -j DROP # # If we get DHCP requests from the Outside of our network, our logs will # be swamped as well. This rule will block them from getting logged. # $IPTABLES -A udp_packets -p UDP -i $INET_IFACE -d 255.255.255.255 \ --destination-port 67:68 -j DROP # # ICMP rules # $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 # # 4.1.4 INPUT chain # # Bad TCP packets we don't want. # $IPTABLES -A INPUT -p tcp -j bad_tcp_packets # # Rules for special networks not part of the Internet # $IPTABLES -A INPUT -p ALL -i $LAN_IFACE -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 # # Special rule for DHCP requests from LAN, which are not caught properly # otherwise. # $IPTABLES -A INPUT -p UDP -i $LAN_IFACE --dport 67 --sport 68 -j ACCEPT # # Rules for incoming packets from the internet. # $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 # # If you have a Microsoft Network on the outside of your firewall, you may # also get flooded by Multicasts. We drop them so we do not get flooded by # logs # #$IPTABLES -A INPUT -i $INET_IFACE -d 224.0.0.0/8 -j DROP # # Log weird packets that don't match the above. # $IPTABLES -A INPUT -m limit --limit 3/minute --limit-burst 3 -j LOG \ --log-level DEBUG --log-prefix "IPT INPUT packet died: " # # 4.1.5 FORWARD chain # # # Bad TCP packets we don't want # $IPTABLES -A FORWARD -p tcp -j bad_tcp_packets # # Accept the packets we actually want to forward $IPTABLES -A FORWARD -i $LAN_IFACE -j ACCEPT $IPTABLES -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT # # Log weird packets that don't match the above. # $IPTABLES -A FORWARD -m limit --limit 3/minute --limit-burst 3 -j LOG \ --log-level DEBUG --log-prefix "IPT FORWARD packet died: " # # 4.1.6 OUTPUT chain # # 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 # # Log weird packets that don't match the above. # $IPTABLES -A OUTPUT -m limit --limit 3/minute --limit-burst 3 -j LOG \ --log-level DEBUG --log-prefix "IPT OUTPUT packet died: " ###### # 4.2 nat table $IPTABLES -t nat -A POSTROUTING -o $INET_IFACE -j SNAT --to-source $INET_IP Как я понимаю такие правила будут пропускать юзверей в инет, и стг принимать участия в этом не будет.... Возможно я не прав.... Какие правила нужно разместить в ОнДисконнект и ОнДисконнект и что выкинуть из rc.firewall.txt? Ссылка на сообщение Поделиться на других сайтах
Maclaud 0 Опубліковано: 2006-03-07 12:28:08 Share Опубліковано: 2006-03-07 12:28:08 >В Iptables tutorial есть набор правил rc.firewall.txt который впринцепе устраивает по безопасности, но будет ли он работать вместо FW... А чем неустраивает FW? Сначала разберись чем они отличаются а потом решая чего тебе надо. В туториальном примере в отличии от fw добавлены проверки на нехорошие пакеты которые заруливают в логи а так все тоже самое. Общий принцип и там и там все закрыть и открыть только то что, нужно. Ссылка на сообщение Поделиться на других сайтах
Vasilich 0 Опубліковано: 2006-03-08 15:02:54 Автор Share Опубліковано: 2006-03-08 15:02:54 Хотелось бы что б юзвреня не имели без авторизации не DNS ни ICMP. FW тем и отличаеться что не имеет проверок на ликвидность пакетов, это естественно, таким образом фальсифицируя пакеты можно иметь доступ из интернета к узлам моей сети и впринцепе к маршрутизатору на котором и стоит stg. Нет желания платить за лишний трафик... Maclaud если считаешь что я не прав, дай пояснения чайнику... Ссылка на сообщение Поделиться на других сайтах
alexuk 0 Опубліковано: 2006-06-12 15:37:01 Share Опубліковано: 2006-06-12 15:37:01 У меня тоже проблема с начальніми настройками. Сначала сделал все по ка написано на сайте #!/bin/bash #Машина администратора admin=192.168.0.10 #Адреса роутера server0=192.168.0.1 server1=193.84.хх.хх # Интерфейс смотрящий на клиентов iface_cli=eth1 # Интерфейс смотрящий во внешний мир iface_world=eth0 #Порты, на которых работает конфигуратор и авторизатор conf_port=5555 user_port1=5555 # Разрешаем форвардинг пакетов между интерфейсами # Эта штука необязательна, просто в некоторых дистрибутивах # по умолчанию форвардинг разрешен, а в некоторых - запрещен # Если мы подстрахуемся, хуже не бкдет #echo "1" > /proc/sys/net/ipv4/ip_forward # Очищаем правила файрвола iptables -t filter -F iptables -t filter -X iptables -t nat -F iptables -t nat -X # Политика по умолчанию DROP: всем всё запрещено iptables -t filter -P INPUT DROP iptables -t filter -P FORWARD DROP iptables -t filter -P OUTPUT DROP # Разрешаем пингам ходить всюду и всегда iptables -t filter -A INPUT -p icmp -j ACCEPT iptables -t filter -A FORWARD -p icmp -j ACCEPT iptables -t filter -A OUTPUT -p icmp -j ACCEPT # Разрешаем всё на локальном интерфейсе iptables -t filter -A INPUT -d 127.0.0.1 -j ACCEPT iptables -t filter -A OUTPUT -s 127.0.0.1 -j ACCEPT # Разрешить серверу общаться со внешним миром iptables -t filter -A INPUT -i $iface_world -j ACCEPT iptables -t filter -A OUTPUT -o $iface_world -j ACCEPT # DNS. Замечу, ДНС работает и по TCP и по UDP iptables -t filter -A INPUT -p tcp --sport 53 -j ACCEPT iptables -t filter -A FORWARD -p tcp --sport 53 -j ACCEPT iptables -t filter -A FORWARD -p tcp --dport 53 -j ACCEPT iptables -t filter -A OUTPUT -p tcp --dport 53 -j ACCEPT iptables -t filter -A INPUT -p udp --sport 53 -j ACCEPT iptables -t filter -A FORWARD -p udp --sport 53 -j ACCEPT iptables -t filter -A FORWARD -p udp --dport 53 -j ACCEPT iptables -t filter -A OUTPUT -p udp --dport 53 -j ACCEPT # SSH iptables -t filter -A INPUT -p tcp -s $admin -d $server0 --dport 22 -j ACCEPT iptables -t filter -A OUTPUT -p tcp -d $admin -s $server0 --sport 22 -j ACCEPT # Stargazer configurator iptables -t filter -A INPUT -p tcp -s 192.168.0.0/24 -d $server0 --dport $conf_port -j ACCEPT iptables -t filter -A OUTPUT -p tcp -d 192.168.0.0/24 -s $server0 --sport $conf_port -j ACCEPT # UDP stargazer InetAccess iptables -t filter -A INPUT -p udp -s 192.168.0.0/24 -d $server0 --dport $user_port1 -j ACCEPT iptables -t filter -A OUTPUT -p udp -d 192.168.0.0/24 --dport $user_port1 -s $server0 -j ACCEPT #Маскарад iptables -t nat -A POSTROUTING -d 0.0.0.0/0 -j MASQUERADE Все работает но есть проблема с безопасносю # Разрешить серверу общаться со внешним миром iptables -t filter -A INPUT -i $iface_world -j ACCEPT iptables -t filter -A OUTPUT -o $iface_world -j ACCEPT Хотелось бы что бы общение с внешним миром было только на определенных портах Сделал так #!/bin/bash #Машина администратора admin=192.168.0.10 #Адреса роутера server0=192.168.0.1 server1=193.84.хх.хх # Интерфейс смотрящий на клиентов iface_cli=eth1 # Интерфейс смотрящий во внешний мир iface_world=eth0 #Порты, на которых работает конфигуратор и авторизатор conf_port=5555 user_port1=5555 # Разрешаем форвардинг пакетов между интерфейсами # Эта штука необязательна, просто в некоторых дистрибутивах # по умолчанию форвардинг разрешен, а в некоторых - запрещен # Если мы подстрахуемся, хуже не бкдет #echo "1" > /proc/sys/net/ipv4/ip_forward # Очищаем правила файрвола iptables -t filter -F iptables -t filter -X iptables -t nat -F iptables -t nat -X # Политика по умолчанию DROP: всем всё запрещено iptables -t filter -P INPUT DROP iptables -t filter -P FORWARD DROP iptables -t filter -P OUTPUT DROP # Разрешаем пингам ходить всюду и всегда iptables -t filter -A INPUT -p icmp -j ACCEPT iptables -t filter -A FORWARD -p icmp -j ACCEPT iptables -t filter -A OUTPUT -p icmp -j ACCEPT # Разрешаем всё на локальном интерфейсе iptables -t filter -A INPUT -d 127.0.0.1 -j ACCEPT iptables -t filter -A OUTPUT -s 127.0.0.1 -j ACCEPT # Разрешить серверу общаться со внешним миром ## 80 порт iptables -A OUTPUT -o $iface_world -p TCP --sport 80 -j ACCEPT iptables -A INPUT -i $iface_world -p TCP --dport 80 -j ACCEPT ## 21 iptables -A OUTPUT -o $iface_world -p TCP --sport 21 -j ACCEPT iptables -A INPUT -i $iface_world -p TCP --dport 21 -j ACCEPT ## 5190 iptables -A OUTPUT -o $iface_world -p TCP --sport 5190 -j ACCEPT iptables -A INPUT -i $iface_world -p TCP --dport 5190 -j ACCEPT ## 110 iptables -A OUTPUT -o $iface_world -p TCP --sport 110 -j ACCEPT iptables -A INPUT -i $iface_world -p TCP --dport 110 -j ACCEPT ## 25 iptables -A OUTPUT -o $iface_world -p TCP --sport 25 -j ACCEPT iptables -A INPUT -i $iface_world -p TCP --dport 25 -j ACCEPT ## 22 iptables -A OUTPUT -o $iface_world -p TCP --sport 22 -j ACCEPT iptables -A INPUT -i $iface_world -p TCP --dport 22 -j ACCEPT ## 5555 порт iptables -A OUTPUT -o $iface_world -p TCP --sport 5555 -j ACCEPT iptables -A INPUT -i $iface_world -p TCP --dport 5555 -j ACCEPT # DNS. Замечу, ДНС работает и по TCP и по UDP iptables -t filter -A INPUT -p tcp --sport 53 -j ACCEPT iptables -t filter -A FORWARD -p tcp --sport 53 -j ACCEPT iptables -t filter -A FORWARD -p tcp --dport 53 -j ACCEPT iptables -t filter -A OUTPUT -p tcp --dport 53 -j ACCEPT iptables -t filter -A INPUT -p udp --sport 53 -j ACCEPT iptables -t filter -A FORWARD -p udp --sport 53 -j ACCEPT iptables -t filter -A FORWARD -p udp --dport 53 -j ACCEPT iptables -t filter -A OUTPUT -p udp --dport 53 -j ACCEPT # SSH iptables -t filter -A INPUT -p tcp -s $admin -d $server0 --dport 22 -j ACCEPT iptables -t filter -A OUTPUT -p tcp -d $admin -s $server0 --sport 22 -j ACCEPT # Stargazer configurator iptables -t filter -A INPUT -p tcp -s 192.168.0.0/24 -d $server0 --dport $conf_port -j ACCEPT iptables -t filter -A OUTPUT -p tcp -d 192.168.0.0/24 -s $server0 --sport $conf_port -j ACCEPT # UDP stargazer InetAccess iptables -t filter -A INPUT -p udp -s 192.168.0.0/24 -d $server0 --dport $user_port1 -j ACCEPT iptables -t filter -A OUTPUT -p udp -d 192.168.0.0/24 --dport $user_port1 -s $server0 -j ACCEPT #Маскарад iptables -t nat -A POSTROUTING -d 0.0.0.0/0 -j MASQUERADE В результате пинги ходят а интернета нету ДНС пашет Может кто подскажет в чем дело Ссылка на сообщение Поделиться на других сайтах
Рекомендованные сообщения
Создайте аккаунт или войдите в него для комментирования
Вы должны быть пользователем, чтобы оставить комментарий
Создать аккаунт
Зарегистрируйтесь для получения аккаунта. Это просто!
Зарегистрировать аккаунтВхід
Уже зарегистрированы? Войдите здесь.
Войти сейчас