Я только начинаю путь в linux. Прочел https://www.opennet.ru/docs/RUS/iptables/
взял за осного из него rc.firewall https://www.opennet.ru/docs/RUS/iptables/misc/iptables-tutori...
И подредактировал в самом начале настройки интерфейса.
Проблема что на клиентских машинах так и не появилсяю
вот мой
iptables -L -v
Chain INPUT (policy DROP 33 packets, 4722 bytes)
pkts bytes target prot opt in out source destination
1298 1073K bad_tcp_packets tcp -- any any anywhere anywhere
239 28262 ACCEPT all -- eth1 any 192.168.10.0/24 anywhere
0 0 ACCEPT all -- lo any localhost anywhere
0 0 ACCEPT all -- lo any server-inet.local anywhere
0 0 ACCEPT all -- lo any 192.168.1.2 anywhere
318 104K ACCEPT udp -- eth1 any anywhere anywhere udp spt:bootpc dpt:bootps
1206 1064K ACCEPT all -- any any anywhere 192.168.1.2 state RELATED,ESTABLISHED
0 0 tcp_packets tcp -- eth0 any anywhere anywhere
33 4722 udp_packets udp -- eth0 any anywhere anywhere
0 0 icmp_packets icmp -- eth0 any anywhere anywhere
23 4020 LOG all -- any any anywhere anywhere limit: avg 3/min burst 3 LOG level debug prefix `IPT INPUT packet died: 'Chain FORWARD (policy DROP 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
254 32761 bad_tcp_packets tcp -- any any anywhere anywhere
1471 86449 ACCEPT all -- eth1 any anywhere anywhere
254 46186 ACCEPT all -- any any anywhere anywhere state RELATED,ESTABLISHED
0 0 LOG all -- any any anywhere anywhere limit: avg 3/min burst 3 LOG level debug prefix `IPT FORWARD packet died: 'Chain OUTPUT (policy DROP 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
1171 114K bad_tcp_packets tcp -- any any anywhere anywhere
0 0 ACCEPT all -- any any localhost anywhere
265 28518 ACCEPT all -- any any server-inet.local anywhere
1119 107K ACCEPT all -- any any 192.168.1.2 anywhere
0 0 LOG all -- any any anywhere anywhere limit: avg 3/min burst 3 LOG level debug prefix `IPT OUTPUT packet died: 'Chain allowed (4 references)
pkts bytes target prot opt in out source destination
0 0 ACCEPT tcp -- any any anywhere anywhere tcp flags:FIN,SYN,RST,ACK/SYN
0 0 ACCEPT tcp -- any any anywhere anywhere state RELATED,ESTABLISHED
0 0 DROP tcp -- any any anywhere anywhereChain bad_tcp_packets (3 references)
pkts bytes target prot opt in out source destination
0 0 REJECT tcp -- any any anywhere anywhere tcp flags:SYN,ACK/SYN,ACK state NEW reject-with tcp-reset
0 0 LOG tcp -- any any anywhere anywhere tcp flags:!FIN,SYN,RST,ACK/SYN state NEW LOG level warning prefix `New not syn:'
0 0 DROP tcp -- any any anywhere anywhere tcp flags:!FIN,SYN,RST,ACK/SYN state NEWChain icmp_packets (1 references)
pkts bytes target prot opt in out source destination
0 0 ACCEPT icmp -- any any anywhere anywhere icmp echo-request
0 0 ACCEPT icmp -- any any anywhere anywhere icmp time-exceededChain tcp_packets (1 references)
pkts bytes target prot opt in out source destination
0 0 allowed tcp -- any any anywhere anywhere tcp dpt:ftp
0 0 allowed tcp -- any any anywhere anywhere tcp dpt:ssh
0 0 allowed tcp -- any any anywhere anywhere tcp dpt:www
0 0 allowed tcp -- any any anywhere anywhere tcp dpt:authChain udp_packets (1 references)
pkts bytes target prot opt in out source destination
0 0 ACCEPT udp -- any any anywhere anywhere udp dpt:2074
0 0 ACCEPT udp -- any any anywhere anywhere udp dpt:4000
и вот мой отредактированный скрипт
#!/bin/sh
#
# rc.firewall - Initial SIMPLE IP Firewall script for Linux 2.4.x and iptables
#
# Copyright (C) 2001 Oskar Andreasson <bluefluxATkoffeinDOTnet>
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; version 2 of the License.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program or from the site that you downloaded it
# from; if not, write to the Free Software Foundation, Inc., 59 Temple
# Place, Suite 330, Boston, MA 02111-1307 USA
############################################################################
#
# 1. Configuration options.
##
# 1.1 Internet Configuration.
#INET_IP="192.168.1.2"
INET_IFACE="eth0"
INET_BROADCAST="192.168.1.255"#
# 1.1.1 DHCP
##
# 1.1.2 PPPoE
##
# 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.10.2"
LAN_IP_RANGE="192.168.10.0/24"
LAN_IFACE="eth1"#
# 1.3 DMZ Configuration.
##
# 1.4 Localhost Configuration.
#LO_IFACE="lo"
LO_IP="127.0.0.1"#
# 1.5 IPTables Configuration.
#IPTABLES="/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
##
# 4.2.1 Set policies
##
# 4.2.2 Create user specified chains
##
# 4.2.3 Create content in user specified chains
##
# 4.2.4 PREROUTING chain
##
# 4.2.5 POSTROUTING chain
##
# Enable simple IP Forwarding and Network Address Translation
#$IPTABLES -t nat -A POSTROUTING -o $INET_IFACE -j SNAT --to-source $INET_IP
#
# 4.2.6 OUTPUT chain
#######
# 4.3 mangle table
##
# 4.3.1 Set policies
##
# 4.3.2 Create user specified chains
##
# 4.3.3 Create content in user specified chains
##
# 4.3.4 PREROUTING chain
##
# 4.3.5 INPUT chain
##
# 4.3.6 FORWARD chain
##
# 4.3.7 OUTPUT chain
##
# 4.3.8 POSTROUTING chain
#Хочу очень сильно разобраться в iptables
А и при запуски скрипта я обнулил iptables -F после запуска скрипта
выводиться такое сообщениеiptables: Chain already exists
iptables: Chain already exists
iptables: Chain already exists
iptables: Chain already exists
iptables: Chain already exists
>Я только начинаю путь в linux. Прочел https://www.opennet.ru/docs/RUS/iptables/
>взял за осного из него rc.firewall https://www.opennet.ru/docs/RUS/iptables/misc/iptables-tutori...
>И подредактировал в самом начале настройки интерфейса.
>Проблема что на клиентских машинах так и не появилсяю
>Мой скрипт для init.d Debian. A.B.C.D - внешний адрес торчащий в интернет
#!/bin/sh
#nIPFW=/sbin/iptables
case "$1" in
start)
echo -n "Configuring firewall... "
# общий сброс
$IPFW -F
$IPFW -X
$IPFW -Z
$IPFW -F -t nat
$IPFW -X -t nat
$IPFW -Z -t nat
# РТБЧЙМБ РП-ХНПМЮБОЙА
$IPFW -P INPUT ACCEPT
$IPFW -P FORWARD ACCEPT
$IPFW -P OUTPUT ACCEPT
# запрет пингов
$IPFW -A INPUT -p icmp -s x.y.z.0/24 -j ACCEPT
$IPFW -A INPUT -p icmp -s 192.168.1.0/24 -j ACCEPT
$IPFW -A INPUT -p icmp -s 192.168.3.0/24 -j ACCEPT
$IPFW -A INPUT -p icmp -s 192.168.254.0/24 -j ACCEPT
$IPFW -A INPUT -p icmp -j DROP
# доступ на 22 порт
$IPFW -A INPUT -p tcp --dport 22 -s 192.168.3.0/24 -j ACCEPT
$IPFW -A INPUT -p tcp --dport 22 -s 192.168.1.0/24 -j ACCEPT
$IPFW -A INPUT -p tcp --dport 22 -j LOG
$IPFW -A INPUT -p tcp --dport 22 -j DROP
# прокси-сервер для внутренних сетей и разрешение хождения серверов туда и обратно.
$IPFW -A INPUT -s 192.168.1.0/24 -p tcp --dport 8128 -j ACCEPT
$IPFW -A INPUT -s 192.168.3.0/24 -p tcp --dport 8128 -j ACCEPT
$IPFW -A INPUT -p tcp --dport 8128 -j DROP
$IPFW -A FORWARD -s 192.168.1.0/24 -j ACCEPT
$IPFW -A FORWARD -d 192.168.3.0/24 -j ACCEPT
$IPFW -A FORWARD -s 192.168.1.2 -j ACCEPT
$IPFW -A FORWARD -d 192.168.1.2 -j ACCEPT
$IPFW -A FORWARD -s 192.168.1.200 -j ACCEPT
$IPFW -A FORWARD -d 192.168.1.200 -j ACCEPT# NAT
$IPFW -t nat -A POSTROUTING -o eth2 -j SNAT --to A.B.C.D
#собственно и есть нат. Строчки ниже - проброс портов. Я прокинул впн соединение #во внутреннюю сеть.
$IPFW -t nat -A PREROUTING -p 47 -d A.B.C.D -j DNAT --to-destination 192.168.1.2
$IPFW -t nat -A PREROUTING -p tcp -d A.B.C.D --dport 1723 -j DNAT --to 192.168.1.2
$IPFW -t nat -A PREROUTING -p udp -d A.B.C.D --dport 1723 -j DNAT --to 192.168.1.2
$IPFW -t nat -A PREROUTING -p tcp -d A.B.C.D --dport 3389 -j DNAT --to 192.168.1.2
# Проброс почты.
$IPFW -t nat -A PREROUTING -p tcp -d 192.168.1.200 --dport 25 -j DNAT --to ip-smtp
$IPFW -t nat -A PREROUTING -p tcp -d 192.168.1.200 --dport 110 -j DNAT --to ip-pop3
echo "done."
;;
stop)
echo -n "Deconfiguring firewall... "
echo "done."
;;
*)
echo "Usage: /etc/init.d/firewall {start|stop}"
exit 1
;;
esacexit 0
>[оверквотинг удален]
>
> $IPFW -A INPUT -s 192.168.3.0/24 -p tcp --dport 8128 -j ACCEPT
>
> $IPFW -A INPUT -p tcp --dport 8128 -j DROP
> $IPFW -A FORWARD -s 192.168.1.0/24 -j ACCEPT
> $IPFW -A FORWARD -d 192.168.3.0/24 -j ACCEPT
> $IPFW -A FORWARD -s 192.168.1.2 -j ACCEPT
> $IPFW -A FORWARD -d 192.168.1.2 -j ACCEPT
> $IPFW -A FORWARD -s 192.168.1.200 -j ACCEPT
> $IPFW -A FORWARD -d 192.168.1.200 -j ACCEPTограничение только по входящим на icmp, tcp порты 8128, 22. остальное все разрешено :) .
>[оверквотинг удален]
> echo -n "Deconfiguring firewall... "
> echo "done."
> ;;
> *)
> echo "Usage: /etc/init.d/firewall {start|stop}"
> exit 1
> ;;
>esac
>
>exit 0
>[оверквотинг удален]
>> echo -n "Deconfiguring firewall... "
>> echo "done."
>> ;;
>> *)
>> echo "Usage: /etc/init.d/firewall {start|stop}"
>> exit 1
>> ;;
>>esac
>>
>>exit 0Сети общаются через опенвпн для них и разрешено. В данном случае Дебиан у меня пыхтит как раздатчик инета для двух подсетей, заодно как маршрутизатор между подсетями.
В обычном случае, разумеется строчек с разрешением на сетки быть не должно.
>Проблема что на клиентских машинах так и не появилсяю
>вот мой
>iptables -L -viptables-save может быть удобнее для чтения (быстрее ответят?) - короче, форматирование не "едет" и пр.
https://www.opennet.ru/openforum/vsluhforumID1/80355.html
https://www.opennet.ru/openforum/vsluhforumID10/3764.html#11>Хочу очень сильно разобраться в iptables
Разобраться и писать длиннющие скушнейшие скрипты - две большие разницы...
"Я так и не достиг "высот" написания собственного "готового" скрипта, но проблему построения файервола на iptables решил. Я использую "компилятор правил iptables" [...] - FireHOL."
https://www.opennet.ru/openforum/vsluhforumID10/3764.html#2"При этом я не говорю, что _знание_ iptables не нужно. Совсем наоборот: знание, куда какие пакеты "ходят" и когда, очень способствует и в firehol."
https://www.opennet.ru/openforum/vsluhforumID1/81413.html#7И далее - везде:
google.ru
firehol "Andrey Mitrofanov" проще site:opennet.ru
ENTER> и вот мой отредактированный скрипт
Вот так короче будет (и на iptables-save "похоже"; _читать_ удобнее) -
$ sed '/^\(#\|$\)\|\/sbin\//d;s/^\$IPTABLES //'<rc-fw |cat -n|sed 's/^ \(..\)\t/|\1\. /'| 1. INET_IP="192.168.1.2"
| 2. INET_IFACE="eth0"
| 3. INET_BROADCAST="192.168.1.255"
| 4. LAN_IP="192.168.10.2"
| 5. LAN_IP_RANGE="192.168.10.0/24"
| 6. LAN_IFACE="eth1"
| 7. LO_IFACE="lo"
| 8. LO_IP="127.0.0.1"
| 9. echo "1" > /proc/sys/net/ipv4/ip_forward
|10. -P INPUT DROP
|11. -P OUTPUT DROP
|12. -P FORWARD DROP
|13. -N bad_tcp_packets
|14. -N allowed
|15. -N tcp_packets
|16. -N udp_packets
|17. -N icmp_packets
|18. -A bad_tcp_packets -p tcp --tcp-flags SYN,ACK SYN,ACK
-m state --state NEW -j REJECT --reject-with tcp-reset
|19. -A bad_tcp_packets -p tcp ! --syn -m state --state NEW
-j LOG --log-prefix "New not syn:"
|20. -A bad_tcp_packets -p tcp ! --syn -m state --state NEW -j DROP
|21. -A allowed -p TCP --syn -j ACCEPT
|22. -A allowed -p TCP -m state --state ESTABLISHED,RELATED -j ACCEPT
|23. -A allowed -p TCP -j DROP
|24. -A tcp_packets -p TCP -s 0/0 --dport 21 -j allowed
|25. -A tcp_packets -p TCP -s 0/0 --dport 22 -j allowed
|26. -A tcp_packets -p TCP -s 0/0 --dport 80 -j allowed
|27. -A tcp_packets -p TCP -s 0/0 --dport 113 -j allowed
|28. -A udp_packets -p UDP -s 0/0 --destination-port 2074 -j ACCEPT
|29. -A udp_packets -p UDP -s 0/0 --destination-port 4000 -j ACCEPT
|30. -A icmp_packets -p ICMP -s 0/0 --icmp-type 8 -j ACCEPT
|31. -A icmp_packets -p ICMP -s 0/0 --icmp-type 11 -j ACCEPT
|32. -A INPUT -p tcp -j bad_tcp_packets
|33. -A INPUT -p ALL -i $LAN_IFACE -s $LAN_IP_RANGE -j ACCEPT
|34. -A INPUT -p ALL -i $LO_IFACE -s $LO_IP -j ACCEPT
|35. -A INPUT -p ALL -i $LO_IFACE -s $LAN_IP -j ACCEPT
|36. -A INPUT -p ALL -i $LO_IFACE -s $INET_IP -j ACCEPT
|37. -A INPUT -p UDP -i $LAN_IFACE --dport 67 --sport 68 -j ACCEPT
|38. -A INPUT -p ALL -d $INET_IP -m state --state ESTABLISHED,RELATED
-j ACCEPT
|39. -A INPUT -p TCP -i $INET_IFACE -j tcp_packets
|40. -A INPUT -p UDP -i $INET_IFACE -j udp_packets
|41. -A INPUT -p ICMP -i $INET_IFACE -j icmp_packets
|42. -A INPUT -m limit --limit 3/minute --limit-burst 3
-j LOG --log-level DEBUG --log-prefix "IPT INPUT packet died: "
|43. -A FORWARD -p tcp -j bad_tcp_packets
|44. -A FORWARD -i $LAN_IFACE -j ACCEPT
|45. -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
|46. -A FORWARD -m limit --limit 3/minute --limit-burst 3
-j LOG --log-level DEBUG --log-prefix "IPT FORWARD packet died: "
|47. -A OUTPUT -p tcp -j bad_tcp_packets
|48. -A OUTPUT -p ALL -s $LO_IP -j ACCEPT
|49. -A OUTPUT -p ALL -s $LAN_IP -j ACCEPT
|50. -A OUTPUT -p ALL -s $INET_IP -j ACCEPT
|51. -A OUTPUT -m limit --limit 3/minute --limit-burst 3
-j LOG --log-level DEBUG --log-prefix "IPT OUTPUT packet died: "
|52. -t nat -A POSTROUTING -o $INET_IFACE -j SNAT --to-source $INET_IP
$ _А на firehol будет ещё раза в 3 или в 5 короче. И проще для понимания/исправления... [После изучения самого firehol, конечно.]
>А и при запуски скрипта я обнулил iptables -F после запуска скрипта
>
>выводиться такое сообщение
>
>iptables: Chain already exists
>iptables: Chain already exists
>iptables: Chain already exists
>iptables: Chain already exists
>iptables: Chain already existsА надо было делать `iptables -X`. И `iptables -t nat -X`, кстати.
-F "очистил" содержимое цепочек, но не удалил их, и команды:
> 13. -N bad_tcp_packets
> 14. -N allowed
> 15. -N tcp_packets
> 16. -N udp_packets
> 17. -N icmp_packets- тебе именно это и говорят: _создать_ не могу, цепочка уже существует.
>>Проблема что на клиентских машинах так и не появилсяюКстати, странно. В FORWARD, вроде, разрешающие правила есть. ip_forward=1 есть.
Может очепятка где-нибудь? Или defaul gateway на клиентах не прописан на этот роутер?>|52. -t nat -A POSTROUTING -o $INET_IFACE -j SNAT --to-source $INET_IP
Исходная "конфигурация": 52 строки, 2.6Кб - даже в "упрощённом" виде.
>А на firehol будет ещё раза в 3 или в 5 короче.
>И проще для понимания/исправления... [После изучения самого firehol, конечно.]
---8<--- firehol.free.sample.conf
version 5
INET_IP="192.168.1.2"
INET_IFACE="eth0"
LAN_IP_RANGE="192.168.10.0/24"
LAN_IFACE="eth1"
FIREHOL_LOG_LEVEL=DEBUG
FIREHOL_LOG_FREQUENCY="3/minute"
FIREHOL_LOG_BURST=3
snat to "$INET_IP" outface "$INET_IFACE"
interface "$LAN_IFACE" lan
protection full
protection reverse full
client all accept
server all accept src "$LAN_IP_RANGE"
server dhcp accept
interface "$INET_IFACE" inet
protection full
protection reverse full
client all accept
server "ftp ssh http ident ping" accept
server custom unknown1 udp/2074 default accept
server custom unknown2 udp/4000 default accept
router all
protection full
server all accept inface "$LAN_IFACE"
--->8---
Конфигурация на firehol: 25 непустых строк и ~670 байт...
Продолжение :) осмотра --> https://www.opennet.ru/openforum/vsluhforumID10/3881.html#2
>[оверквотинг удален]
>>вот мой
>>iptables -L -v
>
>iptables-save может быть удобнее для чтения (быстрее ответят?) - короче, форматирование не
>"едет" и пр.
>https://www.opennet.ru/openforum/vsluhforumID1/80355.html
>https://www.opennet.ru/openforum/vsluhforumID10/3764.html#11
>
>>Хочу очень сильно разобраться в iptables
>Да нафиг это FireHol и прочие поделки-надстройки. Мусор это всё. Если понимаешь как работает iptables - ничего кроме iptables и не надо.
После того, как поработаешь с iptables все надстройки - только лишний промежуточный слой, которому нужно научиться доверять, и который потенциально нужно будет контролировать, "то ли оно нагенерило".
При начальном знакомстве можно и воспользоваться разными генераторами правил, но смотреть какие они формируют правила лучше с помощью iptables-save, тем более что можно отправить вывод в файл и потом грузить эти правила прям из файла по iptables-restore, или подправив и дописав несколько букв в начале строки получить свой скрипт. Но в последующем лучше писать правила руками, а уж через скрипт, service RH-подобных или в командной строке , это уже дело вкуса и обстоятельств.
>При начальном знакомстве можно и воспользоваться разными генераторами правил, но смотреть какие
>они формируют правила лучше с помощью iptables-save, тем более что можно
>отправить вывод в файл и потом грузить эти правила прям из
>файла по iptables-restore, или подправив и дописав несколько букв в начале
>строки получить свой скрипт. Но в последующем лучше писать правила руками,
>а уж через скрипт, service RH-подобных или в командной строке ,
>это уже дело вкуса и обстоятельств.http://debian.nikolas.ru/debian/ RH-подобный сервис для debian.