INFORMATICS

The Best

Przełącznik języka

BUY COFFEE

If you like the website and want to support the project!

Postaw mi kawę na buycoffee.to

This Site

CMS

Hardware

Uncategorised

useful sites

Databases

Emulators

Powershell

Storage Array

DNS

Antivirus program

Licznik

3.png0.png4.png2.png1.png6.png0.png
Today1057
Yesterday1207
This week7042
This month17061
Total3042160

Visitor Info

  • IP: 3.15.17.60
  • Browser: Unknown
  • Browser Version:
  • Operating System: Unknown

Who Is Online

2
Online

Friday, 22 November 2024 20:20

Iptables podstawowa konfiguracja

User Rating: 5 / 5

Star ActiveStar ActiveStar ActiveStar ActiveStar Active
 

 

Przykład konfiguracji IPTABLES krok po kroku testowałem na Debianie.

Jest to konfiguracja która zapewnia podstawowy poziom bezpieczeństwa dla serwera HTTP, FTP, POSTFIX, SSH.

Po konfiguracji serwer będzie blokował wszystkie porty dla ruchu przychodzącego z internetu z wyjątkiem portów zadanych (dozwolonych).

Pierwszy krok sprawdzamy czy IPTABLES jest zainstalowany wpisujemy komendę

#iptables

odpowiedź (DEBIAN) to

iptables v1.4.8: no command specified

Try 'iptables -h' or 'iptables --help' for more information.

Oznacza to że IPTABLES jest zainstalowane na serwerze więcej komend uzyskamy wpisując polecenie

#iptables -h

jeżeli nie ma zainstalowanego IPTABLES instalujemy go

#apt-get install iptables 

można też użyć komendy #apt-get install iptable* by znaleźć poprawny pakiet

Konfigurujemy IPTABLES

Usuwamy bieżące ustawienia (czyścimy całą konfigurację)

wpisujemy komendy

#iptables -F - kasuje całą konfigurację

#iptables -X

 

Sprawdzamy czy baza IPTABLES jest faktycznie czysta komendą

#iptables -L  -  komenda ta wylistuje konfigurację IPTABLES

Wynikiem tego polecenia jest:

Chain INPUT (policy ACCEPT)

target     prot opt source               destination

Chain INPUT (policy ACCEPT)

target     prot opt source               destination

Chain INPUT (policy ACCEPT)

target     prot opt source               destination

Następnym krokiem jest skonfigurowanie listy dozwolonych portów:

SSH                 iptables -A INPUT -p tcp --dport 22 -j ACCEPT
HTTP                iptables -A INPUT -p tcp --dport 80 -j ACCEPT
HTTPS               iptables -A INPUT -p tcp --dport 443 -j ACCEPT
POP                 iptables -A INPUT -p tcp --dport 25 -j ACCEPT
POPS                iptables -A INPUT -p tcp --dport 465 -j ACCEPT
IMAP                iptables -A INPUT -p tcp --dport 143 -j ACCEPT
IMAPS               iptables -A INPUT -p tcp --dport 993 -j ACCEPT
SMTP (submission)   iptables -A INPUT -p tcp --dport 587 -j ACCEPT
SMTP                iptables -A INPUT -p tcp --dport 110 -j ACCEPT
POP3S               iptables -A INPUT -p tcp --dport 995 -j ACCEPT

Zezwalamy również na użycie pinga (ICMP)

iptables -A INPUT -p icmp -j ACCEPT

 

Cały lokalny ruch będzie dozwolony

iptables -A INPUT -s 127.0.0.1 -j ACCEPT

Zezwalamy na połączenia nawiązane

 

iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT

iptables -A FORWARD -i eth0 -m state --state RELATED,ESTABLISHED -j ACCEPT

iptables -A OUTPUT -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT

Akceptacja ruchu na loopback, nasze usługi muszą mieć możliwość wzajemnie się komunikować.
iptables -A INPUT -i lo -j ACCEPT
iptables -A FORWARD -o lo -j ACCEPT

I teraz najważniejsza sprawa blokujemy cały ruch z zewnątrz który nie został powyżej uwzględniony

iptables -A INPUT -j REJECT - odrzucenie ruchu wchodzącego

iptables -A FORWARD -j REJECT - odrzucenie ruchu przekazującego

iptables -A OUTPUT -j ACCEPT - zezwalamy na ruchu przekazującego

Ponownie sprawdzamy wpisaną konfigurację komendą

#iptables -L

Chain INPUT (policy ACCEPT)
target     prot opt source               destination
ACCEPT     tcp  --  anywhere             anywhere            tcp dpt:ssh
ACCEPT     tcp  --  anywhere             anywhere            tcp dpt:www
ACCEPT     tcp  --  anywhere             anywhere            tcp dpt:https
ACCEPT     tcp  --  anywhere             anywhere            tcp dpt:smtp
ACCEPT     tcp  --  anywhere             anywhere            tcp dpt:ssmtp
ACCEPT     tcp  --  anywhere             anywhere            tcp dpt:imap2
ACCEPT     tcp  --  anywhere             anywhere            tcp dpt:imaps
ACCEPT     tcp  --  anywhere             anywhere            tcp dpt:submission
ACCEPT     tcp  --  anywhere             anywhere            tcp dpt:pop3
ACCEPT     tcp  --  anywhere             anywhere            tcp dpt:pop3s
ACCEPT     icmp --  anywhere             anywhere
ACCEPT     all  --  localhost            anywhere
ACCEPT     all  --  anywhere             anywhere            state RELATED,ESTABLISHED
REJECT     all  --  anywhere             anywhere            reject-with icmp-port-unreachable

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination
ACCEPT     all  --  anywhere             anywhere            state RELATED,ESTABLISHED
REJECT     all  --  anywhere             anywhere            reject-with icmp-port-unreachable

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination
ACCEPT     all  --  anywhere             anywhere            state NEW,RELATED,ESTABLIS

 

Po restarcie usługi IPTABLES lub po restarcie serwera wpisana konfiguracja zacznie chronić nasz serwer.

 

Korekta błędów

Usuwamy czwartą regułę z INPUT

#iptables -D INPUT 4

Wpisujemy tegułę na 5 pozycję łańcucha

#iptables -I OUTPUT 5 -j SPAM
Dodaje rolę do łańcucha iptables na piątej pozycji

Zatrzymywanie serwisu IPTABLES na RED HAT, CentOS, FEDORA

/etc/init.d/iptables stop

lub

service iptables stop

Jeżeli używasz Debiana, Ubuntu

Zapisywanie konfiguracji i jej odtwarzanie

iptables-save > /root/firewall.rules
oraz
iptables-restore < /root/firewall.rules

komanda dla Centos 6.4

iptables-save > /etc/sysconfig/iptables

Nie ma serwisu do zatrzymania używasz poniższych komend

iptables -X
iptables -t nat -F
iptables -t nat -X
iptables -t mangle -F
iptables -t mangle -X
iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT

 

Search