<? $IP=$_SERVER['REMOTE_ADDR']; ?> <form action="ipfwadd.php" name="myform" method="post"> <table border="1"> <tr> <td> :</td><td><input type="text" name="rules" maxlength="15" size="5"></td> </tr> <tr> <td>IP:</td><td><? echo $IP ?> </tr> <tr> <td>pass/deny</td><td> <select name=passdeny size=1> <option value=pass>pass</option> <option value=deny>deny</option> </select> </td> </tr> <tr> <td>UDP/TCP:</td><td> <select name=tcpudp size=1> <option value=tcp>TCP</option> <option value=udp>UDP</option> </select> </td> </tr> <tr> <td>:</td><td><input type="text" name="ports" maxlength="6" size="8"></td> </tr> </table> <input name="Submit" type=submit value=" "> </form>
<meta http-equiv="refresh" content="0; url=/"> <? $rules = $_POST['rules']; $IP = $_SERVER['REMOTE_ADDR']; $ports = $_POST['ports']; $tcpudp = $_POST['tcpudp']; $passdeny = $_POST['passdeny']; $grepip = shell_exec("sudo ipfw add $rules $passdeny $tcpudp from $IP to me $ports"); ?>
[anton@raccoon ~]$ su -
Password:
[root@raccoon ~]# whereis sudoers
sudoers: /usr/ports/security/sudo/
[root@raccoon ~]# cd /usr/ports/security/sudo/
[root@raccoon /usr/ports/security/sudo]# make install
/usr/local/etc/sudoers
so that the user from whom the web server starts is access to ipfw. I have this user www. Accordingly added such a linewww ALL=NOPASSWD:/etc/rc.d/ipfw, /sbin/ipfw
# cat /var/log/messages|grep ipfw
Feb 10 13:16:03 raccoon sudo: www : TTY=unknown ; PWD=/usr/local/www/ssl ; USER=root ; COMMAND=/sbin/ipfw add 150 pass tcp from 213.130.11.4 to me 80,88
Feb 11 20:24:06 raccoon sudo: www : TTY=unknown ; PWD=/usr/local/www/ssl ; USER=root ; COMMAND=/sbin/ipfw add 150 pass tcp from 88.155.65.100 to me 80,88
Feb 17 18:43:51 raccoon sudo: www : TTY=unknown ; PWD=/usr/local/www/ssl ; USER=root ; COMMAND=/sbin/ipfw add 150 pass tcp from 88.155.91.120 to me 80,88
Mar 3 22:19:02 raccoon sudo: www : TTY=unknown ; PWD=/usr/local/www/ssl ; USER=root ; COMMAND=/sbin/ipfw add 150 pass tcp from 88.155.8.131 to me 80,88
Mar 9 10:03:48 raccoon sudo: www : TTY=unknown ; PWD=/usr/local/www/ssl ; USER=root ; COMMAND=/sbin/ipfw add 150 pass tcp from 88.155.81.41 to me 80,88
Source: https://habr.com/ru/post/140207/
All Articles