Es pavadīju kādu laiku, domājot par divām lietām par šo iptables: lielākā daļa no tiem, kas meklē šīs apmācības, ir iesācēji, un, otrkārt, daudzi jau meklē kaut ko diezgan vienkāršu un jau izstrādātu.
Šis piemērs ir paredzēts tīmekļa serverim, taču jūs varat viegli pievienot vairāk noteikumu un pielāgot to savām vajadzībām.
Kad redzat "x" izmaiņas jūsu ip's
#!/bin/bash
# Notīrām iptables tabulas -F iptables -X # Notīriet NAT iptables -t nat -F iptables -t nat -X # mangle tabulu tādām lietām kā PPPoE, PPP un ATM iptables -t mangle -F iptables -t mangle -X # Policies Es domāju, ka tas ir labākais veids iesācējiem un # joprojām nav slikts. Es izskaidrošu visu izvadi, jo tie ir izejošie savienojumi #, ievadi mēs izmetam visu, un nevienam serverim nevajadzētu pārsūtīt. iptables -P INPUT DROP iptables -P IZVADES PIEŅEMŠANA iptables -P FORWARD DROP #Intranet LAN iekštīkls = eth0 #Extranet wan extranet = eth1 # Uzturēt stāvokli. Viss, kas jau ir savienots (izveidots), tiek atstāts šādi: iptables -A INPUT -m state - state ESTABLISHED, RELATED -j ACCEPT # Loop device. iptables -A INPUT -i lo -j ACCEPT # http, https, mēs nenorādām saskarni, jo # mēs vēlamies, lai tas būtu viss iptables -A INPUT -p tcp --dport 80 -j ACCEPT iptables -A INPUT -p tcp - dport 443 -j ACCEPT # ssh tikai iekšēji un no šī ip iptables diapazona -A INPUT -p tcp -s 192.168.xx / 24 -i $ intranet - port 7659 -j ACCEPT # monitorings, piemēram, ja viņiem ir zabbix vai kāds cits SNMP pakalpojuma iptables -A INPUT -p tcp -s 192.168.xx / 24 -i $ iekštīkls --port 10050 -j ACCEPT # icmp, ping arī tas ir atkarīgs no jums iptables -A INPUT -p icmp -s 192.168.xx / 24 - i $ intranet -j ACCEPT #mysql with postgres is port 5432 iptables -A INPUT -p tcp -s 192.168.xx --sport 3306 -i $ intranet -j ACCEPT #sendmail bueeeh, ja vēlaties nosūtīt kādu pastu #iptables -A OUTPUT -p tcp --port 25 -j ACCEPT # Anti-SPOOFING 09. # SERVER_IP = "07.xxx" # servera IP - jūsu servera īstais wan ip LAN_RANGE = "2014.xx / 190" # LAN diapazons tīkla vai vlan # IP, kuriem nekad nevajadzētu iekļūt ekstranetā,ir izmantot mazliet # loģiku, ja mums ir tikai WAN interfeiss, tam nekad nevajadzētu ievadīt # LAN tipa trafiku caur šo saskarni. 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 "# Noklusējuma darbība - jāveic, kad jebkurš noteikums atbilst ACTION =" DROP "# Paketes ar to pašu mana servera ip, izmantojot wan iptables -A INPUT -i $ extranet -s $ SERVER_IP -j $ ACTION # iptables -A OUTPUT -o $ extranet -s $ SERVER_IP -j $ ACTION # Paketes ar LAN diapazonu samazinājumam, es to izteicu šādi, ja jums ir # kāds īpašs tīkls, taču tas ir lieks, ja cilnē ir # likums " par "iptables -A INPUT -i $ extranet -s $ LAN_RANGE -j $ ACTION iptables -A OUTPUT -o $ extranet -s $ LAN_RANGE -j $ ACTION ## Visus SPOOF tīklus wan for ip neatļauj vietnē $ SPOOF_IPS do iptables -A INPUT -i $ extranet -s $ ip -j $ ACTION iptables -A OUTPUT -o $ extranet -s $ ip -j $ ACTION done
Kā vienmēr es gaidu jūsu komentārus, sekojiet līdzi šim emuāram, paldies
Tas man palīdz turpināt mācīties nedaudz vairāk, pateicoties kopētajam paldies.
jūs esat laipni gaidīti, priecīgi būt par palīdzību
Es tiešām atvainojos, bet man ir divi jautājumi (un viens kā dāvana 😉):
Vai jūs ieradīsieties ar šo konfigurāciju, lai Apache darbotos un aizvērtu pārējos, izņemot SSH?
# Mēs tīrām galdus
iptables-F
iptables-X
Mēs tīrām NAT
iptables -t nat -F
iptables -t nat -X
iptables -A INPUT -p tcp –port 80 -j PIEŅEMT
ssh tikai iekšēji un no šī ip diapazona
iptables -A INPUT -p tcp -s 192.168.xx / 24 -i $ iekštīkls -port 7659 -j ACCEPT
Otrais jautājums: vai šajā piemērā SSH tiek izmantots ports 7659?
Un trešais un pēdējais: kurā failā šī konfigurācija jāsaglabā?
Liels paldies par apmācību, ir žēl, ka esat tik iesācējs un nevarat to labi izmantot.
tas ir noteikums, kas jums nepieciešams http no apache
iptables -A INPUT -p tcp –port 80 -j PIEŅEMT
bet jums ir jādeklarē arī noklusējuma politikas (tas ir skriptā)
iptable -P INPUT DROP
iptables -P IZEJAS PIEŅEMŠANA
iptables -P FORWARD DROP
un tas tāpēc, ka, ja jūs esat attāls, tas jūs izmetīs.
iptables -A INPUT -m stāvoklis –valsts, kas izveidota, SAISTĪTA -j PIEŅEMT
ja piemērā 7659 ir šī ssh ports, pēc noklusējuma tas ir 22, lai gan es iesaku mainīt portu "nav labi zināms"
cilvēks, kuru es nezinu, kā jūs vēlaties ... firewall.sh, un jūs to ievietojat rc.local (sh firewall.sh), lai tas darbotos automātiski, tas ir atkarīgs no tā, kāda operētājsistēma jums ir, ir faili, kur jūs varat tieši ievietot noteikumus.
Eii ļoti labs, tavs skripts, to analizējot .... Vai tu zini, kā es varētu noraidīt visus manu lietotāju pieprasījumus uz noteiktu vietni? bet šai vietnei ir daudz serveru ...
Es iesaku citas iespējas:
1) Jūs varat izveidot viltotu zonu savā DNS ...
2) Jūs varat ievietot starpniekserveri ar acl
grēka embargo
Attiecībā uz iptables jums tas var patikt ... tas ne vienmēr ir labākais risinājums (ir vairāk iespēju)
iptables -A INPUT -s emuārs.desdelinux.ne -j PIET
iptables -A OUTPUT -d emuārs.desdelinux.net -j DROP
Pastāsti man, vai tas ir izdevies
Paldies par atbildi, viss noskaidrojās. Es jautāju par ostu, jo biju pārsteigts, ka izmantoju 7659, jo privātās ostas sākas ar 49152, un tas var traucēt kādam pakalpojumam vai tamlīdzīgi.
Atkal paldies par visu, tas ir jauki!
Sveicieni.
BrodyDalle, kā es varu sazināties ar tevi? Ļoti interesants tavs scenārijs.
soulofmarionet_1@hotmail.com
Pirms pēdējās rindas "iptables -A OUTPUT -o $ extranet -s $ ip -j $ ACTION" ir jānovērš jūsu pašas mašīnas krāpšanās? Vai arī iespējams, ka kāda saindēta paciņa ienāk un var aiziet ar šo saindēto avotu, un tāpēc noteikums ir iekļauts arī OUTPUT?
Liels paldies par precizējumu !!!
tas ir mans skripts iptables, tas ir ļoti pilnīgs:
# franes.iptables.airy
# doc.iptables.airoso: iptables mantojumam un nft
#
# ugunsmūra porti
###############################
#! / bin / bash
#
# notīrīt ekrānu
################################# sākuma
skaidrs
# atstājiet tukšu rindu
palaist garām
eksportēt jā = »» nē = »atbalss izslēgts»
# mainīgie, kurus varat mainīt, lai atļautu piekļuvi
######################## mainīgos, lai mainītu ar $ yes vai $ no
eksportēt hayexcepciones = »$ nē»
# ir izņēmumi: $ jā, lai atļautu ārkārtas saimniekus, un $ nē, lai atspējotu
eksportēt sienāšanu = »$ nē»
# sienāšana: $ jā, lai atļautu trešo pušu pingēšanu, un $ nē, lai noraidītu
eksportēt haylogserver = »$ nē»
# haylogeosserver: $ jā, lai varētu reģistrēt tcp $ nē, lai nevarētu reģistrēt tcp
######
######################## mainīgos, lai mainītu, pievienojot "," vai ar diapazoniem ":"
eksporta izņēmumi = »baldras.wesnoth.org»
# izņēmums atļauj vienu vai vairākus resursdatorus no ugunsmūra vai tiem nav vērtības
eksportēt žurnālu serveri = izmest, ipp, dict, ssh
# tcp servera porti, kas tiek reģistrēti, kad ienāk paketes
eksportēt redserveru = 0/0
# redserver: serveru portu tīklam ieteicams lokālais tīkls vai vairāki ips
eksportēt klientu sarkanā krāsā = 0/0
#clientnet: klientu portu tīkls ir vēlams visiem tīkliem
eksportēt servidortcp = izmest, ipp, dict, 6771
# servidortcp: norādītie TCP servera porti
eksportēt serverudp = izmest
#udpserver: norādītās udp servera porti
eksportēt klientudp = domain, bootpc, bootps, ntp, 20000: 45000
#udp klients: norādītās udp klienta porti
eksportēt klientu tcp = domēns, http, https, ipp, git, dict, 14999: 15002
# tcp klients: norādītās tcp klienta porti
################################ /etc/f-iptables/default.cfg ||||| beigas
################################## mainīgo lielumu beigas
eksportēt ugunsmūri = $ 1 mainīgie = $ 2
ja ["$ mainīgie" = "$ NULL"]; tad avots /etc/f-iptables/default.cfg;
cits avots / etc / f-iptables / $ 2; fi
################################## vai arī pārrakstīs mainīgos ar .cfg failu
######################################################### ###########################################################
eksporta ugunsmūris = $ 1 eksporta mainīgie = $ 2
############################################## automātisko sistēmas mainīgo
ja ["$ firewall" = "atvienots"]; pēc tam atbalss atvienots ugunsmūris;
eksportēt aktivizē serveri = »$ nē» activateclient = »$ nē» slapjš = »$ nē»;
elif ["$ firewall" = "klients"]; pēc tam atbalsojiet ugunsmūra klientu;
eksportēt aktivizē serveri = »$ nē» activateclient = »» slapjš = »$ nē»;
elif ["$ firewall" = "serveris"]; pēc tam atbalsojiet ugunsmūra serveri;
eksportēt aktivizē serveri = »» activateclient = »$ no» slapjš = »$ nē»;
elif ["$ firewall" = "klients un serveris"]; pēc tam atbalsojiet ugunsmūra klientu un serveri;
eksportēt aktivizēt serveri = »»; eksporta aktivizētājs = »»; eksporta slapjš = »$ nē»;
elif ["$ firewall" = "visatļautība"]; pēc tam atbalsojiet ATĻAUJOŠO Ugunsmūri;
eksportēt aktivizē serveri = »$ no» activateclient = »$ no» slapjš = »»;
cits
$ 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
atbalss _____parametri____ $ 0 $ 1 $ 2
atbalss "cast bez parametriem ir uzskaitīt iptables."
echo "Pirmais parametrs (iespējot iptables): atvienots vai klients vai serveris, vai klients un serveris, vai atļauts."
echo "Otrais parametrs: (pēc izvēles): default.cfg fails izvēlas /etc/f-iptables/default.cfg"
echo "Mainīgie iestatījumi:" $ (ls / etc / f-iptables /)
izeja 0; fi
##################
palaist garām
atbalss Izmet $ 0 atvienotu vai klientu vai serveri, vai klientu un serveri, vai visatļautību, vai mainīgos vai neizmantojot parametru iptables uzskaitīšanai.
echo $ 0 failā ir daži rediģējami mainīgie.
#################################### tiek aktivizēti iepriekš minētie mainīgie
#####################################
atbalss iptables mainīgo iestatīšana
atbalss aktivizētie mainīgie
palaist garām
############################### iptables kārtulas
atbalss Iptables-legacy iestatīšana
sudo / usr / sbin / iptables-legacy -t filtrs -F
sudo / usr / sbin / iptables-legacy -t nat -F
sudo / usr / sbin / iptables-legacy -t mangle -F
sudo / usr / sbin / ip6tables-legacy -t filtrs -F
sudo / usr / sbin / ip6tables-legacy -t nat -F
sudo / usr / sbin / ip6tables-legacy -t mangle -F
sudo / usr / sbin / ip6tables-legacy -A INPUT -j DROP
sudo / usr / sbin / ip6tables-legacy -A IZVADE -j DROP
sudo / usr / sbin / ip6tables-legacy -PIRMS -j PILNI
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 $ izņēmumi -j ACCEPT> / dev / null
$ aktivizēt sudo serveri / usr / sbin / iptables-legacy -A INPUT -p udp -m multiport –dports $ serverudp -s $ redserver -d $ redserver -j ACCEPT> / dev / null
$ aktivizēt serveri 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 stāvoklis –valsts izveidots -s $ clientnet -d $ klientnet -j ACCEPT> / dev / null
$ activateclient sudo / usr / sbin / iptables-legacy -A INPUT -p tcp -m multiport –sports $ clienttcp -m stāvoklis –valsts izveidots -s $ clientnet -d $ clientnet -j ACCEPT> / dev / null
$ hayping sudo / usr / sbin / iptables-legacy -A INPUT -p icmp –icmp tipa atbalss-atbilde -j ACCEPT> / dev / null
sudo / usr / sbin / iptables-legacy -A INPUT -j DROP> / dev / null
sudo / usr / sbin / iptables-legacy -A IZVADE -s 127.0.0.1 -d 127.0.0.1 -j ACCEPT> / dev / null
$ hayexceptions sudo / usr / sbin / iptables-legacy -A OUTPUT -d $ izņēmumi -j ACCEPT> / dev / null
$ aktivizēt sudo serveri / usr / sbin / iptables-legacy -A OUTPUT -p udp -m multiport –sports $ serverudp -s $ redserver -d $ redserver -j ACCEPT> / dev / null
$ aktivizēt serveri sudo / usr / sbin / iptables-legacy -A OUTPUT -p tcp -m multiport –sports $ serverrtcp -s $ redserver -d $ redserver -j ACCEPT> / dev / null
$ activateclient sudo / usr / sbin / iptables-legacy -A OUTPUT -p udp -m multiport –dports $ clientudp -s $ clientnet -d $ clientnet -j ACCEPT> / 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 tipa echo-request -j ACCEPT> / dev / null
sudo / usr / sbin / iptables-legacy -A IZVADE -j DROP
sudo / usr / sbin / iptables-mantojums -PIRMS -J PILNS
echo iptables-legacy iespējots
palaist garām
atbalss Iptables-nft iestatīšana
sudo / usr / sbin / iptables-nft -t filtrs -F
sudo / usr / sbin / iptables-nft -t nat -F
sudo / usr / sbin / iptables-nft -t mangle -F
sudo / usr / sbin / ip6tables-nft -t filtrs -F
sudo / usr / sbin / ip6tables-nft -t nat -F
sudo / usr / sbin / ip6tables-nft -t mangle -F
sudo / usr / sbin / ip6tables-nft -A INPUT -j DROP
sudo / usr / sbin / ip6tables-nft -A IZVADE -j DROP
sudo / usr / sbin / ip6tables-nft -A PIRMS - j PILNUMS
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 $ izņēmumi -j ACCEPT> / dev / null
$ aktivizēt serveri sudo / usr / sbin / iptables-nft -A INPUT -p udp -m multiport –dports $ serverudp -s $ redserver -d $ redserver -j ACCEPT> / dev / null
$ aktivizēt serveri 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 –sports $ clientudp -m stāvoklis –valsts izveidots -s $ clientnet -d $ klientnet -j ACCEPT> / dev / null
$ activateclient sudo / usr / sbin / iptables-nft -A INPUT -p tcp -m multiport –sports $ clienttcp -m stāvoklis –valsts izveidots -s $ clientnet -d $ klientnet -j ACCEPT> / dev / null
$ hayping sudo / usr / sbin / iptables-nft -A INPUT -p icmp –icmp tipa atbalss-atbilde -j ACCEPT> / dev / null
sudo / usr / sbin / iptables-nft -A INPUT -j DROP> / dev / null
sudo / usr / sbin / iptables-nft -A IZVADE -s 127.0.0.1 -d 127.0.0.1 -j ACCEPT> / dev / null
$ ir izņēmumi sudo / usr / sbin / iptables-nft -A OUTPUT -d $ izņēmumi -j ACCEPT> / dev / null
$ aktivizēt sudo serveri / usr / sbin / iptables-nft -A OUTPUT -p udp -m multiport –sports $ serverudp -s $ redserver -d $ redserver -j ACCEPT> / dev / null
$ aktivizēt serveri sudo / usr / sbin / iptables-nft -A OUTPUT -p tcp -m multiport –sports $ serverrtcp -s $ redserver -d $ redserver -j ACCEPT> / dev / null
$ activateclient sudo / usr / sbin / iptables-nft -A OUTPUT -p udp -m multiport –dports $ clientudp -s $ clientnet -d $ clientnet -j ACCEPT> / dev / null
$ activateclient sudo / usr / sbin / iptables-nft -A OUTPUT -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 tipa echo-request -j ACCEPT> / dev / null
sudo / usr / sbin / iptables-nft -A IZVADE -j DROP
sudo / usr / sbin / iptables-nft -A PIRMS - j PILNI
echo iptables-nft iespējots
palaist garām
$ 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 stāvoklis –valsts izveidota -j ACCEPT> / dev / null
$ wet sudo / usr / sbin / iptables-legacy -A INPUT -j DROP> / dev / null
$ wet sudo / usr / sbin / iptables-legacy -A OUTPUT -j ACCEPT> / dev / null
$ wet sudo / usr / sbin / iptables-legacy -A FORWARD -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 stāvoklis –valsts izveidota -j ACCEPT> / dev / null
$ wet sudo / usr / sbin / iptables-nft -A INPUT -j DROP> / dev / null
$ wet sudo / usr / sbin / iptables-nft -A OUTPUT -j ACCEPT> / dev / null
$ wet sudo / usr / sbin / iptables-nft -A FORWARD -j DROP> / dev / null
##############################
atbalss, kuru esat iemetis $ 0 $ 1 $ 2
# iziet no skripta
izeja 0
Kā es varētu iestatīt likumu, ja šī ugunsmūris to izmantotu manai vārtejai un kalmārs būtu lokālajā tīklā ???