При сбросе IPTables команды apt-get и wget работают правильно, а также загружают то, что я хочу. Но как только я активирую этот брандмауэр, он перестает работать. Пинги по-прежнему работают.
Я хочу разрешить все исходящие соединения. Вот почему я добавил в конце «iptables -P OUTPUT ACCEPT».
Межсетевой экран IPTables: http://pastebin.com/pTGyiz7c
iptables -L -n -v: http://pastebin.com/6Q8Mbgfh
Вам необходимо разрешить входящие пакеты, связанные с вашими исходящими соединениями.
iptables -I INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
Если это не сработает:
iptables -I INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
Здесь обсуждаются различия: https://unix.stackexchange.com/questions/108169/what-is-the-difference-between-m-conntrack-ctstate-and-m-state-state
В вашем брандмауэре отсутствует основная часть. Первый пакет отправляется вовне правильно (так как политика ВЫХОДА - ПРИНЯТЬ). Первый входящий пакет отклоняется, так как в правиле INPUT ничего не разрешено. Вы должны иметь iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
чтобы разрешить отслеживание соединения, чтобы разрешить приход пакета. Второму пакету также будет разрешено выйти, так как политика ВЫХОДА - ПРИНЯТЬ.
Добавьте правило, чтобы регистрировать то, что отклонено, важно. Добавить iptables -A INPUT -j LOG --log-prefix "DROP4 INPUT "
в конце правила INPUT.
Замечание: все ли открытые порты нужны в INPUT? Служба mysql, открытая для Интернета, на самом деле не очень хорошая идея ...