2015-08-21 1 views
0

В моих CentOS 6 я добавил правила Iptables как DROP все политики, какНе удается получить доступ к порту номер 80 и 443 после добавления Iptables правила

Iptables -P ВХОД DROP

Тогда я позволяют Port NO 22,80,443 с этой командой,

Iptables -A ВХОДНОГО -i eth0 -p TCP --dport 80 -j ACCEPT

Iptables -A ВХОДА -i eth0 -p TCP --dport 443 -j ACCEPT

IPTables -A ВХОД -i eth0 -p TCP --dport 22 -j ACCEPT

Теперь можно получить доступ к SSH с шпатлевка. Но я не могу получить доступ к Интернету. Я должен знать точную проблему этого. Пожалуйста, помогите мне.

+1

правила выглядят прекрасно до сих пор. Мы не можем сказать больше с небольшой информацией, которую вы дали. Работает ли HTTP-сервер вообще? Это работает, если вы полностью очистите правила? – arkascha

+0

Только эти правила? Нет ESTABLISHED, ни DNS не принимаете? –

+1

Без темы. Попробуйте serverfault или суперпользователь. – EJP

ответ

1

Ofcourse Вы не можете получить доступ к Интернету. Вы просто добавили правило, которое снижает весь входящий трафик (за исключением трафика, поступающего в порты 22, 80 и 443).

При попытке получить доступ к Интернету (если вы используете браузер), ваша машина устанавливает соединение с

<local IP>:<port1> <----> <remote IP>:80 

Когда удаленный сервер реагирует на вас, он будет реагировать на ту же port1 что вы отправили запрос (который НЕ будет 22, или 80 или 443. Это будет число, обычно превышающее 32768), поэтому оно будет опущено iptables.

Попробуйте эти правила вместо:

iptables -P INPUT DROP 
iptables -I INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT 
iptables -A INPUT -i eth0 -p tcp --dport 22 -j ACCEPT 
iptables -A INPUT -i eth0 -p tcp --dport 80 -j ACCEPT 
iptables -A INPUT -i eth0 -p tcp --dport 443 -j ACCEPT 

Второе правило говорит таблицы IP-ПРИНЯТЬ трафик, который приходит к нам, если он приходит в порт, который мы использовали для отправки исходящего трафика. Это позволит вам увидеть ответ с сервера, который вы отбрасываете.

Однако по-прежнему существует проблема с DNS-трафиком, поскольку он использует UDP, а не TCP. Вы можете обойти это, изменив первое правило на:

iptables -P INPUT -p tcp DROP 

так что он только снижает трафик TCP, но не UDP-трафик. Могут быть другие способы обойти проблему DNS, в зависимости от того, что именно вы хотите сделать.

Так что ваш окончательный набор правил должен выглядеть следующим образом:

iptables -P INPUT -p tcp DROP 
iptables -I INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT 
iptables -A INPUT -i eth0 -p tcp --dport 22 -j ACCEPT 
iptables -A INPUT -i eth0 -p tcp --dport 80 -j ACCEPT 
iptables -A INPUT -i eth0 -p tcp --dport 443 -j ACCEPT 
Смежные вопросы