/etc/sysconfig/iptables
ユーザーワークステーションIPを追加してからiptablesを実行するにはスクリプトが必要ですservice iptables reload
。 iptablesからこのルールを削除するには、同じタイプのスクリプトが必要です。
別のフォーラムで以下のコードを見つけました。
これはある程度私がしなければならないことです。これには以下が含まれます次へ追加そして削除するオプションですが、adduser
iptableルールを反映する必要があります(例
iptables -I INPUT 1 -p tcp -s xxx.xxx.xx.xxx --dport 22 -m comment --**comment "testing for user1" -j ACCEPT
:。
実行できるように、IPアドレス自体をパラメータとして渡す必要があります。
./script 155.154.15.00
RHEL 6.4バージョンを使用しています。
どんな意見でも大変感謝いたします。
#!/bin/bash
clear
echo "########## MENU ############\n"
options=("add_user" "delete_user" "exit")
select opt in "${options[@]}"
do
case $opt in
"add_user")
clear
while [ 1 ]
do
clear
echo "1. Add user manually"
echo "2. Add user via TXT file"
read -p "Enter your choice" ch
case $ch in
1)
read -p "Enter user name : " useradd
read -p "Enter user password:" passwd
echo -e "Successfully added the user"
;;
2)
if [ $(id -u) -eq 0 ]; then
for row in `more $1`
do
username=${row%:*}
password=${row#*:}
egrep "^$username" /etc/passwd >/dev/null
if [ $? -eq 0 ]; then
echo "$username exists!"
exit 1
else
pass=$(perl -e 'print crypt($ARGV[0], "password")' $password)
useradd -m -p $pass $username
[ $? -eq 0 ] && echo "User has been added to system!" || echo "Failed to add a user!"
fi
done
else
echo "Only root may add a user to the system"
exit 2
fi
esac
done
;;
"delete_user")
read -p "Enter a User name to delete "UNAME
passwd
userdel $UNAME
echo "User $UNAME has been deleted"
;;
"exit")
break
;;
esac
done
ベストアンサー1
私はこれに少し異なってアプローチします。私は特別な(最初は空の)チェーンにジャンプする静的iptables構成を維持します。
その後、cron操作でこれらの特殊チェーンを非同期に更新します。 IPアドレス/ホスト名のみを使用してセカンダリデータソースを繰り返し、N分ごとにチェーンを更新および更新できます(または古いルールを更新または削除しないことをお勧めします...)。
自動化された編集を絞り込むと、システムのiptablesを少し分離できます。
注:次の2つの方法のいずれかでイベントルールを編集できます。
-D, --delete チェーンルール仕様 -D, --チェーンルール番号の削除 選択したチェーンから1つ以上のルールを削除します。このコマンドには2つのバージョンがあります。ルールは数字で指定できます。 チェーンのバー(最初のルールの場合は1から始まる)または一致させるルール。
ルール番号を使用している場合は、ルールをダンプし、その番号に基づいてルール番号を選択します。ノート!これには独自の競争条件があります!ルール仕様を指定する場合は、ルールに含まれるパラメータと同じパラメータをすべて指定するだけで、ルールが削除対象として選択されます。