Mõtlesin mõnda aega kahele asjale, mis puudutavad iptablesi: enamik neist, kes neid õpetusi otsivad, on algajad ja teiseks otsivad paljud juba midagi üsna lihtsat ja juba välja töötatud.
See näide on mõeldud veebiserveri jaoks, kuid saate hõlpsalt lisada rohkem reegleid ja kohandada seda vastavalt oma vajadustele.
Kui näete oma ip-de jaoks "x" muutust
#!/bin/bash
# Puhastame iptablesi tabeleid -F iptables -X # Puhastame NAT iptables -t nat -F iptables -t nat -X # mangle tabelit näiteks PPPoE, PPP ja ATM iptables -t mangle -F iptables -t mangle -X # Poliitikad Ma arvan, et see on parim viis algajatele ja # pole ikka veel halb, ma selgitan väljundit (väljundit), sest nad on väljuvad ühendused #, sisend loobume kõigest ja ükski server ei tohiks edastada. iptables -P INPUT DROP iptables -P VÄLJUND VÕTAKE vastu iptables -P FORWARD DROP #Intraneti LAN-sisevõrk = eth0 #Extranet wan-ekstranet = eth1 # Hoidke olekut. Kõik, mis on juba ühendatud (loodud), jääb nii: iptables -A INPUT -m state - state ESTABLISHED, RELATED -j ACCEPT # Loop device. iptables -A INPUT -i lo -j ACCEPT # http, https, me ei määra liidest, sest # me tahame, et see oleks kõigi iptables -A INPUT -p tcp --dport 80 -j ACCEPT iptables -A INPUT -p tcp - dport 443 -j ACCEPT # ssh ainult sisemiselt ja sellest ip-i iptablettide vahemikust -A INPUT -p tcp -s 192.168.xx / 24 -i $ sisevõrk --port 7659 -j ACCEPT # seire näiteks juhul, kui neil on zabbix või mõni muu snmp-teenuse iptables -A INPUT -p tcp -s 192.168.xx / 24 -i $ intranet --port 10050 -j ACCEPT # icmp, pingige, see on teie otsustada iptables -A INPUT -p icmp -s 192.168. xx / 24 - i $ intranet -j ACCEPT #mysql postgresiga on port 5432 iptables -A INPUT -p tcp -s 192.168.xx --port 3306 -i $ intranet -j ACCEPT #sendmail bueeeh, kui soovite mõnda kirja saata #iptables -A VÄLJU -p tcp --port 25 -j VASTU # SPOOFINGU VÄHENDAMINE 09 # SERVER_IP = "07.xxx" # serveri IP - teie serveri päris wan ip LAN_RANGE = "2014.xx / 190 "# teie võrgu LAN-i vahemik või vlan # IP-d, mis ei tohiks kunagi siseneda ekstranetti,on kasutada natuke # loogikat, kui meil on puhtalt WAN-liides, see ei tohiks kunagi selle liidese kaudu sisestada # LAN-tüüpi liiklust SPOOF_IPS = "192.168/21 0.0.0.0/8 127.0.0.0/8 10.0.0.0/8 172.16.0.0 .12 / 192.168.0.0 "# Vaiketoiming - sooritatakse siis, kui mis tahes reegel vastab ACTION =" DROP "# Paketid minu serveri sama ip-ga läbi wan iptables -A INPUT -i $ extranet -s $ SERVER_IP -j $ ACTION # iptables -A VÄLJUND -o $ extranet -s $ SERVER_IP -j $ ACTION # Paketid, mille LAN-vahemik on langenud, panin selle niimoodi, kui teil on # mõnda konkreetset võrku, kuid see on üleliigne, kuna järgmine # reegel on sees silmus "jaoks" iptables -A SISEND -i $ ekstranet -s $ LAN_RANGE -j $ ACTION iptables -A VÄLJUND -o $ extranet -s $ LAN_RANGE -j $ ACTION ## Kõiki SPOOF-i võrke pole wan ip jaoks lubanud $ SPOOF_IPS teevad iptables -A SISEND -i $ ekstranet -s $ ip -j $ ACTION iptables -A VÄLJUND -o $ extranet -s $ ip -j $ ACTION valmis
Nagu alati, ootan teie kommentaare, olge siin blogis kursis, aitäh
See aitab mul edasi õppida natuke rohkem tänu tänu kopeeritud.
olete teretulnud, hea meel olla abiks
Mul on väga kahju, kuid mul on kaks küsimust (ja üks kingituseks 😉):
Kas jõuaksite selle konfiguratsiooniga Apache'i käitama ja sulgege ülejäänud, välja arvatud SSH?
#Puhastame lauad
iptables-F
iptables-X
Puhastame NATi
iptables -t nat -F
iptables -t nat -X
iptables -A SISEND -p tcp –port 80 -j VASTU
ssh ainult sisemiselt ja sellest IP-valikust
iptables -A SISEND -p tcp -s 192.168.xx / 24 -i $ sisevõrk –port 7659 -j ACCEPT
Teine küsimus: kas selles näites on SSH-s kasutatav port 7659?
Ja kolmas ja viimane: millisesse faili tuleks see konfiguratsioon salvestada?
Suur aitäh õpetuse eest, on kahju, et olete nii algaja ja ei saa seda hästi ära kasutada.
see on reegel, mida vajate apache'i http-i jaoks
iptables -A SISEND -p tcp –port 80 -j VASTU
kuid peate ka deklareerima loobumise vaikepoliitika (see on skriptis)
Iptable -P sisendi langus
iptables -P VÄLJUND aktsepteerib
iptables -P EDASI DROP
ja seda seetõttu, et kui olete kaugel, viskab see teid minema.
iptables -A INPUT -m olek – riik on loodud, SEOTUD -j VÕTTA
kui näites on selle ssh-i port 7659, on see vaikimisi 22, kuigi soovitan muuta pordiks "pole teada"
mees, keda ma ei tea, nagu soovite ... tulemüür.sh ja panite selle rc.local'i (sh tulemüür.sh), nii et see töötab automaatselt, sõltub see, mis operatsioonisüsteem teil on, on faile, kuhu saate reeglid otse panna.
Hei, teie skript on seda analüüsides väga hea ... Kas teate, kuidas saaksin tagasi lükata kõik minu kasutajate taotlused konkreetsele veebisaidile? kuid sellel veebisaidil on palju servereid ...
Soovitan muid võimalusi:
1) Võite luua oma DNS-is võltstsooni ...
2) Võite asetada puhverserveri ACL-iga
pattude embargo
Iptable'i jaoks võib see meeldida ... see pole alati parim variant (on rohkem võimalusi)
iptables -A INPUT -s blogi.desdelinux.ne -j TILK
iptables -A OUTPUT -d ajaveeb.desdelinux.net -j DROP
Öelge mulle, kas see töötas
Aitäh vastuse eest, kõik sai selgeks. Küsisin sadama kohta, sest olin üllatunud, kui kasutasin 7659, kuna erasadamad algavad 49152-st ja see võib mõnda teenust või midagi sellist häirida.
Jällegi aitäh kõige eest, see on tore!
Tervitused.
BrodyDalle, kuidas ma saan sinuga ühendust võtta? Väga huvitav teie stsenaarium.
soulofmarionet_1@hotmail.com
Eelmine rida "iptables -A VÄLJUND -o $ extranet -s $ ip -j $ ACTION" on mõeldud selleks, et takistada teie enda masina võltsimist? Või on võimalik, et siseneb mõni mürgitatud pakett ja see võib koos selle mürgitatud allikaga lahkuda ja seetõttu on reegel ka OUTPUT-i lisatud?
Suur tänu selgituse eest !!!
see on minu enda iptablesi skript, see on väga täielik:
# franes.iptables.airy
# doc.iptables.airoso: iptables pärandile ja nft-le
#
# tulemüüri porti
###############################
#! / bin / bash
#
# tühjendage ekraan
################################/etc/f-iptables/default.cfg ||||| algus
selge
# jätke tühi rida
miss
eksport jah = »» ei = »kaja ära»
# muutujat, mida saate juurdepääsu võimaldamiseks muuta
####################### muutujad, mida saab modifitseerida $ jah või $ no abil
eksport hayexcepciones = »$ ei»
# on erandeid: $ yes, et lubada erakordseid hoste, ja $ no, et keelata
heina eksportimine = »$ ei»
# heina heitmine: $ jah, et lubada kolmanda osapoole pingutusi, ja $ ei, et keelduda
eksportida heinaperverit = »$ ei»
# haylogeosserver: $ jah, et saaksite TCP sisse logida $ ei, et TCP ei saaks sisse logida
######
####################### muutujad "," või vahemike ":" muutmiseks.
ekspordi erandid = »baldras.wesnoth.org»
# erandit lubavad tulemüürist ühe või mitu hosti või pole väärtust
ekspordi logiserver = visake, ipp, dict, ssh
# TCP-serveri porti, mis logitakse pakettide saabumisel
ekspordi redserver = 0/0
# redserver: serveripordide võrk on eelistatavam kohalik võrk või mitu ips
ekspordi klient punane = 0/0
#clientnet: kliendipordide võrk, mida eelistatakse kõigile võrkudele
eksportida servidortcp = ära viskama, ipp, dict, 6771
# servidortcp: määratud TCP-serveri pordid
ekspordi serverudp = visake ära
#udpserver: määratud udp-serveri pordid
eksport klientudp = domeen, bootpc, alglaadimised, ntp, 20000: 45000
#udp klient: määratud udp kliendi pordid
eksport klienttcp = domeen, http, https, ipp, git, dict, 14999: 15002
# tcp klient: määratud tcp kliendi pordid
############################### lõpp /etc/f-iptables/default.cfg |||||
################################# muutujate lõpp muutmiseks
ekspordi tulemüür = muutujad $ 1 = $ 2
kui ["$ muutujad" = "$ NULL"]; siis allikas /etc/f-iptables/default.cfg;
else source / etc / f-iptables / $ 2; fi
################################## või kirjutate muutujad üle .cfg-failiga
####################################################### ################################################
ekspordi tulemüür = $ 1 ekspordi muutujad = $ 2
############################################## automaatsed süsteemimuutujad
kui ["$ tulemüür" = "lahti ühendatud"]; siis kaja TULEMÜÜR lahtiühendatud;
eksport aktiveerib serveri = »$ no» activateclient = »$ no» märg = »$ ei»;
elif ["$ tulemüür" = "klient"]; siis kajake tulemüüri klient;
eksport aktiveerib serveri = »$ no» activateclient = »» märg = »$ ei»;
elif ["$ tulemüür" = "server"]; siis kaja tulemüüri server;
eksport aktiveerib serveri = »» activateclient = »$ no» märg = »$ ei»;
elif ["$ tulemüür" = "klient ja server"]; siis kajake tulemüüri klient ja server;
eksport aktiveeri server = »»; ekspordi aktiveeriv klient = »»; eksport märg = »$ ei»;
elif ["$ tulemüür" = "lubav"]; siis kaja LUBATAV TULETULE;
eksport aktiveerib serveri = »$ no» activateclient = »$ no» märg = »»;
teine
$ check sudo echo iptables-legacy:
$ check sudo iptables-legacy -v -L INPUT
$ check sudo iptables-legacy -v -L VÄLJUND
$ check sudo echo iptables-nft:
$ check sudo iptables-nft -v -L SISEND
$ check sudo iptables-nft -v -L VÄLJUND
kaja _____parameetrid____ $ 0 $ 1 $ 2
echo "ilma parameetriteta on IPTV-de loend."
echo "Esimene parameeter (iptablesi lubamine): lahti ühendatud või klient või server või klient ja server või lubav."
echo "Teine parameeter: (valikuline): fail default.cfg valib /etc/f-iptables/default.cfg"
echo "Muutuja seaded:" $ (ls / etc / f-iptables /)
väljumine 0; fi
#################
miss
echo Viskab $ 0 ühenduse katkestamata või kliendi või serveri või kliendi ja serveri või lubavad või muutujad või ilma parameetrite kasutamiseta iptables.
kaja Faili $ 0 sees on mõned muudetavad muutujad.
################################### ülaltoodud muutujad on aktiveeritud
####################################
kaja määrates iptables muutujad
kajaga aktiveeritud muutujad
miss
############################# iptables reeglid
kaja iptables-legacy seadistamine
sudo / usr / sbin / iptables-legacy -t filter -F
sudo / usr / sbin / iptables-legacy -t nat -F
sudo / usr / sbin / iptables-legacy -t mangle -F
sudo / usr / sbin / ip6tables-legacy -t filter -F
sudo / usr / sbin / ip6tables-legacy -t nat -F
sudo / usr / sbin / ip6tables-legacy -t mangle -F
sudo / usr / sbin / ip6tables-legacy -A SISEND -j DROP
sudo / usr / sbin / ip6tables-legacy -A VÄLJUND -j DROP
sudo / usr / sbin / ip6tables-legacy -EEDASI -j DROP
sudo / usr / sbin / iptables-legacy -A INPUT -s 127.0.0.1 -d 127.0.0.1 -j ACCEPT> / dev / null
$ haylogserver sudo / usr / sbin / iptables-legacy -A INPUT -p tcp -m multiport –dports $ logserver -j LOG>> dev / null
$ hayeexceptions sudo / usr / sbin / iptables-legacy -A INPUT -s $ erandid -j ACCEPT> / dev / null
$ activ server sudo / usr / sbin / iptables-legacy -A INPUT -p udp -m multiport –dports $ serverudp -s $ redserver -d $ redserver -j ACCEPT> / dev / null
$ aktiveeri server sudo / usr / sbin / iptables-legacy -A INPUT -p tcp -m multiport –dports $ serverrtcp -s $ redserver -d $ redserver -j ACCEPT> / dev / null
$ activateclient sudo / usr / sbin / iptables-legacy -A INPUT -p udp -m multiport –sports $ clientudp -m state –riik on loodud -s $ clientnet -d $ clientnet -j ACCEPT> / dev / null
$ activateclient sudo / usr / sbin / iptables-legacy -A INPUT -p tcp -m multiport –sports $ clienttcp -m state - riik on loodud -s $ clientnet -d $ clientnet -j ACCEPT> / dev / null
$ hayping sudo / usr / sbin / iptables-legacy -A INPUT -p icmp –icmp-tüüpi kaja-vastus -j ACCEPT> / dev / null
sudo / usr / sbin / iptables-legacy -A SISEND -j DROP> / dev / null
sudo / usr / sbin / iptables-legacy -A VÄLJUND -s 127.0.0.1 -d 127.0.0.1 -j ACCEPT> / dev / null
$ hayexceptions sudo / usr / sbin / iptables-legacy -A VÄLJUND -d $ erandid -j ACCEPT> / dev / null
$ aktiviseeri sudoserver / usr / sbin / iptables-legacy -A VÄLJUND -p udp -m multiport –sport $ serverudp -s $ redserver -d $ redserver -j ACCEPT> / dev / null
$ aktiveeri server sudo / usr / sbin / iptables-legacy -A VÄLJUND -p tcp -m multiport –sport $ serverrtcp -s $ redserver -d $ redserver -j ACCEPT> / dev / null
$ activateclient sudo / usr / sbin / iptables-legacy -A VÄLJUND -p udp -m multiport –dports $ clientudp -s $ clientnet -d $ clientnet -j ACCEPT> / dev / null
$ activateclient sudo / usr / sbin / iptables-legacy -A VÄLJUND -p tcp -m multiport –dports $ clienttcp -s $ clientnet -d $ clientnet -j ACCEPT> / dev / null
$ hayping sudo / usr / sbin / iptables-legacy -A VÄLJUND -p icmp –icmp-tüüpi echo-request -j ACCEPT> / dev / null
sudo / usr / sbin / iptables-legacy -A VÄLJUND -j DROP
sudo / usr / sbin / iptables-legacy-EDASI -j DROP
echo iptables-legacy on lubatud
miss
kaja iptables-nft seadistamine
sudo / usr / sbin / iptables-nft -t filter -F
sudo / usr / sbin / iptables-nft -t nat -F
sudo / usr / sbin / iptables-nft -t mangle -F
sudo / usr / sbin / ip6tables-nft -t filter -F
sudo / usr / sbin / ip6tables-nft -t nat -F
sudo / usr / sbin / ip6tables-nft -t mangle -F
sudo / usr / sbin / ip6tables-nft -A SISEND -j DROP
sudo / usr / sbin / ip6tables-nft -A VÄLJUND -j DROP
sudo / usr / sbin / ip6tables-nft -A EDASI -j DROP
sudo / usr / sbin / iptables-nft -A INPUT -s 127.0.0.1 -d 127.0.0.1 -j ACCEPT> / dev / null
$ haylogserver sudo / usr / sbin / iptables-nft -A INPUT -p tcp -m multiport –dports $ logserver -j LOG>> dev / null
$ hayeexceptions sudo / usr / sbin / iptables-nft -A INPUT -s $ erandid -j ACCEPT> / dev / null
$ activ server sudo / usr / sbin / iptables-nft -A INPUT -p udp -m multiport –dports $ serverudp -s $ redserver -d $ redserver -j ACCEPT> / dev / null
$ aktiveeri server sudo / usr / sbin / iptables-nft -A INPUT -p tcp -m multiport –dports $ serverrtcp -s $ redserver -d $ redserver -j ACCEPT> / dev / null
$ activateclient sudo / usr / sbin / iptables-nft -A INPUT -p udp -m multiport –sport $ clientudp -m state –riik on loodud -s $ clientnet -d $ clientnet -j ACCEPT> / dev / null
$ activateclient sudo / usr / sbin / iptables-nft -A INPUT -p tcp -m multiport –sports $ clienttcp -m state - riik on loodud -s $ clientnet -d $ clientnet -j ACCEPT> / dev / null
$ hayping sudo / usr / sbin / iptables-nft -A INPUT -p icmp –icmp-tüüpi kaja-vastus -j ACCEPT> / dev / null
sudo / usr / sbin / iptables-nft -A SISEND -j DROP> / dev / null
sudo / usr / sbin / iptables-nft -A VÄLJUND -s 127.0.0.1 -d 127.0.0.1 -j ACCEPT> / dev / null
$ hayeexceptions sudo / usr / sbin / iptables-nft -A VÄLJUND -d $ erandid -j ACCEPT> / dev / null
$ aktiveeri server sudo / usr / sbin / iptables-nft -A VÄLJUND -p udp -m multiport –sport $ serverudp -s $ redserver -d $ redserver -j ACCEPT> / dev / null
$ aktiveeri server sudo / usr / sbin / iptables-nft -A VÄLJUND -p tcp -m multiport –sport $ serverrtcp -s $ redserver -d $ redserver -j ACCEPT> / dev / null
$ enable klient sudo / usr / sbin / iptables-nft -A VÄLJUND -p udp -m multiport –dports $ clientudp -s $ clientnet -d $ clientnet -j ACCEPT> / dev / null
$ activateclient sudo / usr / sbin / iptables-nft -A VÄLJUND -p tcp -m multiport –dports $ clienttcp -s $ clientnet -d $ clientnet -j ACCEPT> / dev / null
$ hayping sudo / usr / sbin / iptables-nft -A OUTPUT -p icmp –icmp-tüüpi echo-request -j ACCEPT> / dev / null
sudo / usr / sbin / iptables-nft -A VÄLJUND -j DROP
sudo / usr / sbin / iptables-nft -A EDASI -j DROP
echo iptables-nft on lubatud
miss
$ wet sudo / usr / sbin / iptables-legacy -F> / dev / null
$ wet sudo / usr / sbin / iptables-legacy -A INPUT -s 127.0.0.1 -d 127.0.0.1 -j ACCEPT> / dev / null
$ wet sudo / usr / sbin / iptables-legacy -A INPUT -m olek –riik loodud -j ACCEPT> / dev / null
$ wet sudo / usr / sbin / iptables-legacy -A INPUT -j DROP> / dev / null
$ wet sudo / usr / sbin / iptables-legacy -A VÄLJUND -j ACCEPT> / dev / null
$ wet sudo / usr / sbin / iptables-legacy -A EDASI -j DROP> / dev / null
$ wet sudo / usr / sbin / iptables-nft -F> / dev / null
$ wet sudo / usr / sbin / iptables-nft -A INPUT -s 127.0.0.1 -d 127.0.0.1 -j ACCEPT> / dev / null
$ wet sudo / usr / sbin / iptables-nft -A INPUT -m olek –riik loodud -j ACCEPT> / dev / null
$ wet sudo / usr / sbin / iptables-nft -A SISEND -J DROP> / dev / null
$ wet sudo / usr / sbin / iptables-nft -A VÄLJUND -J ACCEPT> / dev / null
$ wet sudo / usr / sbin / iptables-nft -A EDASI -j DROP> / dev / null
##############################
kaja olete visanud $ 0 $ 1 $ 2
# väljub skriptist
väljumine 0
Kuidas ma saaksin reegli seada, kui see tulemüür kasutaks seda minu lüüsi jaoks ja sellel oleks kalmaar LAN-is ???