Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Linux и FreeBSD » Общий по Linux » Debian/Ubuntu - Народ. Помотиге разобраться с iptables

Ответить
Настройки темы
Debian/Ubuntu - Народ. Помотиге разобраться с iptables

Новый участник


Сообщения: 17
Благодарности: 0

Профиль | Отправить PM | Цитировать


Написал такой скрипт:

#!/bin/sh
LAN="eth1"
LANNET="10.10.1.0/24"
LANIP="10.10.1.77"
WAN="eth2"
WANIP=X.X.X.X"

IPTABLES="/sbin/iptables"

$IPTABLES -F INPUT
$IPTABLES -F FORWARD
$IPTABLES -F OUTPUT
$IPTABLES -t nat -F PREROUTING
$IPTABLES -t nat -F PPOSTROUTING
$IPTABLES -t mangle -F

$IPTABLES -P INPUT DROP
$IPTABLES -P FORWARD DROP
$IPTABLES -P OUTPUT DROP

#------------------------------------------------------------------------------
$IPTABLES -A INPUT -s $LANNET -p tcp -d $LANIP -m multiport --dport 22,80,403,443,3128,8080,8081 -j ACCEPT

$IPTABLES -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-ports 3128
$IPTABLES -t nat -A PREROUTING -p tcp --dport 8080 -j REDIRECT --to-ports 3128
$IPTABLES -t nat -A PREROUTING -p tcp --dport 443 -j REDIRECT --to-ports 3128
$IPTABLES -t nat -A PREROUTING -p tcp --dport 403 -j REDIRECT --to-ports 3128
$IPTABLES -t nat -A PREROUTING -p tcp --dport 8081 -j REDIRECT --to-ports 3128
$IPTABLES -t nat -A PREROUTING -p tcp --dport 2802 -j REDIRECT --to-ports 3128
$IPTABLES -t nat -A PREROUTING -p tcp --dport 1578 -j REDIRECT --to-ports 3128
$IPTABLES -t nat -A POSTROUTING -o $WAN -j MASQUERADE

$IPTABLES -t nat -A POSTROUTING -o $WAN -j SNAT --to-source $WANIP

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


При выполнении пишет:

iptables: No chain/target/math by that name.

Скрипт пробный и уже на этом шаге столкнулся с проблемой.

От руки все нормально вводится и при iptables -L показываются таблицы с введенными правилами.

Ос. Debian 4.
Нужные модули ядра загружены.

Понимаю, что ситуация простая, но я в Линуксе новичек. Помогите, если не сложно.

Отправлено: 14:03, 06-08-2008

 

Аватара для Аlchemist

Старожил


Сообщения: 437
Благодарности: 46

Профиль | Отправить PM | Цитировать


Цитата RFox:
$IPTABLES -t nat -A PREROUTING -p tcp --dport 443 -j REDIRECT --to-ports 3128 »
в случае использования squid сомневаюсь что это будет работать

Цитата RFox:
Хотелось бы закрыть не нужные порты из локалки и для форвардинга, но не знаю точно какие. »
имеет смысл просто открыть нужные, а все остальное запретить

Цитата RFox:
Также не очень понятно с журналированием. Как правильно его сюда вписать? »
присоединяюсь, тож не понял... другое дело во фряхе на ipfw...
Цитата RFox:
Есть несколько вопросов: »
дык задавай...

-------
IT house


Отправлено: 11:50, 02-09-2008 | #11



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Аватара для BuGfiX

Слакофил


Сообщения: 590
Благодарности: 130

Профиль | Сайт | Отправить PM | Цитировать


Цитата RFox:
Хотелось бы закрыть не нужные порты из локалки и для форвардинга, но не знаю точно какие. »
Как минимум - tcp/25, т.к. компы в локалке имеют привычку цеплять вирусы/трояны и могут спамить, из-за чего Вы можете попасть в блеклисты.
Цитата RFox:
Также не очень понятно с журналированием. Как правильно его сюда вписать?»
А вот это разве не оно?
$IPTABLES -A INPUT -m limit --limit 3/minute --limit-burst 3 -j LOG --log-level DEBUG --log-prefix "IPTables INPUT packet died: "

-------
If you don`t know what to use this for, you don`t need it.

http://sergey.sereda.googlepages.com...e1_userbar.gif


Отправлено: 12:00, 02-09-2008 | #12


Аватара для Аlchemist

Старожил


Сообщения: 437
Благодарности: 46

Профиль | Отправить PM | Цитировать


Цитата BuGfiX:
А вот это разве не оно?
$IPTABLES -A INPUT -m limit --limit 3/minute --limit-burst 3 -j LOG --log-level DEBUG --log-prefix "IPTables INPUT packet died: " »
Куда он все это пишет и что за лимиты?

-------
IT house


Отправлено: 12:27, 02-09-2008 | #13


Аватара для Аlchemist

Старожил


Сообщения: 437
Благодарности: 46

Профиль | Отправить PM | Цитировать


Разобрался с лимтами. Требуется модуль CONFIG_IP_NF_MATCH_LIMIT.
Логи пишет в kern.log
Как бы в другое место перенаправить?

-------
IT house


Отправлено: 13:38, 02-09-2008 | #14


Новый участник


Сообщения: 17
Благодарности: 0

Профиль | Отправить PM | Цитировать


Несколько вопросов:
1. Как сделать, что-бы логи очищались?

2. Строку:
$IPTABLES -A ALL -p tcp -i $LAN_IFACE -s $LAN_IP_RANGE -j ACCEPT

заменил на:
$IPTABLES -A INPUT -p tcp -i $LAN_IFACE -s $LAN_IP_RANGE -m multiport --dport 22,80,3128 -j ACCEPT
$IPTABLES -A INPUT -p UDP -i $LAN_IFACE -s $LAN_IP_RANGE -j ACCEPT
$IPTABLES -A INPUT -p ICMP -i $LAN_IFACE -s $LAN_IP_RANGE -j ACCEPT

Вопрос: нужно ли разрешать входящий UDP траффик со стороны локалки? Чем он может использоваться?
Какое правило в INPUT нужно добавить, если на компе стоит DNS сервер?

Последний раз редактировалось RFox, 04-09-2008 в 15:02.


Отправлено: 09:16, 04-09-2008 | #15


Аватара для Аlchemist

Старожил


Сообщения: 437
Благодарности: 46

Профиль | Отправить PM | Цитировать


Цитата RFox:
Вопрос: нужно ли разрешать входящий UDP траффик со стороны локалки? »
Да, нужно, если:
Цитата RFox:
на компе стоит DNS сервер? »

Цитата RFox:
Какое правило в INPUT нужно добавить, »
нужно открыть 53 порт UDP и если происходит зонная передача 53 TCP

-------
IT house


Отправлено: 15:24, 04-09-2008 | #16


Новый участник


Сообщения: 17
Благодарности: 0

Профиль | Отправить PM | Цитировать


Спасибо Alchemist.

Отправлено: 07:18, 05-09-2008 | #17


Новый участник


Сообщения: 27
Благодарности: 0

Профиль | Отправить PM | Цитировать


Суть проблемы та же, но вот беда, ip динамический...
Мне написал знакомый скрипт, но что то не так. (не форварда, ни даже заворота на прокси...)
Установлен dnsmasq, локально инет работает, если прокси в браузере прописать с другой машины тоже.
при попытке пинговать с удаленной машины по имени, ip адрес получен, но пинги запрещены.



Вот собственно основные конфиги
Скрипт iptables.sh
читать дальше »
Код: Выделить весь код
#!/bin/bash


lan_interface=eth0
dsv_interface=eth1
world_interface=ppp0

# прописано как положено, раскомментил в стартовых скриптах.
#echo "1" > /proc/sys/net/ipv4/ip_forward

## flush iptables rules ##
iptables -F
iptables -t filter -F
iptables -t filter -X
iptables -t nat -F
iptables -t nat -X

## DROP polices ##
iptables -t filter -P INPUT DROP
iptables -t filter -P FORWARD DROP
iptables -t filter -P OUTPUT DROP
iptables -A INPUT -p tcp ! --syn -m state --state NEW -j DROP

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 nat -A PREROUTING -i eth0 -d 0.0.0.0/0 -p tcp -m multiport --dport 80,8080 -j DNAT --to 192.168.105.10:3128
#iptables  -A PREROUTING -d ! 192.168.105.0/255.255.255.0 -i eth0 -p tcp -m multiport --dports 80,8080 -j DNAT --to-destination 192.168.105.10:3128
# а так вроде нормально
iptables -t nat -A PREROUTING -s 192.168.105.0/24  -i eth0  -p tcp -m multiport --dport 80 -j REDIRECT --to-port 3128
# но что то не пашет всё равно



# не откликаться на пинги
# iptables -A INPUT -p icmp  --icmp-type echo-request -j DROP
# разруливаем icmp
iptables -t filter -A INPUT -p icmp -j ACCEPT
iptables -t filter  -A OUTPUT -p icmp -j ACCEPT


iptables -t filter  -A INPUT -p tcp --sport 67 -j ACCEPT
iptables -t filter  -A OUTPUT -p tcp --dport 67 -j ACCEPT
iptables -t filter  -A INPUT -p udp --sport 67 -j ACCEPT
iptables -t filter  -A OUTPUT -p udp --dport 67 -j ACCEPT


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



iptables -t filter  -A INPUT -i eth0 -p tcp -m tcp --dport 22 -j ACCEPT
iptables -t filter  -A INPUT -i eth0 -p tcp -m tcp --dport 3128 -j ACCEPT
iptables -t filter  -A INPUT -i eth0 -p tcp -m tcp --dport 4111 -j ACCEPT
iptables -t filter  -A INPUT -i eth0 -p tcp -m tcp --dport 80 -j ACCEPT

iptables -t filter  -A INPUT -i eth0  -p tcp -m tcp --dport 631 -j ACCEPT
iptables -t filter  -A INPUT -i eth0  -p udp -m udp --dport 631 -j ACCEPT

iptables -t filter  -A INPUT -i eth0 -p tcp -m tcp --dport 135:139 -j ACCEPT
iptables -t filter  -A INPUT -i eth0 -p tcp -m tcp --dport 445 -j ACCEPT 
iptables -t filter  -A INPUT -i eth0 -p udp -m udp --dport 135:139 -j ACCEPT
iptables -t filter  -A INPUT -i eth0 -p udp -m udp --dport 445 -j ACCEPT


# тут пускаешь организмов ходит через роутер
#iptables -t filter -A INPUT -s <IP> -j ACCEPT
#iptables -t filter -A FORWARD -s <IP> -j ACCEPT
#iptables -t filter -A FORWARD -d <IP> -j ACCEPT
#iptables -t filter -A OUTPUT -d <IP> -j ACCEPT


iptables -t filter -A FORWARD -s 192.168.105.1 -j ACCEPT
iptables -t filter -A FORWARD -d 192.168.105.1 -j ACCEPT


iptables -t filter -A FORWARD -s 192.168.105.2 -j ACCEPT
iptables -t filter -A FORWARD -d 192.168.105.2 -j ACCEPT


iptables -t filter -A FORWARD -s 192.168.105.3 -j ACCEPT
iptables -t filter -A FORWARD -d 192.168.105.3 -j ACCEPT


iptables -t filter -A FORWARD -s 192.168.105.5 -j ACCEPT
iptables -t filter -A FORWARD -d 192.168.105.5 -j ACCEPT



# **********
# хрен знает зачем, в справке посмотреть---
# httpd_accel_host virtual
# httpd_accel_port 80
# httpd_accel_with_proxy on
# httpd_accel_uses_host_header on
# nonhierarchical_direct off
# а самое главное, хрен знает куда!
# **********


# инет так:
iptables -t nat -A POSTROUTING -d 0.0.0.0/0 -j MASQUERADE
# или так:
#iptables -t nat -A POSTROUTING -p all -o $world_interface -j MASQUERADE
#iptables -t nat -A POSTROUTING -p all -o $dsv_interface -j MASQUERADE

iptables -A INPUT -p tcp -m state --state NEW -j DROP

# пробрасываем порт
#iptables -t nat -A PREROUTING -p tcp -i $world_interface --dport 55555 -j DNAT --to <IP>:55555
#iptables -t nat -A PREROUTING -p udp -i $world_interface --dport 55555 -j DNAT --to <IP>:55555

# форвард портов

#iptables -t nat -A PREROUTING -p tcp -i $world_interface --dport 58599 -j DNAT --to 192.168.105.1:58599
#iptables -t nat -A PREROUTING -p tcp -i $world_interface --dport 58598 -j DNAT --to 192.168.105.1:58598
#iptables -t nat -A PREROUTING -p tcp -i $world_interface --dport 58600 -j DNAT --to 192.168.105.1:58600
#iptables -t nat -A PREROUTING -p tcp -i $world_interface --dport 12000 -j DNAT --to 192.168.105.1:12000
#iptables -t nat -A PREROUTING -p tcp -i $world_interface --dport 12001 -j DNAT --to 192.168.105.1:12001
#iptables -t nat -A PREROUTING -p tcp -i $world_interface --dport 12002 -j DNAT --to 192.168.105.1:12002

#iptables -t nat -A PREROUTING -p udp -i $world_interface -m multiport --dport 55555 -j DNAT --to 192.168.105.1:55555

#iptables -t nat -A PREROUTING -p udp -i $world_interface -m multiport --dport 55555:60000 -j DNAT --to 192.168.105.1:55555-60000


# без этого вообще не пашет - надо смотреть что там такое, какие именно порты...
iptables -t filter -A OUTPUT -o eth0 -j ACCEPT
iptables -t filter -A INPUT -i eth0 -j ACCEPT

#хреново, но ладно
iptables -t filter -A OUTPUT -o ppp0 -j ACCEPT


iptables -t filter -A INPUT -i ppp0 -p tcp -m multiport --dport 1:1024,3128,8080,10000 -j DROP
iptables -t filter -A INPUT -i ppp0 -p udp -m multiport --dport 1:1024,3128,8080,10000 -j DROP
iptables -t filter -A INPUT -i ppp0 -j ACCEPT
# конец

dhcpd.conf
читать дальше »
Код: Выделить весь код
ddns-update-style none;


default-lease-time 10800;
max-lease-time 21600;

log-facility local7;

# выше параметры по умолчанию
# ниже моё, но прочериь нужно всё.

option domain-name "portonet";
option broadcast-address 192.168.105.255;
option subnet-mask 255.255.255.0;
option netbios-name-servers 192.168.105.10;
option netbios-dd-server 192.168.105.10;
option netbios-node-type 8;


subnet 192.168.105.0 netmask 255.255.255.0
{
range 192.168.105.12 192.168.105.100;
}

group
{
option domain-name-servers 192.168.105.10;

option routers 192.168.105.10;



host mrfree-desktop {
 hardware ethernet 00:E0:4C:0A:B3:D2;
 fixed-address 192.168.105.1;
 option host-name "mrfree-desktop";
}

host maria {
 hardware ethernet 00:17:31:6C:28:18; 
 fixed-address 192.168.105.5;
 option host-name "maria";
}

host sasha {
 hardware ethernet 00:16:EC:88:2E:FE;
 fixed-address 192.168.105.2 ;
 option host-name "sasha";
}

host nikita {
 hardware ethernet 00:0F:EA:A0:61:95;
 fixed-address 192.168.105.3;
 option host-name "nikita";
}
} # end group


читать дальше »
Код: Выделить весь код
acl all src 0.0.0.0/0.0.0.0
acl manager proto cache_object
acl localhost src 127.0.0.1/255.255.255.255
acl to_localhost dst 127.0.0.0/8

acl SSL_ports port 443		# https
acl SSL_ports port 5222		# XMPP
acl SSL_ports port 5223		# XMPP/SSL-deprecated

acl SSL_ports port 563		# snews
acl SSL_ports port 873		# rsync
acl Safe_ports port 80		# http
acl Safe_ports port 21		# ftp
acl Safe_ports port 443		# https
acl Safe_ports port 70		# gopher
acl Safe_ports port 210		# wais
acl Safe_ports port 1025-65535	# unregistered ports
acl Safe_ports port 280		# http-mgmt
acl Safe_ports port 488		# gss-http
acl Safe_ports port 591		# filemaker
acl Safe_ports port 777		# multiling http
acl Safe_ports port 631		# cups
acl Safe_ports port 873		# rsync
acl Safe_ports port 901		# SWAT
acl purge method PURGE
acl CONNECT method CONNECT

#Recommended minimum configuration:
#
# Only allow cachemgr access from localhost
http_access allow manager localhost
http_access deny manager
# Only allow purge requests from localhost
http_access allow purge localhost
http_access deny purge
# Deny requests to unknown ports
http_access deny !Safe_ports
# Deny CONNECT to other than SSL ports
http_access deny CONNECT !SSL_ports
#
# We strongly recommend the following be uncommented to protect innocent
# web applications running on the proxy server who think the only
# one who can access services on "localhost" is a local user
#http_access deny to_localhost
#
# INSERT YOUR OWN RULE(S) HERE TO ALLOW ACCESS FROM YOUR CLIENTS
 
# Example rule allowing access from your local networks. Adapt
# to list your (internal) IP networks from where browsing should
# be allowed
#acl our_networks src 192.168.1.0/24 192.168.2.0/24
#http_access allow our_networks

acl our_networks src 192.168.105.1 192.168.105.2 192.168.105.3 192.168.105.5
http_access allow our_networks

http_access allow localhost

#http_access allow password

# And finally deny all other access to this proxy
http_access deny all

icp_access deny all

# Squid normally listens to port 3128
http_port 3128 transparent

#We recommend you to use at least the following line.
hierarchy_stoplist cgi-bin ?


cache_dir ufs /var/spool/squid 1024 16 256


access_log /var/log/squid/access.log squid

#We recommend you to use the following two lines.
acl QUERY urlpath_regex cgi-bin \?
cache deny QUERY


#Suggested default:
refresh_pattern ^ftp:		1440	20%	10080
refresh_pattern ^gopher:	1440	0%	1440
refresh_pattern .		0	20%	4320

# Apache mod_gzip and mod_deflate known to be broken so don't trust
# Apache to signal ETag correctly on such responses
acl apache rep_header Server ^Apache
broken_vary_encoding allow apache


visible_hostname proxy.portonet

hosts_file /etc/hosts


coredump_dir /var/spool/squid


redirect_program /usr/bin/adzapper.wrapper

-------
Юникс дружелюбная операционная система. Просто она тщательно подбирает друзей.


Отправлено: 13:49, 09-09-2008 | #18



Компьютерный форум OSzone.net » Linux и FreeBSD » Общий по Linux » Debian/Ubuntu - Народ. Помотиге разобраться с iptables

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
IPTABLES!!! RULES, Разгавор о iptables BuuG Общий по Linux 17 03-03-2006 16:00
Народ помогите разобраться в asm'e! novichek_new Программирование и базы данных 8 30-12-2005 18:55
iptables xamelion Общий по Linux 9 14-05-2004 18:42
Помогите разобраться с iptables frofis Защита компьютерных систем 1 20-04-2003 01:32




 
Переход