<?xml version="1.0" encoding="utf-8"?>
<!-- If you are running a bot please visit this policy page outlining rules you must respect. http://www.livejournal.com/bots/ -->
<feed xmlns="http://www.w3.org/2005/Atom" xmlns:lj="http://www.livejournal.com">
  <id>urn:lj:livejournal.com:atom1:neonman</id>
  <title>Дневник Неонового Человека ака Злобного Линуксоида</title>
  <subtitle>neonman</subtitle>
  <author>
    <name>neonman</name>
  </author>
  <link rel="alternate" type="text/html" href="http://neonman.livejournal.com/"/>
  <link rel="self" type="text/xml" href="http://neonman.livejournal.com/data/atom"/>
  <updated>2007-12-04T10:06:48Z</updated>
  <lj:journal userid="4634122" username="neonman" type="personal"/>
  <link rel="service.feed" type="application/x.atom+xml" href="http://neonman.livejournal.com/data/atom" title="Дневник Неонового Человека ака Злобного Линуксоида"/>
  <link rel="hub" href="http://pubsubhubbub.appspot.com/"/>
  <entry>
    <id>urn:lj:livejournal.com:atom1:neonman:4791</id>
    <link rel="alternate" type="text/html" href="http://neonman.livejournal.com/4791.html"/>
    <link rel="self" type="text/xml" href="http://neonman.livejournal.com/data/atom/?itemid=4791"/>
    <title>iptables</title>
    <published>2007-12-04T10:04:27Z</published>
    <updated>2007-12-04T10:06:48Z</updated>
    <content type="html">Накидал скриптец для первоначальной настройки iptables, может быть будет кому полезен, комментарии приветствуются&lt;br /&gt;&lt;br /&gt;------------&lt;br /&gt;#!/bin/bash&lt;br /&gt;#&lt;br /&gt;#&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $1 - список интерфейсов, которые смотрят в интернет в формате "eth1 eth2" (можно указать и один: "eth1")&lt;br /&gt;#&lt;br /&gt;&lt;br /&gt;###############################################################################&lt;br /&gt;# Interface variables setup&lt;br /&gt;###############################################################################&lt;br /&gt;&lt;br /&gt;if [ -z "$1" ]; then&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; echo "internet incoming interface must be set!"&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; exit&lt;br /&gt;fi&lt;br /&gt;&lt;br /&gt;# переделываем переданный параметр в массив&lt;br /&gt;ARG=$1&lt;br /&gt;COUNT=0&lt;br /&gt;for I in ${ARG[@]}; do&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; INTLIST[$COUNT]=$I&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; let COUNT+=1&lt;br /&gt;done&lt;br /&gt;&lt;br /&gt;# генерируем на основе имен интерфейсов имена цепочек для них (формат ETH1-IN, ETH2-IN и т.д.)&lt;br /&gt;COUNT=0&lt;br /&gt;for INT in `echo $1|tr [:lower:] [:upper:]`; do&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; CHAINS[$COUNT]=$INT-IN&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; let COUNT=$COUNT+1&lt;br /&gt;done&lt;br /&gt;&lt;br /&gt;# переменные:&lt;br /&gt;# CHAINS - массив с именами цепочек для сетевух&lt;br /&gt;# INTLIST - массив с именами сетевух&lt;br /&gt;&lt;br /&gt;###############################################################################&lt;br /&gt;# INPUT chain setup&lt;br /&gt;###############################################################################&lt;br /&gt;&lt;br /&gt;# INTERNET access setup #&lt;br /&gt;&lt;br /&gt;# список адресов которым разрешен полный доступ к серверу&lt;br /&gt;IPLIST=""&lt;br /&gt;&lt;br /&gt;# список портов, доступных на сервере всем из интернета&lt;br /&gt;TCPPORTLIST="25"&lt;br /&gt;UDPPORTLIST="53"&lt;br /&gt;&lt;br /&gt;# цепочка badpackets, фильтруем пакеты с некорректными флагами&lt;br /&gt;iptables -N BADPKT&lt;br /&gt;iptables -A BADPKT -p tcp --tcp-flags ALL&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; FIN,URG,PSH&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -j DROP&lt;br /&gt;iptables -A BADPKT -p tcp --tcp-flags ALL&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ALL&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -j DROP&lt;br /&gt;iptables -A BADPKT -p tcp --tcp-flags ALL&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SYN,RST,ACK,FIN,URG&amp;nbsp;&amp;nbsp; -j DROP&lt;br /&gt;iptables -A BADPKT -p tcp --tcp-flags ALL&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; NONE&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -j DROP&lt;br /&gt;iptables -A BADPKT -p tcp --tcp-flags SYN,RST&amp;nbsp;&amp;nbsp; SYN,RST&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -j DROP&lt;br /&gt;iptables -A BADPKT -p tcp --tcp-flags SYN,FIN&amp;nbsp;&amp;nbsp; SYN,FIN&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -j DROP&lt;br /&gt;iptables -A BADPKT -p icmp -f -j DROP &lt;br /&gt;iptables -A BADPKT -p tcp -m tcp ! --tcp-flags FIN,SYN,RST,ACK SYN -m state --state NEW -j DROP &lt;br /&gt;iptables -A BADPKT -m state --state INVALID -j DROP&lt;br /&gt;iptables -I INPUT 1 -j BADPKT&lt;br /&gt;&lt;br /&gt;# распихиваем доступ по цепочкам сетевух&lt;br /&gt;INDEX=0&lt;br /&gt;for INTCHAIN in ${CHAINS[@]}; do&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; iptables -N $INTCHAIN&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if [ -n "$IPLIST" ]; then&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for IP in $IPLIST; do&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; iptables -A $INTCHAIN -s $IP -j ACCEPT&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; done&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; fi&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; # accept connections from internet on allowed port's&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if [ -n "$TCPPORTLIST" ]; then&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for TCPPORT in $TCPPORTLIST; do&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; iptables -A $INTCHAIN -p tcp --dport $TCPPORT -j ACCEPT&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; done&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; fi&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if [ -n "$UDPPORTLIST" ]; then&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for UDPPORT in $UDPPORTLIST; do&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; iptables -A $INTCHAIN -p udp --dport $UDPPORT -j ACCEPT&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; done&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; fi&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; iptables -A $INTCHAIN -m state --state ESTABLISHED,RELATED -j ACCEPT&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; iptables -A $INTCHAIN -p icmp -j ACCEPT&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; iptables -A $INTCHAIN -j DROP&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; iptables -I INPUT 2 -i ${INTLIST[$INDEX]} -j $INTCHAIN&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; let INDEX+=1&lt;br /&gt;done&lt;br /&gt;&lt;br /&gt;# цепочка для забаненных адресов&lt;br /&gt;iptables -N BANNED&lt;br /&gt;iptables -I INPUT 1 -j BANNED&lt;br /&gt;&lt;br /&gt;###############################################################################&lt;br /&gt;# FORWARD chain setup&lt;br /&gt;###############################################################################&lt;br /&gt;&lt;br /&gt;iptables -N FWD-IN&lt;br /&gt;iptables -N FWD-OUT&lt;br /&gt;iptables -A FORWARD -s 192.168.0.0/16 -d 192.168.0.0/16 -j ACCEPT&lt;br /&gt;iptables -A FWD-OUT -p tcp -m multiport --dport 135,137,138,139,445 -j DROP&lt;br /&gt;iptables -A FWD-OUT -p udp -m multiport --dport 135,137,138,139,445 -j DROP&lt;br /&gt;iptables -A FORWARD -s ! 192.168.0.0/16 -d 192.168.0.0/16 -j FWD-IN&lt;br /&gt;iptables -A FORWARD -s 192.168.0.0/16 -d ! 192.168.0.0/16 -j FWD-OUT&lt;br /&gt;&lt;br /&gt;# доступ всей локалке до какого либо адреса, например mail.hotbox.ru&lt;br /&gt;iptables -A FWD-IN -s mail.hotbox.ru -d 192.168.0.0/16 -j ACCEPT&lt;br /&gt;iptables -A FWD-OUT -s 192.168.0.0/16 -d mail.hotbox.ru -p tcp --dport 110 -j ACCEPT&lt;br /&gt;&lt;br /&gt;iptables -P FORWARD DROP&lt;br /&gt;&lt;br /&gt;###############################################################################&lt;br /&gt;# NAT POSTROUTING chain setup&lt;br /&gt;###############################################################################&lt;br /&gt;&lt;br /&gt;# натим до mail.hotbox.ru&lt;br /&gt;iptables -t nat -A POSTROUTING -s 192.168.0.0/16 -d mail.hotbox.ru -j MASQUERADE&lt;br /&gt;&lt;br /&gt;###############################################################################&lt;br /&gt;&lt;br /&gt;iptables -L -v -n --line-numbers&lt;br /&gt;---------------&lt;br /&gt;&lt;br /&gt;Всё, бан, нат и прочее добавляются маленькими скриптами в соответствующие цепочки: нат в FWD-IN, FWD-OUT и -t nat POSTROUTING, бан соответственно в BANNED</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:neonman:3298</id>
    <link rel="alternate" type="text/html" href="http://neonman.livejournal.com/3298.html"/>
    <link rel="self" type="text/xml" href="http://neonman.livejournal.com/data/atom/?itemid=3298"/>
    <title>neonman @ 2005-04-20T00:36:00</title>
    <published>2005-04-19T19:40:39Z</published>
    <updated>2005-04-19T19:40:39Z</updated>
    <lj:music>Theatre Of Tragedy - Venus</lj:music>
    <content type="html">С наступлением первых теплых деньков весь underground, background и foreground Автограда выбрался на улицу. Теперь в парке некуда сесть... и встать...</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:neonman:2879</id>
    <link rel="alternate" type="text/html" href="http://neonman.livejournal.com/2879.html"/>
    <link rel="self" type="text/xml" href="http://neonman.livejournal.com/data/atom/?itemid=2879"/>
    <title>Весна.</title>
    <published>2005-04-01T13:47:49Z</published>
    <updated>2005-04-01T13:47:49Z</updated>
    <content type="html">Весна. На улице начался массовый сход говна, а в Старом Городе люди опять достали байдарки и каноэ...</content>
  </entry>
</feed>
