Здравствуйте.
Подскажите новичку, как настроить iptables на свежеустановленной системе, чтобы работал интернет?
Прежде чем спрашивать тут, пытался сделать сам, но не очень получается... =\
По умолчанию конфиг iptables такой -

*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT

И с таким конфигом (после установки поставил веб-сервер (+php+mysql), фтп) снаружи на сервер попасть не могу ни по 80 ни по фтп.
Сбрасываю таблицы -

iptables -F

- попадаю на сервер.
Долго рылся в интернете, попытался сделать своё с нуля, запретить всё, и разрешить только то, что надо..

-F
-X

-P INPUT DROP
-P FORWARD ACCEPT
-P OUTPUT ACCEPT

-A INPUT -i lo -j ACCEPT
-A OUTPUT -o lo -j ACCEPT

-A  INPUT -p tcp -m tcp --sport 80 -j ACCEPT
-A  OUTPUT -p tcp -m tcp --dport 80 -j ACCEPT

но с моим конфигом на машине вообще интернета нет ни в одну сторону (с тем, который был изначально, она хотя бы сама ходила в инет, но не пускала на себя).
Прошу не серчать сильно, понимаю, что для опытных вопрос мой просто тупой, но я реально не могу чего-то сообразить..
Пошагово вот писал команды - пингов на 127.0.0.1 не было, прописал input-output для lo, заработали пинги, также прописал для 80 порта - фигу...

unknown host ya.ru

И ещё вопрос - то, что сервер в локалке за роутером (роутер является соотв. шлюзом 192.168.1.1, IP компу присвоен статичный вне dhcp-пула из диапазона 192.168.1.* роутера, выход в инет я сам настраивал ручками, гуглил...), это какое-то имеет значение в том плане, чтобы в iptables что-то прописывать?
Роутер в инете сидит под статическим белым IP, арендуется у провайдера.

2

Для начала схему сети в студию.....
Затем бум дальше смотреть....

3

Загрузив модуль ментальной связи:

 Консоль:

service iptables stop
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT -m comment --comment "new HTTP input packets"
iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT -m comment --comment "new FTP input packets"
iptables -A INPUT -m state --state NEW -m tcp -p tcp --drpot 22 -j ACCEPT -m comment --comment "new SSH input packets"
iptables -A OUTPUT -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT
iptables -P INPUT DROP
iptables -P OUTPUT DROP

Должен работать инет "локальный". Так же будет доступ к серверу по ssh (если дефолтный порт, что не айс), http и ftp

И баба с воза, и волки сыты...

4 (31.10.2013 09:37:29 отредактировано ruldik)

ab

5 (31.10.2013 18:14:39 отредактировано Sergey.Valikov)

в интернете много ресурсов по iptables... но ни один как на зло не отвечает на твой вопрос

просто у меня openSUSE уже 4 года не падал....

6

Sergey.Valikov пишет:

в интернете много ресурсов по iptables

везде пишут про цепочки, проброс портов, маскарадинг и тд
но ни в одном из них никто не объясняет КАК это делается

вот простой пример

afanasev.p пишет:

service iptables stop
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT -m comment --comment "new HTTP input packets"
iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT -m comment --comment "new FTP input packets"
iptables -A INPUT -m state --state NEW -m tcp -p tcp --drpot 22 -j ACCEPT -m comment --comment "new SSH input packets"
iptables -A OUTPUT -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT
iptables -P INPUT DROP
iptables -P OUTPUT DROP

для меня это просто набор строчек
и что с ним делать? создать пустой файл и скопировать?
а файл потом сохранить или как? и куда перенести?

ПатреГ не любит Gnome...

7 (31.10.2013 19:16:02 отредактировано azazello13)

Для начала схему сети в студию.....

ок.
интернет дома через роутер стандартный - zyxel с ip 192.168.1.1.
На роутере поднят pppoe со статичным ип-адресом х.х.х.х, арендуемым у isp-провайдера.
За роутером компы домашней локалки - виндовый и собственно недавно появившийся сервер на centos, оба подключены по ethernet.
Виндовый получает ип-адрес из dhcp-пула адресов роутера, линуксовому же я назначил статичный ип вне dhcp-пула адресов роутера - 192.168.1.60, прописал в конфиге к eth0 шлюз - ип роутера, днс-ы, вообщем интернет на линуксе заработал.
Но с указанным мною раньше конфигом по умолчанию он не работает, приходится выполнять команду

iptables -F

.
С моим конфигом тоже не работает, даже пинги с сервера во внешку не идут.

везде пишут про цепочки, проброс портов, маскарадинг и тд
но ни в одном из них никто не объясняет КАК это делается

соглашусь)

и что с ним делать? создать пустой файл и скопировать?
а файл потом сохранить или как? и куда перенести?

насколько я понимаю, надо создать sh-скрипт с этим содержимым - файл с расширением sh, и далее или запускать вручную или положить в одну из папок rc.d, смотря какой уровень загрузки системы у вас по умолчанию идёт. А уж из неё все скрипты при загрузке выполняются, и этот ваш выполнится.
Только вот зачем так, если можно напрямую открыть на редактирование etc/sysconfig/iptables и в нём вносить правки, не пойму тоже.

Так же будет доступ к серверу по ssh (если дефолтный порт, что не айс), http и ftp

порты хочу сменить для большей секьюрности на нестандартные, но позже, когда с iptables разберусь...
Это уже следующий шаг будет..

8 (02.11.2013 05:55:12 отредактировано ruldik)

у меня не ZyXEL.... но...
Вообщем у меня на маршрутизаторе сделан проброс порта 1723 и протокола GRE на VPN серв (CentOS)...
На самом Centos у меня работают следующие правила...

 Консоль:

-P INPUT DROP
-P FORWARD DROP
-P OUTPUT DROP
-A INPUT -i lo -j ACCEPT
-A INPUT -p icmp -m icmp --icmp-type 0 -j ACCEPT
-A INPUT -p icmp -m icmp --icmp-type 8 -j ACCEPT
-A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A INPUT -i eth0 -p tcp -m tcp --dport 22 -j ACCEPT
-A INPUT -i ppp+ -p tcp -m tcp --dport 22 -j ACCEPT
-A INPUT -p gre -j ACCEPT
-A INPUT -p tcp -m tcp --dport 1723 -j ACCEPT
-A INPUT -p udp -m udp --dport 123 -j ACCEPT
-A FORWARD -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -i ppp+ -o eth0 -j ACCEPT
-A OUTPUT -o lo -j ACCEPT
-A OUTPUT -p icmp -j ACCEPT
-A OUTPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A OUTPUT -o eth0 -p tcp -m tcp --sport 22 -j ACCEPT
-A OUTPUT -o ppp+ -p tcp -m tcp --sport 22 -j ACCEPT
-A OUTPUT -p udp -m udp --sport 123 -j ACCEPT
-A OUTPUT -p tcp -m tcp --dport 53 -j ACCEPT
-A OUTPUT -p udp -m udp --dport 53 -j ACCEPT

Был у меня опыт настройки ZyXEL Keenetic Ultra по настройке проброса портов и протоколов на vpn serv.... Так там надо было в NAT сделать проброс протокола PPTP и обновить прошу до бета-версии, в которой исправлен баг с GRE....

9

Вот эта статья реально помогла, всё доходчиво и на конкретных портах и примерах...
Спасибо человеку ab
http://linux-admin.ru/archives/62