iptables

 

iptables設定


iptables.sh 初期作成 ・・・iptablelog 導入により、機能せず修正・後記

[root@falcon21 ~]# vi iptables.sh
#!/bin/bash

#---------------------------------------#
設定開始 #
#---------------------------------------#

内部ネットワークアドレス定義
LOCALNET=192.168.2.0/32

#---------------------------------------#
設定終了 #
#---------------------------------------#

デフォルトルール(以降のルールにマッチしなかった場合に適用するルール)設定
IPTABLES_CONFIG=`mktemp`
echo "*filter" >> $IPTABLES_CONFIG
echo ":INPUT DROP [0:0]" >> $IPTABLES_CONFIG # 
受信はすべて破棄
echo ":FORWARD DROP [0:0]" >> $IPTABLES_CONFIG # 
通過はすべて破棄
echo ":OUTPUT ACCEPT [0:0]" >> $IPTABLES_CONFIG # 
送信はすべて許可
echo ":ACCEPT_COUNTRY - [0:0]" >> $IPTABLES_CONFIG # 
指定した国からのアクセスを許可
echo ":DROP_COUNTRY - [0:0]" >> $IPTABLES_CONFIG # 
指定した国からのアクセスを破棄
echo ":LOG_PINGDEATH - [0:0]" >> $IPTABLES_CONFIG # Ping of Death
攻撃はログを記録して破棄

自ホストからのアクセスをすべて許可
echo "-A INPUT -i lo -j ACCEPT" >> $IPTABLES_CONFIG

内部からのアクセスをすべて許可
echo "-A INPUT -s $LOCALNET -j ACCEPT" >> $IPTABLES_CONFIG

内部から行ったアクセスに対する外部からの返答アクセスを許可
echo "-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT" >> $IPTABLES_CONFIG

# SYN Cookies
を有効にする
# ※TCP SYN Flood
攻撃対策
sysctl -w net.ipv4.tcp_syncookies=1 > /dev/null
sed -i '/net.ipv4.tcp_syncookies/d' /etc/sysctl.conf
echo "net.ipv4.tcp_syncookies=1" >> /etc/sysctl.conf

ブロードキャストアドレス宛pingには応答しない
# ※Smurf
攻撃対策
sysctl -w net.ipv4.icmp_echo_ignore_broadcasts=1 > /dev/null
sed -i '/net.ipv4.icmp_echo_ignore_broadcasts/d' /etc/sysctl.conf
echo "net.ipv4.icmp_echo_ignore_broadcasts=1" >> /etc/sysctl.conf

# ICMP Redirect
パケットは拒否
sed -i '/net.ipv4.conf.*.accept_redirects/d' /etc/sysctl.conf
for dev in `ls /proc/sys/net/ipv4/conf/`
do
sysctl -w net.ipv4.conf.$dev.accept_redirects=0 > /dev/null
echo "net.ipv4.conf.$dev.accept_redirects=0" >> /etc/sysctl.conf
done

# Source Routed
パケットは拒否
sed -i '/net.ipv4.conf.*.accept_source_route/d' /etc/sysctl.conf
for dev in `ls /proc/sys/net/ipv4/conf/`
do
sysctl -w net.ipv4.conf.$dev.accept_source_route=0 > /dev/null
echo "net.ipv4.conf.$dev.accept_source_route=0" >> /etc/sysctl.conf
done

フラグメント化されたパケットはログを記録して破棄
echo "-A INPUT -f -j LOG --log-prefix \"[IPTABLES FRAGMENT] : \"" >> $IPTABLES_CONFIG
echo "-A INPUT -f -j DROP" >> $IPTABLES_CONFIG

外部とのNetBIOS関連のアクセスはログを記録せずに破棄
# ※
不要ログ記録防止
echo "-A INPUT ! -s $LOCALNET -p tcp -m multiport --dports 135,137,138,139,445 -j DROP" >> $IPTABLES_CONFIG
echo "-A INPUT ! -s $LOCALNET -p udp -m multiport --dports 135,137,138,139,445 -j DROP" >> $IPTABLES_CONFIG
echo "-A OUTPUT ! -d $LOCALNET -p tcp -m multiport --sports 135,137,138,139,445 -j DROP" >> $IPTABLES_CONFIG
echo "-A OUTPUT ! -d $LOCALNET -p udp -m multiport --sports 135,137,138,139,445 -j DROP" >> $IPTABLES_CONFIG

# 1
秒間に4回を超えるpingはログを記録して破棄
# ※Ping of Death
攻撃対策
echo "-A LOG_PINGDEATH -m limit --limit 1/s --limit-burst 4 -j ACCEPT" >> $IPTABLES_CONFIG
echo "-A LOG_PINGDEATH -j LOG --log-prefix \"[IPTABLES PINGDEATH] : \"" >> $IPTABLES_CONFIG
echo "-A LOG_PINGDEATH -j DROP" >> $IPTABLES_CONFIG
echo "-A INPUT -p icmp --icmp-type echo-request -j LOG_PINGDEATH" >> $IPTABLES_CONFIG

全ホスト(ブロードキャストアドレス、マルチキャストアドレス)宛パケットはログを記録せずに破棄
# ※
不要ログ記録防止
echo "-A INPUT -d 255.255.255.255 -j DROP" >> $IPTABLES_CONFIG
echo "-A INPUT -d 224.0.0.1 -j DROP" >> $IPTABLES_CONFIG

# 113
番ポート(IDENT)へのアクセスには拒否応答
# ※
メールサーバ等のレスポンス低下防止
echo "-A INPUT -p tcp --dport 113 -j REJECT --reject-with tcp-reset" >> $IPTABLES_CONFIG

# ACCEPT_COUNTRY_MAKE
関数定義
指定された国のIPアドレスからのアクセスを許可するユーザ定義チェイン作成
ACCEPT_COUNTRY_MAKE(){
for addr in `cat /tmp/cidr.txt|grep ^$1|awk '{print $2}'`
do
echo "-A ACCEPT_COUNTRY -s $addr -j ACCEPT" >> $IPTABLES_CONFIG
done
grep ^$1 $IP_LIST >> $CHK_IP_LIST
}

# DROP_COUNTRY_MAKE
関数定義
指定された国のIPアドレスからのアクセスを破棄するユーザ定義チェイン作成
DROP_COUNTRY_MAKE(){
for addr in `cat /tmp/cidr.txt|grep ^$1|awk '{print $2}'`
do
echo "-A DROP_COUNTRY -s $addr -m limit --limit 1/s -j LOG --log-prefix \"[IPTABLES DENY_COUNTRY] : \"" >> $IPTABLES_CONFIG
echo "-A DROP_COUNTRY -s $addr -j DROP" >> $IPTABLES_CONFIG
done
grep ^$1 $IP_LIST >> $CHK_IP_LIST
}

# IP
アドレスリスト取得
IP_LIST=/tmp/cidr.txt
CHK_IP_LIST=/tmp/IPLIST
if [ ! -f $IP_LIST ]; then
wget -q http://nami.jp/ipv4bycc/cidr.txt.gz
gunzip -c cidr.txt.gz > $IP_LIST
rm -f cidr.txt.gz
fi
rm -f $CHK_IP_LIST

日本からのアクセスを許可するユーザ定義チェインACCEPT_COUNTRY作成
ACCEPT_COUNTRY_MAKE JP
以降,日本からのみアクセスを許可したい場合はACCEPTのかわりにACCEPT_COUNTRYを指定する

全国警察施設への攻撃元上位6カ国(日本・アメリカを除く)からのアクセスをログを記録して破棄
直近1週間の状況 http://www.npa.go.jp/cyberpolice/detect/observation.html
前月の状況 https://www.npa.go.jp/cyberpolice/detect/
DROP_COUNTRY_MAKE CN
DROP_COUNTRY_MAKE KR
DROP_COUNTRY_MAKE VN
DROP_COUNTRY_MAKE TW
DROP_COUNTRY_MAKE BR
DROP_COUNTRY_MAKE RU
echo "-A INPUT -j DROP_COUNTRY" >> $IPTABLES_CONFIG

#----------------------------------------------------------#
各種サービスを公開する場合の設定(ここから) #
#----------------------------------------------------------#

外部からのTCP22番ポート(SSH)へのアクセスを日本からのみ許可
# ※SSH
サーバーを公開する場合のみ
echo "-A INPUT -p tcp --dport 22 -j ACCEPT_COUNTRY" >> $IPTABLES_CONFIG

外部からのTCP/UDP53番ポート(DNS)へのアクセスを許可
# ※
外部向けDNSサーバーを運用する場合のみ
echo "-A INPUT -p tcp --dport 53 -j ACCEPT" >> $IPTABLES_CONFIG
echo "-A INPUT -p udp --dport 53 -j ACCEPT" >> $IPTABLES_CONFIG

外部からのTCP80番ポート(HTTP)へのアクセスを許可
# ※Web
サーバーを公開する場合のみ
echo "-A INPUT -p tcp --dport 80 -j ACCEPT" >> $IPTABLES_CONFIG

外部からのTCP443番ポート(HTTPS)へのアクセスを許可
# ※Web
サーバーを公開する場合のみ
echo "-A INPUT -p tcp --dport 443 -j ACCEPT" >> $IPTABLES_CONFIG

外部からのTCP21番ポート(FTP)へのアクセスを日本からのみ許可
# ※FTP
サーバーを公開する場合のみ
echo "-A INPUT -p tcp --dport 21 -j ACCEPT_COUNTRY" >> $IPTABLES_CONFIG

外部からのPASV用ポート(FTP-DATA)へのアクセスを日本からのみ許可
# ※FTP
サーバーを公開する場合のみ
# ※PASV
用ポート60000:60030は当サイトの設定例
echo "-A INPUT -p tcp --dport 60000:60030 -j ACCEPT_COUNTRY" >> $IPTABLES_CONFIG

外部からのTCP25番ポート(SMTP)へのアクセスを許可
# ※SMTP
サーバーを公開する場合のみ
echo "-A INPUT -p tcp --dport 25 -j ACCEPT" >> $IPTABLES_CONFIG

外部からのTCP465番ポート(SMTPS)へのアクセスを日本からのみ許可
# ※SMTPS
サーバーを公開する場合のみ
echo "-A INPUT -p tcp --dport 465 -j ACCEPT_COUNTRY" >> $IPTABLES_CONFIG

外部からのTCP110番ポート(POP3)へのアクセスを日本からのみ許可
# ※POP3
サーバーを公開する場合のみ
echo "-A INPUT -p tcp --dport 110 -j ACCEPT_COUNTRY" >> $IPTABLES_CONFIG

外部からのTCP995番ポート(POP3S)へのアクセスを日本からのみ許可
# ※POP3S
サーバーを公開する場合のみ
echo "-A INPUT -p tcp --dport 995 -j ACCEPT_COUNTRY" >> $IPTABLES_CONFIG

外部からのTCP143番ポート(IMAP)へのアクセスを日本からのみ許可
# ※IMAP
サーバーを公開する場合のみ
echo "-A INPUT -p tcp --dport 143 -j ACCEPT_COUNTRY" >> $IPTABLES_CONFIG

外部からのTCP993番ポート(IMAPS)へのアクセスを日本からのみ許可
# ※IMAPS
サーバーを公開する場合のみ
echo "-A INPUT -p tcp --dport 993 -j ACCEPT_COUNTRY" >> $IPTABLES_CONFIG

外部からのUDP1194番ポート(OpenVPN)へのアクセスを日本からのみ許可
# ※OpenVPN
サーバーを公開する場合のみ
echo "-A INPUT -p udp --dport 1194 -j ACCEPT_COUNTRY" >> $IPTABLES_CONFIG

# VPN
インタフェース用ファイアウォール設定
# ※OpenVPN
サーバーを公開する場合のみ
[ -f /etc/openvpn/openvpn-startup ] && \
grep ^iptables /etc/openvpn/openvpn-startup|sed -e 's/iptables //p' -e d >> $IPTABLES_CONFIG

#----------------------------------------------------------#
各種サービスを公開する場合の設定(ここまで) #
#----------------------------------------------------------#

拒否IPアドレスからのアクセスはログを記録せずに破棄
# ※
拒否IPアドレスは/root/deny_ip1行ごとに記述しておくこと
# (/root/deny_ip
がなければなにもしない)
if [ -s /root/deny_ip ]; then
for ip in `cat /root/deny_ip`
do
echo "-I INPUT -s $ip -j DROP" >> $IPTABLES_CONFIG
done
fi

上記のルールにマッチしなかったアクセスはログを記録して破棄
echo "-A INPUT -m limit --limit 1/s -j LOG --log-prefix \"[IPTABLES INPUT] : \"" >> $IPTABLES_CONFIG
echo "-A INPUT -j DROP" >> $IPTABLES_CONFIG
echo "-A FORWARD -m limit --limit 1/s -j LOG --log-prefix \"[IPTABLES FORWARD] : \"" >> $IPTABLES_CONFIG
echo "-A FORWARD -j DROP" >> $IPTABLES_CONFIG

ファイアウォール設定反映
echo "COMMIT" >> $IPTABLES_CONFIG
cat $IPTABLES_CONFIG > /etc/sysconfig/iptables
if [ -f /usr/libexec/iptables/iptables.init ]; then
/usr/libexec/iptables/iptables.init restart
else
/etc/rc.d/init.d/iptables restart
fi
rm -f $IPTABLES_CONFIG



*****************************************************************

修正版 iptables.sh iptablelog 関連事項も記入

******************************************************************

[root@falcon21 ~]# vi iptables.sh
#!/bin/bash

# SYN Cookiesを有効にする

# ※TCP SYN Flood攻撃対策

sysctl -w net.ipv4.tcp_syncookies=1 > /dev/null

sed -i '/net.ipv4.tcp_syncookies/d' /etc/sysctl.conf

# /etc/sysctl.confからnet.ipv4.tcp_syncookiesが含まれる行を削除する。


 

echo "net.ipv4.tcp_syncookies=1" >> /etc/sysctl.conf

# /etc/sysctl.confnet.ipv4.tcp_syncookies=1を追加する。


 

ブロードキャストアドレス宛pingには応答しない

# ※Smurf攻撃対策

デフォルトでnet.ipv4.icmp_echo_ignore_broadcasts=1 のため不要


 

# ICMP Redirectパケットは拒否

sed -i '/net.ipv4.conf.*.accept_redirects/d' /etc/sysctl.conf

for dev in `ls /proc/sys/net/ipv4/conf/`

do

sysctl -w net.ipv4.conf.$dev.accept_redirects=0 > /dev/null

echo "net.ipv4.conf.$dev.accept_redirects=0" >> /etc/sysctl.conf

done


 

# Source Routedパケットは拒否

sed -i '/net.ipv4.conf.*.accept_source_route/d' /etc/sysctl.conf

for dev in `ls /proc/sys/net/ipv4/conf/`

do

sysctl -w net.ipv4.conf.$dev.accept_source_route=0 > /dev/null

echo "net.ipv4.conf.$dev.accept_source_route=0" >> /etc/sysctl.conf

done


 

インタフェース名定義

LAN=eth0


 

内部ネットワーク

LOCALNET="192.168.2.0/255.255.255.0"


 

フィルタリングルールの削除

iptables -F INPUT || echo "1"

iptables -F OUTPUT || echo "2"

iptables -F FORWARD || echo "3"

iptables -F || echo "4"

iptables -X || echo "5"


 

カウンターのリセット

iptables -Z || echo "6"


 

デフォルトルール(以降のルールにマッチしなかった場合に適用するルール)設定

iptables -P INPUT DROP || echo "7"

iptables -P OUTPUT ACCEPT || echo "8"

iptables -P FORWARD DROP || echo "9"


 

自ホストからのアクセスをすべて許可

iptables -A INPUT -i lo -j ACCEPT || echo "10"


 

内部からのアクセスをすべて許可

iptables -A INPUT -s $LOCALNET -j ACCEPT || echo "11"


 

内部から行ったアクセスに対する外部からの返答アクセスを許可

iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT || echo "12"


 

フラグメント化されたパケットはログを記録して破棄

# -fオプションを付けると断片化されたパケットのみに規則を適用

デフォルトではlog-level=warnにて出力

# /var/log/messages,syslog,kern.logに出力されるとサイズが大きくなるため

# kern.debugにしてファイルを分ける。

#iptables -A INPUT -f -j LOG --log-prefix '[IPTABLES FRAGMENT] : ' --log-level=debug || echo "13"

iptables -A INPUT -f -j ULOG --ulog-nlgroup 1 --ulog-prefix "[IPTABLES FRAGMENT] : " || echo "13"

iptables -A INPUT -f -j DROP || echo "14"


 

外部とのNetBIOS関連のアクセスはログを記録せずに破棄

# ※不要ログ記録防止

iptables -A INPUT -s ! $LOCALNET -p tcp -m multiport --dports 135,137,138,139,445 -j DROP || echo "15"

iptables -A INPUT -s ! $LOCALNET -p udp -m multiport --dports 135,137,138,139,445 -j DROP || echo "16"

iptables -A OUTPUT -d ! $LOCALNET -p tcp -m multiport --sports 135,137,138,139,445 -j DROP || echo "17"

iptables -A OUTPUT -d ! $LOCALNET -p udp -m multiport --sports 135,137,138,139,445 -j DROP || echo "18"


 

# 1秒間に4回を超えるpingはログを記録して破棄

# ※Ping of Death攻撃対策

# iptableが効いているかを試験する場合はLOCALNETからのINBOUND通信を許可する前に本設定を入れる。

iptables -N LOG_PINGDEATH

iptables -A LOG_PINGDEATH -m limit --limit 1/s --limit-burst 4 -j ACCEPT || echo "19"

#iptables -A LOG_PINGDEATH -j LOG --log-prefix '[IPTABLES PINGDEATH] : ' --log-level=debug || echo "20"

iptables -A LOG_PINGDEATH -j ULOG --ulog-nlgroup 1 --ulog-prefix "[IPTABLES PINGDEATH] :" || echo "20"

iptables -A LOG_PINGDEATH -j DROP || echo "21"

iptables -A INPUT -p icmp --icmp-type echo-request -j LOG_PINGDEATH || echo "22"

iptables -A INPUT -p icmp --icmp-type echo-reply -j LOG_PINGDEATH || echo "22"

iptables -A INPUT -p icmp --icmp-type destination-unreachable -j LOG_PINGDEATH || echo "22"

iptables -A INPUT -p icmp --icmp-type time-exceeded -j LOG_PINGDEATH || echo "22"


 

全ホスト(ブロードキャストアドレス、マルチキャストアドレス)宛パケットはログを記録せずに破棄

# ※不要ログ記録防止

iptables -A INPUT -d 255.255.255.255 -j DROP || echo "23"

iptables -A INPUT -d 224.0.0.1 -j DROP || echo "24"


 

# 113番ポート(IDENT)へのアクセスには拒否応答

# ※メールサーバ等のレスポンス低下防止

iptables -A INPUT -p tcp --dport 113 -j REJECT --reject-with tcp-reset || echo "25"


 

それ以外のIPアドレスからは基本許可

ただし1分間に20パケット以上特定のIPアドレスから来た場合は移行5パケットしか受け付けない(4分間通信が無ければ20パケット受け付けられる閾値まで回復する)

iptables -A INPUT -p tcp --dport 53 -j ULOG --ulog-nlgroup 1 --ulog-prefix "[IPTABLES_TCP_DNS_ACCESS] : "

iptables -A INPUT -p tcp --dport 53 -m hashlimit --hashlimit-name t_dns --hashlimit 5/minute --hashlimit-burst 20 --hashlimit-mode srcip --hashlimit-htable-expire 120000 -j ACCEPT

#iptables -A INPUT -p tcp --dport 53 -j LOG --log-prefix '[IPTABLES_TCP_DNS_DROP] : ' --log-level=debug

iptables -A INPUT -p tcp --dport 53 -j ULOG --ulog-nlgroup 1 --ulog-prefix "[IPTABLES_TCP_DNS_DROP] : "

iptables -A INPUT -p tcp --dport 53 -j DROP

iptables -A INPUT -p udp --dport 53 -j ULOG --ulog-nlgroup 1 --ulog-prefix "[IPTABLES_UDP_DNS_ACCESS] : "

iptables -A INPUT -p udp --dport 53 -m hashlimit --hashlimit-name t_dns --hashlimit 5/minute --hashlimit-burst 20 --hashlimit-mode srcip --hashlimit-htable-expire 120000 -j ACCEPT

#iptables -A INPUT -p udp --dport 53 -j LOG --log-prefix '[IPTABLES_UDP_DNS_DROP] : ' --log-level=debug

iptables -A INPUT -p udp --dport 53 -j ULOG --ulog-nlgroup 1 --ulog-prefix "[IPTABLES_UDP_DNS_DROP] : "

iptables -A INPUT -p udp --dport 53 -j DROP


 

外部からのTCP25番ポート(SMTP)へのアクセスを許可

#iptables -A INPUT -p tcp --dport 25 -j LOG --log-prefix '[IPTABLES_MAIL_ACCEPT] : ' --log-level=debug

iptables -A INPUT -p tcp --dport 25 -j ULOG --ulog-nlgroup 1 --ulog-prefix "[IPTABLES_MAIL_ACCESS] : "

iptables -A INPUT -p tcp --dport 25 -m hashlimit --hashlimit-name t_mail --hashlimit 3/minute --hashlimit-burst 10 --hashlimit-mode srcip --hashlimit-htable-expire 120000 -j ACCEPT

iptables -A INPUT -p tcp --dport 25 -j ULOG --ulog-nlgroup 1 --ulog-prefix "[IPTABLES_MAIL_DROP] : "

iptables -A INPUT -p tcp --dport 25 -j DROP


 

外部からのTCP80番ポート(HTTP)へのアクセスを許可

iptables -A INPUT -p tcp --dport 80 -j ULOG --ulog-nlgroup 1 --ulog-prefix "[IPTABLES_HTTP_ACCEPT] : "

iptables -A INPUT -p tcp --dport 80 -j ACCEPT


 

拒否IPアドレスからのアクセスはログを記録せずに破棄

# ※拒否IPアドレスは//etc/network/if-pre-up.d/deny_ip1行ごとに記述しておくこと

# (/etc/network/if-pre-up.d/deny_ipがなければなにもしない)

# -Iなので、INPUTチェインの一番上に挿入される

if [ -s /etc/network/if-pre-up.d/deny_ip ]; then

for ip in `cat /etc/network/if-pre-up.d/deny_ip`

do

iptables -I INPUT -s $ip -j DROP

done

fi


 

上記のルールにマッチしなかったアクセスはログを記録して破棄

#iptables -A INPUT -m limit --limit 1/s -j LOG --log-prefix '[IPTABLES INPUT] : ' --log-level=debug || echo "26"

iptables -A INPUT -m limit --limit 1/s -j ULOG --ulog-nlgroup 1 --ulog-prefix "[IPTABLES INPUT] : "

iptables -A INPUT -j DROP || echo "27"

#iptables -A FORWARD -m limit --limit 1/s -j LOG --log-prefix '[IPTABLES FORWARD] : ' --log-level=debug || echo "28"

iptables -A FORWARD -m limit --limit 1/s -j ULOG --ulog-nlgroup 1 --ulog-prefix "[IPTABLES FORWARD] : "

iptables -A FORWARD -j DROP || echo "29"

************************************************************************************


 

毎日自動でIPアドレスリストの更新有無をチェック、スクリプト再起動

[root@falcon21 ~]# 
vi /etc/cron.daily/iplist_check.sh
#!/bin/bash

PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin

新旧IPLIST差分チェック件数(0を指定するとチェックしない)
# ※
新旧IPLIST差分がSABUN_CHKで指定した件数を越える場合はiptables設定スクリプトを実行しない
# ※
新旧IPLIST差分チェック理由はhttp://centossrv.com/bbshtml/webpatio/1592.shtmlを参照
SABUN_CHK=100
[ $# -ne 0 ] && SABUN_CHK=${1}

# IP
アドレスリスト取得
IP_LIST=/tmp/cidr.txt
CHK_IP_LIST=/tmp/IPLIST
wget -q http://nami.jp/ipv4bycc/cidr.txt.gz
gunzip -c cidr.txt.gz > $IP_LIST
rm -f cidr.txt.gz

チェック対象IPアドレスリスト最新化
rm -f IPLIST.new
for country in `awk '{print $1}' $CHK_IP_LIST |uniq`
do
grep ^$country $IP_LIST >> IPLIST.new
done

チェック対象IPアドレスリスト更新チェック
diff -q $CHK_IP_LIST IPLIST.new > /dev/null 2>&1
if [ $? -ne 0 ]; then
if [ ${SABUN_CHK} -ne 0 ]; then
if [ $(diff $CHK_IP_LIST IPLIST.new | egrep -c '<|>') -gt ${SABUN_CHK} ]; then
(
diff $CHK_IP_LIST IPLIST.new
echo
echo "iptables.sh not executed."
) | mail -s 'IPLIST UPDATE' root
rm -f IPLIST.new
exit
fi
fi
/bin/mv IPLIST.new $CHK_IP_LIST
sh /root/iptables.sh > /dev/null
else
rm -f IPLIST.new
fi


*******************************************************

[root@falcon21 ~]# 
chmod +x /etc/cron.daily/iplist_check.sh

[root@falcon21 ~]#
 sh iptables.sh
iptables: 
ファイアウォールルールを適用中: [ OK ]

[root@falcon21 ~]# 
chkconfig iptables on


 

システムエラーメール

/etc/cron.daily/iplist_check.sh:


 

Using intrapositioned negation (`--option ! this`) is deprecated in favor of extrapositioned (`! --option this`).

Using intrapositioned negation (`--option ! this`) is deprecated in favor of extrapositioned (`! --option this`).

Using intrapositioned negation (`--option ! this`) is deprecated in favor of extrapositioned (`! --option this`).

Using intrapositioned negation (`--option ! this`) is deprecated in favor of extrapositioned (`! --option this`).


 

修正  

71 # 外部とのNetBIOS関連のアクセスはログを記録せずに破棄

72 # ※不要ログ記録防止

73 iptables -A INPUT !-s $LOCALNET -p tcp -m multiport --dports 135,137,138,139,445 -j DROP || echo "15"

74 iptables -A INPUT ! -s $LOCALNET -p udp -m multiport --dports 135,137,138,139,445 -j DROP || echo "16"

75 iptables -A OUTPUT !-d $LOCALNET -p tcp -m multiport --sports 135,137,138,139,445 -j DROP || echo "17"

76 iptables -A OUTPUT ! -d $LOCALNET -p udp -m multiport --sports 135,137,138,139,445 -j DROP || echo "18"

77

の位置を移動修正。

********************************* 

投票数:4 平均点:10.00

 
Back to Top