GNU/Linux >> Znalost Linux >  >> Cent OS

Jak otevřít port Http ( 80 ) v Iptables na CentOS

Iptables firewall

Nedávno jsem nastavoval webový server na centos s nginx a php. Instalace nginx byla v pořádku, ale http port systému nebyl přístupný zvenčí.

Je to proto, že centOS ve výchozím nastavení používá některá pravidla brány firewall iptables. Přístupný byl pouze port ssh (22) a fungoval vzdálený shell. Je tedy nutné otevřít port 80, aby webový server jako nginx fungoval.

Iptables je firewall na linuxu, který lze nakonfigurovat tak, aby přijímal nebo odmítal síťový provoz na základě různých druhů sad pravidel na úrovni paketů. Je tedy nutné nakonfigurovat tento firewall tak, aby umožňoval připojení na síťových portech.

Zkontrolujte pravidla Iptables

Existují 2 způsoby, jak nakonfigurovat iptables pro otevření portu 80. Prvním je použití příkazu iptables a druhým vytvořením konfiguračního souboru. Nejprve zkontrolujte platná existující pravidla iptables. Příkaz je celkem jednoduchý. Zde je ukázkový výstup.

[[email protected] ~]# iptables -LCain INPUT (zásady ACCEPT)cíl chráněný zdroj cíl PŘIJÍMEJTE vše -- kdekoli kdekoli stát SOUVISEJÍCÍ, ZALOŽENÝ PŘIJÍMAT icmp -- kdekoli kdekoliPŘIJÍMAT vše -- kdekoli kdekoli PŘIJÍMAT tcp -- kdekoli kdekoli stát NOVÉ tcp dpt:sshREJECT all -- kdekoli odmítnout-s icmp-host-prohibitedChain FORWARD (zásady ACCEPT)target prot opt ​​source destinationREJECT all --kdekoliv odmítnutí-s icmp-host-prohibitedChain OUTPUT (policy ACCEPT)target prot opt ​​source destination[[email protected] ~]#

Jak je vidět na výstupu, v řetězci INPUT je na konci řádek REJECT, který říká, odmítnout vše. Předchozí řádek však umožňuje přijímat ssh připojení, takže ssh funguje. Trochu podrobnější a číselný seznam lze zobrazit pomocí možností v a n spolu s možností L

[[email protected] ~]# iptables --line -vnLCain INPUT (zásady PŘIJÍMEJTE 0 paketů, 0 bajtů)num pkts bajtů cíl prot opt ​​in out source destination1 273 22516 ACCEPT all -- * * 0.0.0.0/ 0 0.0.0.0/0 stav SOUVISEJÍCÍ,ZALOŽENÝ2 0 0 PŘIJÍMAT icmp -- * * 0.0.0.0/0 0.0.0.0/03 0 0 PŘIJÍMAT vše -- lo * 0.0.0.0/0 0.0.0.0/04 1 60 PŘIJÍMAT -- * * 0.0.0.0/0 0.0.0.0/0 stav NOVÝ tcp dpt:225 271 36456 ODMÍTNOUT vše -- * * 0.0.0.0/0 0.0.0.0/0 odmítnout-s icmp-host-prohibitedChain FORWARD (zásady ACCEPT) 0 paketů, 0 bajtů) počet pkts bajtů cíl prot opt ​​in out source destination1 0 0 ODMÍTNUTÍ vše -- * * 0.0.0.0/0 0.0.0.0/0 odmítnutí-s icmp-host-prohibitedChain OUTPUT (zásady ACCEPT 172 paketů s, 24494 bajtů)num pkts bajtů cíl prot opt ​​in out source destination[[email protected] ~]#

Otevřete port 80 v Iptables

Abychom mohli přijmout připojení http, musíme přidat pravidlo na řádek číslo 5 a pod ním stisknout řádek REJECT. Zde je příkaz, jak to udělat.

# iptables -I INPUT 5 -i eth0 -p tcp --dport 80 -m state --state NEW,ESTABLISHED -j ACCEPT

Výše uvedený příkaz přidá na řádek #5 pravidlo, které uvádí, že firewall by měl přijímat příchozí připojení na portu 80. Znovu zkontrolujte pravidla iptables.

[[email protected] ~]# iptables --line -vnLCain INPUT (zásady PŘIJÍMEJTE 0 paketů, 0 bajtů)num pkts bajtů cíl prot opt ​​in out source destination1 291 23868 ACCEPT all -- * * 0.0.0.0/ 0 0.0.0.0/0 stav SOUVISEJÍCÍ,ZALOŽENÝ2 0 0 PŘIJÍMAT icmp -- * * 0.0.0.0/0 0.0.0.0/03 0 0 PŘIJÍMAT vše -- lo * 0.0.0.0/0 0.0.0.0/04 1 60 PŘIJÍMAT -- * * 0.0.0.0/0 0.0.0.0/0 stav NOVÝ tcp dpt:225 0 0 PŘIJÍMAT tcp -- eth0 * 0.0.0.0/0 0.0.0.0/0 tcp dpt:80 stav NOVÝ, ZALOŽENÝ 32 286 vše -- * * 0.0.0.0/0 0.0.0.0/0 odmítnutí-s icmp-host-prohibitedChain FORWARD (zásady PŘIJÍMAT 0 paketů, 0 bajtů) počet pkts bajtů cíl prot opt ​​in out source destination1 0 0 REJECT all -- * * 0.0.0.0/0 0.0.0.0/0 odmítnutí-s icmp-host-prohibitedChain OUTPUT (zásady PŘIJÍMEJTE 4 pakety, 608 bajtů) počet pkts bajtů cíl prot opt ​​in zdrojový cíl[[email protected] ~]# 

Nyní máme nové pravidlo tcp portu 80 na řádku č. 5, takže http port je nyní přístupný z vnější sítě.

Uložte pravidla iptables

S novými pravidly je nyní otevřený port 80, ale tato změna je dočasná a iptables by se vrátily k předchozím pravidlům, pokud by byl server restartován.

Aby to bylo trvalé, zadejte příkaz iptables save.

[[email protected] ~]# service iptables saveiptables:Ukládání pravidel brány firewall do /etc/sysconfig/iptables:[ OK ]

Nová pravidla se uloží do souboru /etc/sysconfig/iptables .

Takto soubor vypadá:

# Generováno iptables-save v1.4.7 v pátek 25. října 10:33:46 2013*filtr:INPUT ACCEPT [0:0]:FORWARD ACCEPT [0:0]:OUTPUT ACCEPT [39:6956]-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT-A INPUT -p icmp -j ACCEPT-A INPUT -i lo -j ACCEPT-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j PŘIJÍMEJTE-A VSTUP -i eth0 -p tcp -m tcp --dport 80 -m stav --stav NOVÝ,ZASTAVENÝ -j PŘIJMOUT-A VSTUP -j ODMÍTNUTÍ --odmítnout-s icmp-host-prohibited-A FORWARD -j REJECT --reject-with icmp-host-prohibited COMMIT# Dokončeno Pá 25. října 10:33:46 2013

Nyní je změna trvalá.

Případně můžete přímo upravit konfigurační soubor iptables a restartovat iptables a stejná změna se projeví.

[[email protected] ~]# iptables služby restartiptables:Vyprázdnění pravidel brány firewall:[ OK ]iptables:Nastavení řetězců podle zásady PŘIJMOUT:filtr [ OK ]iptables:Uvolnění modulů:[ OK ]iptables:Použití pravidel brány firewall:[ OK ][[email protected] ~]#

Závěr

To byl rychlý příklad toho, jak otevřít určitý port v iptables, aby byl přístupný. Chcete-li se dozvědět více o iptables, podívejte se na manuálové stránky spuštěním příkazu "man iptables" ve vašem terminálu, nebo si jej zkontrolujte online zde:

https://linux.die.net/man/8/iptables
Cent OS
  1. Jak změnit port SSH v CentOS

  2. Jak otevřít porty v Ubuntu a CentOS pomocí IPtables

  3. CentOS / RHEL 7 :Jak otevřít port ve firewallu pomocí firewall-cmd?

  1. Průvodce otevřením portů v CentOS

  2. CentOS / RHEL :Jak zjistit, zda je síťový port otevřený nebo ne?

  3. Jak otevřít port 2195 v iptables CentOS 6 pro aktivaci APNS

  1. Jak otevřít porty na Iptables na serveru Linux

  2. Jak otevřít porty na Iptables na serveru Linux

  3. Průvodce otevřením portů v CentOS