воскресенье, 24 января 2010 г.

Настроил iptables, теперь никто не ворует

Собственно в заголовке всё сказано, тут я подсыплю немного технических деталей. Теперь мои правила выглядят как-то так:

# INPUT
iptables -P INPUT ACCEPT

# OUTPUT
iptables -A OUTPUT -o lo -j ACCEPT
iptables -A OUTPUT -o ppp0 -m owner --uid-owner dnl-guest -j ACCEPT
iptables -A OUTPUT -o ppp0 -m owner --uid-owner portage -j ACCEPT
iptables -A OUTPUT -m owner --uid-owner root -j ACCEPT
iptables -A OUTPUT -m owner --uid-owner sazarkevich -j ACCEPT

iptables -A OUTPUT -j REJECT

На вход пока что все разрешены, позже надо бы добавить что-то вроде

iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT

а всё остальное запретить.

На выход разрешено всем на lo.
На ppp0 разрешены для пользователей portage и dnl-guest: portage качает обновления, с платника этого делать не стоит. Под пользователем dnl-guest запускаю торрент: su dnl-guest -c "rtorrent ..."
root и sazarkevich могут лазить везде и всюду.
Остальные получают недвусмысленный отказ(REJECT).

Была сначала мысль сделать через параметр --gid-owner: создать группы inet и inet-guest. Кто в первой группе - полный доступ, кто во второй группе - только гостевой.
Но как оказалось, эта группа должна быть основной. В man-е этого почему-то не сказано и я долго пытался понять, почему для одних правил --gid-owner работает, а для других - нет. Жаль, было бы красиво.

Комментариев нет: