/etc/sshd.config or /etc/ssh/sshd_config # This is the sshd server system-wide configuration file. See sshd(8) # for more information. Port 22 ↑ 22以外にしたとか?
全通しで外部から繋がるんだよね?
iptables -A INPUT -p tcp --dport ssh -j ACCEPT でsshのポートは開いてるから繋がるはずだけど。
iptables -t nat -A POSTROUTING -o ${OUTSIDE_DEVICE} -j MASQUERADE
# Keep state. (for DMZ) iptables -A FORWARD -m state --state NEW -i ${DMZ_DEVICE} -j ACCEPT
# We don't like the NetBIOS and Samba leaking. (from DMZ) iptables -t nat -A PREROUTING -p TCP -i ${DMZ_DEVICE} --dport 135:139 -j DROP iptables -t nat -A PREROUTING -p UDP -i ${DMZ_DEVICE} --dport 137:139 -j DROP iptables -t nat -A PREROUTING -p TCP -i ${DMZ_DEVICE} --dport 445 -j DROP iptables -t nat -A PREROUTING -p UDP -i ${DMZ_DEVICE} --dport 445 -j DROP
# Accepting packets between Inside and DMZ # And also, DHCP, but we can basically accept anything from the inside. (for DMZ) iptables -A INPUT -i ${DMZ_DEVICE} -j ACCEPT iptables -A OUTPUT -o ${DMZ_DEVICE} -j ACCEPT # # no more P2P iptables -t nat -A PREROUTING -p TCP -i ${DMZ_DEVICE} --sport 1024:5000 --dport 1024:65535 -j DROP
internet <-> ルーター <-> Linux <-> LAN という構成になってます。 外部に公開したいのは「ssh www ftp」、外部からの「netbios」は破棄 というように書いてみたのですがいかがでしょうか? icmpは公開、非公開どちらがいいでしょう?
■構成 internet <-> [192.168.0.1] <-> [eth0 192.168.0.10 / eth1 192.168.1.1] <-> LAN ----------------------- #!/bin/sh IF_BAD='eth0' IF_LAN='eth1' IP_BAD='192.168.0.10'
iptables -t nat -A POSTROUTING -o $IF_LAN -j MASQUERADE
iptables -P INPUT DROP iptables -P OUTPUT ACCEPT iptables -P FORWARD ACCEPT iptables -A INPUT -i lo -j ACCEPT iptables -A INPUT -i $IF_BAD -j ACCEPT
iptables -A INPUT -j DROP ! -i $IF_LAN -s 192.168.1.0/24 iptables -A INPUT -j DROP ! -i lo -s 127.0.0.1/255.0.0.0 iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
#iptables -P INPUT -p icmp -d $IP_BAD -j ACCEPT iptables -A INPUT -p tcp -d $IP_BAD --sport ssh --dport ssh -j ACCEPT iptables -A INPUT -p tcp -d $IP_BAD --sport ftp --dport ftp -j ACCEPT iptables -A INPUT -p tcp -d $IP_BAD --sport www --dport www -j ACCEPT iptables -A INPUT -p tcp -i $IF_BAD --dport netbios-ns -j DROP iptables -A INPUT -p tcp -i $IF_BAD --dport netbios-dgm -j DROP iptables -A INPUT -p tcp -i $IF_BAD --dport netbios-ssn -j DROP
iptables -P INPUT DROP iptables -P OUTPUT ACCEPT iptables -P FORWARD ACCEPT iptables -A INPUT -i lo -j ACCEPT iptables -A INPUT -i $IF_LAN -j ACCEPT
iptables -A INPUT -j DROP ! -i $IF_LAN -s 192.168.1.0/24 iptables -A INPUT -j DROP ! -i lo -s 127.0.0.1/255.0.0.0 iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -p tcp -i $IF_BAD --dport ssh -j ACCEPT iptables -A INPUT -p tcp -i $IF_BAD --dport ftp -j ACCEPT iptables -A INPUT -p tcp -i $IF_BAD --dport www -j ACCEPT iptables -A INPUT -p tcp -i $IF_BAD --dport https -j ACCEPT iptables -A INPUT -p tcp -i $IF_BAD --dport netbios-ns -j DROP iptables -A INPUT -p tcp -i $IF_BAD --dport netbios-dgm -j DROP iptables -A INPUT -p tcp -i $IF_BAD --dport netbios-ssn -j DROP
543 名前:login:Penguin [03/03/06 11:01 ID:/yoUtsQA]
1台のPCにNICを3枚挿すといった、セキュリティ上好ましくない環境でDMZとLANを適切にフィルタリングしたいです。 環境はPPPoE接続のフレッツBで、固定IPを8個割り当てるサービスに加入しています。eth2がWAN側、eth1がLAN側、eth0がDMZ側でeth1とeth2は共にスイッチングHUBに接続されています。 まずLAN側をフィルタリングしようとしているのですが、思ったとおりにいきません。 LAN側からはWebサイトの閲覧、IRCの利用(ファイル送信は利用しません)、FTP(PASVモード)の利用だけです。 # iptables -t nat -F # iptables -F # iptables -t nat -A POSTROUTING -o ppp0 -s 192.168.0.0/24 -j MASQUERADE # iptables -P FORWARD DROP # iptables -P OUTPUT ACCEPT # iptables -P INPUT ACCEPT # iptables -A FORWARD -s 192.168.0.0/24 -i eth1 -j ACCEPT # iptables -A FORWARD -p tcp --tcp-flags ACK ACK -j ACCEPT # iptables -A FORWARD -p tcp --tcp-flags FIN FIN -j ACCEPT # iptables -A OUTPUT -d 10.0.0.0/8 -o ppp0 -j DROP # iptables -A OUTPUT -d 172.16.0.0/12 -o ppp0 -j DROP # iptables -A OUTPUT -d 192.168.0.0/24 -o ppp0 -j DROP # iptables -A FORWARD -d 10.0.0.0/8 -o ppp0 -j DROP # iptables -A FORWARD -d 172.16.0.0/12 -o ppp0 -j DROP # iptables -A FORWARD -d 192.168.0.0/24 -o ppp0 -j DROP 以上のように設定し、YahooやGooなどを閲覧しようとしたのですが、閲覧できませんでした。 iptables -P FORWARD ACCEPTにすれば正常に繋がります。 間違いなどがありましたら、教えて下さい。
################## #### 目的別チェーンの作成 ### chain to LOG ant then DROP $IPT -N LOG_AND_DROP $IPT -A LOG_AND_DROP -j LOG --log-level warning --log-prefix "iptables:" #-m limit $IPT -A LOG_AND_DROP -j DROP $IPT -A LOG_AND_DROP -j RETURN
#### chain for the packet from WAN $IPT -N WANIN #とりあえず問答無用でDROPな奴 $IPT -A WANIN -s 192.168.0.0/16 -j DROP # 接続が確立しているパケットは許可する( but limit not well-known ports) $IPT -A WANIN -p tcp --dport 1024: \ -m state --state ESTABLISHED,RELATED -j ACCEPT $IPT -A WANIN -p udp --dport 1024: \ -m state --state ESTABLISHED,RELATED -j ACCEPT $IPT -A WANIN -p icmp \ -m state --state ESTABLISHED,RELATED -j ACCEPT $IPT -A WANIN -j RETURN
596 名前:594 [03/03/15 20:38 ID:nzpsL4hj]
#### chain for the packet to WAN $IPT -N WANOUT # SMB プロトコルが外に洩れない様にする。 $IPT -A WANOUT -p tcp --dport 137:139 -j DROP $IPT -A WANOUT -p tcp --sport 137:139 -j DROP $IPT -A WANOUT -p udp --dport 137:139 -j DROP $IPT -A WANOUT -p udp --sport 137:139 -j DROP # Windows 2000 がローカルに存在すれば以下の設定 $IPT -A WANOUT -p tcp --dport 445 -j DROP $IPT -A WANOUT -p tcp --sport 445 -j DROP $IPT -A WANOUT -p udp --dport 445 -j DROP $IPT -A WANOUT -p udp --sport 445 -j DROP # ローカル IP が外に洩れない様にする。 $IPT -A WANOUT -d 10.0.0.0/8 -j LOG_AND_DROP $IPT -A WANOUT -d 172.16.0.0/12 -j LOG_AND_DROP $IPT -A WANOUT -d $LOCAL -j LOG_AND_DROP $IPT -A WANOUT -d $LAN -j LOG_AND_DROP $IPT -A WANOUT -j RETURN
597 名前:594 [03/03/15 20:40 ID:nzpsL4hj]
################## #### link each chains #### INPUT #### # loopback $IPT -A INPUT -i lo -j ACCEPT # from LAN $IPT -A INPUT -i eth1 -s $LAN -j ACCEPT # from WAN $IPT -A INPUT -i eth0 -j WANIN # allow the tcp packets using the particular ports $IPT -A INPUT -p tcp --dport 22 -j ACCEPT #ssh $IPT -A INPUT -p udp --sport 67 --dport 68 -j ACCEPT #dhcp #### FORWARD #### # from WAN to LAN $IPT -A FORWARD -i eth0 -o eth1 -j WANIN # from LAN to WAN $IPT -A FORWARD -i eth1 -o eth0 -j WANOUT # from LAN $IPT -A FORWARD -i eth1 -j ACCEPT #### OUTPUT #### $IPT -A OUTPUT -o eth0 -j WANOUT
# ACCEPT されなかったパケットをLOG_AND_DROPチェーンへ $IPT -A INPUT -j LOG_AND_DROP $IPT -A FORWARD -j LOG_AND_DROP
#################### # IP Masquerade $IPT -t nat -A POSTROUTING -o eth0 -s $LAN -j MASQUERADE # enable the system ip-forwarding echo 1 > /proc/sys/net/ipv4/ip_forward