Ajattelin kahta asiaa iptablesista jonkin aikaa: suurin osa niistä, jotka etsivät näitä opetusohjelmia, ovat aloittelijoita ja toiseksi monet etsivät jo jotain melko yksinkertaista ja jo kehitettyä.
Tämä esimerkki koskee verkkopalvelinta, mutta voit helposti lisätä lisää sääntöjä ja mukauttaa niitä tarpeisiisi.
Kun näet "x" muutoksen ip: si
#!/bin/bash
#Puhdistamme iptables-taulukot -F iptables -X # Puhdistamme NAT iptables -t nat -F iptables -t nat -X # mangle-taulukko esimerkiksi PPPoE-, PPP- ja ATM iptables -tangle -F iptables -t mangle -X # Käytännöt Mielestäni tämä on paras tapa aloittelijoille ja # ei silti ole huono, selitän kaikki lähdöt, koska he ovat lähteviä yhteyksiä #, syötteet hylkäämme kaiken, eikä yksikään palvelin saa lähettää eteenpäin. iptables -P INPUT DROP iptables -P LÄHTÖ HYVÄKSY iptables -P FORWARD DROP #Intranet LAN intranet = eth0 #Extranet wan extranet = eth1 # Säilytä tilaa. Kaikki, mikä on jo yhdistetty (vakiintunut), jää näin: iptables -A INPUT -m state - state ESTABLISHED, RELATED -j ACCEPT # Loop device. iptables -A INPUT -i lo -j HYVÄKSY # http, https, emme määritä käyttöliittymää, koska # haluamme sen olevan kaikki iptables -A INPUT -p tcp --port 80 -j HYVÄKSY iptables -A INPUT -p tcp - dport 443 -j HYVÄKSY # ssh vain sisäisesti ja tältä ip: n iptable-alueelta -A INPUT -p tcp -s 192.168.xx / 24 -i $ intranet --port 7659 -j ACCEPT # -valvonta esimerkiksi jos niillä on zabbix tai jokin muu snmp-palvelun iptables -A INPUT -p tcp -s 192.168.xx / 24 -i $ intranet --dport 10050 -j ACCEPT # icmp, ping, se on sinun tehtäväsi iptables -A INPUT -p icmp -s 192.168.xx / 24 - i $ intranet -j ACCEPT #mysql postgres on portti 5432 iptables -A INPUT -p tcp -s 192.168.xx --sport 3306 -i $ intranet -j ACCEPT #sendmail bueeeh, jos haluat lähettää sähköpostia #iptables -A LÄHTÖ -p tcp --port 25 -j HYVÄKSY # SPOOFINGin torjunta 09/07/2014 # SERVER_IP = "190.xxx" # palvelimen IP - palvelimen todellinen wan-ip LAN_RANGE = "192.168.xx / 21" # LAN-alue verkkoistasi tai vlan # IP: stäsi, joiden ei pitäisi koskaan päästä ekstranetiinon käyttää vähän # logiikkaa, jos meillä on puhtaasti WAN-liitäntä, sen ei pitäisi koskaan syöttää # LAN-tyyppistä liikennettä kyseisen käyttöliittymän kautta SPOOF_IPS = "0.0.0.0/8 127.0.0.0/8 10.0.0.0/8 172.16.0.0/12 192.168.0.0 / 16 "# Oletustoiminto - suoritetaan, kun mikä tahansa sääntö vastaa ACTION =" DROP "# Paketteja, joilla on sama palvelimeni IP-osoite wan iptables -A INPUT -i $ extranet -s $ SERVER_IP -j $ ACTION # iptables -A LÄHTÖ -o $ extranet -s $ SERVER_IP -j $ ACTION # Paketit, joissa on LAN-alue wanille, laitoin tämän näin, jos sinulla on # tiettyä verkkoa, mutta tämä on tarpeeton seuraavan # säännön sisällä silmukassa " kohteelle "iptables -A INPUT -i $ extranet -s $ LAN_RANGE -j $ ACTION iptables -A OUTPUT -o $ extranet -s $ LAN_RANGE -j $ ACTION ## Kaikki SPOOF-verkot, joita wan ip ei salli tiedostossa $ SPOOF_IPS tee iptables -A INPUT -i $ extranet -s $ ip -j $ ACTION iptables -A LÄHTÖ -o $ extranet -s $ ip -j $ ACTION valmis
Kuten aina, odotan kommenttejasi, pysy kuulolla tällä blogilla, kiitos
Se auttaa minua jatkamaan oppimista hieman enemmän kopioitu kiitos.
olet tervetullut, mielelläni auttaa
Olen todella pahoillani, mutta minulla on kaksi kysymystä (ja yksi lahjana 😉):
Saavuttaisitko tämän kokoonpanon ollaksesi Apache käynnissä ja sulkemalla loput paitsi SSH?
#Puhdistamme pöydät
iptables-F
iptables-X
Puhdistamme NAT: n
iptables -t nat -F
iptables -t nat -X
iptables -A SYÖTTÖ -p tcp –portti 80 -j HYVÄKSY
ssh vain sisäisesti ja tältä ip-alueelta
iptables -A INPUT -p tcp -s 192.168.xx / 24 -i $ intranet –port 7659 -j HYVÄKSY
Toinen kysymys: Onko tässä esimerkissä SSH: ssä käytetty portti 7659?
Ja kolmas ja viimeinen: mihin tiedostoon tämä kokoonpano tulisi tallentaa?
Kiitos paljon opetusohjelmasta, on sääli, että olet niin uusi aloittelija etkä voi hyödyntää sitä hyvin.
tämä on sääntö, jota tarvitset http: lle Apache: sta
iptables -A SYÖTTÖ -p tcp –portti 80 -j HYVÄKSY
mutta sinun on myös ilmoitettava oletusarvoiset pudotuskäytännöt (se on komentosarjassa)
iptables -P INPUT DROP
iptable -P OUTPUT ACCEPT
iptables -P Eteenpäin pudota
ja tämä, koska jos olet kaukana, se heittää sinut pois.
iptables -A SYÖTTÖ -m tila –tila PERUSTETTU, LIITTYVÄ -j HYVÄKSY
Jos esimerkissä 7659 on kyseisen ssh: n portti, oletusarvoisesti se on 22, vaikka suosittelen vaihtamaan porttiin "ei tunneta"
mies en tiedä, kuten haluat ... palomuuri.sh ja laitat sen rc.localiin (sh palomuuri.sh) niin, että se toimii automaattisesti, se riippuu siitä, mikä käyttöjärjestelmä sinulla on, on tiedostoja, joihin voit laittaa säännöt suoraan.
Hei, käsikirjoituksesi on erittäin hyvä analysoimalla sitä .... Tiedätkö, kuinka voisin kieltää kaikki käyttäjien pyynnöt tietylle verkkosivustolle? mutta tällä sivustolla on paljon palvelimia ...
Suosittelen muita vaihtoehtoja:
1) Voit luoda väärennetyn vyöhykkeen DNS: ään ...
2) Voit sijoittaa välityspalvelimen acl: llä
syntivientikielto
Pidät tästä iptabeleista ... se ei ole aina paras vaihtoehto (on enemmän tapoja)
iptables -A INPUT -blogi.desdelinux.ne -j DROP
iptables -A OUTPUT -d blogi.desdelinux.net -j DROP
Kerro jos se toimi
Kiitos vastauksesta, kaikki selvisi. Kysyin satamasta, koska olin yllättynyt 7659: n käytöstä, koska yksityiset satamat alkavat 49152: sta, ja se voi häiritä jotain palvelua.
Jälleen kiitos kaikesta, se on mukavaa!
Tervehdys.
BrodyDalle, kuinka voin ottaa sinuun yhteyttä? Erittäin mielenkiintoinen käsikirjoituksesi.
soulofmarionet_1@hotmail.com
Edellisen viimeisen rivin "iptables -A OUTPUT -o $ extranet -s $ ip -j $ ACTION" tarkoituksena on estää omaa konettasi väärentämästä? Vai onko mahdollista, että jokin myrkytetty paketti tulee sisään ja voi lähteä myrkytetyn lähteen mukana, ja siksi sääntö sisältyy myös OUTPUT: iin?
Paljon kiitoksia selvennyksestä !!!
tämä on oma iptables-komentosarjani, se on hyvin täydellinen:
# franes.iptables.airy
# doc.iptables.airoso: iptables vanhalle ja nft: lle
#
# palomuuriporttia
###############################
#! / Bin / bash
#
# tyhjennä näyttö
################################# /etc/f-iptables/default.cfg ||||| alku
selkeä
# jätä tyhjä rivi
kaiku
vienti kyllä = »» ei = »kaiku pois»
# muuttujaa, jotka voit muuttaa pääsyn sallimiseksi
######################## muuttujat muokattavaksi $ kyllä tai $ ei
export hayexcepciones = »$ ei»
# on poikkeuksia: $ yes sallia poikkeukselliset isännät ja $ no poistaa käytöstä
vie heinää = »$ ei»
# heinää: $ kyllä, jotta kolmas osapuoli voi pingistää ja $ ei kieltää
export haylogserver = »$ ei»
# haylogeosserver: $ kyllä, jotta voit kirjautua tcp: een $ ei, jotta et voi kirjautua tcp: hen
######
####################### muuttujia muokattavaksi lisäämällä "," tai vaihteluvälillä ":"
vientipoikkeukset = »baldras.wesnoth.org»
# poikkeuksen mukaan palomuuri sallii yhden tai useamman isännän tai ei arvoa
vie lokipalvelin = hylkää, ipp, dict, ssh
# tcp-palvelinporttia, jotka kirjataan pakettien saapuessa
vie redserver = 0/0
# redserver: palvelinporttien verkko, mieluiten paikallinen verkko tai useita ips
vientiasiakas punainen = 0/0
#clientnet: asiakasporttien verkko, joka on parempi kuin kaikki verkot
vienti servidortcp = hylkää, ipp, dict, 6771
# servidortcp: määritetyt TCP-palvelinportit
export serverudp = hylkää
#udpserver: määritetyt udp-palvelinportit
vie clientudp = toimialue, bootpc, bootps, ntp, 20000: 45000
#udp -asiakas: määritetyt udp-asiakasportit
vie clienttcp = verkkotunnus, http, https, ipp, git, dict, 14999: 15002
# tcp-asiakas: määritetyt tcp-asiakasportit
############################### loppu /etc/f-iptables/default.cfg |||||
################################## muuttujien loppu muokattavaksi
vie palomuuri = $ 1 muuttujat = $ 2
jos ["$ muuttujat" = "$ NULL"]; sitten lähde /etc/f-iptables/default.cfg;
else source / etc / f-iptables / $ 2; fi
################################## tai korvaa muuttujat .cfg-tiedostolla
######################################################### ###########################################################
viennin palomuuri = $ 1 vientimuuttujat = $ 2
############################################## automaattiset järjestelmämuuttujat
jos ["$ palomuuri" = "irrotettu"]; kaiku sitten palomuuri irti;
vienti aktivoi palvelimen = »$ no» activateclient = »$ ei» märkä = »$ ei»;
elif ["$ palomuuri" = "asiakas"]; toista sitten palomuuriasiakas;
vienti aktivoi palvelimen = »$ no» activateclient = »» märkä = »$ ei»;
elif ["$ palomuuri" = "palvelin"]; kaiku sitten palomuuripalvelin;
vienti aktivoi palvelimen = »» activateclient = »$ no» märkä = »$ ei»;
elif ["$ palomuuri" = "asiakas ja palvelin"]; sitten toistaa palomuuriasiakas ja palvelin;
vienti aktivoi palvelin = »»; viennin aktivaattori = »»; vienti märkä = »$ ei»;
elif ["$ palomuuri" = "salliva"]; sitten kaiku PALVELEVA TULIPALOSUOJA;
vienti aktivoi palvelimen = »$ no» activateclient = »$ no» märkä = »»;
muu
$ check sudo echo iptables-legacy:
$ check sudo iptables-legacy -v -L INPUT
$ check sudo iptables-legacy -v -L OUTPUT
$ check sudo echo iptables-nft:
$ check sudo iptables-nft -v -L INPUT
$ check sudo iptables-nft -v -L OUTPUT
kaiku _____parametrit____ $ 0 $ 1 $ 2
echo "cast ilman parametreja on luetteloida iptables."
echo "Ensimmäinen parametri (ota iptables käyttöön): yhteys katkaistu tai asiakas tai palvelin tai asiakas ja palvelin tai sallittu."
echo "Toinen parametri: (valinnainen): oletus .cfg-tiedosto valitsee /etc/f-iptables/default.cfg"
echo "Muuttujan asetukset:" $ (ls / etc / f-iptables /)
poistuminen 0; fi
##################
kaiku
echo Heittää $ 0 offline-tilassa tai asiakas tai palvelin tai asiakas ja palvelin tai sallivat tai muuttujat tai ilman parametrin käyttämistä iptable-luettelossa.
echo $ 0-tiedosto sisältää joitain muokattavia muuttujia.
#################################### yllä olevat muuttujat aktivoidaan
####################################
kaiku asettamalla iptables-muuttujat
kaikuaktivoidut muuttujat
kaiku
############################## iptables-säännöt
echo Setting iptables-legacy
sudo / usr / sbin / iptables-legacy -t -suodatin -F
sudo / usr / sbin / iptables-legacy -t nat -F
sudo / usr / sbin / iptables-legacy -tangle -F
sudo / usr / sbin / ip6tables-legacy -t -suodatin -F
sudo / usr / sbin / ip6tables-legacy -t nat -F
sudo / usr / sbin / ip6tables-legacy -tangle -F
sudo / usr / sbin / ip6tables-legacy -A SYÖTTÖ -j DROP
sudo / usr / sbin / ip6tables-legacy -A LÄHTÖ-j DROP
sudo / usr / sbin / ip6tables-legacy -E ETEEN -j DROP
sudo / usr / sbin / iptables-legacy -A INPUT -s 127.0.0.1 -d 127.0.0.1 -j HYVÄKSY> / 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 SYÖTTÖ -s $ poikkeukset -j HYVÄKSY> / dev / null
$ aktivoi sudo-palvelin / usr / sbin / iptables-legacy -A INPUT -p udp -m multiport –dports $ serverudp -s $ redserver -d $ redserver -j ACCEPT> / dev / null
$ aktivoi palvelin 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 –portit $ clientudp -m state –valtio perustettu -s $ clientnet -d $ clientnet -j ACCEPT> / dev / null
$ activateclient sudo / usr / sbin / iptables-legacy -A INPUT -p tcp -m multiport –portit $ clienttcp -m state –valtio perustettu -s $ clientnet -d $ clientnet -j ACCEPT> / dev / null
$ hayping sudo / usr / sbin / iptables-legacy -A INPUT -p icmp –icmp-tyyppinen echo-vastaus -j HYVÄKSY> / dev / null
sudo / usr / sbin / iptables-legacy -A SYÖTTÖ -j DROP> / dev / null
sudo / usr / sbin / iptables-legacy -A LÄHDÖ -s 127.0.0.1 -d 127.0.0.1 -j HYVÄKSY> / dev / null
$ hayeexceptions sudo / usr / sbin / iptables-legacy -A LÄHTÖ -d $ poikkeukset -j HYVÄKSY> / dev / null
$ aktivoi sudo-palvelin / usr / sbin / iptables-legacy -A OUTPUT -p udp -m multiport –sports $ serverudp -s $ redserver -d $ redserver -j ACCEPT> / dev / null
$ aktivoi palvelin sudo / usr / sbin / iptables-legacy -A LÄHTÖ -p tcp -m multiport –portit $ serverrtcp -s $ redserver -d $ redserver -j ACCEPT> / dev / null
$ activateclient sudo / usr / sbin / iptables-legacy -A LÄHTÖ -p udp -m multiport –portit $ clientudp -s $ clientnet -d $ clientnet -j HYVÄKSY> / dev / null
$ activateclient sudo / usr / sbin / iptables-legacy -A OUTPUT -p tcp -m multiport –dports $ clienttcp -s $ clientnet -d $ clientnet -j ACCEPT> / dev / null
$ hayping sudo / usr / sbin / iptables-legacy -A OUTPUT -p icmp –icmp-tyyppinen echo-request -j HYVÄKSY> / dev / null
sudo / usr / sbin / iptables-legacy -A LÄHTÖ-j DROP
sudo / usr / sbin / iptables-legacy-Eteenpäin -j DROP
echo iptables-legacy käytössä
kaiku
echo Setting iptables-nft
sudo / usr / sbin / iptables-nft -t -suodatin -F
sudo / usr / sbin / iptables-nft -t nat -F
sudo / usr / sbin / iptables-nft -t mangle -F
sudo / usr / sbin / ip6tables-nft -t -suodatin -F
sudo / usr / sbin / ip6tables-nft -t nat -F
sudo / usr / sbin / ip6tables-nft -t mangle -F
sudo / usr / sbin / ip6tables-nft -A TULO-j DROP
sudo / usr / sbin / ip6tables-nft -A LÄHTÖ-j DROP
sudo / usr / sbin / ip6tables-nft -A Eteenpäin -j DROP
sudo / usr / sbin / iptables-nft -A INPUT -s 127.0.0.1 -d 127.0.0.1 -j HYVÄKSY> / 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 SYÖTTÖ -s $ poikkeukset -j HYVÄKSY> / dev / null
$ aktivoi palvelin sudo / usr / sbin / iptables-nft -A INPUT -p udp -m multiport –dports $ serverudp -s $ redserver -d $ redserver -j ACCEPT> / dev / null
$ aktivoi palvelin 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 –portit $ clientudp -m state –tila perustettu -s $ clientnet -d $ clientnet -j HYVÄKSY> / dev / null
$ activateclient sudo / usr / sbin / iptables-nft -A SYÖTTÖ -p tcp -m multiport –portit $ clienttcp -m tila –tila perustettu -s $ clientnet -d $ clientnet -j HYVÄKSY> / dev / null
$ hayping sudo / usr / sbin / iptables-nft -A INPUT -p icmp –icmp-tyyppinen echo-vastaus -j HYVÄKSY> / dev / null
sudo / usr / sbin / iptables-nft -A INPUT -j DROP> / dev / null
sudo / usr / sbin / iptables-nft -A LÄHTÖ -s 127.0.0.1 -d 127.0.0.1 -j HYVÄKSY> / dev / null
$ on poikkeuksia sudo / usr / sbin / iptables-nft -A OUTPUT -d $ poikkeuksia -j HYVÄKSY> / dev / null
$ aktivoi sudo-palvelin / usr / sbin / iptables-nft -A OUTPUT -p udp -m multiport –sports $ serverudp -s $ redserver -d $ redserver -j ACCEPT> / dev / null
$ aktivoi palvelin sudo / usr / sbin / iptables-nft -A LÄHTÖ -p tcp -m multiport –portit $ serverrtcp -s $ redserver -d $ redserver -j ACCEPT> / dev / null
$ enable client sudo / usr / sbin / iptables-nft -A OUTPUT-udp -m multiport –dports $ clientudp -s $ clientnet -d $ clientnet -j HYVÄKSY> / dev / null
$ activateclient sudo / usr / sbin / iptables-nft -A LÄHTÖ -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-tyyppinen echo-request -j HYVÄKSY> / dev / null
sudo / usr / sbin / iptables-nft -A LÄHTÖ-j DROP
sudo / usr / sbin / iptables-nft -A Eteenpäin -j DROP
echo iptables-nft käytössä
kaiku
$ 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 HYVÄKSY> / dev / null
$ wet sudo / usr / sbin / iptables-legacy -A SYÖTTÖ -m tila - osavaltio perustettu -j HYVÄKSY> / dev / null
$ wet sudo / usr / sbin / iptables-legacy -A INPUT -j DROP> / dev / null
$ wet sudo / usr / sbin / iptables-legacy -A LÄHTÖ -J HYVÄKSY> / dev / null
$ wet sudo / usr / sbin / iptables-legacy -A Eteenpäin -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 HYVÄKSY> / dev / null
$ wet sudo / usr / sbin / iptables-nft -A SYÖTTÖ -m tila –tila perustettu -j HYVÄKSY> / dev / null
$ wet sudo / usr / sbin / iptables-nft -A INPUT -j DROP> / dev / null
$ wet sudo / usr / sbin / iptables-nft -A LÄHTÖ -J HYVÄKSY> / dev / null
$ wet sudo / usr / sbin / iptables-nft -A Eteenpäin -j DROP> / dev / null
##############################
kaiku olet heittänyt $ 0 $ 1 $ 2
# poistuu käsikirjoituksesta
poistu 0
Kuinka asetan säännön, jos tämä palomuuri käyttää sitä yhdyskäytävässäni ja sillä on kalmari lähiverkossa ???