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

Компьютерный форум OSzone.net » Linux и FreeBSD » Общий по Linux » Проблема с NAT в Линуксе Fedora Core 7

Ответить
Настройки темы
Проблема с NAT в Линуксе Fedora Core 7

Аватара для voler

Ветеран


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

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


Изменения
Автор: voler
Дата: 31-07-2007
Нужен совет где косяк зарылся.

Добавил строку в iptables -A POSTROUTING -s 192.168.1.0/255.255.255.0 -o eth0 -j SNAT --to-source 80.237.27.**

Получил следующий конфигурационный файл.

PHP код: Выделить весь код

# Firewall configuration written by system-config-securitylevel
# Manual customization of this file is not recommended.
*nat
:PREROUTING ACCEPT [15:1440]
:
POSTROUTING ACCEPT [0:0]
:
OUTPUT ACCEPT [0:0]
-
A POSTROUTING -s 192.168.1.0/255.255.255.0 -o eth0 -j SNAT --to-source 80.237.27.42
COMMIT
*filter
:INPUT ACCEPT [0:0]
:
FORWARD ACCEPT [0:0]
:
OUTPUT ACCEPT [0:0]
:
RH-Firewall-1-INPUT - [0:0]
-
A INPUT -j RH-Firewall-1-INPUT
-A RH-Firewall-1-INPUT -i lo -j ACCEPT
-A RH-Firewall-1-INPUT -p icmp --icmp-type any -j ACCEPT
-A RH-Firewall-1-INPUT -p 50 -j ACCEPT
-A RH-Firewall-1-INPUT -p 51 -j ACCEPT
-A RH-Firewall-1-INPUT -p udp --dport 5353 -d 224.0.0.251 -j ACCEPT
-A RH-Firewall-1-INPUT -p udp -m udp --dport 631 -j ACCEPT
-A RH-Firewall-1-INPUT -p tcp -m tcp --dport 631 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m udp -p udp --dport 137 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m udp -p udp --dport 138 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 139 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 445 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 23 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 443 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 25 -j ACCEPT
-A RH-Firewall-1-INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT 

Еще в файле sysctl.conf в строке net.ipv4.ip_forward = 0 поменял на 1.

PHP код: Выделить весь код

# Kernel sysctl configuration file for Red Hat Linux
#
# For binary values, 0 is disabled, 1 is enabled.  See sysctl(8) and
# sysctl.conf(5) for more details.

# Controls IP packet forwarding
net.ipv4.ip_forward 1

# Controls source route verification
net.ipv4.conf.default.rp_filter 1

# Do not accept source routing
net.ipv4.conf.default.accept_source_route 0

# Controls the System Request debugging functionality of the kernel
kernel.sysrq 0

# Controls whether core dumps will append the PID to the core filename.
# Useful for debugging multi-threaded applications.
kernel.core_uses_pid 1

# Controls the use of TCP syncookies
net.ipv4.tcp_syncookies 

Но пинги дальше внутреннего адреса сервера 192.168.1.200 не уходят

Пингую адрес сетевой карты которая смотрит наружу 80.237.27.** пинги идут, а вот пинги на шлюз уже не идут 80.237.27.41

Подскажите плиз?

Отправлено: 14:35, 30-07-2007

 

Аватара для voler

Ветеран


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

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


Вопрос, а почему так. Не проще забить настройки в /etc/sysconfig/iptables

сделать рестарт серввиса и все. # service iptables restart


PHP код: Выделить весь код

*filter
:INPUT ACCEPT [0:0]
:
FORWARD ACCEPT [0:0]
:
OUTPUT ACCEPT [0:0]
#Блокируем все icmp запросы.
-A INPUT -p icmp --icmp-type any -j DROP
#-A OUTPUT -p icmp --icmp-type 8 -j ACCEPT
#-A INPUT -p icmp --icmp-type 8 -j ACCEPT
#разрешает web серфинг.
-A INPUT --protocol tcp --dport 80 -j ACCEPT
#разрешает ssh подключения. 
-A INPUT --protocol tcp --dport 22 -j ACCEPT
#разрешает получение почты.
-A INPUT --protocol tcp --dport 110 -j ACCEPT
#разрешает отправку почты.
-A INPUT --protocol tcp --dport 25 -j ACCEPT
#разрешает вхдящие покеты аськи.
-A INPUT --protocol tcp --dport 5190 -j ACCEPT

COMMIT 

Вот только добится работы пингов я не смог.
Если с нему коментарии с этих строк
PHP код: Выделить весь код

#-A OUTPUT -p icmp --icmp-type 8 -j ACCEPT
#-A INPUT -p icmp --icmp-type 8 -j ACCEPT 

пинги не идут, лучше делать дроп на icmp отдельно, а открыть нужные. То много писать.

-------
Linux, это плацдарм для изучения своих возможностей.


Отправлено: 21:10, 09-08-2007 | #11



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

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


Аватара для BuGfiX

Слакофил


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

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


Цитата voler:
Вопрос, а почему так. Не проще забить настройки в /etc/sysconfig/iptables
сделать рестарт серввиса и все. # service iptables restart
Метод добавления правил в таблицы роли не играет, делайте как именно Вам удобно, хотя некоторые дистрибутивы (например Suse) содержат свои "оболочки".
Для того чтобы заработал ping наружу, нужно разрешить на выход icmp пакеты типа echo-request, и на вход echo-reply. Для пинга снаружи соответственно наоборот.

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

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


Отправлено: 22:01, 09-08-2007 | #12


Аватара для voler

Ветеран


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

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


Посоветуйте, может что не так.
0/0 - ip адрес

PHP код: Выделить весь код

# Firewall configuration written by system-config-securitylevel
# Manual customization of this file is not recommended.
*nat
:PREROUTING ACCEPT [15:1440]
:
POSTROUTING ACCEPT [0:0]
:
OUTPUT ACCEPT [0:0]
-
A POSTROUTING -s 192.168.1.0/255.255.255.0 -o eth0 -j SNAT --to-source ip вашей ситивухи
COMMIT

*filter
:INPUT ACCEPT [0:0]
:
FORWARD ACCEPT [0:0]
:
OUTPUT ACCEPT [0:0]
#Разрешаем пинги.
-A INPUT -i eth0 -p icmp --icmp-type echo-reply -j ACCEPT
-A OUTPUT -o eth0 -p icmp --icmp-type echo-request -j ACCEPT

#3априщаем пинговать себя остальным, оставляем только свой IP.
-A OUTPUT -0/-o eth0 -p icmp --icmp-type echo-reply -d 0/-j DROP
-A INPUT -0/-i eth0 -p icmp --icmp-type echo-request -d 0/-j DROP

#Сообщение, предназначенное для управления потоком между двумя маршрутизаторами
#или маршрутизатором и обычным узлом.
-A INPUT -i eth0 -p icmp --icmp-type source-quench -j ACCEPT
-A OUTPUT -o eth0 -p icmp --icmp-type source-quench -j ACCEPT

#Некорректный параметр.
-A INPUT -i eth0 -p icmp --icmp-type parameter-problem -j ACCEPT
-A OUTPUT -o eth0 -p icmp --icmp-type parameter-problem -j ACCEPT

#Узел назначения не доступен.
-A INPUT -i eth0 -p icmp --icmp-type destination-unreachable -j ACCEPT
-A OUTPUT -o eth0 -p icmp --icmp-type destination-unreachable -j ACCEPT
-A INPUT -p icmp --icmp-type fragmentation-needed -j ACCEPT

#Необходимо для правильной работы трасировки маршрута.
-A INPUT -p icmp --icmp-type port-unreachable -j ACCEPT
-A OUTPUT -p icmp --icmp-type port-unreachable -j ACCEPT
-A INPUT -p icmp --icmp-type time-exceeded -j ACCEPT

#Блокировка нежелатеьных запросов icmp. 
#Противодействие smurf - атаке.
-A INPUT -i eth0 -p icmp -d 255.255.255.255 -j DROP
-A OUTPUT -o eth0 -p icmp -d 255.255.255.255 -j REJECT

#Разрешаем взаимодествие между клиентом и сервером для работы DNS.
-A INPUT --protocol udp --dport 53 -j ACCEPT
-A OUTPUT --protocol udp --dport 53 -j ACCEPT
-A INPUT --protocol tcp --dport 53 -j ACCEPT
-A OUTPUT --protocol tcp --dport 53 -j ACCEPT

#разрешает web серфинг.
-A INPUT -d 0/--protocol tcp --dport 80 -j ACCEPT
-A OUTPUT -s 0/--protocol tcp --dport 80 -j ACCEPT

#разрешает ssh подключения. 
-A INPUT -s 0/-i eth0 --protocol tcp --dport 22 -d 0/-j ACCEPT
-A INPUT -i eth0 --protocol tcp --dport 22 -d 0/-j DROP

#Разрешаем работу почты.
#разрешает получение почты.
-A INPUT -d 0/-i eth0 --protocol tcp --dport 110 -j ACCEPT
-A OUTPUT -o eth0 --protocol tcp --dport 110 -j ACCEPT
#разрешает отправку почты.
-A INPUT -d 0/-i eth0 --protocol tcp --dport 25 -j ACCEPT
-A OUTPUT -s 0/-o eth0 --protocol tcp --dport 25 -j ACCEPT

#разрешает вхдящие покеты аськи.
-A INPUT -d 0/-i eth0 --protocol tcp --dport 5190 -j ACCEPT
-A OUTPUT -s 0/-o eth0 --protocol tcp --dport 5190 -j ACCEPT

#Разрешаем доступ к WEBMIN, только с IP адреса.
-A INPUT -s 0/-i eth0 --protocol tcp --dport 10000 -d 0/-j ACCEPT 

Вот часть моего файла настроек файрвола. Прошу высказать свои комментарии.

И еще возник вопрос по iptables и его родоначальнику ipchains. В ipchains было следующие:
EXTERNAL_INTERFACE в iptables это параметр -i
Internal_ INTERFACE -
LAN_1
LAN_IPADDR_1
LOOPBACK_INTERFACE
IPADDR - адрес компа
ANYWHERE
MY_ISP
LOOPBACK
BROADCAST_DEST
BROADCAST_SRC
NAMESERVER
SMTP_GATEWAY
POP_SERVER
NEWS_SERVER
IMAP_SERVER
PRIVPPORTS
UNPRIVPORTS
SSH_PORTS

Если соответствия данным параметрам в iptables. Man читал.

-------
Linux, это плацдарм для изучения своих возможностей.


Отправлено: 10:54, 16-08-2007 | #13


Аватара для BuGfiX

Слакофил


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

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


Что сразу бросилось в глаза - зачем вот это?
Цитата voler:
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
И потом еще много правил с действием -j ACCEPT в INPUT и OUTPUT?

Воттут еще:
Цитата voler:
-A INPUT -d 0/0 --protocol tcp --dport 80 -j ACCEPT
-A OUTPUT -s 0/0 --protocol tcp --dport 80 -j ACCEPT
Имеется в виду что разрешается заход по HTTP на веб-сервер данной машины? Или серфинг с нее?
В первом случае нужно исправить на
-A OUTPUT -s 0/0 --protocol tcp --sport 80 -j ACCEPT
а во втором
-A INPUT -d 0/0 --protocol tcp --sport 80 -j ACCEPT
Аналогично касательно почти и аськи.
Еще мне не понятно зачем нужно второе правило для разрешения ssh, ну и если сервер стоит в инете с открытым ssh, я бы добавил защиту от bruteforce.
Цитата voler:
Если соответствия данным параметрам в iptables
Что-то мне подсказывает, что это просто переменные, объявленные в скрипте фаервола, и икакого прямого отношения к ipchains и iptables они не имеют.

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

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


Последний раз редактировалось BuGfiX, 16-08-2007 в 12:04.


Отправлено: 11:52, 16-08-2007 | #14


Аватара для voler

Ветеран


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

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


Возможно ты прав, скорее всего, я прочел об этом "Линукс-сервер в виндовс окружении" Алексея Стаханова.
я бы добавил защиту от bruteforce. - по подробней если можно?\

За остальное спасибо.

Цитата BuGfiX:
И потом еще много правил с действием -j ACCEPT в INPUT и OUTPUT?
- Ты считаешь они не нужны?

Цитата BuGfiX:
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
Это было в стандартном файле.

-------
Linux, это плацдарм для изучения своих возможностей.


Отправлено: 12:31, 16-08-2007 | #15


Аватара для BuGfiX

Слакофил


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

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


Цитата voler:
Ты считаешь они не нужны?
Если политика по-умолчанию ACCEPT, не вижу никакого смысла разрешать какие-либо пакеты по определенным критериям, разве что может пригодиться для подсчета статистики. Я обычно делаю такие политики:
INPUT = DROP
OUTPUT = ACCEPT
FORWARD = DROP
а дальше разрешаю только то что нужно. Хотя можно поступить и противоположным образом - дело вкуса.

Защиту SSH от брутфорса можно сдлать например вот так:
Код: Выделить весь код
iptables -A INPUT -i eth0 -p tcp --dport 22 -m state --state NEW -m recent --name SSH --set
iptables -A INPUT -i eth0 -p tcp --dport 22 -m state --state NEW -m recent --name SSH --update --seconds 60 --hitcount 2 -j DROP
iptables -A INPUT -i eth0 -p tcp --dport 22 -m state --state NEW -j ACCEPT
При условии, что iptables -P INPUT DROP.

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

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


Отправлено: 12:43, 16-08-2007 | #16


Аватара для voler

Ветеран


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

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


Цитата BuGfiX:
INPUT = DROP
OUTPUT = ACCEPT
FORWARD = DROP
Есть тогда вопрос резонный. На сколько мне известно, что iptables читает правило сверху вниз. Т.е. если, я что забыл добавить в правила, то это будит рубиться.

Тогда скажи как быть с ftp, его я собираюсь организовать в ближайшее время. Запрос и дет по одному порту, а работа дальнейшая по большому диапазону портов.


Цитата BuGfiX:
Если политика по-умолчанию ACCEPT, не вижу никакого смысла разрешать какие-либо пакеты по определенным критериям, разве что может пригодиться для подсчета статистики. Я обычно делаю такие политики:
INPUT = DROP
OUTPUT = ACCEPT
FORWARD = DROP
Послушаюсь твоего совета и добавлю данное правило, в начало и погляжу что да как.

-------
Linux, это плацдарм для изучения своих возможностей.


Отправлено: 13:01, 16-08-2007 | #17


Аватара для BuGfiX

Слакофил


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

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


Цитата voler:
Т.е. если, я что забыл добавить в правила, то это будит рубиться.
не совсем так. Будет оно рубиться, или нет, зависит как раз от заданной политики по-умолчанию. Например, если политика цепочки INPUT = DROP, и пакет, попавший туда не подошел ни под одно правило, то он отбрасывается.
Цитата voler:
как быть с ftp
FTP может работать либо в активном, либо в пассивном режиме. В зависимости от этого, по разному настраивается фаервол. А с диапазоном портов можно поступить очень просто - нужно всего-лишь использовать модуль -m multiport.
Его описание так же есть по ссылке, которую я давал ранее.

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

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


Отправлено: 13:45, 16-08-2007 | #18


Аватара для voler

Ветеран


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

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


Цитата BuGfiX:
Защиту SSH от брутфорса можно сдлать например вот так:
Код:
-A INPUT -i eth0 -p tcp --dport 22 -m state --state NEW -m recent --name SSH --set
-A INPUT -i eth0 -p tcp --dport 22 -m state --state NEW -m recent --name SSH --update --seconds 60 --hitcount 2 -j DROP
-A INPUT -i eth0 -p tcp --dport 22 -m state --state NEW -j ACCEPT
-m state --state NEW - новое состояние
-m recent - это что за модуль?
-- NAME SSH Задание имени для recent ?
--set добавляет новый адрес.
--update --seconds 60 --hitcount 2 -j DROP - это блокирует адреса, которые обращаются с интервалом меньше 60 сек?

Я все правильно понял?

-------
Linux, это плацдарм для изучения своих возможностей.


Последний раз редактировалось voler, 16-08-2007 в 14:40.


Отправлено: 14:06, 16-08-2007 | #19


Аватара для BuGfiX

Слакофил


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

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


-m state --state NEW
Цитата:
Признак NEW сообщает о том, что пакет является первым для данного соединения. Это означает, что это первый пакет в данном соединении, который увидел модуль трассировщика. Например если получен SYN пакет являющийся первым пакетом для данного соединения, то он получит статус NEW.
Суть правил с -m recent сводится к тому, что на 22-й порт будет приниматься всего одна попытка подключения в минуту. Если в течении минуты будет предпринята еще одна попытка - пакет будет отброшен.

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

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

Это сообщение посчитали полезным следующие участники:

Отправлено: 14:18, 16-08-2007 | #20



Компьютерный форум OSzone.net » Linux и FreeBSD » Общий по Linux » Проблема с NAT в Линуксе Fedora Core 7

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Redhat/Fedora - проблема с удаленным доступом по ssh из приложения в fedora core 8 YanaD Общий по Linux 3 24-10-2008 09:35
Проблема с микрофоном в Fedora Core 6_64 gresik Железо в Linux 2 29-01-2007 15:36
Звук в Fedora Core 3 dmitryst Железо в Linux 8 11-04-2005 14:14
Fedora Core 3 GoRiLLa Новости и флейм из мира *nix 9 15-12-2004 17:43
Fedora Core 2 orion2 Общий по Linux 16 26-06-2004 19:13




 
Переход