Host åtkomstskontroll
Slackware.SE Wiki
[redigera] 14.2 Host åtkomstkontroll
14.2.1 iptables
iptables är ett paket filtrerings konfigureringsprogram för Linux 2.4 och senare. 2.4 kärnan (2.4.5 för att vara exakt) var först intoducerad till Slackware (som tillval) version 8.0 och var standard i Slackware 8.1. Den här sektionen täcker endast grunderna för dess användning och du bör kolla http://www.netfilter.org/ för mer detaljet. Dessa kommandon kan skrivas i /etc/tc.d/rc.firewall, vilken måste var körbar för att dessa regler ska träda i kraft vid uppstart. Notera att felaktigt iptable kommando kan orsaka att du låser ut dig från din egen maskin. Såvida du inte är 100% säker i dina kunskaper så se till att du har lokal åtkomst till maskinen.
Det första de flesta bör göra är att sätta standardpolicy för varje inbunden kejda till DROP:
# iptables -P INPUT DROP # iptables -P FORWARD DROP
När allting nekar kan du börja med att tillåta saker. Det första att tillåta är all trafik för sessioner som redan är upprättade:
# iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
Så att det inte stoppar några applikationer som kommunicerar med loopback adressen, det är vanligtvis klokt att lägga till en regel som den här:
# iptables -A INPUT -s 127.0.0.0/8 -d 127.0.0.0/8 -i lo -j ACCEPT
Den här regeln tillåter all trafik till och från 127.0.0.0/8 (127.0.0.0 - 127.255.255.255) på loopback (lo) gränssnittet. När man skapar regler är det en bra idé att specifiera så mycket som möjligt, för att vara säker på att den regeln inte oavsiktligt tillåter nåt ont. Så att säga, regler som tillåter lite menas mera regler och mera skrivning.
Det nästa att göra skulle vara att tillåta åtkomst till specifika tjänster som körs på din maskin. Om, till exempel du vill köra en webserver på din maskin, borde du använda en regel som liknar denna:
# iptables -A INPUT -p tcp --dport 80 -i ppp0 -j ACCEPT
Det här tillåter åtkomst från alla maskiner till port 80 på din maskin via gränssnittet ppp0. Du kanske vill ha en mer restrikt åtkomst till tjänsten så att bara vissa maskiner har åtkomst till den. Den här regeln tillåter åtkomsta till din webserver fån 64.57.102.34:
# iptables -A INPUT -p tcp -s 64.57.102.34 --dport 80 -i ppp0 -j ACCEPT
Att tillåta ICMP trafik kan vara användbart för diagnossyfte. För att göra det, så måste du använda en regel som liknar den här:
# iptables -A INPUT -p icmp -j ACCEPT
De flesta vill också upprätta Network Adress Translation (NAT) (nätverksöversättning) på deras gatewaay maskin, så att andra maskiner på deras nätverk kan komma åt internet genom den. Du skapar följande regel för det så här:
# iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE
Du behöver också aktivera IP forwarding. Du kan göra det temporärt med följande kommando:
# echo 1 > /proc/sys/net/ipv4/ip_forward
För att aktiver IP forwarding på ett mer permanent basis (tex. så att ändringen behålls efter en omstart), så måste du öppna filen /etc/rc.d/rc.inet2 med din favorit text editor och ändra följande rad:
IPV4_FORWARD=0
...till det här:
IPV4_FORWARD=1
För med information om NAT se NAT HOWTO.
14.2.2 tcpwrappers
tcpwrappers kontrollerar åtkomst till demoner på applikations nivå hellre än på IP nivå. Det här kan ge ett extra lager av säkerhet de gånger när IP-nivå åtkomstkontroller (tex. Netfilter) inte fungerar korrekt. Till exempel, om du vill rekompilera kärnan med glömde att inkludera stöd för iptables, ditt ip-nivå skydd kommer att misslyckas med tcpwrappers kommer fortfarande hjälpa dig att skydda ditt system.
Åtkomst till tjänster skyddade av tcpwrapper kan kontrolleras genom /etc/hosts.allov och /etc/hosts.deny.
Majoriteten av människor skulle ha en singelrad i deras /etc/hosts.deny for att neka access till alla demoner som standard. Den raden skulle vara:
ALL : ALL
När det här är gjort, kan du koncetrera på att tillåta åtkomst till tjänster för specifierade host:ar, domäner eller IP spann. Detta kan göras i /etc/hosts.allow, vilket följer samma format.
Många människor skulle börja med att acceptera alla anslutningar från localhost. Det kan göras så här:
ALL : 127.0.0.1
För att tillåta åtkomst till SSHd från 192.168.0.0/24, så skulle du kunna använda följande regler:
sshd : 192.168.0.0/24 sshd : 192.168.0.
Det är också möjligt att strypa åtkomst till host´s i en viss domän. Det kan göras med följande regel (noter att det här litar på reverse DNS entryt för host:en är pålitlig, så jag skulle inte rekommender att använda det på en internetanslutna host:ar):
sshd : .slackware.com
Klart.. rätta någon
--Dartanjang 18 juli 2006 kl.12.39 (CEST)
